Decorator¶
Useful utility decorators.
- 
sympy.utilities.decorator.conserve_mpmath_dps(func)[source]¶
- After the function finishes, resets the value of mpmath.mp.dps to the value it had before the function was run. 
- 
sympy.utilities.decorator.doctest_depends_on(exe=None, modules=None, disable_viewers=None, python_version=None)[source]¶
- Adds metadata about the dependencies which need to be met for doctesting the docstrings of the decorated objects. - exe should be a list of executables - modules should be a list of modules - disable_viewers should be a list of viewers for preview() to disable - python_version should be the minimum Python version required, as a tuple (like (3, 0)) 
- 
sympy.utilities.decorator.memoize_property(propfunc)[source]¶
- Property decorator that caches the value of potentially expensive \(propfunc\) after the first evaluation. The cached value is stored in the corresponding property name with an attached underscore. 
- 
class sympy.utilities.decorator.no_attrs_in_subclass(cls, f)[source]¶
- Don’t ‘inherit’ certain attributes from a base class - >>> from sympy.utilities.decorator import no_attrs_in_subclass - >>> class A(object): ... x = 'test' - >>> A.x = no_attrs_in_subclass(A, A.x) - >>> class B(A): ... pass - >>> hasattr(A, 'x') True >>> hasattr(B, 'x') False 
- 
sympy.utilities.decorator.public(obj)[source]¶
- Append - obj’s name to global- __all__variable (call site).- By using this decorator on functions or classes you achieve the same goal as by filling - __all__variables manually, you just don’t have to repeat yourself (object’s name). You also know if object is public at definition site, not at some random location (where- __all__was set).- Note that in multiple decorator setup (in almost all cases) - @publicdecorator must be applied before any other decorators, because it relies on the pointer to object’s global namespace. If you apply other decorators first,- @publicmay end up modifying the wrong namespace.- Examples - >>> from sympy.utilities.decorator import public - >>> __all__ Traceback (most recent call last): ... NameError: name '__all__' is not defined - >>> @public ... def some_function(): ... pass - >>> __all__ ['some_function'] 
- 
sympy.utilities.decorator.threaded(func)[source]¶
- Apply - functo sub–elements of an object, including- Add.- This decorator is intended to make it uniformly possible to apply a function to all elements of composite objects, e.g. matrices, lists, tuples and other iterable containers, or just expressions. - This version of - threaded()decorator allows threading over elements of- Addclass. If this behavior is not desirable use- xthreaded()decorator.- Functions using this decorator must have the following signature: - @threaded def function(expr, *args, **kwargs): 
- 
sympy.utilities.decorator.threaded_factory(func, use_add)[source]¶
- A factory for - threadeddecorators.
- 
sympy.utilities.decorator.xthreaded(func)[source]¶
- Apply - functo sub–elements of an object, excluding- Add.- This decorator is intended to make it uniformly possible to apply a function to all elements of composite objects, e.g. matrices, lists, tuples and other iterable containers, or just expressions. - This version of - threaded()decorator disallows threading over elements of- Addclass. If this behavior is not desirable use- threaded()decorator.- Functions using this decorator must have the following signature: - @xthreaded def function(expr, *args, **kwargs): 
