sppl icon indicating copy to clipboard operation
sppl copied to clipboard

Fix relying on `.name` attribute of `rv_discrete`

Open fsaad opened this issue 4 years ago • 0 comments

The .name attribute of a frozen rv_discrete.dist object does not correspond to the underlying class, i.e.,

>>> from scipy.stats import norm
>>> d = norm(loc=0, scale=1)
>>> d.dist.name
'norm'

>>> from scipy.stats import rv_discrete
>>> d = rv_discrete(values=((1, 2), (.5, .5))).freeze()
>>> d.dist.name
'Distribution'

This behavior will cause issue in serializing, since we rely on the name attribute to correspond to a scipy class: https://github.com/probcomp/sppl/blob/efff34fb3d3703247dd7001c36970069c5ac3825/src/compilers/spe_to_dict.py#L48

Related #121

The constructor of rv_discrete does accept a name attribute, which will need to be handled correctly when loading the scipy dist.

fsaad avatar Jan 31 '22 23:01 fsaad