{
"info": {
"author": "Anders Ingemann",
"author_email": "anders@ingemann.de",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Topic :: Utilities"
],
"description": "docopt.sh\n=========\n\n.. image:: https://travis-ci.org/andsens/docopt.sh.png?branch=master\n :target: https://travis-ci.org/andsens/docopt.sh\n\n``docopt.sh`` is a bash argument parser generator for bash 3.2, and 4+.\nGiven a script it finds the ``docopt`` help text, parses it, generates a\nmatching parser in bash, and then inserts it back into the original script.\nThe patched script will have no dependencies and can be shipped as a single\nfile.\n\n* `Installation`_\n* `Quick example`_\n* `Refreshing the parser`_\n* `Parser output`_\n* `Commandline options`_\n* `Parser options`_\n* `Exiting with a usage message`_\n* `Library mode`_\n* `On-the-fly parser generation`_\n* `Developers`_\n * `Testing`_\n\n\nInstallation\n------------\n\nAlbeit ``docopt.sh`` generates a parser for bash the generator itself is\nwritten in python. Install ``docopt.sh`` using pip:\n\n.. code-block::\n\n sudo pip3 install docopt-sh\n\n\nQuick example\n-------------\n\nHere is an abbreviated version of `Naval Fate `_.\n\n.. code-block:: sh\n\n #!/usr/bin/env bash\n DOC=\"Naval Fate.\n Usage:\n naval_fate.sh ship move [--speed=]\n naval_fate.sh ship shoot \n\n Options:\n --speed= Speed in knots [default: 10].\n --moored Moored (anchored) mine.\n --drifting Drifting mine.\"\n naval_fate() {\n eval \"$(docopt \"$@\")\"\n $ship && $move && printf \"The %s is now moving to %d,%d at %d knots.\\n\" \"$_name_\" \"$_x_\" \"$_y_\" \"$__speed\"\n $ship && $shoot && printf \"You shoot at %d,%d. It's a hit!\\n\" \"$_x_\" \"$_y_\"\n return 0\n }\n naval_fate \"$@\"\n\nWe can use ``docopt.sh`` to insert a matching parser:\n\n.. code-block::\n\n $ docopt.sh naval_fate.sh\n naval_fate.sh has been updated\n\nThe file will now look like this:\n\n.. code-block:: sh\n\n #!/usr/bin/env bash\n DOC=\"Naval Fate.\n Usage:\n naval_fate.sh ship move [--speed=]\n naval_fate.sh ship shoot \n\n Options:\n --speed= Speed in knots [default: 10].\n --moored Moored (anchored) mine.\n --drifting Drifting mine.\"\n # docopt parser below, refresh this parser with `docopt.sh naval_fate.sh`\n # shellcheck disable=2016\n docopt() { docopt_run() { docopt_doc=${DOC:0:237}; docopt_usage=${DOC:13:97}\n docopt_digest=79f25; docopt_shorts=(''); docopt_longs=(--speed)\n ... more code ...\n done; if ! docopt_required \"$root_idx\" || [ ${#docopt_left[@]} -gt 0 ]; then\n docopt_error; fi; return 0; }\n # docopt parser above, complete command for generating this parser is `docopt.sh naval_fate.sh`\n naval_fate() {\n eval \"$(docopt \"$@\")\"\n $ship && $move && printf \"The %s is now moving to %d,%d at %d knots.\\n\" \"$_name_\" \"$_x_\" \"$_y_\" \"$__speed\"\n $ship && $shoot && printf \"You shoot at %d,%d. It's a hit!\\n\" \"$_x_\" \"$_y_\"\n return 0\n }\n naval_fate \"$@\"\n\nTo try it out we run ``naval_fate.sh``\n\n.. code-block::\n\n $ ./naval_fate.sh ship Olympia move 1 5 --speed 8\n The Olympia is now moving to 1,5 at 8 knots.\n\nThe variables ``$ship``, ``$move``, etc. are not set globally, but rather\ncontained to the scope of the invoking function.\nYou are however not restricted to calling ``eval \"$(docopt \"$@\")\"`` from a\nfunction, calling docopt outside of functions will work just as well and the\nvariables will then be defined globally.\n\nRefreshing the parser\n---------------------\n\n``docopt.sh`` embeds a hash of the help text into the parser to ensure that the\ntwo always match. In order to update the parser, simply run ``docopt.sh``\nagain. The existing parser will be replaced with a new one.\nIf the parser was generated with any particular options, these options will be\nre-applied unless instructed otherwise with ``--no-auto-params``.\n\n.. code-block::\n\n $ docopt.sh --line-length 120 naval_fate.sh\n naval_fate.sh has been updated.\n $ docopt.sh naval_fate.sh\n Adding `--line-length=120` from parser generation parameters that were detected\n in the script. Use --no-auto-params to disable this behavior.\n The parser in naval_fate.sh is already up-to-date.\n\nOnce you have generated the parser, you can move the codeblock to\nany other place in your script. The script patcher will automatically find\nthe codeblock and replace it with an updated version.\n\nParser output\n-------------\n\nNames of arguments, commands, and options are mapped by replacing everything\nthat is not an alphanumeric character with an underscore.\nThis means ``--speed`` becomes ``$__speed``, ``-f`` becomes ``$_f``, and\n```` becomes ``_name_``, while ``NAME`` stays as ``$NAME`` and\n``set`` stays as ``$set``.\n\nSwitches (options without arguments) and commands become ``true`` or ``false``.\nIf a switch or command can be specified more than once, the resulting\nvariable value will be an integer that has been incremented the number of times\nthe parameter was specified.\n\nOptions with values and regular arguments become strings.\nIf an option with a value or an argument can be specified more that once,\nthe value will be an array of strings.\n\nTo clarify, given this (somewhat complex, but concise) doc and invocation:\n\n.. code-block::\n\n Usage:\n program -v... -s --val=VAL multicmd... command ARG ARGS...\n\n $ program -vvv -s --val XY multicmd multicmd command A 1 2 3\n\nThe variables and their values will be:\n\n.. code-block::\n\n _v=3 # -vvv\n _s=true # -s\n __val=XY # --val XY\n multicmd=2 # multicmd multicmd\n command=true # command\n ARG=A # A\n ARGS=(1 2 3) # 1 2 3\n\nYou can use ``$DOCOPT_PREFIX`` to prefix the above variable names with a custom\nstring (e.g. specifying ``DOCOPT_PREFIX=prog`` would change ``ARG`` to\n``progARG``). See `parser options`_ for additional parser options.\n\nCommandline options\n-------------------\n\nThe commandline options of ``docopt.sh`` only change *how* the parser is\ngenerated, while global variables specified before ``eval \"$(docopt \"$@\")\"``\nitself change the behavior of the parser.\n\nThe commandline options are:\n\n+-------------------------+----------------------------------------------+\n| Option | Description |\n+=========================+==============================================+\n| ``--line-length -n N`` | Max line length when minifying. |\n| | Disable with ``0`` (default: 80) |\n+-------------------------+----------------------------------------------+\n| ``--library -l SRC`` | `Generates the dynamic part of the parser`_ |\n| | and includes the static parts with |\n| | `source SRC`. |\n+-------------------------+----------------------------------------------+\n| ``--no-auto-params -P`` | Disable auto-detection of parser |\n| | generation parameters. |\n+-------------------------+----------------------------------------------+\n| ``--parser -p`` | `Output the parser`_ instead of inserting |\n| | it in the script. |\n+-------------------------+----------------------------------------------+\n| ``--help -h`` | Show the help screen. |\n+-------------------------+----------------------------------------------+\n| ``--version`` | Show docopt.sh version. |\n+-------------------------+----------------------------------------------+\n\n.. _Generates the dynamic part of the parser: `Library mode`_\n.. _Output the parser: `On-the-fly parser generation`_\n\nParser options\n--------------\n\nParser options change the behavior of the parser in various ways. These options\nare specified as global variables and must be specified *before* invoking\n``eval \"$(docopt \"$@\")\"``.\n\n+-----------------------------+---------------------------------------------+\n| Option | Description |\n+=============================+=============================================+\n| ``$DOCOPT_PROGRAM_VERSION`` | The string to print when --version is |\n| | specified (default: none) |\n+-----------------------------+---------------------------------------------+\n| ``$DOCOPT_ADD_HELP`` | Set to `false` to not print usage on --help |\n| | (default: ``true``) |\n+-----------------------------+---------------------------------------------+\n| ``$DOCOPT_OPTIONS_FIRST`` | Set to ``true`` to treat everything after |\n| | the first non-option as commands/arguments |\n| | (default: ``false``) |\n+-----------------------------+---------------------------------------------+\n| ``$DOCOPT_PREFIX`` | Prefixes all variable names with the |\n| | specified value (default: ``\"\"``) |\n+-----------------------------+---------------------------------------------+\n| ``$DOCOPT_DOC_CHECK`` | Set to ``false`` to disable checking |\n| | whether the parser matches the doc |\n| | (default: ``true``) |\n+-----------------------------+---------------------------------------------+\n| ``$DOCOPT_LIB_CHECK`` | Set to ``false`` to disable checking |\n| | whether the library version and the |\n| | docopt parser version match |\n| | (default: ``true``) |\n+-----------------------------+---------------------------------------------+\n\nExiting with a usage message\n----------------------------\n\nOftentimes additional verification of parameters is necessary (e.g. when an\noption value is an enum). In those cases you can use ``docopt_exit \"message\"``\nin order to output a message for the user, the function automatically appends\na short usage message (i.e. the ``Usage:`` part of the doc) and then exits with\ncode ``1``.\n\nNote that this function is only defined *after* you have run\n``eval \"$(docopt \"$@\")\"``, it is part of the docopt output.\n\nLibrary mode\n------------\n\nInstead of inlining the entirety of the parser in your script, you can move the\nstatic parts to an external file and only insert the dynamic part into your\nscript. This is particularly useful when you have multiple bash scripts in the\nsame project that use ``docopt.sh``.\nTo generate the library run ``docopt.sh generate-library > DEST``.\nThe output is written to ``stdout``, so make sure to add that\nredirect.\n\nOnce a library has been generated you can insert the dynamic part of your\nparser into your script with ``docopt.sh --library DEST SCRIPT``. The generator\nwill then automatically add a ``source DEST`` to the parser. Make sure to quote\nyour library path if it contains spaces like so\n``docopt.sh --library '\"/path with spaces/docopt-lib.sh\"'``.\nYou do not need to specify ``--library`` on subsequent refreshes of the parser,\n``docopt.sh`` will automatically glean the previously used parameters from your\nscript and re-apply them.\n\n``--library`` can be any valid bash expression, meaning you can use\nthings like ``\"$(dirname \"$0\")\"``.\n\nOn every invocation docopt checks that the library version and the version of\nthe dynamic part in the script match. The parser exits with an error if that\nis not the case.\n\nOn-the-fly parser generation\n----------------------------\n\n**ATTENTION**: The method outlined below relies on ``docopt.sh`` being\ninstalled and is only intended for development use, do not release any scripts\nthat use this method.\n\nWhen developing a new script you might add, modify, and remove parameters quite\noften. Having to refresh the parser with every change can quickly become\ncumbersome and interrupt your workflow. To avoid this you can use the\n``--parser`` flag to generate and then immediately ``eval`` the output in your\nscript before invoking ``eval \"$(docopt \"$@\")\"``.\n\nThe script from the introduction would look like this (only\n``eval \"$(docopt.sh --parser \"$0\")\"`` has been added):\n\n.. code-block:: sh\n\n #!/usr/bin/env bash\n DOC=\"Naval Fate.\n Usage:\n naval_fate.sh ship move [--speed=]\n naval_fate.sh ship shoot \n\n Options:\n --speed= Speed in knots [default: 10].\n --moored Moored (anchored) mine.\n --drifting Drifting mine.\"\n naval_fate() {\n eval \"$(docopt.sh --parser \"$0\")\"\n eval \"$(docopt \"$@\")\"\n $ship && $move && printf \"The %s is now moving to %d,%d at %d knots.\\n\" \"$_name_\" \"$_x_\" \"$_y_\" \"$__speed\"\n $ship && $shoot && printf \"You shoot at %d,%d. It's a hit!\\n\" \"$_x_\" \"$_y_\"\n return 0\n }\n naval_fate \"$@\"\n\nSince ``docopt.sh`` is not patching the script, you also avoid any line number\njumps in your IDE. However, remember to replace this with the proper parser\nbefore you ship the script.\n\nDevelopers\n----------\n\nTesting\n~~~~~~~\n\n``docopt.sh`` uses pytest_ for testing. You can run the testsuite by executing\n``pytest`` in the root of the project.\n\nAll usecases_ from the original docopt are used to validate correctness.\nPer default pytest uses the bash version that is installed on the system to\nrun the tests.\nHowever, you can specify multiple alternate versions using\n``--bash-version ``, where ```` is a comma-separated list\nof bash versions (e.g. ``3.2,4.0,4.1``). These versions need to be\ndownloaded and compiled first, which you can do with ``get_bash.py``.\nThe script downloads, extracts, configures, and compiles the specified bash\nversions in the ``tests/bash-versions`` folder.\nUse ``--bash-version all`` to test with all the bash versions that are\ninstalled.\n\n\n.. _pytest: https://pytest.org/\n.. _usecases: https://github.com/andsens/docopt.sh/blob/c254d766a8eda8537bd5438b6ff22e005de4b586/tests/usecases.txt\n",
"description_content_type": "text/x-rst",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/andsens/docopt.sh",
"keywords": "",
"license": "",
"maintainer": "",
"maintainer_email": "",
"name": "docopt-sh",
"package_url": "https://pypi.org/project/docopt-sh/",
"platform": "",
"project_url": "https://pypi.org/project/docopt-sh/",
"project_urls": {
"Homepage": "https://github.com/andsens/docopt.sh"
},
"release_url": "https://pypi.org/project/docopt-sh/0.9.15/",
"requires_dist": [
"docopt",
"termcolor",
"pytest; extra == \"test\"",
"pytest-xdist; extra == \"test\"",
"pytest-pep8; extra == \"test\""
],
"requires_python": ">=3.5",
"summary": "docopt.sh - Bash argument parser generator.",
"version": "0.9.15"
},
"last_serial": 5771939,
"releases": {
"0.0.0": [
{
"comment_text": "",
"digests": {
"md5": "1f3303b0c967b2ca56dbadca8bd6d0d8",
"sha256": "76272bc37219e2f78b7daeb6833fd7b88cb25cf1701032c13adc4036a510b78b"
},
"downloads": -1,
"filename": "docopt_sh-0.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1f3303b0c967b2ca56dbadca8bd6d0d8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11619,
"upload_time": "2019-05-06T21:11:19",
"url": "https://files.pythonhosted.org/packages/69/60/e0c345e8c73ef40dfceccfe9cd1d54c657e56ab697d8911cadcd0ffb3935/docopt_sh-0.0.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6959aded86b835652dc7ee9b01a4d43e",
"sha256": "281078cde03fff2ea18649a3348ebeaad41d932eb3d3a983dbf3930adc4f70b9"
},
"downloads": -1,
"filename": "docopt-sh-0.0.0.tar.gz",
"has_sig": false,
"md5_digest": "6959aded86b835652dc7ee9b01a4d43e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9556,
"upload_time": "2019-05-06T21:11:21",
"url": "https://files.pythonhosted.org/packages/88/b1/8fe58a5968c744a23afb40ac61cb08fa23373baaefb1b52b08ef6b817d0d/docopt-sh-0.0.0.tar.gz"
}
],
"0.7.0": [
{
"comment_text": "",
"digests": {
"md5": "4f82efbf9f19d9cef57947ff411cc373",
"sha256": "9e48107cbd07a01d03fdda1c395fee1dfaac1256a74a2cf2605b4deb95261932"
},
"downloads": -1,
"filename": "docopt_sh-0.7.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4f82efbf9f19d9cef57947ff411cc373",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 48193,
"upload_time": "2019-05-12T10:35:38",
"url": "https://files.pythonhosted.org/packages/9f/c2/8ca5b4ac0093c1ca90390ff93576f46a7c43cebed0ff07961e2a16ccaec8/docopt_sh-0.7.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "00b6dcfc9be51ae3baacaeba25ea0a48",
"sha256": "feb4a91574df60fad93e0986b27b99d38133272e82582497b519a38e0ba7375e"
},
"downloads": -1,
"filename": "docopt-sh-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "00b6dcfc9be51ae3baacaeba25ea0a48",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 21262,
"upload_time": "2019-05-12T10:35:52",
"url": "https://files.pythonhosted.org/packages/0c/83/e9ca99ba2ec62083bb7bbfde353ed2ee44ae07b48f6044c718cec751f65d/docopt-sh-0.7.0.tar.gz"
}
],
"0.7.2": [
{
"comment_text": "",
"digests": {
"md5": "03eb4cc8fb2d54c200f6bc297dfad889",
"sha256": "7575e6132000beb90a4dc312132883e1d90544df53c0a172f11dbbdc66e81739"
},
"downloads": -1,
"filename": "docopt_sh-0.7.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "03eb4cc8fb2d54c200f6bc297dfad889",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 45540,
"upload_time": "2019-05-12T19:15:33",
"url": "https://files.pythonhosted.org/packages/3b/d8/f01ee15ba87afc30a5ede0e81626ac5fecce1ebe2d55fb42f8e4786dd1d3/docopt_sh-0.7.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d2d4d7a79eaae55f8ef5737d07777b6b",
"sha256": "9debf05f5c138f41c337c593568dff6b966d2195d6b79fcefe9d1276b2a92f73"
},
"downloads": -1,
"filename": "docopt-sh-0.7.2.tar.gz",
"has_sig": false,
"md5_digest": "d2d4d7a79eaae55f8ef5737d07777b6b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 21021,
"upload_time": "2019-05-12T19:15:37",
"url": "https://files.pythonhosted.org/packages/0a/48/18115bc8e64b89e15164f7e5eefe88eaba8233dc6269d0db1d93bbc8220e/docopt-sh-0.7.2.tar.gz"
}
],
"0.7.3": [
{
"comment_text": "",
"digests": {
"md5": "aa97fb9aef810b199ce2f3d92a7d3eb3",
"sha256": "e6c9adef02e395ecf8777aa29f8482c426427ea9cd84f48f3fb5279c99782d12"
},
"downloads": -1,
"filename": "docopt_sh-0.7.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aa97fb9aef810b199ce2f3d92a7d3eb3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 45574,
"upload_time": "2019-05-12T19:25:24",
"url": "https://files.pythonhosted.org/packages/32/e6/2e1816878769b8c30eb79962fc528af89b343b70320e56b511c1f2845664/docopt_sh-0.7.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "b1e3e381baa36a447bcdf931e9a87c81",
"sha256": "ccb26f83886782336f4d752b314de632e94294dc0849295b91ae37be33b041a1"
},
"downloads": -1,
"filename": "docopt-sh-0.7.3.tar.gz",
"has_sig": false,
"md5_digest": "b1e3e381baa36a447bcdf931e9a87c81",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 21019,
"upload_time": "2019-05-12T19:25:27",
"url": "https://files.pythonhosted.org/packages/3a/fe/7d8c4375dbec8280f172e26a220225c944a4c39c4f986956be703c4d12a3/docopt-sh-0.7.3.tar.gz"
}
],
"0.8.0": [
{
"comment_text": "",
"digests": {
"md5": "c3b4dbded7e2d59554104a974986ab3a",
"sha256": "f4b4fd05b9f912581229a5da6abf0659548fb7fa9cf42e891752cde5893de6f9"
},
"downloads": -1,
"filename": "docopt_sh-0.8.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c3b4dbded7e2d59554104a974986ab3a",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 44321,
"upload_time": "2019-06-08T18:36:32",
"url": "https://files.pythonhosted.org/packages/f0/80/f56dbe0e9f52fd04b95e00f0e4c3093686cf350bcae2df55abeb6edb19e4/docopt_sh-0.8.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4d22dd280f9cc69e062418394076821b",
"sha256": "fdb96cb8699b68b2d6f2e3d6f1f36a93d3b0729560d2e541c4f3755d635a6fdc"
},
"downloads": -1,
"filename": "docopt-sh-0.8.0.tar.gz",
"has_sig": false,
"md5_digest": "4d22dd280f9cc69e062418394076821b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 20841,
"upload_time": "2019-06-08T18:36:36",
"url": "https://files.pythonhosted.org/packages/0c/df/8c9e5d725f36b4386f9634460cf42566fea78b18e8f77c16a1b764be23f9/docopt-sh-0.8.0.tar.gz"
}
],
"0.8.5": [
{
"comment_text": "",
"digests": {
"md5": "1172e4eb0f7297e3c34dbe3f4d89b21f",
"sha256": "581acf619c3fa35b4d56472b39b0157e6eb8f286c286c5c843be04f7f1c6720e"
},
"downloads": -1,
"filename": "docopt_sh-0.8.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1172e4eb0f7297e3c34dbe3f4d89b21f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 47501,
"upload_time": "2019-06-08T21:41:51",
"url": "https://files.pythonhosted.org/packages/50/d5/8a67416521732051bfd2ca226e3d75372dfa5f23be9f1577af0b3032b573/docopt_sh-0.8.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2dc32564263ce50a899bcc3d816f5304",
"sha256": "f87194841b537f2b66e7b3d63527cf36f7743c343c4ca1e112a56302a1a75b84"
},
"downloads": -1,
"filename": "docopt-sh-0.8.5.tar.gz",
"has_sig": false,
"md5_digest": "2dc32564263ce50a899bcc3d816f5304",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 22181,
"upload_time": "2019-06-08T21:41:55",
"url": "https://files.pythonhosted.org/packages/83/82/eb416d45967f7f1eb2db27c41c6cc7c75139770fefbf523685f654043eb1/docopt-sh-0.8.5.tar.gz"
}
],
"0.8.6": [
{
"comment_text": "",
"digests": {
"md5": "514b86d996e61c5c1ee2b45e2a4f710f",
"sha256": "47f5327a14183a95b70af9b5c22da99e6daff399a7881060a4999ca949ea1692"
},
"downloads": -1,
"filename": "docopt_sh-0.8.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "514b86d996e61c5c1ee2b45e2a4f710f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 47502,
"upload_time": "2019-06-08T21:47:16",
"url": "https://files.pythonhosted.org/packages/9d/f7/41e6a657bfd599a3cf88ddec6bf265606c8cb1cfb85843b2dfaf8d5323b0/docopt_sh-0.8.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d8163ae959f51679ac0aa52795b974c6",
"sha256": "e61d5906bd060be9fa29efa11e855c2c01bcb5b60ebdb20402c2341559ed23f2"
},
"downloads": -1,
"filename": "docopt-sh-0.8.6.tar.gz",
"has_sig": false,
"md5_digest": "d8163ae959f51679ac0aa52795b974c6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 22186,
"upload_time": "2019-06-08T21:47:22",
"url": "https://files.pythonhosted.org/packages/26/66/04f8c7c9212832208cf2b436d424aa6e4821151ceb68d75c4073efa7c6b3/docopt-sh-0.8.6.tar.gz"
}
],
"0.9.0": [
{
"comment_text": "",
"digests": {
"md5": "925352aa3eb42c582b676bab844ebb38",
"sha256": "f36473d4f76e528b31903465d01e8813c290825f63bf8ccf5da8232301f884f9"
},
"downloads": -1,
"filename": "docopt_sh-0.9.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "925352aa3eb42c582b676bab844ebb38",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 51479,
"upload_time": "2019-06-09T13:20:29",
"url": "https://files.pythonhosted.org/packages/a2/ed/ad9d2151603c244f1ac61ecf103a8ac2ad7d62a8111a7b399aec4e4cd779/docopt_sh-0.9.0-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "a3960ea6426af7ea733d481f8765e502",
"sha256": "f953cacfeee5f6a33a46e1833789cc294410d14985bfc6471e095fa08e1bda9f"
},
"downloads": -1,
"filename": "docopt-sh-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "a3960ea6426af7ea733d481f8765e502",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 23446,
"upload_time": "2019-06-09T13:20:32",
"url": "https://files.pythonhosted.org/packages/b6/69/9554d200f9472fd78f323487e0ca4cdb23576acbbce51984af0bffb90510/docopt-sh-0.9.0.tar.gz"
}
],
"0.9.1": [
{
"comment_text": "",
"digests": {
"md5": "a9d4e6af05f1f589b51e022e782d22a9",
"sha256": "27dde9a58637e271d96fc98c6038c39d65d0a36afe175dfdfec1865fe0d5c9e2"
},
"downloads": -1,
"filename": "docopt_sh-0.9.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a9d4e6af05f1f589b51e022e782d22a9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 51447,
"upload_time": "2019-06-09T14:07:02",
"url": "https://files.pythonhosted.org/packages/fa/86/4b7de9e6700ff263fb29c60cc2f0535774725782eebb229d7e555e9d8b8a/docopt_sh-0.9.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "7181394052dac62d05860b08c042fbe4",
"sha256": "f0c4ea501ea06c85b5732f2d5fb81ade906175a0d0faa32bd865c239f657019b"
},
"downloads": -1,
"filename": "docopt-sh-0.9.1.tar.gz",
"has_sig": false,
"md5_digest": "7181394052dac62d05860b08c042fbe4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 23476,
"upload_time": "2019-06-09T14:07:05",
"url": "https://files.pythonhosted.org/packages/a6/f6/9e945d59f0e45127a30eef842b602b6552ebb75154d7f31b2246393cba96/docopt-sh-0.9.1.tar.gz"
}
],
"0.9.10": [
{
"comment_text": "",
"digests": {
"md5": "e2ce68c20b9b09031c7b14b691b046bb",
"sha256": "5f50d3e5056648fbbbd68938b4604a0272e9801b3cf5a526d110e080fdb5cd7f"
},
"downloads": -1,
"filename": "docopt_sh-0.9.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e2ce68c20b9b09031c7b14b691b046bb",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 54651,
"upload_time": "2019-06-29T07:49:38",
"url": "https://files.pythonhosted.org/packages/bc/fc/db8f2a2e77e124cc69f9abd2da2b760395e819be47c627a6ccb4b5894055/docopt_sh-0.9.10-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fad3860c4c2d0c25c29f178a88b68000",
"sha256": "c64637ef7ea490b4821cd5e404e0f8fb909bfb877b1b356b5ed6f5bc5ece649f"
},
"downloads": -1,
"filename": "docopt-sh-0.9.10.tar.gz",
"has_sig": false,
"md5_digest": "fad3860c4c2d0c25c29f178a88b68000",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 27619,
"upload_time": "2019-06-29T07:49:42",
"url": "https://files.pythonhosted.org/packages/83/fd/fd33ec7437408d8915b86d7fe4bae5dff8286bd6da08fffd98cbfa85c8a6/docopt-sh-0.9.10.tar.gz"
}
],
"0.9.11": [
{
"comment_text": "",
"digests": {
"md5": "dc03ba785e19e4eb5da5d38470952b78",
"sha256": "398efab303ef5b643435b7572c6f9a83abc385e4a1c048af6f9e0f92e3faf2cc"
},
"downloads": -1,
"filename": "docopt_sh-0.9.11-py3-none-any.whl",
"has_sig": false,
"md5_digest": "dc03ba785e19e4eb5da5d38470952b78",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 54705,
"upload_time": "2019-06-29T08:58:21",
"url": "https://files.pythonhosted.org/packages/59/49/589a4106f4310656afeae4387d2dfc9e008bde5d2cd5ef2745783adde811/docopt_sh-0.9.11-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6b2b6aba4ce73f99f2e81557c17133e0",
"sha256": "84037ed5b7ac830c63cddb45bee0dda8ecbc0ee264ead84585f54f69c4796e50"
},
"downloads": -1,
"filename": "docopt-sh-0.9.11.tar.gz",
"has_sig": false,
"md5_digest": "6b2b6aba4ce73f99f2e81557c17133e0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 27632,
"upload_time": "2019-06-29T08:58:24",
"url": "https://files.pythonhosted.org/packages/7b/15/36876b18760c96460cd6eb76fdf915cc9d06e29bac35ed9b3e4dc4534a17/docopt-sh-0.9.11.tar.gz"
}
],
"0.9.12": [
{
"comment_text": "",
"digests": {
"md5": "a31f9c8d06ed7c4a192ba5abaaa815cf",
"sha256": "64791302d400ad76aa01aadf1450d3b0badce8ea39daa5055066329babd34a10"
},
"downloads": -1,
"filename": "docopt_sh-0.9.12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a31f9c8d06ed7c4a192ba5abaaa815cf",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 54505,
"upload_time": "2019-07-19T12:59:50",
"url": "https://files.pythonhosted.org/packages/7e/cd/436d2b90f50aa9ace5cf96b92962d921140120dcbc492db689742ff2059f/docopt_sh-0.9.12-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5266d3327705cf8adb9e5efbc4fd5187",
"sha256": "9179075d3888486f599858bcd0667cc32d5c7ed23b1b53441a679ed5d16de3e0"
},
"downloads": -1,
"filename": "docopt-sh-0.9.12.tar.gz",
"has_sig": false,
"md5_digest": "5266d3327705cf8adb9e5efbc4fd5187",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 28723,
"upload_time": "2019-07-19T12:59:55",
"url": "https://files.pythonhosted.org/packages/76/ea/72078031296b86479de933d1f0dd6772b24cbebcac61aba866a9ae08abd4/docopt-sh-0.9.12.tar.gz"
}
],
"0.9.13": [
{
"comment_text": "",
"digests": {
"md5": "ff0cb2173a88f128aacf9516b2f05785",
"sha256": "2c63d7584002c301fd865ef95d4386c58d3d7a90d72a5a18fa2a67b50c77f3c1"
},
"downloads": -1,
"filename": "docopt_sh-0.9.13-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ff0cb2173a88f128aacf9516b2f05785",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 55190,
"upload_time": "2019-07-21T22:19:41",
"url": "https://files.pythonhosted.org/packages/6a/6e/cfa1c2d843141960c7914571c7e73c74455840105ec2909378ef3ed3ccba/docopt_sh-0.9.13-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "49f745d29515afbbf71771ab9655cbed",
"sha256": "295b90c905988cb61bac2542415d72b7155048c2b724c6dd4a8ea7bffd2a75b5"
},
"downloads": -1,
"filename": "docopt-sh-0.9.13.tar.gz",
"has_sig": false,
"md5_digest": "49f745d29515afbbf71771ab9655cbed",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 29041,
"upload_time": "2019-07-21T22:19:45",
"url": "https://files.pythonhosted.org/packages/77/78/77a27150895b65f5dc0f0eed6740203644f71ed361edf18a0f16661929e1/docopt-sh-0.9.13.tar.gz"
}
],
"0.9.14": [
{
"comment_text": "",
"digests": {
"md5": "a229c79894fdebea18c27f35039a51ea",
"sha256": "b90c647bd22f492bd4319458e8210eb20285f5e145e4073310771b6cb56de984"
},
"downloads": -1,
"filename": "docopt_sh-0.9.14-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a229c79894fdebea18c27f35039a51ea",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 55192,
"upload_time": "2019-07-22T14:12:09",
"url": "https://files.pythonhosted.org/packages/c0/d7/c2de368316bed0306b483f95c6a5c36fa1c4107b00849f04d122a5f52ca3/docopt_sh-0.9.14-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3934a5f040f02ae4f290305a13a19c41",
"sha256": "1ef5267c4ec15fcae399e7cb58b276fb627ec4dfd732d57d7bc51887ddcae0fb"
},
"downloads": -1,
"filename": "docopt-sh-0.9.14.tar.gz",
"has_sig": false,
"md5_digest": "3934a5f040f02ae4f290305a13a19c41",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 28730,
"upload_time": "2019-07-22T14:12:11",
"url": "https://files.pythonhosted.org/packages/cb/97/2bb4681d2def8fcc829d5964b5e0d0e1a1acd2dc3d1d700782da8718c190/docopt-sh-0.9.14.tar.gz"
}
],
"0.9.15": [
{
"comment_text": "",
"digests": {
"md5": "0d72d3b9c8605644e85c086fe32c3080",
"sha256": "ba7923fd0454cb8826ff14731a59c45556487aa09f83f70e0111dd33fbf51300"
},
"downloads": -1,
"filename": "docopt_sh-0.9.15-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0d72d3b9c8605644e85c086fe32c3080",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 55187,
"upload_time": "2019-09-02T17:29:30",
"url": "https://files.pythonhosted.org/packages/7c/13/1c9f05f79a7a57957bae26c1c76fcf88be42a82af5b8854545ed79b93c85/docopt_sh-0.9.15-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d48748e092fc594b41b9dc0adc96c92c",
"sha256": "143e79c8b799812c829bd35434b85ce6e90e6eec7d9b2c06f36a00c476ec0ecc"
},
"downloads": -1,
"filename": "docopt-sh-0.9.15.tar.gz",
"has_sig": false,
"md5_digest": "d48748e092fc594b41b9dc0adc96c92c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 29467,
"upload_time": "2019-09-02T17:29:33",
"url": "https://files.pythonhosted.org/packages/b1/f6/980d0888ab39922c6ce08cd80f5a0ef485376f86dffbfb932ec6de8a5e38/docopt-sh-0.9.15.tar.gz"
}
],
"0.9.5": [
{
"comment_text": "",
"digests": {
"md5": "8dd9536b640deee37c5a08f8b10f46ff",
"sha256": "1fe90a9f14328ea28579c99612e752512b3ca3182e21a432c966331f2866f471"
},
"downloads": -1,
"filename": "docopt_sh-0.9.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8dd9536b640deee37c5a08f8b10f46ff",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 52569,
"upload_time": "2019-06-10T07:45:44",
"url": "https://files.pythonhosted.org/packages/81/cf/8021c96c313269e30b578974d298e4aaf04f7d1a3a3765c6a8d28f3e3e80/docopt_sh-0.9.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "cadf67d298dc57199acbd6395f06927d",
"sha256": "a370fccb6b6b1f14a6c6c7da370e7a263634a63cf7fbc8645fd73e0c0ba7b70b"
},
"downloads": -1,
"filename": "docopt-sh-0.9.5.tar.gz",
"has_sig": false,
"md5_digest": "cadf67d298dc57199acbd6395f06927d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 26223,
"upload_time": "2019-06-10T07:45:47",
"url": "https://files.pythonhosted.org/packages/ba/25/d27ef90d7e3917aaf04896b93aa4bdeaabdf3e4a35262df64e324264b7f1/docopt-sh-0.9.5.tar.gz"
}
],
"0.9.9": [
{
"comment_text": "",
"digests": {
"md5": "619b9030c0547ce4cb76f1baefc065c8",
"sha256": "67931353beb212ac500196fada7bed435d937bcd02493904067c1f52687ba54d"
},
"downloads": -1,
"filename": "docopt_sh-0.9.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "619b9030c0547ce4cb76f1baefc065c8",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 53970,
"upload_time": "2019-06-29T06:58:09",
"url": "https://files.pythonhosted.org/packages/b2/b6/0269960a0220cc1fb4f966071bd3b836685f6f5b8f49990291b55f9f3e89/docopt_sh-0.9.9-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5b1e45fd42d22a590f7e18858f4f3a80",
"sha256": "5e04fee8e4afc21c333ee6e2b9d64a9ffbfd1b15b1c12cb0aae6e4bcfff2f63b"
},
"downloads": -1,
"filename": "docopt-sh-0.9.9.tar.gz",
"has_sig": false,
"md5_digest": "5b1e45fd42d22a590f7e18858f4f3a80",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 27343,
"upload_time": "2019-06-29T06:58:13",
"url": "https://files.pythonhosted.org/packages/c8/12/f400cb374799266ffb3965e20f01dc7d3568940060e281c52b58f6477b10/docopt-sh-0.9.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "0d72d3b9c8605644e85c086fe32c3080",
"sha256": "ba7923fd0454cb8826ff14731a59c45556487aa09f83f70e0111dd33fbf51300"
},
"downloads": -1,
"filename": "docopt_sh-0.9.15-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0d72d3b9c8605644e85c086fe32c3080",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 55187,
"upload_time": "2019-09-02T17:29:30",
"url": "https://files.pythonhosted.org/packages/7c/13/1c9f05f79a7a57957bae26c1c76fcf88be42a82af5b8854545ed79b93c85/docopt_sh-0.9.15-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "d48748e092fc594b41b9dc0adc96c92c",
"sha256": "143e79c8b799812c829bd35434b85ce6e90e6eec7d9b2c06f36a00c476ec0ecc"
},
"downloads": -1,
"filename": "docopt-sh-0.9.15.tar.gz",
"has_sig": false,
"md5_digest": "d48748e092fc594b41b9dc0adc96c92c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 29467,
"upload_time": "2019-09-02T17:29:33",
"url": "https://files.pythonhosted.org/packages/b1/f6/980d0888ab39922c6ce08cd80f5a0ef485376f86dffbfb932ec6de8a5e38/docopt-sh-0.9.15.tar.gz"
}
]
}