def check_example(s): print('check %r' % s) p = parse_spec(s) print('parsed as %r' % p) s2 = str(p) print('rewritten as %r' % s2) p2 = parse_spec(s2) print('reparsed as %r' % p2) assert p == p2
def typsy_type(f, typsy_type): """ Describes the decorator of a function. """ # print('decorating:\n f = %r\n typsy_type: %r' % (f, typsy_type)) from typsy.parsing.parsin import parse_spec tt = parse_spec(typsy_type) set_typsy_type(f, tt) return f
def set_typsy_type(x, tt): """ Sets the type of the object x. """ if isinstance(tt, str): from typsy.parsing.parsin import parse_spec tt = parse_spec(tt) setattr(x, attrname, tt)
def test_name_change1(): t = parse_spec('UniformSequence(A) -> UniformSequence(B)') t2 = t.replace_used_variables(already_taken=set(['A']), substitutions={}) print t2 variables = t2.get_variables() assert not 'A' in variables, variables assert 'B' in variables, variables
def test_variable_names_replacement(): t = parse_spec('UniformSequence(A) x UniformSequence(B) -> UniformSequence(A x B)') variables = t.get_variables() assert variables == set(['A', 'B']), variables
def get_typsy_type(self): from typsy.parsing.parsin import parse_spec return parse_spec('UniformSequence(A)')