class twisted.python.modules._ModuleIteratorHelper: (source)
Known subclasses: twisted.python.modules.PathEntry, twisted.python.modules.PythonModule
This mixin provides common behavior between python module and path entries, since the mechanism for searching sys.path and __path__ attributes is remarkably similar.
Method | iterModules | Loop over the modules present below this entry or package on PYTHONPATH. |
Method | walkModules | Similar to iterModules , this yields self, and then every module in my package or entry, and every submodule in each package or entry. |
Method | __getitem__ | Retrieve a module from below this path or package. |
Method | __iter__ | Implemented to raise NotImplementedError for clarity, so that attempting to loop over this object won't call __getitem__. |
Method | _subModuleName | This is a hook to provide packages with the ability to specify their names as a prefix to submodules here. |
Method | _packagePaths | Implement in subclasses to specify where to look for modules. |
Method | _getEntry | Implement in subclasses to specify what path entry submodules will come from. |
Loop over the modules present below this entry or package on PYTHONPATH.
For modules which are not packages, this will yield nothing.
For packages and path entries, this will only yield modules one level down; i.e. if there is a package a.b.c, iterModules on a will only return a.b. If you want to descend deeply, use walkModules.
Returns | a generator which yields PythonModule instances that describe modules which can be, or have been, imported. |
Similar to iterModules
, this yields self, and then every module in my package or entry, and every submodule in each package or entry.
In other words, this is deep, and iterModules
is shallow.
This is a hook to provide packages with the ability to specify their names as a prefix to submodules here.
Implement in subclasses to specify where to look for modules.
Returns | iterable of FilePath-like objects. |
Implement in subclasses to specify what path entry submodules will come from.
Returns | a PathEntry instance. |
Retrieve a module from below this path or package.
Parameters | modname | a str naming a module to be loaded. For entries, this is a top-level, undotted package name, and for packages it is the name of the module without the package prefix. For example, if you have a PythonModule representing the 'twisted' package, you could use:twistedPackageObj['python']['modules'] to retrieve this module. |
Returns | a PythonModule. | |
Raises | KeyError | if the module is not found. |
Implemented to raise NotImplementedError for clarity, so that attempting to loop over this object won't call __getitem__.
Note: in the future there might be some sensible default for iteration, like 'walkEverything', so this is deliberately untested and undefined behavior.