{ "info": { "author": "STEALTH", "author_email": "ritesh@stealthcentral.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: Public Domain", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Dynamic Import\n==============\n\nLets you dynamically/lazily import python module on run-time, enables easy to use import path name, saves memory. Also makes managing projects easy by not having to worry about nested folder structure producing long import names.\n\n\nWarning\n-------\n```importer()``` argument was changed in version \"0.9.4\". No need to manually provide ```__package__``` name. Will raise DeprecationWarning in future releases.\n\n\nInstall, update & uninstall\n---------------------------\n\nUse `pip`_ to:\n\n.. code-block:: text\n\n pip install dynamic-import\n\n pip install --upgrade dynamic-import\n\n pip uninstall dynamic-import\n\n\nExample\n-------\n\n./example/sample/__init__.py\n\n.. code-block:: python\n \n from dynamic_import import importer\n\n # Static/Normal Import\n from .static import static\n\n # Dynamic Importer\n importer(\n {\n 'one': ('a', 'b', 'c'), # from .one import a, b, c\n 'two': ('x', 'y', 'z'), # from .two import x, y, z\n 'local': 'internals', # from .local import internals\n 'sub': {\n 'page': ('e', 'f', 'g'), # from .sub.page import e, f, g\n 'name': 'name', # from .sub.name import name\n }\n }\n )\n\n./example/example.py\n\n.. code-block:: python\n\n # Static Import #1\n # ----------------\n from sample import static\n # Only \"sample\" & \"sample.static\" modules are loaded at this point.\n print(static())\n print()\n\n # Dynamic Import #1\n # -----------------\n from sample import a, b, c\n # Now \"sample\", \"sample.static\" & \"sample.one\" modules are loaded at this point.\n print(a())\n print(b())\n print(c())\n print()\n\n # Dynamic Import #2\n # -----------------\n from sample import x, y, z\n # All \"sample\", \"sample.static\", \"sample.one\" & \"sample.two\" modules are loaded.\n print(x())\n print(y())\n print(z())\n print()\n\n # Dynamic Import #3\n # -----------------\n from sample import internals\n # This is to demonstrate you can relatively import one module from another module.\n print(internals())\n print()\n\n # Sub-page Import #1\n # ------------------\n from sample import e, f, g\n # This demonstrates you can use nested sub-dir and use main module to import from.\n print(e())\n print(f())\n print(g())\n print()\n\n # Sub-page Import #2\n # ------------------\n from sample import name\n # Another sub-dir example\n print(name())\n print()\n\n\nNote\n----\n - you can still use static/normal import e.g. ```from .module import example``` before `importer()` is called.\n - You can also use `.` e.g. ```'.one': ('a', 'b', 'c')```\n - for 1 word import name you can use ```'module': 'myclass'``` vs ```'module': ('myclass',)```\n - All import names must be unique.\n\n\nLicense\n-------\nFree, No limit what so ever. `Read more`_\n\n\n.. TODO\n.. ----\n - Add multi-dimensional dictionary to module naming convention. Done, local testing.\n - Remove \"__package__\" attribute from importer(), should be automatic!. Done, local testing.\n\n.. _pip: https://pip.pypa.io/en/stable/quickstart/\n.. _Read more: https://github.com/YoSTEALTH/Dynamic-Import/blob/master/LICENSE.txt", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/YoSTEALTH/Dynamic-Import", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "dynamic-import", "package_url": "https://pypi.org/project/dynamic-import/", "platform": "", "project_url": "https://pypi.org/project/dynamic-import/", "project_urls": { "Homepage": "https://github.com/YoSTEALTH/Dynamic-Import" }, "release_url": "https://pypi.org/project/dynamic-import/0.9.7/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Dynamically/Lazily import python module on run-time. Also enables easy to use import path name.", "version": "0.9.7" }, "last_serial": 5258102, "releases": { "0.9.1": [ { "comment_text": "", "digests": { "md5": "7da6b7b401d7ae2af6641dbf207f4c1f", "sha256": "bdb8a7225a84813bc255590556f5488ae894c4fa0b88621c60a7f4daf699172a" }, "downloads": -1, "filename": "dynamic_import-0.9.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7da6b7b401d7ae2af6641dbf207f4c1f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3450, "upload_time": "2018-08-10T19:16:07", "url": "https://files.pythonhosted.org/packages/14/bf/a55bbedd9bc73f88f20acbea36aba70bb0c3862607b0720c498d1f82263e/dynamic_import-0.9.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5e034d88526b0458e07d38608ff757c", "sha256": "fdd87d8d5e1f2b679f3cbed7def4f14e898686190b6d398886286c82b3786c8d" }, "downloads": -1, "filename": "dynamic_import-0.9.1.tar.gz", "has_sig": false, "md5_digest": "c5e034d88526b0458e07d38608ff757c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3528, "upload_time": "2018-08-10T19:16:08", "url": "https://files.pythonhosted.org/packages/34/db/e294415d91d322958b1244b4d28043e60224a2940a023bae070d6a4e26f1/dynamic_import-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "9780a66c038c92440c8cba9c9405c715", "sha256": "c69895a5b756a340ebcb222ba961d18e5498b2b1589a67cfac06904e11195a19" }, "downloads": -1, "filename": "dynamic_import-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "9780a66c038c92440c8cba9c9405c715", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3518, "upload_time": "2018-08-18T21:27:03", "url": "https://files.pythonhosted.org/packages/17/78/b26e25d9a1cf7b5169453a6aa383cf1e4570a17fe9370ca9997943d8f1cb/dynamic_import-0.9.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "87f64aa0158780d344969d3c5e38c204", "sha256": "3e9ea9f6ea80c6b0ea749176a400a5e2acd16cface2cf8fbf968c103f613dd09" }, "downloads": -1, "filename": "dynamic_import-0.9.2.tar.gz", "has_sig": false, "md5_digest": "87f64aa0158780d344969d3c5e38c204", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 3622, "upload_time": "2018-08-18T21:27:05", "url": "https://files.pythonhosted.org/packages/3d/4f/bdf79977ef628f93ffc9e2f6440c07bfb60671d9788b33305d724e2ca670/dynamic_import-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "3b995f0d86b13b89e7642a58d7afdc44", "sha256": "bb7c65ea2415edc4dcecf6aa2eda382ec3b8b28710cf065a97ca497623ad9a3d" }, "downloads": -1, "filename": "dynamic_import-0.9.3.tar.gz", "has_sig": false, "md5_digest": "3b995f0d86b13b89e7642a58d7afdc44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3778, "upload_time": "2018-08-24T21:24:15", "url": "https://files.pythonhosted.org/packages/16/4e/491364e1bfff4e69dfcf8a1650b63987c4ff7966d92c37e49736b0a38718/dynamic_import-0.9.3.tar.gz" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "5b8ae81148f71aacc42d619d1244ce3e", "sha256": "d5e363e3b672605724c8e896a359b5534449da13dabb4a969e0d49c89e7b2bcf" }, "downloads": -1, "filename": "dynamic_import-0.9.4.tar.gz", "has_sig": false, "md5_digest": "5b8ae81148f71aacc42d619d1244ce3e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4676, "upload_time": "2018-08-30T22:30:25", "url": "https://files.pythonhosted.org/packages/5d/03/c75ac152d8d387fc5fe8d8f8270b58d215dd003f40bfa10e533308aee6a1/dynamic_import-0.9.4.tar.gz" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "6d4c6ea23ef554f5a49831f500646d6c", "sha256": "4bbbc2f6d4672c078c35810c2bfb057105b2e7e2a9a2dcfa91eb0783332b80d8" }, "downloads": -1, "filename": "dynamic_import-0.9.6.tar.gz", "has_sig": false, "md5_digest": "6d4c6ea23ef554f5a49831f500646d6c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4894, "upload_time": "2019-04-25T12:56:49", "url": "https://files.pythonhosted.org/packages/d2/fd/682ab060769869258f3d67b53df6c69ae83c5bebf62fe467ab2e18cf2b13/dynamic_import-0.9.6.tar.gz" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "718fa9852c04d5c840f88c243297b0d0", "sha256": "874be87ac5083bb77b7a6eb6392afeeb425776c2a530a62f10690e1b21eaced8" }, "downloads": -1, "filename": "dynamic_import-0.9.7.tar.gz", "has_sig": false, "md5_digest": "718fa9852c04d5c840f88c243297b0d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4964, "upload_time": "2019-05-12T05:32:45", "url": "https://files.pythonhosted.org/packages/ed/88/d3a82c4a1ce13fe3263833d111e24f8436d1cbd6271f986a7c185c429801/dynamic_import-0.9.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "718fa9852c04d5c840f88c243297b0d0", "sha256": "874be87ac5083bb77b7a6eb6392afeeb425776c2a530a62f10690e1b21eaced8" }, "downloads": -1, "filename": "dynamic_import-0.9.7.tar.gz", "has_sig": false, "md5_digest": "718fa9852c04d5c840f88c243297b0d0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4964, "upload_time": "2019-05-12T05:32:45", "url": "https://files.pythonhosted.org/packages/ed/88/d3a82c4a1ce13fe3263833d111e24f8436d1cbd6271f986a7c185c429801/dynamic_import-0.9.7.tar.gz" } ] }