{ "info": { "author": "pwwang", "author_email": "pwwang@pwwang.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# modkit\n\n[![Pypi](https://img.shields.io/pypi/v/modkit?style=flat-square)](https://pypi.org/project/modkit/)\n[![Github](https://img.shields.io/github/tag/pwwang/modkit?style=flat-square)](https://github.com/pwwang/modkit)\n[![PythonVers](https://img.shields.io/pypi/pyversions/modkit?style=flat-square)](https://pypi.org/project/modkit/)\n[![Travis building](https://img.shields.io/travis/pwwang/modkit?style=flat-square)](https://travis-ci.org/pwwang/modkit)\n\nA package to manage your python modules\n\n## Install\n```shell\n# released version\npip install modkit\n# latest version\npip intall git+https://github.com/pwwanbg/modkit\n```\n\n## Usage\n\n### Allowing specific names to be imported, even with `from ... import *`\n`mymodule.py`:\n```python\nfrom modkit import Modkit\nmodkit = Modkit()\nmodkit.exports('a', 'b')\n# Now you can specify glob patterns for exports via 0.1.0\n# modkit.exports('p*') # works with dynamic exports\na = 1\nb = 2\nc = 3\n```\n\nTry to import this module:\n```python\nimport mymodule as mm\nmm.a # 1\nmm.b # 2\nmm.c # NameNotImportable\n```\n\n```python\nfrom mymodule import *\na # 1\nb # 2\nc # NameError\n\n# NameNotImportable\nfrom mymodule import c\n```\n\n### Banning certain names\n`mymodule.py`:\n```python\nfrom modkit import Modkit\nmodkit = Modkit()\nmodkit.ban('a')\na = 1\n```\n\n```python\nimport mymodule as mm\nmm.a # NameBannedFromImport\n\n# NameBannedFromImport\nfrom mymodule import a\n```\n\n### Aliasing names\n`mymodule.py`:\n```python\nfrom modkit import Modkit\nmodkit = Modkit()\nmodkit.alias('some_internal_wired_name', 'a')\nsome_internal_wired_name = 1\n```\n\n```python\nfrom mymodule import a\na # 1\n```\n\n### Importing names dynamically\n`mymodule.py`:\n```python\nfrom modkit import Modkit\nmodkit = Modkit()\n\ndef delegate(name):\n\tif name == 'a':\n\t\treturn 1\n\tif name == 'b':\n\t\treturn 2\n\tif name == 'c':\n\t\treturn lambda: 3\n\nmodkit.delegate(delegate)\n```\n\n```python\nfrom mymodule import a, b, c\na # 1\nb # 2\nc() # 3\n\n# NameBannedFromImport\nfrom mymodule import delegate\n\n# if you want to reuse it\n# mymodule.modkit.unban('delegate')\n```\n\n`modkit` has reserved delegate function with name `_modkit_delegate`. With this function defined in your module, you won't have to call `modkit.delegate`\n\n`mymodule.py`\n```python\nimport modkit\nmodkit.Modkit()\n\ndef _modkit_delegate(name):\n\tif name == 'a':\n\t\treturn 1\n\tif name == 'b':\n\t\treturn 2\n\tif name == 'c':\n\t\treturn lambda: 3\n\n# nothing needs to do\n```\n\nThen you are able to import a, b and c from mymodule:\n```python\nfrom mymodule import a, b, c\n```\n\n### Generating a new module based on current one\n`mymodule.py`\n```python\nimport modkit\nmodkit.Modkit()\n\nA = 1\ndef _modkit_call(module, a):\n\tsetattr(module, 'A', 2)\n\treturn module\n```\n\n```python\nimport mymodule\nA # 1\nmymodule2 = mymodule(2)\nmymodule2.A # 2\nfrom mymodule2 import A\nA # 2\nfrom mymodule import A\nA # 1\n```\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pwwang/modkit", "keywords": "", "license": "MIT", "maintainer": "pwwang", "maintainer_email": "pwwang@pwwang.com", "name": "modkit", "package_url": "https://pypi.org/project/modkit/", "platform": "", "project_url": "https://pypi.org/project/modkit/", "project_urls": { "Homepage": "https://github.com/pwwang/modkit", "Repository": "https://github.com/pwwang/modkit" }, "release_url": "https://pypi.org/project/modkit/0.1.0/", "requires_dist": null, "requires_python": ">=3.6,<4.0", "summary": "A package to manage your python modules.", "version": "0.1.0" }, "last_serial": 5925464, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a1e8af1fcb368c3c422a444bf7a4d9da", "sha256": "22f86e8ad1a19ec354a98a72077a52754506e146adb4a3d24c692828bce2cb15" }, "downloads": -1, "filename": "modkit-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a1e8af1fcb368c3c422a444bf7a4d9da", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2321, "upload_time": "2019-04-11T19:24:54", "url": "https://files.pythonhosted.org/packages/07/d7/d96953de6efe0013345282018530b1bf7429b0a4582a19203c3b3175b268/modkit-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5b4422266494e5865bc6e8a6030a5ce3", "sha256": "1d75bdbe176160da7d5d20352b2f38a84dcf5600de1c25d7a4f3ec17ab01fc25" }, "downloads": -1, "filename": "modkit-0.0.1.tar.gz", "has_sig": false, "md5_digest": "5b4422266494e5865bc6e8a6030a5ce3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2739, "upload_time": "2019-04-11T19:24:56", "url": "https://files.pythonhosted.org/packages/77/a0/4671a21d40534aad76f078597dabacb276ce0fdf3ca9ae991314bfe1dbe9/modkit-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "a78bc71cb15dfa8725ea5b647052bd34", "sha256": "bad611469ea4ea323b921d00045bb9304a8b3ca25ab3ebb74c913dd8938d426d" }, "downloads": -1, "filename": "modkit-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a78bc71cb15dfa8725ea5b647052bd34", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2526, "upload_time": "2019-04-12T18:53:51", "url": "https://files.pythonhosted.org/packages/c7/35/af8a2808cead064ad9ad51362a920cdd4904441bc3b1d95353fe76b001c7/modkit-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "035c5e4f7dae78ca9d2c31069215b1da", "sha256": "ee566e8ae8963d1181b0714fee9afe06e2905cc933a5fbdfd444401cc25ccfdd" }, "downloads": -1, "filename": "modkit-0.0.2.tar.gz", "has_sig": false, "md5_digest": "035c5e4f7dae78ca9d2c31069215b1da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3036, "upload_time": "2019-04-12T18:53:52", "url": "https://files.pythonhosted.org/packages/08/a9/0a7a1c7acaf0fec29a26c8aafb0cc01e37a8a7f35a99a7247d7265673069/modkit-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "6b49b9158309da03db06065eec1017d6", "sha256": "862ab8ef61f5c1f25f69a2a4db7a3f4938af6ae2bad9a715d9f4d40138032e01" }, "downloads": -1, "filename": "modkit-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6b49b9158309da03db06065eec1017d6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2576, "upload_time": "2019-04-17T16:44:40", "url": "https://files.pythonhosted.org/packages/68/7a/eab6c77b2020eb431b8108368754aa265c95195f34ce977e7efaf41f3c7f/modkit-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "463f00b994f21e938e040d94c9468e60", "sha256": "7899fef1afc0a6711fd7501a5afcb7b783781ef3f17ef175924b39084c1da925" }, "downloads": -1, "filename": "modkit-0.0.3.tar.gz", "has_sig": false, "md5_digest": "463f00b994f21e938e040d94c9468e60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3084, "upload_time": "2019-04-17T16:44:41", "url": "https://files.pythonhosted.org/packages/c4/8c/d4838c6ef5960a616a2df3d433873944ea02a3edc3f4cb473bb3c5ed9414/modkit-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "46b6a9c15d80e05f521e8e125dab348b", "sha256": "d99f4b53c21c679f2ec56743863c740fa782876d6bac1df504bdcc9b287b9b8c" }, "downloads": -1, "filename": "modkit-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "46b6a9c15d80e05f521e8e125dab348b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2568, "upload_time": "2019-04-17T22:27:13", "url": "https://files.pythonhosted.org/packages/6e/ff/64c04c2363a8b254222c6e660490d33d98a2087f91cc8fc663b9cebd7c85/modkit-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d2dc5df6fcf84a84d87081be8b965fea", "sha256": "5dcf43ca1d9d81d1cb126fb404c5e36002fd0798d307982ad95f1bb65b616ab9" }, "downloads": -1, "filename": "modkit-0.0.4.tar.gz", "has_sig": false, "md5_digest": "d2dc5df6fcf84a84d87081be8b965fea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3082, "upload_time": "2019-04-17T22:27:14", "url": "https://files.pythonhosted.org/packages/8f/9c/a859bc55c39917fd828e22aa88e121b6b23c408331974494bbac780bd7b7/modkit-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "eedd97c54332e58bcb2d4bd62ff4118d", "sha256": "13a118f3ed23d1d6d7ea3e24ebefe5cacc6b17a2971e1f7ecd24f46b16a71be0" }, "downloads": -1, "filename": "modkit-0.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "eedd97c54332e58bcb2d4bd62ff4118d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2568, "upload_time": "2019-04-18T22:21:14", "url": "https://files.pythonhosted.org/packages/a9/a1/31b99f5b26634de793f2522a24474065bb4224dd633ef524d08c290e28bd/modkit-0.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e56c01ddf996b93195e1e6b53492210c", "sha256": "bc16f7456c266eceb7bf681414fb41accb54c08983f5a4e40199ac37fef321d8" }, "downloads": -1, "filename": "modkit-0.0.5.tar.gz", "has_sig": false, "md5_digest": "e56c01ddf996b93195e1e6b53492210c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3095, "upload_time": "2019-04-18T22:21:15", "url": "https://files.pythonhosted.org/packages/c8/07/99555d7284238f9d1dbe197200a91717dc66b04a0d5afe476102938bbd18/modkit-0.0.5.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "c8765b4a316c63722b4ecbf566c0f439", "sha256": "9092866d7c338b6f92245cdbbcb3a3bd53354c4728aa5c6f2754dee5dc0ceb87" }, "downloads": -1, "filename": "modkit-0.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c8765b4a316c63722b4ecbf566c0f439", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2570, "upload_time": "2019-05-07T23:59:55", "url": "https://files.pythonhosted.org/packages/5a/98/f3cb0cd3f6bb48d12039fda727f2a7afa7c5d5d9b4b9bd3ffa4477fa467a/modkit-0.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fdd3b7adbcbaacfc32598b838c3513cd", "sha256": "d5b04d7d560cd62c88fbcefb6ab7b1c276cff9a8ecb662f766b8b90203c60625" }, "downloads": -1, "filename": "modkit-0.0.6.tar.gz", "has_sig": false, "md5_digest": "fdd3b7adbcbaacfc32598b838c3513cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3100, "upload_time": "2019-05-07T23:59:56", "url": "https://files.pythonhosted.org/packages/09/a2/7a9e4c639c1738c5dfbfb0b51fd3c77c77f66f30463497e1c84101b519e7/modkit-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "e064129b62b998e2c584fe880d2b9dc7", "sha256": "ce4722b49fbb23092d8faab908ee6726b5b64d936069c0e0c00814b9de615bea" }, "downloads": -1, "filename": "modkit-0.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e064129b62b998e2c584fe880d2b9dc7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 2741, "upload_time": "2019-05-15T18:13:53", "url": "https://files.pythonhosted.org/packages/ff/36/3b5eef58664fc887def8b9c65d8386e32bb2d8e3544f7b1b88bcd035076b/modkit-0.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9bd20935cbdb824b6b9953ab26ed674d", "sha256": "a47567ff8bcdcb85e93f6b71b859b1cc9fb3c681cb4cde55891d6dbfadf37122" }, "downloads": -1, "filename": "modkit-0.0.7.tar.gz", "has_sig": false, "md5_digest": "9bd20935cbdb824b6b9953ab26ed674d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3276, "upload_time": "2019-05-15T18:13:55", "url": "https://files.pythonhosted.org/packages/97/1c/c75a6f0ddcc8dfc29e53c0e64b33d5c816c71b36d945a3f52c43673865e3/modkit-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "ab016c1adbf98177150ec7efe4dcb00f", "sha256": "47e7f092c805956e8c008ee6f07da2e8d83fd0058fb083e9d2becc431769fc75" }, "downloads": -1, "filename": "modkit-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "ab016c1adbf98177150ec7efe4dcb00f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 3111, "upload_time": "2019-07-19T22:06:39", "url": "https://files.pythonhosted.org/packages/f2/1f/5653e177631929c5c42bf051d6501167406e5ee242fab496deb9a39855a4/modkit-0.0.8-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77636539f60f9c821389f38772e106bc", "sha256": "e8dd1dd480e6c8fd80173640bc1f1411685a4384983667d2a08a332192506c83" }, "downloads": -1, "filename": "modkit-0.0.8.tar.gz", "has_sig": false, "md5_digest": "77636539f60f9c821389f38772e106bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 3288, "upload_time": "2019-07-19T22:06:41", "url": "https://files.pythonhosted.org/packages/93/81/704b6f205550f4bf417ff67e52d2d61f6dd4c9afabb88281f1ef0f519660/modkit-0.0.8.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "b54d5e9f9d3c7845f05f7c8bee26025e", "sha256": "0f0ff9522ce0eabeb9156d37dced608f4b15a6a7c1fcdec60291361b6d1e7103" }, "downloads": -1, "filename": "modkit-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b54d5e9f9d3c7845f05f7c8bee26025e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3552, "upload_time": "2019-10-03T21:01:36", "url": "https://files.pythonhosted.org/packages/0c/94/5f5fb0f0decd7a2e6613793199692978a34ff121cb13add5f082717cebe7/modkit-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8227fbde576df26ada219ea426fdf37", "sha256": "eaa731327b4d78d1d74c74d5fc2f7918b0706b5084c563b1e1874091a849e8de" }, "downloads": -1, "filename": "modkit-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d8227fbde576df26ada219ea426fdf37", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3811, "upload_time": "2019-10-03T21:01:38", "url": "https://files.pythonhosted.org/packages/da/3d/71636a9d089b95cf533712b10af838669ccb2e2132bc58983e25b42a9b1b/modkit-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b54d5e9f9d3c7845f05f7c8bee26025e", "sha256": "0f0ff9522ce0eabeb9156d37dced608f4b15a6a7c1fcdec60291361b6d1e7103" }, "downloads": -1, "filename": "modkit-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b54d5e9f9d3c7845f05f7c8bee26025e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 3552, "upload_time": "2019-10-03T21:01:36", "url": "https://files.pythonhosted.org/packages/0c/94/5f5fb0f0decd7a2e6613793199692978a34ff121cb13add5f082717cebe7/modkit-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8227fbde576df26ada219ea426fdf37", "sha256": "eaa731327b4d78d1d74c74d5fc2f7918b0706b5084c563b1e1874091a849e8de" }, "downloads": -1, "filename": "modkit-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d8227fbde576df26ada219ea426fdf37", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 3811, "upload_time": "2019-10-03T21:01:38", "url": "https://files.pythonhosted.org/packages/da/3d/71636a9d089b95cf533712b10af838669ccb2e2132bc58983e25b42a9b1b/modkit-0.1.0.tar.gz" } ] }