{ "info": { "author": "Tracy Lai", "author_email": "me@tracycool.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "easycommandline.py\n==================\n\na solution for python command-line interfaces, inspired by\n`tj/commander.js `__\n\nInstallation\n============\n\n::\n\n $ pip install easycommandline\n\nOption\n======\n\nOptions are defined with the ``.options()`` method, also serving as\ndocumentation for the options. The example below parses args and options\nfrom ``sys.argv``\n\n.. code:: python\n\n # file favcolor.py\n\n from easycommandline import program\n\n program.version('1.0.1')\n program.options(\n ('-r', '--red'),\n ('-g', '--green'),\n ('-b', '--blue'),\n ('-w', '--white'),\n )\n program.parse_argv()\n\n if program.red:\n print('- red')\n if program.blue:\n print('- blue')\n if program.white:\n print('- white')\n\n::\n\n $ python favcolor.py -r -w\n - red\n - white\n\nCoercion\n========\n\n.. code:: python\n\n # file coercion.py\n\n from easycommandline import program\n\n def collect(value, previous_value):\n previous_value.append(value)\n return previous_value\n\n def make_range(value):\n components = value.split('..')\n return range( int(components[0]), int(components[1]) )\n\n def sum(value, previous_value):\n return previous_value + int(value)\n\n program.version('1.0.1')\n program.options(\n ('-r', '--recursive'),\n ('-p', '--preload', 'preload enabled'),\n ('-n', '--name', 'username'),\n ('-i', '--integer ', 'an integer argument', int),\n ('-f', '--float ', 'a float argument', float),\n ('-a', '--anotherfloat', 'another float argument', float),\n ('-c', '--collection [example]', 'collection', collect, []),\n ('-x', '--range A..B', 'range', make_range),\n ('-s', '--sum', 'the sum of numbers', sum, 0),\n )\n program.parse_argv()\n\n print('recursive : ', program.recursive)\n print('preload : ', program.preload)\n print('name : ', program.name)\n print('integer : ', program.integer)\n print('float : ', program.float)\n print('collection : ', program.collection)\n print('range : ', program.range)\n print('sum : ', program.sum)\n\n::\n\n $ python coercion.py -p --name Tracy -i 1000 --range 5..8 -s 1 2 3 4\n recursive : None\n preload : True\n name : Tracy\n integer : 1000\n float : None\n collection : []\n range : [5, 6, 7]\n sum : 10\n\nCommand\n=======\n\n| specifies\n| argument required with ``< >``\n| argument optional with ``[ ]``, cannot specify more than **one**\n optional argument\n\n.. code:: python\n\n # file cmd.py\n\n from easycommandline import program\n import os\n\n program.version('1.0.1')\n\n\n cmd = program.cmd('cd ')\n cmd.options(\n ('-c', '--create', 'create directory if not existed'),\n )\n cmd.description('change directory')\n @cmd.action\n def action_for_cmd_cd(cmd, path):\n if cmd.create and not os.path.exists(path):\n os.makedirs(path)\n\n\n\n cmd = program.cmd('start server [env]')\n @cmd.action\n def action_for_cmd_start_server(cmd, path, env):\n print(path)\n print(env)\n\n\n program.parse_argv()\n\n::\n\n $ python cmd.py cd ~/Desktop/abc -c\n $ python cmd.py start server ~/Desktop/abc production\n\nAutomated --help\n================\n\n::\n\n $ python coercion.py -h\n\n Usage: python coercion.py [options]\n\n Options:\n\n -h, --help output usage information \n -V, --version output the version number\n -r, --recursive \n -p, --preload preload enabled \n -n, --name username \n -i, --integer an integer argument \n -f, --float a float argument \n -a, --anotherfloat another float argument \n -c, --collection [example] collection \n -x, --range A..B range \n -s, --sum the sum of numbers", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tracycool/easycommandline", "keywords": "python command line option argument argv", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "easycommandline", "package_url": "https://pypi.org/project/easycommandline/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/easycommandline/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/tracycool/easycommandline" }, "release_url": "https://pypi.org/project/easycommandline/1.8.1/", "requires_dist": null, "requires_python": null, "summary": "python command-line interfaces made easy", "version": "1.8.1" }, "last_serial": 1668108, "releases": { "1.8.1": [ { "comment_text": "", "digests": { "md5": "b51246c2f8a2ddaede8838ee80deb52b", "sha256": "b13b3684c100d4e690926dbfd13fda3d70251bd56971b31af68e6ed1077d1bc9" }, "downloads": -1, "filename": "easycommandline-1.8.1.tar.gz", "has_sig": false, "md5_digest": "b51246c2f8a2ddaede8838ee80deb52b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6688, "upload_time": "2015-07-18T03:47:30", "url": "https://files.pythonhosted.org/packages/dc/ac/5239d01eb4d7137759d7627ec6cbb10060e70e27bf871b535f79ad7f75a4/easycommandline-1.8.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b51246c2f8a2ddaede8838ee80deb52b", "sha256": "b13b3684c100d4e690926dbfd13fda3d70251bd56971b31af68e6ed1077d1bc9" }, "downloads": -1, "filename": "easycommandline-1.8.1.tar.gz", "has_sig": false, "md5_digest": "b51246c2f8a2ddaede8838ee80deb52b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6688, "upload_time": "2015-07-18T03:47:30", "url": "https://files.pythonhosted.org/packages/dc/ac/5239d01eb4d7137759d7627ec6cbb10060e70e27bf871b535f79ad7f75a4/easycommandline-1.8.1.tar.gz" } ] }