class documentation

class _ModuleProxy: (source)

Constructor: _ModuleProxy(module)

View In Hierarchy

Python module wrapper to hook module-level attribute access.

Access to deprecated attributes first checks _ModuleProxy._deprecatedAttributes, if the attribute does not appear there then access falls through to _ModuleProxy._module, the wrapped module object.

Method __getattribute__ Get an attribute from the module object, possibly emitting a warning.
Method __init__ Undocumented
Method __repr__ Get a string containing the type of the module proxy and a representation of the wrapped module object.
Method __setattr__ Set an attribute on the wrapped module object.
Instance Variable _deprecatedAttributes Mapping of attribute names to objects that retrieve the module attribute's original value.
Instance Variable _lastWasPath Heuristic guess as to whether warnings about this package should be ignored for the next call. If the last attribute access of this module was a getattr of __path__, we will assume that it was the import system doing it and we won't emit a warning for the next access, even if it is to a deprecated attribute...
Instance Variable _module Module on which to hook attribute access.
def __getattribute__(self, name): (source)

Get an attribute from the module object, possibly emitting a warning.

If the specified name has been deprecated, then a warning is issued. (Unless certain obscure conditions are met; see _ModuleProxy._lastWasPath for more information about what might quash such a warning.)

def __init__(self, module): (source)

Undocumented

def __repr__(self) -> str: (source)

Get a string containing the type of the module proxy and a representation of the wrapped module object.

def __setattr__(self, name, value): (source)

Set an attribute on the wrapped module object.

_deprecatedAttributes: dict mapping str to _DeprecatedAttribute = (source)

Mapping of attribute names to objects that retrieve the module attribute's original value.

_lastWasPath: bool = (source)

Heuristic guess as to whether warnings about this package should be ignored for the next call. If the last attribute access of this module was a getattr of __path__, we will assume that it was the import system doing it and we won't emit a warning for the next access, even if it is to a deprecated attribute. The CPython import system always tries to access __path__, then the attribute itself, then the attribute itself again, in both successful and failed cases.

_module: module = (source)

Module on which to hook attribute access.