{ "info": { "author": "Derek Anderson", "author_email": "public@kered.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "Derek\u2019s Argument Parser\n=======================\n\nThis is a Pythonic argument parser. It automatically converts your\nsys.argv to ``*args, **kwargs`` and passes them to whatever function you\nwish. It also automatically generates usage messages and handles python\ntype checking / conversions.\n\nFor example, if you have the following program:\n\n.. code:: python\n\n import darp\n\n def serve(name, port:int=8888):\n '''Example DArP (Derek's Argument Parser) app...'''\n print('running', name, 'on', port)\n \n if __name__=='__main__':\n darp.prep(serve).run()\n\nAnd run it with arguments, you\u2019ll get the following output:\n\n::\n\n $ python3 example.py\n Example DArP (Derek's Argument Parser) app...\n serve() missing 1 required positional argument: 'name'\n usage: python3 example.py [--port ]\n\nRequired Parameters\n-------------------\n\n``*arg`` parameters are always required. Keyword parameters (like\n``--port``) can be marked as required like this:\n\n.. code:: python\n\n def serve(name, port:int=darp.REQUIRED):\n print('running', name, 'on', port)\n \n if __name__=='__main__':\n darp.prep(serve, p='port').run()\n\nIf run without the required argument this error is printed:\n\n::\n\n $ python3 example_required.py \n serve() missing 1 required argument: '-p|--port'\n usage: python3 example_required.py --port \n\nShortcut Parameters\n-------------------\n\nKeyword parameters are prefixed with ``--`` (like ``--port``). A\nshortcut parameter is when you want your script to respond to\n``-p 7777`` as if the user typed ``--port 7777``. You specify this\nrelationship via arguments to ``darp.prep`` like:\n\n.. code:: python\n\n if __name__=='__main__':\n darp.prep(serve, p='port').run()\n\nExample:\n\n::\n\n $ python3 example.py server -p 7777\n running server on 7777\n\nExistence Parameters\n--------------------\n\nKeyword parameters without values are considered ``True`` if present.\nFor example:\n\n.. code:: python\n\n def doit(dry_run=False):\n if dry_run:\n print('doing a dry run...')\n else:\n print('doing it for real!')\n \n if __name__=='__main__':\n darp.prep(doit).run()\n\nExample run:\n\n::\n\n $ python3 example_existence.py --dry-run\n doing a dry run...\n\nNotice that ``--dry-run`` is mapped to the ``dry_run`` kwarg.\n\nExistence params can be combined if using shortcuts. See:\n\n.. code:: python\n\n def doit(apple=False, banana=False):\n print('apple', apple)\n print('banana', banana)\n \n if __name__=='__main__':\n darp.prep(doit, a='apple', b='banana').run()\n\nExample run:\n\n::\n\n $ python3 example_squashed_existence.py -ab\n apple True\n banana True\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/keredson/darp", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "darp", "package_url": "https://pypi.org/project/darp/", "platform": "", "project_url": "https://pypi.org/project/darp/", "project_urls": { "Homepage": "https://github.com/keredson/darp" }, "release_url": "https://pypi.org/project/darp/1.2/", "requires_dist": null, "requires_python": "", "summary": "Derek's Argument Parser", "version": "1.2" }, "last_serial": 5622184, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "1390ee3489e127d5ea3849cd3f86c58a", "sha256": "44e97affb5dbcf6438823eb7798e00f949586c9dfb9ce325b3a4a3485aaa4ca8" }, "downloads": -1, "filename": "darp-1.0.tar.gz", "has_sig": false, "md5_digest": "1390ee3489e127d5ea3849cd3f86c58a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2122, "upload_time": "2019-08-02T04:49:58", "url": "https://files.pythonhosted.org/packages/90/4d/46e0be0273854b8419062118535de2a24a44968acb241c58623308f6a1ed/darp-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "5330b9f640cac4ba6c7c65e92bff6c7c", "sha256": "0f35de778dd8750c3a0bb886f275c1fcb09e375e6de3fd7fb808270f0e3d6085" }, "downloads": -1, "filename": "darp-1.1.tar.gz", "has_sig": false, "md5_digest": "5330b9f640cac4ba6c7c65e92bff6c7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3415, "upload_time": "2019-08-02T05:36:37", "url": "https://files.pythonhosted.org/packages/17/30/43b1bb54928d04d351713d7ba1896c9be93976e46794332d4f5c4256ecc3/darp-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "c9f864753676c63d68d35c4c1f2d372d", "sha256": "9e5f111f5d13681fa412ebc09f48a7054a31e1818108e7574026fd263a64fa6b" }, "downloads": -1, "filename": "darp-1.2.tar.gz", "has_sig": false, "md5_digest": "c9f864753676c63d68d35c4c1f2d372d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3472, "upload_time": "2019-08-02T06:21:30", "url": "https://files.pythonhosted.org/packages/f8/48/3a0d0117ce5f21ce134a4055ba41ce47cec0c1235207e21b1585f9b06964/darp-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c9f864753676c63d68d35c4c1f2d372d", "sha256": "9e5f111f5d13681fa412ebc09f48a7054a31e1818108e7574026fd263a64fa6b" }, "downloads": -1, "filename": "darp-1.2.tar.gz", "has_sig": false, "md5_digest": "c9f864753676c63d68d35c4c1f2d372d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3472, "upload_time": "2019-08-02T06:21:30", "url": "https://files.pythonhosted.org/packages/f8/48/3a0d0117ce5f21ce134a4055ba41ce47cec0c1235207e21b1585f9b06964/darp-1.2.tar.gz" } ] }