jaberg / pyll

3 stars 5 forks source link

support for non-string dict key #10

Closed npinto closed 12 years ago

npinto commented 12 years ago

Crude way to reproduce:


In [36]: pyll.stochastic.sample({1:[s.uniform(0, 1), s.one_of(0, 1, 2)]}, np.random)
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
/home/npinto/<ipython-input-36-6a0b951cbcec> in <module>()
----> 1 pyll.stochastic.sample({1:[s.uniform(0, 1), s.one_of(0, 1, 2)]}, np.random)

/home/npinto/venv/pyll-system/pyll/pyll/stochastic.py in sample(expr, rng)
    154 
    155 def sample(expr, rng):
--> 156     foo = recursive_set_rng_kwarg(clone(as_apply(expr)), as_apply(rng))
    157     return rec_eval(foo)
    158 

/home/npinto/venv/pyll-system/pyll/pyll/base.py in as_apply(obj)
    132         items.sort()
    133         named_args = [(k, as_apply(v)) for (k, v) in items]
--> 134         rval = Apply('dict', [], named_args, len(named_args))
    135     else:
    136         rval = Literal(obj)

/home/npinto/venv/pyll-system/pyll/pyll/base.py in __init__(self, name, pos_args, named_args, o_len)
    154         assert all(isinstance(v, Apply) for v in pos_args)
    155         assert all(isinstance(v, Apply) for k, v in named_args)
--> 156         assert all(isinstance(k, basestring) for k, v in named_args)
jaberg commented 12 years ago

This should be fixed now.

npinto commented 12 years ago

Thanks!