Metadata-Version: 2.1
Name: modulehandler
Version: 0.3
Summary: A dynamic module handler, with standalone tools
Home-page: https://github.com/divad1196/ModuleHandler
Author: Gallay David
Author-email: davidtennis96@hotmail.com
License: UNKNOWN
Description: ModuleHandler
        =============
        
        Installation
        ------------
        
        .. code:: bash
        
            pip3 install modulehandler
        
        Usage
        -----
        
        Considering this folder tree
        
        .. code:: bash
        
            tests_import_handler
            ├── addons
            │   └── m1
            │       ├── __init__.py
            │       ├── manifest.json
            │       └── README.md
            ├── m2
            │   ├── __init__.py
            │   └── manifest.json
            └── m3.py
        
        .. code:: python
        
            import ModuleHandler
            from pathlib import Path
            registry = ModuleHandler.ModuleRegistry()
        
            tests_import_handler = Path("tests_import_handler").resolve()
            addons = tests_import_handler.joinpath("addons")
            m2 = tests_import_handler.joinpath("m2")
            m3 = tests_import_handler.joinpath("m3.py")
        
            # Register won't load
            registry.register_search_dir(addons)
            registry.register_module(m2)
            registry.register_module(m3)
        
            # load modules individually
            m3 = registry.load("m3")  # ignore if already loader with noreload=True
        
            # load all modules
            registry.load_all()  # ignore if already loader with noreload=True
        
            # access loaded module
            m1 = registry["m1"]
            m4 = registry.get("m4")  # return None
        
            # register + load
            m2 = registry.import_module(m2)
        
            # import from search paths if not already loaded
            m1 = registry.imports("m1")
        
            # get readme as html
            registry.description("m1")
        
            # get module absolute path
            registry.path("m1")
        
        Nb:
        
        -  This won't change sys search paths nor add modules to sys.modules:
           ``"m1" in sys.modules  # False``
        -  loading only replace module in registry but this won't propagate to
           copy of old module.
        
        Future
        ======
        
        -  Currently, the configuration filename is not easily editable, same
           for configuration validation. It may be editable but still with
           current behaviour kept as default.
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
