Miscellaneous¶
Miscellaneous stuff that doesn’t really fit anywhere else.
-
sympy.utilities.misc.debug_decorator(func)[source]¶ If SYMPY_DEBUG is True, it will print a nice execution tree with arguments and results of all decorated functions, else do nothing.
-
sympy.utilities.misc.filldedent(s, w=70)[source]¶ Strips leading and trailing empty lines from a copy of \(s\), then dedents, fills and returns it.
Empty line stripping serves to deal with docstrings like this one that start with a newline after the initial triple quote, inserting an empty line at the beginning of the string.
-
sympy.utilities.misc.find_executable(executable, path=None)[source]¶ Try to find ‘executable’ in the directories listed in ‘path’ (a string listing directories separated by ‘os.pathsep’; defaults to os.environ[‘PATH’]). Returns the complete filename or None if not found
-
sympy.utilities.misc.func_name(x)[source]¶ Return function name of \(x\) (if defined) else the \(type(x)\). See Also ======== sympy.core.compatibility get_function_name
-
sympy.utilities.misc.rawlines(s)[source]¶ Return a cut-and-pastable string that, when printed, is equivalent to the input. The string returned is formatted so it can be indented nicely within tests; in some cases it is wrapped in the dedent function which has to be imported from textwrap.
Examples
Note: because there are characters in the examples below that need to be escaped because they are themselves within a triple quoted docstring, expressions below look more complicated than they would be if they were printed in an interpreter window.
>>> from sympy.utilities.misc import rawlines >>> from sympy import TableForm >>> s = str(TableForm([[1, 10]], headings=(None, ['a', 'bee']))) >>> print(rawlines(s)) ( 'a bee\n' '-----\n' '1 10 ' ) >>> print(rawlines('''this ... that''')) dedent('''\ this that''')
>>> print(rawlines('''this ... that ... ''')) dedent('''\ this that ''')
>>> s = """this ... is a triple ''' ... """ >>> print(rawlines(s)) dedent("""\ this is a triple ''' """)
>>> print(rawlines('''this ... that ... ''')) ( 'this\n' 'that\n' ' ' )
-
sympy.utilities.misc.replace(string, *reps)[source]¶ Return
stringwith all keys inrepsreplaced with their corresponding values, longer strings first, irrespective of the order they are given.repsmay be passed as tuples or a single mapping.References
Examples
>>> from sympy.utilities.misc import replace >>> replace('foo', {'oo': 'ar', 'f': 'b'}) 'bar' >>> replace("spamham sha", ("spam", "eggs"), ("sha","md5")) 'eggsham md5'
There is no guarantee that a unique answer will be obtained if keys in a mapping overlap (i.e. are the same length and have some identical sequence at the beginning/end):
>>> reps = [ ... ('ab', 'x'), ... ('bc', 'y')] >>> replace('abc', *reps) in ('xc', 'ay') True
-
sympy.utilities.misc.translate(s, a, b=None, c=None)[source]¶ Return
swhere characters have been replaced or deleted.Examples
>>> from sympy.utilities.misc import translate >>> from sympy.core.compatibility import unichr >>> abc = 'abc' >>> translate(abc, None, 'a') 'bc' >>> translate(abc, {'a': 'x'}, 'c') 'xb' >>> translate(abc, {'abc': 'x', 'a': 'y'}) 'x'
>>> translate('abcd', 'ac', 'AC', 'd') 'AbC'
There is no guarantee that a unique answer will be obtained if keys in a mapping overlap are the same length and have some identical sequences at the beginning/end:
>>> translate(abc, {'ab': 'x', 'bc': 'y'}) in ('xc', 'ay') True
Syntax
- translate(s, None, deletechars):
all characters in
deletecharsare deleted- translate(s, map [,deletechars]):
all characters in
deletechars(if provided) are deleted then the replacements defined by map are made; if the keys of map are strings then the longer ones are handled first. Multicharacter deletions should have a value of ‘’.- translate(s, oldchars, newchars, deletechars)
all characters in
deletecharsare deleted then each character inoldcharsis replaced with the corresponding character innewchars