lsst.utils  14.0
 All Classes Namespaces Files Functions Variables Groups Pages
Classes | Functions | Variables
lsst.utils.wrappers Namespace Reference

Classes

class  TemplateMeta
 

Functions

def isAttributeSafeToTransfer
 
def continueClass
 
def inClass
 

Variables

tuple __all__ = ("continueClass", "inClass", "TemplateMeta")
 
tuple INTRINSIC_SPECIAL_ATTRIBUTES
 

Function Documentation

def lsst.utils.wrappers.continueClass (   cls)
Re-open the decorated class, adding any new definitions into the original.

For example,
::
    class Foo:
        pass

    @continueClass
    class Foo:
        def run(self):
            return None

is equivalent to
::
    class Foo:
        def run(self):
            return None

Definition at line 58 of file wrappers.py.

def lsst.utils.wrappers.inClass (   cls,
  name = None 
)
Add the decorated function to the given class as a method.

For example,
::
    class Foo:
        pass

    @inClass(Foo)
    def run(self):
        return None

is equivalent to::

    class Foo:
        def run(self):
            return None

Standard decorators like ``classmethod``, ``staticmethod``, and
``property`` may be used *after* this decorator.  Custom decorators
may only be used if they return an object with a ``__name__`` attribute
or the ``name`` optional argument is provided.

Definition at line 91 of file wrappers.py.

def lsst.utils.wrappers.isAttributeSafeToTransfer (   name,
  value 
)
Return True if an attribute is safe to monkeypatch-transfer to another
class.

This rejects special methods that are defined automatically for all
classes, leaving only those explicitly defined in a class decorated by
`continueClass` or registered with an instance of `TemplateMeta`.

Definition at line 44 of file wrappers.py.

Variable Documentation

tuple lsst.utils.wrappers.__all__ = ("continueClass", "inClass", "TemplateMeta")

Definition at line 28 of file wrappers.py.

tuple lsst.utils.wrappers.INTRINSIC_SPECIAL_ATTRIBUTES
Initial value:
1 = frozenset((
2  "__qualname__",
3  "__module__",
4  "__metaclass__",
5  "__dict__",
6  "__weakref__",
7  "__class__",
8  "__subclasshook__",
9  "__name__",
10  "__doc__",
11 ))

Definition at line 31 of file wrappers.py.