{ "info": { "author": "Jon Grace-Cox", "author_email": "jongracecox@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License" ], "description": "\nauto-all\n========\n\nAutomatically manage the ``__all__`` variable in Python modules.\n\n\n.. image:: https://badge.fury.io/py/auto-all.svg\n :target: https://pypi.org/project/auto-all\n :alt: pypi package\n\n\n.. image:: https://api.travis-ci.org/jongracecox/auto-all.svg?branch=master\n :target: https://travis-ci.org/jongracecox/auto-all\n :alt: build status\n\n\n.. image:: https://img.shields.io/pypi/dm/auto-all.svg\n :target: https://pypistats.org/packages/auto-all\n :alt: downloads\n\n\n.. image:: https://img.shields.io/github/last-commit/jongracecox/auto-all.svg\n :target: https://github.com/jongracecox/auto-all/commits/master\n :alt: GitHub last commit\n\n\n.. image:: https://img.shields.io/github/license/jongracecox/auto-all.svg\n :target: https://github.com/jongracecox/auto-all/blob/master/LICENSE\n :alt: GitHub\n\n\n.. image:: https://img.shields.io/github/stars/jongracecox/auto-all.svg?style=social\n :target: https://github.com/jongracecox/auto-all/stargazers\n :alt: GitHub stars\n\n\nOverview\n--------\n\n``auto_all`` can be used for controlling what is made available\nfor import from a Python module.\n\nAdvantages:\n\n\n* Easily populate the ``__all__`` variable in modules.\n* Easily exclude imported objects\n* Clearly differentiate between internal and external facing objects.\n* Use simple, intuitive code.\n* Never worry about forgetting to add new objects to ``__all__``.\n* Help Python IDE's differentiate between internal and external facing objects.\n\nInstallation\n------------\n\n.. code-block:: bash\n\n pip install auto-all\n\nUsage\n-----\n\nFirst, import the auto_all functions into your module.\n\n.. code-block:: python\n\n from auto_all import start_all, end_all\n\nIf your module has external dependencies then these can be imported\nand the imported objects can be hidden. In this example we will import\npathlib.Path and show that it doesn't appear on the ``__all__`` list.\nWe're not actually going to use this import, it's just for illustration.\n\n.. code-block:: python\n\n from pathlib import Path\n\nNow we can define some internal functions that we want to keep private.\nWe can also do this using underscore prefixes, but ``auto_all`` gives us a\nlittle more granular control.\n\n.. code-block:: python\n\n def a_private_function():\n print(\"This is a private function.\")\n\nNow we are ready to start defining public functions, so we use\n``start_all()``. We need to pass it the globals dict so that it can\nsee what's already defined.\n\n.. code-block:: python\n\n start_all(globals())\n\nNow we can define our public functions.\n\n.. code-block:: python\n\n def a_public_function():\n print(\"This is a public function.\")\n\nFinally we use ``end_all()`` to finish defining public functions and\ncreate the ``__all__`` variable.\n\n.. code-block:: python\n\n end_all(globals())\n\nWhen we look at the ``__all__`` variable we can see only the public\nfacing objects are listed.\n\n.. code-block::\n\n >>> print(__all__)\n ['a_public_function']\n\nPutting this all together, your module should look something like this:\n\n.. code-block:: python\n\n from auto_all import start_all, end_all\n\n from pathlib import Path\n\n def a_private_function():\n print(\"This is a private function.\")\n\n start_all(globals())\n\n def a_public_function():\n print(\"This is a public function.\")\n\n end_all(globals())\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jongracecox/auto-all", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "auto-all", "package_url": "https://pypi.org/project/auto-all/", "platform": "", "project_url": "https://pypi.org/project/auto-all/", "project_urls": { "Homepage": "https://github.com/jongracecox/auto-all" }, "release_url": "https://pypi.org/project/auto-all/1.3.0/", "requires_dist": null, "requires_python": "", "summary": "Automatically manage __all__ variable in Python packages.", "version": "1.3.0" }, "last_serial": 5797344, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "9c68cf4abcb7aee163412921f1d1c063", "sha256": "faaa9ceb66f76e97460f1008eb77c91b2c39611d13be1b797e1071db88283215" }, "downloads": -1, "filename": "auto_all-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9c68cf4abcb7aee163412921f1d1c063", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 1953, "upload_time": "2019-09-07T19:35:59", "url": "https://files.pythonhosted.org/packages/a5/ed/1c82e6be4b9cd4b79a41489d38891c88e09084d2b2530b2f8cd0992217b1/auto_all-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "195a44eede3ca1ca19155e05a647f9f9", "sha256": "8c2590c0d8a5a56ff96db5f92abab997cda7b01d00cb6047f69e254dc71d850f" }, "downloads": -1, "filename": "auto-all-1.0.0.tar.gz", "has_sig": false, "md5_digest": "195a44eede3ca1ca19155e05a647f9f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1699, "upload_time": "2019-09-07T19:36:01", "url": "https://files.pythonhosted.org/packages/e3/8f/3d1db46f65b271cd956780eebf5122e9e8c62b7babbcae0e1d3ef14155ae/auto-all-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e0528427e07acc739d61e91876530ed2", "sha256": "e2221dba2d49703b9dbc5129f7ab7476d6c3c032dff469e105cf2e741b32c3d4" }, "downloads": -1, "filename": "auto_all-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e0528427e07acc739d61e91876530ed2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3708, "upload_time": "2019-09-07T19:55:02", "url": "https://files.pythonhosted.org/packages/53/ab/8f97206030f2590cb7f3cf31c7cae225ecc762d9b329fff26223eefaa1c8/auto_all-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "738558d85e13a57d7a22ad336c97216f", "sha256": "ac6cfbf3c2470eab8e50072297e69d4bb6a4a4a25fb365d430eb97ebee9c20dd" }, "downloads": -1, "filename": "auto-all-1.1.0.tar.gz", "has_sig": false, "md5_digest": "738558d85e13a57d7a22ad336c97216f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2839, "upload_time": "2019-09-07T19:55:03", "url": "https://files.pythonhosted.org/packages/44/83/5b84d7b7de0f31d9af680d3a8b178e7923485f5f2570eeae29049c5691e6/auto-all-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "8a02d2750e5a7fe0d9ee7af798f4dbc2", "sha256": "04ff5f5451c3203aada6b94a771974db9ad417ac7537c565eed7286ddbd26ec4" }, "downloads": -1, "filename": "auto_all-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8a02d2750e5a7fe0d9ee7af798f4dbc2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3834, "upload_time": "2019-09-07T20:04:02", "url": "https://files.pythonhosted.org/packages/b5/e9/6fa4f713c10d4879e8e5cc324b3459bd85210b158847b4c4f1e50c09a7d8/auto_all-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f775bb7f2787bee82bf400edde916ae", "sha256": "b8f653e9399b964fcf1a13e6c770127b01db5163042920e742c92f8045ef45ea" }, "downloads": -1, "filename": "auto-all-1.2.0.tar.gz", "has_sig": false, "md5_digest": "2f775bb7f2787bee82bf400edde916ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3028, "upload_time": "2019-09-07T20:04:03", "url": "https://files.pythonhosted.org/packages/4f/79/d06b243aba06c200b42b2f050a1c63d2c88e31ee8cdabb2ba4c1da0cd064/auto-all-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "30e5c6b007a29c779cc45d14cea6f658", "sha256": "90e5d7c2b2a086df764a31ae1a1f6407e7b870c3142939a8e8401a009c20ee0e" }, "downloads": -1, "filename": "auto_all-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "30e5c6b007a29c779cc45d14cea6f658", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4090, "upload_time": "2019-09-07T20:34:14", "url": "https://files.pythonhosted.org/packages/d9/c5/248a3dae1bbafbea29db19b811ef8f7aecef4fabb2d5190a3b7c952afd4e/auto_all-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78aa25b9f7018339e8c8044d5a3e7c49", "sha256": "1d9e77f3ac1cc0a473c2e577379e686ec35acb649d7386b668fff87888a98f5f" }, "downloads": -1, "filename": "auto-all-1.3.0.tar.gz", "has_sig": false, "md5_digest": "78aa25b9f7018339e8c8044d5a3e7c49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3271, "upload_time": "2019-09-07T20:34:15", "url": "https://files.pythonhosted.org/packages/11/fc/dafdb9053a440ddab34230a8904d840a0ea43cc8a07cd31a867abb743851/auto-all-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "30e5c6b007a29c779cc45d14cea6f658", "sha256": "90e5d7c2b2a086df764a31ae1a1f6407e7b870c3142939a8e8401a009c20ee0e" }, "downloads": -1, "filename": "auto_all-1.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "30e5c6b007a29c779cc45d14cea6f658", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4090, "upload_time": "2019-09-07T20:34:14", "url": "https://files.pythonhosted.org/packages/d9/c5/248a3dae1bbafbea29db19b811ef8f7aecef4fabb2d5190a3b7c952afd4e/auto_all-1.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78aa25b9f7018339e8c8044d5a3e7c49", "sha256": "1d9e77f3ac1cc0a473c2e577379e686ec35acb649d7386b668fff87888a98f5f" }, "downloads": -1, "filename": "auto-all-1.3.0.tar.gz", "has_sig": false, "md5_digest": "78aa25b9f7018339e8c8044d5a3e7c49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3271, "upload_time": "2019-09-07T20:34:15", "url": "https://files.pythonhosted.org/packages/11/fc/dafdb9053a440ddab34230a8904d840a0ea43cc8a07cd31a867abb743851/auto-all-1.3.0.tar.gz" } ] }