Dynamically discover and import Python modules and classes.
Project description
Dynamically discover and import Python modules and classes
Importers
Import a module via module name or file path
from dynamic_imports import import_module
module = import_module('my_package.my_module')
# or
module = import_module('/home/user/my_package/my_module.py')
Import a module attribute
from dynamic_imports import import_module_attr
function = import_module_attr('my_package.my_module', 'my_function')
# or
function = import_module_attr('/home/user/my_package/my_module.py', 'my_function')
Search
Find all modules in a package or nested packages
from dynamic_imports import discover_modules
modules = discover_modules(
module=my_package, # str `my_package' works too.
search_subpackages=True,
# return the actual module objects, not str names.
names_only=False,
)
Find all implementations of a base class within a module.
from dynamic_imports import class_impls
from my_package.my_module import Base
from my_package import my_module
my_classes = class_impls(
base_class=Base, # str 'Base' works too
search_in=my_module,
names_only=False
)
Find all implementations of a base class within a package.
from dynamic_imports import class_impls
from my_package.my_module import Base
import my_package
my_classes = class_impls(
base_class=Base, # str 'Base' works too.
search_in=my_package
search_subpackages=True,
names_only=False,
)
Find all instances of a class within a module.
from dynamic_imports import class_inst
from my_package import my_module
from my_package.my_module import MyClass
my_classes_instances = class_inst(
search_in=my_module, # str 'my_package.my_module' works too.
class_type=MyClass
)
Find all instances of a class within a package.
from dynamic_imports import class_inst
from my_package.my_module import MyClass
import my_package
my_classes_instances = class_inst(
class_type=MyClass,
search_in=my_package, # str 'my_package' works too.
search_subpackages=True,
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dynamic_imports-1.0.0.tar.gz
(3.5 kB
view hashes)
Built Distribution
Close
Hashes for dynamic_imports-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2064cee950331999197c2a5e645c31e2dbfcb0d272700de0b6ca225f0aebe478 |
|
MD5 | d14c1514d1196767d6e35ade21f768b6 |
|
BLAKE2b-256 | f8ab31db2fa7f7a064c5499b71af4dcf1b96171b8cd071255b87b15b360619de |