{ "info": { "author": "Juancarlo A\u00f1ez", "author_email": "apalala@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: System Administrators", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: User Interfaces", "Topic :: System :: Installation/Setup", "Topic :: System :: Shells", "Topic :: Utilities" ], "description": "**doing**\n\nHierarchical command lines in python.\n\n``doing`` enables the simple creation of simple hierarchical command\nlines in Python programs.\n\nIt was originally designed to make it easy to create small Python tools\nthat took the place of ``bash`` scripts in system maintenance, so the\nlibrary assumes that packages and modules with names that do not start\nwith an underscore are either commands or containers of sub-commands.\n\n**Contents**\n\n[TOC]\n\nThis is what you *do*\n=====================\n\nIf the ``doing`` distribution is uncompressed to a directory, you'll\nfind a sample command-line program n the Python executable package\ncalled... ``sample``.\n\nThis is the source code for ``sample/__main__.py``:\n\n::\n\n #!/usr/bin/env python3\n import doing\n import sample\n\n if __name__ == '__main__':\n doing.do_main(sample)\n\nAnd this is what ``doing`` enables:\n\n::\n\n $ python -m sample\n sample v1.0.0rc1 a sample hierarchical command line created with the doing package\n\n sample greet ... greet in several languages\n sample version display the version\n\nIssuing a sub-command:\n\n::\n\n $ python -m sample version\n version 1.0.0rc1\n\nAs sub-command with sub-sub-commands:\n\n::\n\n $ python -m sample greet\n sample.greet greet in several languages\n\n sample greet english greet in English\n sample greet spanish greet in Spanish\n\nFinally:\n\n::\n\n $ python -m sample greet english\n Hello!\n $ python -m sample greet spanish\n Hola!\n\nAdding an executable script called ``do``, with contents like those of\n``__main__.py`` will let you do:\n\n::\n\n $ ./do greet english\n Hello!\n $ ./do greet spanish\n Hola!\n\nImplementing the *doing* command line\n=====================================\n\n``doing`` assumes that all packages and modules are potential commands\nor sub-commands. The description of the command is taken from the\nmodules doc-comment (in ``mymodule.py`` or ``mypackage/__init__.py``.\n\nTo enable ``doing`` for a top-level package, either provide a\n``__main__.py`` or a ``do`` (or any other script name) as described in\nthe introduction.\n\nFor modules and packages that execute some action, write a ``def do():``\nmethod in the module or in the packages ``__init__.py``.\n\nThis is the contents of ``sample/greet/spanish.py``:\n\n::\n\n \"\"\"\n greet in Spanish\n \"\"\"\n\n def do():\n print('Hola!')\n\nIf ``doing`` finds that a command has modules implementing sub-commands,\nit will indicate so on the command help with an ellipsis:\n\n::\n\n sample greet ... greet in several languages\n\nend\n===\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://bitbucket.org/apalala/doing", "keywords": "", "license": "BSD License", "maintainer": "", "maintainer_email": "", "name": "doing", "package_url": "https://pypi.org/project/doing/", "platform": "", "project_url": "https://pypi.org/project/doing/", "project_urls": { "Homepage": "http://bitbucket.org/apalala/doing" }, "release_url": "https://pypi.org/project/doing/1.0.0/", "requires_dist": null, "requires_python": "", "summary": "doing implements hierarchical command lines", "version": "1.0.0" }, "last_serial": 2349313, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "02b4acc169735902b5cad256da345353", "sha256": "7b481e88ffe921110f1640f69c0a6b3a7559c5076c440d62281d84913b188fcc" }, "downloads": -1, "filename": "doing-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02b4acc169735902b5cad256da345353", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6950, "upload_time": "2016-09-18T16:12:46", "url": "https://files.pythonhosted.org/packages/6f/7a/e6ed64e4241281ac700eae3351f9095a59b7e9c1c24773921a8746b720e7/doing-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92009603b6bb8673df86303303dc1baf", "sha256": "9345bd365f9069575b32c652a105f02c38f7b9915e897815e027deff0d6492b9" }, "downloads": -1, "filename": "doing-1.0.0.tar.gz", "has_sig": false, "md5_digest": "92009603b6bb8673df86303303dc1baf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5673, "upload_time": "2016-09-18T16:12:48", "url": "https://files.pythonhosted.org/packages/d1/15/b6e479dcce6f7c085cf6edc27b711877eb01deb04f5cd195e514c91410a4/doing-1.0.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "329d29006af6ca65ad4dc5a0a482db5a", "sha256": "cf797a73980ebd1a0f865cfe77cad8655a059ecc0901d6ef53b7b58e295bc465" }, "downloads": -1, "filename": "doing-1.0.0.zip", "has_sig": false, "md5_digest": "329d29006af6ca65ad4dc5a0a482db5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11647, "upload_time": "2016-09-18T16:12:50", "url": "https://files.pythonhosted.org/packages/f4/8e/658d3ca2da179316bf8d600d483286e63bad0ba292d79109cd64b71135f9/doing-1.0.0.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "02b4acc169735902b5cad256da345353", "sha256": "7b481e88ffe921110f1640f69c0a6b3a7559c5076c440d62281d84913b188fcc" }, "downloads": -1, "filename": "doing-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "02b4acc169735902b5cad256da345353", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6950, "upload_time": "2016-09-18T16:12:46", "url": "https://files.pythonhosted.org/packages/6f/7a/e6ed64e4241281ac700eae3351f9095a59b7e9c1c24773921a8746b720e7/doing-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92009603b6bb8673df86303303dc1baf", "sha256": "9345bd365f9069575b32c652a105f02c38f7b9915e897815e027deff0d6492b9" }, "downloads": -1, "filename": "doing-1.0.0.tar.gz", "has_sig": false, "md5_digest": "92009603b6bb8673df86303303dc1baf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5673, "upload_time": "2016-09-18T16:12:48", "url": "https://files.pythonhosted.org/packages/d1/15/b6e479dcce6f7c085cf6edc27b711877eb01deb04f5cd195e514c91410a4/doing-1.0.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "329d29006af6ca65ad4dc5a0a482db5a", "sha256": "cf797a73980ebd1a0f865cfe77cad8655a059ecc0901d6ef53b7b58e295bc465" }, "downloads": -1, "filename": "doing-1.0.0.zip", "has_sig": false, "md5_digest": "329d29006af6ca65ad4dc5a0a482db5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11647, "upload_time": "2016-09-18T16:12:50", "url": "https://files.pythonhosted.org/packages/f4/8e/658d3ca2da179316bf8d600d483286e63bad0ba292d79109cd64b71135f9/doing-1.0.0.zip" } ] }