@@ -124,8 +124,15 @@ class Context(object):
|
||||
if not val.imag:
|
||||
return val.real
|
||||
return val
|
||||
defaults = dict((str(k), to_num(v))
|
||||
for k, v in _def_re.findall(defaults.strip('()')))
|
||||
|
||||
try:
|
||||
_txt = defaults
|
||||
defaults = (part.split('=') for part in defaults.strip('()').split(','))
|
||||
defaults = dict((str(k).strip(), to_num(v))
|
||||
for k, v in defaults)
|
||||
except (ValueError, TypeError):
|
||||
raise ValueError('Could not parse Context definition defaults: %s', _txt)
|
||||
|
||||
ctx = cls(name, aliases, defaults)
|
||||
else:
|
||||
ctx = cls(name, aliases)
|
||||
|
||||
@@ -560,6 +560,13 @@ class TestContexts(QuantityTestCase):
|
||||
self.assertEqual(set(c.funcs.keys()), set((a, b)))
|
||||
self._test_ctx(c)
|
||||
|
||||
s = ['@context(n=1, bla=2) longcontextname',
|
||||
'[length] <-> 1 / [time]: n * c / value / bla']
|
||||
|
||||
c = Context.from_lines(s)
|
||||
self.assertEqual(c.defaults, {'n': 1, 'bla': 2})
|
||||
self.assertEqual(set(c.funcs.keys()), set((a, b)))
|
||||
|
||||
# If the variable is not present in the definition, then raise an error
|
||||
s = ['@context(n=1) longcontextname',
|
||||
'[length] <-> 1 / [time]: c / value']
|
||||
|
||||
Reference in New Issue
Block a user