Metadata-Version: 2.1
Name: module-tools
Version: 0.0.2
Summary: Module Tools
Home-page: https://github.com/shangsky/module-tools
Author: shangsky
Author-email: t_c_y@outlook.com
Maintainer: shangsky
Maintainer-email: t_c_y@outlook.com
License: MIT
Description: # Module Tools
        
        Tools for python modules
        
        ## Installation
        
        ```shell
        $ pip install flask-sugar
        ```
        
        ## Examples
        
        ```python
        """
        package
            __init__.py
            sub_package
                __init__.py
                modulec.py -> var5, var6 = 3, "c"
            modulea.py -> var1, var2, add = 1, "a", lambda a, b: a + b
            moduleb.py -> var3, var4 = 2, "b"
        """
        
        from package.modulea import add
        
        from module_tools import find_module_strings, find_modules, import_string, iter_objs_from_modules
        
        add1 = import_string("package.modulea.add")
        print(add1 is add)  # True
        
        print(set(find_module_strings("package")) == {"package.modulea", "package.moduleb"})  # True
        print(
            set(find_module_strings("package", recursive=True))
            == {"package.modulea", "package.moduleb", "package.sub_pakage.modulec"}
        )  # True
        from package import modulea, moduleb
        from package.sub_package import modulec
        
        print(set(find_modules("package")) == {modulea, moduleb})  # True
        print(set(find_modules("package", recursive=True)) == {modulea, moduleb, modulec})  # True
        
        print(set(iter_objs_from_modules(["package"], cls=int)) == {1, 2})  # True
        print(set(iter_objs_from_modules(["package"], cls=int, recursive=True)) == {1, 2, 3})  # True
        
        print(
            set(iter_objs_from_modules(["package"], cls=int, recursive=True, func=lambda x: x < 3))
            == {1, 2}
        )  # True
        ```
Platform: all
Classifier: Development Status :: 4 - Beta
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.6
Description-Content-Type: text/markdown
