{ "info": { "author": "frodo821 ", "author_email": "1234567890.sakai.jp@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Terminals", "Topic :: Utilities" ], "description": "Groom\n=====\n\nGroom, is an easy-to-use command-line application framework.\n\nThis module defines an even much easier way to make user-friendly command-line interfaces than any others else.\nOnce you define a function as the entry point of your application, Groom will automatically detect how to parse ``sys.argv`` and apply it to your application. \nGroom also generates help and usage messages and issue errors when users set invalid arguments to your application. \n\nintroduction\n------------\n\nHave you never wanted to create CLI tools with python more easily?\nGroom brings you an easier way to create CLI tools.\n\nHere is an example:\n\n.. code-block:: python\n\n import sys\n from groom import positional, optional, Dispatcher\n \n __version__ = '1.0'\n \n def calculate(\n num1: positional(float, \"former number\", required=True, var_name='N1'),\n num2: positional(float, \"latter number\", required=True, var_name='N2'),\n operator: optional(str, \"operator name\", short_name='op')='add'):\n if operator == 'add':\n print(num1 + num2)\n return\n if operator == 'sub':\n print(num1 - num2)\n return\n if operator == 'mul':\n print(num1 * num2)\n return\n if operator == 'div':\n print(num1 / num2)\n return\n print(\"unknown operator:\", operator, file=sys.stderr)\n \n if __name__ == '__main__':\n Dispatcher(\n calculate,\n \"calculate one of four arithmetic operations\"\n ).dispatch()\n\n...and then, you can call the program like this:\n\n.. code-block:: sh\n\n $ python calc.py 1 2 -op div\n\nOnce you call this program with ``-h`` or ``--help``, Groom displays the help messages:\n\n.. code-block:: sh\n\n $ python calc.py -h\n calc.py: 1.0\n \n calculate one of four arithmetic operations\n \n Usage:\n calc.py [-v | --version | -h | --help]\n calc.py \n [--operator | -op ]\n \n positional parameters:\n N1:\n former number\n type: float\n required: True\n N2:\n latter number\n type: float\n required: True\n \n parameters:\n --operator, -op:\n operator name\n type: str\n required: False\n multiple values: False\n default: add\n\nGroom can handle 6 primitive types such as str, int, float, complex and bool and list of those types.\nIf you specify another as a parameter type, Groom will throw TypeError.\n\nGroom is licensed under the MIT License, for further details see LICENSE.txt.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/frodo821/groom", "keywords": "", "license": "MIT", "maintainer": "frodo821 ", "maintainer_email": "1234567890.sakai.jp@gmail.com", "name": "groom", "package_url": "https://pypi.org/project/groom/", "platform": "", "project_url": "https://pypi.org/project/groom/", "project_urls": { "Homepage": "https://github.com/frodo821/groom" }, "release_url": "https://pypi.org/project/groom/0.1.0b1/", "requires_dist": null, "requires_python": "", "summary": "A easy-to-use command-line interface generator", "version": "0.1.0b1", "yanked": false, "yanked_reason": null }, "last_serial": 8127599, "releases": { "0.0.1a1": [ { "comment_text": "", "digests": { "md5": "1f739d184d083cf45e76b08f8d73baee", "sha256": "a8b6f4d1e4a3c050739c4527ef4b908158ec2ec8e2ba286a98e292e11b791e36" }, "downloads": -1, "filename": "groom-0.0.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "1f739d184d083cf45e76b08f8d73baee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6789, "upload_time": "2019-10-26T09:26:17", "upload_time_iso_8601": "2019-10-26T09:26:17.406872Z", "url": "https://files.pythonhosted.org/packages/81/c5/3ab9f8ba4de1457bb13ea5598cf76a037532db49f6b1b9e53061fd6a58d4/groom-0.0.1a1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "0ba0fbdb34f56c4676a7087751671ea9", "sha256": "d63a6e7924aba39d51d75728e826cf93331e32ffdd114567a395b0bc0f038b7c" }, "downloads": -1, "filename": "groom-0.0.1a1.tar.gz", "has_sig": false, "md5_digest": "0ba0fbdb34f56c4676a7087751671ea9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5071, "upload_time": "2019-10-26T09:26:19", "upload_time_iso_8601": "2019-10-26T09:26:19.913375Z", "url": "https://files.pythonhosted.org/packages/3d/5f/e13f24c2135b13fb534a354922c0ccf6ff246d3ea7915b4daf2e1fc262cb/groom-0.0.1a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.1a2": [ { "comment_text": "", "digests": { "md5": "3ffc0cd138bc99ea1e709fc773002e0a", "sha256": "37d372b8e5590756324ac87fc98ebcc070284aa89c9a95653727ac9fcf897e8b" }, "downloads": -1, "filename": "groom-0.0.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "3ffc0cd138bc99ea1e709fc773002e0a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6980, "upload_time": "2019-10-26T11:16:18", "upload_time_iso_8601": "2019-10-26T11:16:18.435795Z", "url": "https://files.pythonhosted.org/packages/c5/14/6a7b44af4157867525d39ca4363da29fb417082520590b8a5be70087cdde/groom-0.0.1a2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "f534c9783d05f99ad3adafd156913c9e", "sha256": "d57a412389cba84f45743d6815048da337ab2bb4bedc66e0ef171639445fda64" }, "downloads": -1, "filename": "groom-0.0.1a2.tar.gz", "has_sig": false, "md5_digest": "f534c9783d05f99ad3adafd156913c9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5248, "upload_time": "2019-10-26T11:16:20", "upload_time_iso_8601": "2019-10-26T11:16:20.048311Z", "url": "https://files.pythonhosted.org/packages/e2/f1/879d284711c57bf1a7f2bd52267dd834b111177835b0b49952ea0b01b332/groom-0.0.1a2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2a1": [ { "comment_text": "", "digests": { "md5": "aba3557a4baeb7671aa3a80aab7a5eec", "sha256": "dd7cc95d78f6a16d7cde00e7f905d7654004fbff135b976a1bfb6f292e739063" }, "downloads": -1, "filename": "groom-0.0.2a1-py3-none-any.whl", "has_sig": false, "md5_digest": "aba3557a4baeb7671aa3a80aab7a5eec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7033, "upload_time": "2019-10-26T11:28:24", "upload_time_iso_8601": "2019-10-26T11:28:24.973341Z", "url": "https://files.pythonhosted.org/packages/c0/6f/8f24562700104f65feecf7e6ee45d3ca855a2a9edeed3a1ff08353d58d3d/groom-0.0.2a1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6ba75205be3c462af75e175e8b897f07", "sha256": "40a712e04246b6b34b7840d8bb2e65bde9fe1d6da2e6852653e7c5a8b5130b44" }, "downloads": -1, "filename": "groom-0.0.2a1.tar.gz", "has_sig": false, "md5_digest": "6ba75205be3c462af75e175e8b897f07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5286, "upload_time": "2019-10-26T11:28:26", "upload_time_iso_8601": "2019-10-26T11:28:26.639025Z", "url": "https://files.pythonhosted.org/packages/cc/9c/8148896cdf31793e4029a5c6b3b0e65359acaff187d1188e9c30b99ad7d6/groom-0.0.2a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2a2": [ { "comment_text": "", "digests": { "md5": "367638562dec5536c0578bb3dd616db7", "sha256": "27884e6db61fee5fdc5691aac5f4216300ef8b17306d812c49b0c32530ac3c1e" }, "downloads": -1, "filename": "groom-0.0.2a2-py3-none-any.whl", "has_sig": false, "md5_digest": "367638562dec5536c0578bb3dd616db7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7060, "upload_time": "2019-10-27T03:34:18", "upload_time_iso_8601": "2019-10-27T03:34:18.001822Z", "url": "https://files.pythonhosted.org/packages/c3/9c/7380b55a7d497d1b88e76c8ace0bc2e712ccb9b95a18487741adcd157fa7/groom-0.0.2a2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "c5d28375bcb4229c8bdfeaa66fb31738", "sha256": "063d3e94bb48c032bc4df5485ffb5c19d7f0edd9e50f8face679083417b61726" }, "downloads": -1, "filename": "groom-0.0.2a2.tar.gz", "has_sig": false, "md5_digest": "c5d28375bcb4229c8bdfeaa66fb31738", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5320, "upload_time": "2019-10-27T03:34:19", "upload_time_iso_8601": "2019-10-27T03:34:19.704364Z", "url": "https://files.pythonhosted.org/packages/f0/68/42f6338e3b9727e3199c0e384841c8ca1e8923d58448c694291432703c58/groom-0.0.2a2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3a1": [ { "comment_text": "", "digests": { "md5": "3dad4b26a9cffa68d80a4e5d0dad01ad", "sha256": "69fe99937bb495fdcba5f8575b685309bda066a4b96b88a073a986e0bcf748e2" }, "downloads": -1, "filename": "groom-0.0.3a1-py3-none-any.whl", "has_sig": false, "md5_digest": "3dad4b26a9cffa68d80a4e5d0dad01ad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7702, "upload_time": "2019-10-27T05:02:44", "upload_time_iso_8601": "2019-10-27T05:02:44.105140Z", "url": "https://files.pythonhosted.org/packages/e0/7d/1e05390d7e01f62d4eafca7bb3cf21d6a9e7989774292176baa17c953ce2/groom-0.0.3a1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "374c2e7b120ebc1019819cdbf64fabfe", "sha256": "1ed0d705daed4a20ae5e6eced23a8a4ef45e8fc8e4ed1c445d69bd66ad981d1c" }, "downloads": -1, "filename": "groom-0.0.3a1.tar.gz", "has_sig": false, "md5_digest": "374c2e7b120ebc1019819cdbf64fabfe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5977, "upload_time": "2019-10-27T05:02:45", "upload_time_iso_8601": "2019-10-27T05:02:45.788302Z", "url": "https://files.pythonhosted.org/packages/36/16/4894798b3fbae4ca8ee9e613c5ad3ae096aa9b56fb9e5565561066c515f9/groom-0.0.3a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3a2": [ { "comment_text": "", "digests": { "md5": "1fdb6daec709fbdfeb2971d0f6ecea4f", "sha256": "6541aef99a9ecaf71081c7fe3231c9ccdca967b825214487957413b09f91c303" }, "downloads": -1, "filename": "groom-0.0.3a2-py3-none-any.whl", "has_sig": false, "md5_digest": "1fdb6daec709fbdfeb2971d0f6ecea4f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8764, "upload_time": "2019-11-10T10:38:53", "upload_time_iso_8601": "2019-11-10T10:38:53.759409Z", "url": "https://files.pythonhosted.org/packages/ff/66/bae6f88dbe3ed262ba76316bd8e5351df4e8902f211cbc43de685dcfc370/groom-0.0.3a2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5212762373dd1ea3e104dcb5173b0f1b", "sha256": "aaf0e27065720fb034ee25713f7846525d85cd809b8607e442e34f2852ac6b27" }, "downloads": -1, "filename": "groom-0.0.3a2.tar.gz", "has_sig": false, "md5_digest": "5212762373dd1ea3e104dcb5173b0f1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6679, "upload_time": "2019-11-10T10:38:55", "upload_time_iso_8601": "2019-11-10T10:38:55.536865Z", "url": "https://files.pythonhosted.org/packages/18/13/62c5520da33eeb8c07041fd30cf0c4ffa96bcbbbf1ce37d409b818f38483/groom-0.0.3a2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3a3": [ { "comment_text": "", "digests": { "md5": "929f69f027350c74732780339536c021", "sha256": "6ae800a52ed638d7e70450bbf9dbe4b364f816349d9d92ab1fd91c2ad7cd550f" }, "downloads": -1, "filename": "groom-0.0.3a3-py3-none-any.whl", "has_sig": false, "md5_digest": "929f69f027350c74732780339536c021", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8770, "upload_time": "2019-11-10T10:44:41", "upload_time_iso_8601": "2019-11-10T10:44:41.604115Z", "url": "https://files.pythonhosted.org/packages/fb/98/09400c3dbd31f757c91bb95aa6650675f7f503fda1a7312b8cf41ae4b2af/groom-0.0.3a3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "bee3196f3acfa0305f5c0c6aa655be76", "sha256": "09c1240b2b8204dce15ec86326bca4da30df7bcd8e1ef3f3878f8aad5c08f9d4" }, "downloads": -1, "filename": "groom-0.0.3a3.tar.gz", "has_sig": false, "md5_digest": "bee3196f3acfa0305f5c0c6aa655be76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6681, "upload_time": "2019-11-10T10:44:43", "upload_time_iso_8601": "2019-11-10T10:44:43.385229Z", "url": "https://files.pythonhosted.org/packages/6d/91/76d0ce0a49561db58edefd79e1df8e953fd8541b23b6a7f88aa692cd90a9/groom-0.0.3a3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4a1": [ { "comment_text": "", "digests": { "md5": "aa5d79fc01020e44309b6ab3ab228aa0", "sha256": "3dc91bc4904b6ef9925fb8e23102fe7a351a3534a0eb87ecde0d198d89b0abfc" }, "downloads": -1, "filename": "groom-0.0.4a1-py3-none-any.whl", "has_sig": false, "md5_digest": "aa5d79fc01020e44309b6ab3ab228aa0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8776, "upload_time": "2019-12-11T13:20:08", "upload_time_iso_8601": "2019-12-11T13:20:08.294559Z", "url": "https://files.pythonhosted.org/packages/34/e4/ac9ff83b9bcd51eb5e741915b416f618800119594ed113c450e1330a596a/groom-0.0.4a1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "497d824ce09f5cb05a6b1425431eb70b", "sha256": "021c2d36105327ed7b5e5cf591e52735e6d46fac20ccb6e25885af001c631503" }, "downloads": -1, "filename": "groom-0.0.4a1.tar.gz", "has_sig": false, "md5_digest": "497d824ce09f5cb05a6b1425431eb70b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6701, "upload_time": "2019-12-11T13:20:09", "upload_time_iso_8601": "2019-12-11T13:20:09.875846Z", "url": "https://files.pythonhosted.org/packages/a7/13/0b93a9924d8ddf57bd7e391d5de1b55a0cfaade3b80e08019b30c61f19d2/groom-0.0.4a1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.0b1": [ { "comment_text": "", "digests": { "md5": "8970c54ea012d6b45c84f7af93d348c4", "sha256": "48ec6a2b0618290509179565f9856c6faf54c592a3414b185d34e718d11f2b73" }, "downloads": -1, "filename": "groom-0.1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "8970c54ea012d6b45c84f7af93d348c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8196, "upload_time": "2020-09-07T05:15:15", "upload_time_iso_8601": "2020-09-07T05:15:15.673298Z", "url": "https://files.pythonhosted.org/packages/4a/f0/d727c8a987e9e05dd74021afcfdad7970bed0fb964fe85261538a98c47d7/groom-0.1.0b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3dbc3bde3d89ebf3f1d48cab4da4f157", "sha256": "c5e688c00f75d7720a0431d92bbe30e9840b08f1cdaa871aa02d67857331be1c" }, "downloads": -1, "filename": "groom-0.1.0b1.tar.gz", "has_sig": false, "md5_digest": "3dbc3bde3d89ebf3f1d48cab4da4f157", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8388, "upload_time": "2020-09-07T05:14:53", "upload_time_iso_8601": "2020-09-07T05:14:53.758601Z", "url": "https://files.pythonhosted.org/packages/17/12/57597aae6537c3288d82d623572c4999261314e328b7cbde3bc676119877/groom-0.1.0b1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8970c54ea012d6b45c84f7af93d348c4", "sha256": "48ec6a2b0618290509179565f9856c6faf54c592a3414b185d34e718d11f2b73" }, "downloads": -1, "filename": "groom-0.1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "8970c54ea012d6b45c84f7af93d348c4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8196, "upload_time": "2020-09-07T05:15:15", "upload_time_iso_8601": "2020-09-07T05:15:15.673298Z", "url": "https://files.pythonhosted.org/packages/4a/f0/d727c8a987e9e05dd74021afcfdad7970bed0fb964fe85261538a98c47d7/groom-0.1.0b1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3dbc3bde3d89ebf3f1d48cab4da4f157", "sha256": "c5e688c00f75d7720a0431d92bbe30e9840b08f1cdaa871aa02d67857331be1c" }, "downloads": -1, "filename": "groom-0.1.0b1.tar.gz", "has_sig": false, "md5_digest": "3dbc3bde3d89ebf3f1d48cab4da4f157", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8388, "upload_time": "2020-09-07T05:14:53", "upload_time_iso_8601": "2020-09-07T05:14:53.758601Z", "url": "https://files.pythonhosted.org/packages/17/12/57597aae6537c3288d82d623572c4999261314e328b7cbde3bc676119877/groom-0.1.0b1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }