kerncraft/kernel.py
def string_to_sympy(cls, s):
        """Convert any string to a sympy object or None."""
        if isinstance(s, int):
            return sympy.Integer(s)
        elif isinstance(s, list):
            return tuple([cls.string_to_sympy(e) for e in s])
        elif s is None:
            return None
        else:
            # Step 1 build expression with the whole alphabet redefined:
            local_dict = {c: symbol_pos_int(c) for c in s if c in string.ascii_letters}
            # TODO find nicer solution for N and other pre-mapped letters
            preliminary_expr = parse_expr(s, local_dict=local_dict)
            # Replace all free symbols with positive integer versions:
            local_dict.update(
                {s.name: symbol_pos_int(s.name) for s in preliminary_expr.free_symbols})
            return parse_expr(s, local_dict=local_dict)
def string_to_sympy(cls, s):
        if isinstance(s, int):
            return sympy.Integer(s)
        elif isinstance(s, list):
            return tuple([cls.string_to_sympy(e) for e in s])
        elif s is None:
            return None
        else:
            # Step 1 build expression with the whole alphabet redefined:
            local_dict = {c: symbol_pos_int(c) for c in s if c in string.ascii_letters}
            # TODO find nicer solution for N and other pre-mapped letters
            preliminary_expr = parse_expr(s, local_dict=local_dict)
            # Replace all free symbols with positive integer versions:
            local_dict.update(
                {s.name: symbol_pos_int(s.name) for s in preliminary_expr.free_symbols})
            return parse_expr(s, local_dict=local_dict)
def string_to_sympy ( cls , s ) : if isinstance ( s , int ) : return sympy . Integer ( s ) elif isinstance ( s , list ) : return tuple ( [ cls . string_to_sympy ( e ) for e in s ] ) elif s is None : return None else : # Step 1 build expression with the whole alphabet redefined: local_dict = { c : symbol_pos_int ( c ) for c in s if c in string . ascii_letters } # TODO find nicer solution for N and other pre-mapped letters preliminary_expr = parse_expr ( s , local_dict = local_dict ) # Replace all free symbols with positive integer versions: local_dict . update ( { s . name : symbol_pos_int ( s . name ) for s in preliminary_expr . free_symbols } ) return parse_expr ( s , local_dict = local_dict )
Convert any string to a sympy object or None.
Convert any string to a sympy object or None .