LSSTApplications
20.0.0
LSSTDataManagementBasePackage
|
Classes | |
class | TemplateMeta |
Functions | |
def | isAttributeSafeToTransfer (name, value) |
def | continueClass (cls) |
def | inClass (cls, name=None) |
Variables | |
INTRINSIC_SPECIAL_ATTRIBUTES | |
def lsst.utils.wrappers.continueClass | ( | cls | ) |
Re-open the decorated class, adding any new definitions into the original. For example: .. code-block:: python class Foo: pass @continueClass class Foo: def run(self): return None is equivalent to: .. code-block:: python class Foo: def run(self): return None .. warning:: Python's built-in `super` function does not behave properly in classes decorated with `continueClass`. Base class methods must be invoked directly using their explicit types instead.
Definition at line 59 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: .. code-block:: python class Foo: pass @inClass(Foo) def run(self): return None is equivalent to: .. code-block:: python 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 102 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 45 of file wrappers.py.
lsst.utils.wrappers.INTRINSIC_SPECIAL_ATTRIBUTES |
Definition at line 32 of file wrappers.py.