{ "info": { "author": "Romain Moreau", "author_email": "moreau.romain83@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Programming Language :: Python :: 3" ], "description": "# Chuda #\n![PyPI](https://img.shields.io/pypi/v/chuda.svg)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/chuda.svg)\n![GitHub](https://img.shields.io/github/license/Varkal/chuda.svg)\n[![Documentation Status](https://readthedocs.org/projects/chuda/badge/?version=latest)](https://chuda.readthedocs.io/en/latest/?badge=latest)\n[![codecov](https://codecov.io/gh/Varkal/chuda/branch/master/graph/badge.svg)](https://codecov.io/gh/Varkal/chuda)\n[![CircleCI](https://circleci.com/gh/Varkal/chuda.svg?style=svg)](https://circleci.com/gh/Varkal/chuda)\n\n\n**Chuda** is a very simple Python3 framework to create CLI (Command-Line-Interface) tools.\n\nIt will handle for you some basic stuff: parse configuration file, logging, argument parsing, signal handling etc...\n\n## Features ##\n\n* Represent commands and argparse arguments by Python classes\n* Handle parsing of a configuration file for you (INI, JSON, or YAML with [pyyaml](https://github.com/yaml/pyyaml))\n* Provide you a configurable logger, and some basic options to quiet/verbose mode\n* Signals handling by decorator\n\n## Documentation ##\n\nThe documentation is accessible [here](http://chuda.readthedocs.io)\n\n## Example ##\n\n```python\n\nimport sys\nimport signal\nfrom chuda import App, autorun, Command signal_handler, Option\n\n\nclass FooSubcommand(Command):\n command_name = \"foo\"\n description = \"a foo subcommand\"\n\n def main(self):\n self.logger.info(\"foo\")\n self.app.subcommands[\"bar\"].run()\n\n\nclass BarSubcommand(Command):\n command_name = \"bar\"\n description = \"the ultimate bar subcommand\"\n\n arguments = [\n Option(name=[\"--path\"], default=\"~\")\n ]\n\n def main(self):\n process = self.shell.run(\n \"ls\", cwd=self.arguments.path\n )\n self.logger.info(process.output)\n\n\n@autorun()\nclass FooBarApp(App):\n app_name = \"foobar\"\n description = \"Foobar application\"\n\n config_path = [\"./config.ini\", \"../config.ini\"]\n\n subcommands = [FooSubcommand, BarSubcommand]\n\n @signal_handler(signal.SIGINT)\n def handle_ctrl_c(self, signum, frame):\n self.logger.info(\"Stopping...\")\n sys.exit(2)\n\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/Varkal/chuda/archive/0.1.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Varkal/chuda", "keywords": "cli,chuda", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "chuda", "package_url": "https://pypi.org/project/chuda/", "platform": "", "project_url": "https://pypi.org/project/chuda/", "project_urls": { "Download": "https://github.com/Varkal/chuda/archive/0.1.1.tar.gz", "Homepage": "https://github.com/Varkal/chuda" }, "release_url": "https://pypi.org/project/chuda/0.1.1/", "requires_dist": null, "requires_python": "", "summary": "A simple framework to create CLI tools", "version": "0.1.1" }, "last_serial": 5638289, "releases": { "0.0.11": [ { "comment_text": "", "digests": { "md5": "9cc67dd9c962ea5132a01ced5e13525f", "sha256": "c5d04b2f3dde6be445078e93788e97aa81ee64022ce160ea38eca4c4c9074333" }, "downloads": -1, "filename": "chuda-0.0.11.tar.gz", "has_sig": false, "md5_digest": "9cc67dd9c962ea5132a01ced5e13525f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5901, "upload_time": "2018-05-11T14:06:32", "url": "https://files.pythonhosted.org/packages/a1/42/d8f01790a913ed9de4dff12cb0a7c148f9a7e04dd355f75ad7b8e557100d/chuda-0.0.11.tar.gz" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "8ffe9a19552aab2e768075967efeac6f", "sha256": "7d4921ba4160ae7cd2b7c7d964294779b285860be6b10f038fe69c6c6acaba4e" }, "downloads": -1, "filename": "chuda-0.0.12.tar.gz", "has_sig": false, "md5_digest": "8ffe9a19552aab2e768075967efeac6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5901, "upload_time": "2018-05-11T14:39:47", "url": "https://files.pythonhosted.org/packages/fb/42/8273b194907f820ff4234f52ba2eeba03b1b5dd40d66638f08dab08a59e6/chuda-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "43515245403794f682a262773e1e4c0d", "sha256": "404eecbdf28c6a75a93ea293b0fa46538732b42f59120d02b961d191994d57d8" }, "downloads": -1, "filename": "chuda-0.0.13.tar.gz", "has_sig": false, "md5_digest": "43515245403794f682a262773e1e4c0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5934, "upload_time": "2018-05-18T09:04:58", "url": "https://files.pythonhosted.org/packages/b3/05/fc49c3926d2c1b9e11f11173c7f47b8d595d15a2b9a7b3b91eb6d194416a/chuda-0.0.13.tar.gz" } ], "0.0.14": [ { "comment_text": "", "digests": { "md5": "40b1a52429b9d60c98094f56f9a83f6d", "sha256": "1fc11c27bc41d0eeb94a634ac5b7d414e729e3e8352db6fd2dca66a8cc726b74" }, "downloads": -1, "filename": "chuda-0.0.14.tar.gz", "has_sig": false, "md5_digest": "40b1a52429b9d60c98094f56f9a83f6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7710, "upload_time": "2018-05-21T10:02:03", "url": "https://files.pythonhosted.org/packages/1a/1e/b55a967da1e1243f987556db2587d8cbe638278cc8904a020efa21137dc7/chuda-0.0.14.tar.gz" } ], "0.0.15": [ { "comment_text": "", "digests": { "md5": "2893e1b317aa142f3af942d20c5eb6ea", "sha256": "ae5cdf2f4113bd0cbca1ab4f9edb291e934dbeaf28e94676ae2bbf86bf831d4b" }, "downloads": -1, "filename": "chuda-0.0.15.tar.gz", "has_sig": false, "md5_digest": "2893e1b317aa142f3af942d20c5eb6ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7740, "upload_time": "2018-05-22T15:31:59", "url": "https://files.pythonhosted.org/packages/67/7c/92da1e3d83f5a96c5bbed0ce40cf8305ef10e9de24f3043da0c7df1a47e5/chuda-0.0.15.tar.gz" } ], "0.0.17": [ { "comment_text": "", "digests": { "md5": "09065c53884147e34626cca598e675f4", "sha256": "8d750f5a8ff66205ec1a107bc40c4e3275fbec380bb4b0c8ee93096b94e81125" }, "downloads": -1, "filename": "chuda-0.0.17.tar.gz", "has_sig": false, "md5_digest": "09065c53884147e34626cca598e675f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7863, "upload_time": "2018-05-30T08:49:33", "url": "https://files.pythonhosted.org/packages/bc/76/9a94671dfe1cbcc568e2b3a17e6b6246020b340e8d600580d96f2e048a2f/chuda-0.0.17.tar.gz" } ], "0.0.18": [ { "comment_text": "", "digests": { "md5": "bab86549e6ec0825e73a833714a451e5", "sha256": "3fbeab3b63b2c3d688613e1842eecb4f8918ea0d670fcbbca5b829f536cf9859" }, "downloads": -1, "filename": "chuda-0.0.18.tar.gz", "has_sig": false, "md5_digest": "bab86549e6ec0825e73a833714a451e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7892, "upload_time": "2018-05-31T08:54:27", "url": "https://files.pythonhosted.org/packages/e1/13/37c4fa63d2b68ae052666f01a27dded3110cdabe12bd2cefc5caacb75ca4/chuda-0.0.18.tar.gz" } ], "0.0.19": [ { "comment_text": "", "digests": { "md5": "5309b732f2c423284db9beb5b4825113", "sha256": "9e920946fba85fb4b76d2c6d3d14485ace4c037a77f70e233ad8f9040b3fbb5c" }, "downloads": -1, "filename": "chuda-0.0.19.tar.gz", "has_sig": false, "md5_digest": "5309b732f2c423284db9beb5b4825113", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7935, "upload_time": "2018-06-06T09:32:52", "url": "https://files.pythonhosted.org/packages/bc/08/b0a4f9a77a46d217310e3a65ce212408b40174a0aafa5b2fc2b71923b316/chuda-0.0.19.tar.gz" } ], "0.0.20": [ { "comment_text": "", "digests": { "md5": "454ce6220c300267d7016b7e994bf334", "sha256": "15b290af294ff5e554dc429c75256691ba0ae435c7693fec5a8c89331d02197a" }, "downloads": -1, "filename": "chuda-0.0.20.tar.gz", "has_sig": false, "md5_digest": "454ce6220c300267d7016b7e994bf334", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7977, "upload_time": "2018-06-07T12:59:14", "url": "https://files.pythonhosted.org/packages/f5/01/8dbd5740548787b9718b8bc104c05963d031c54a62b93e7be519682516c7/chuda-0.0.20.tar.gz" } ], "0.0.21": [ { "comment_text": "", "digests": { "md5": "5478cb44e3e1c193174b9aaa40741311", "sha256": "5264ac279760781cb8a56aa12a22672463fcba5d93dbbacc76ccb9bf6b6f4370" }, "downloads": -1, "filename": "chuda-0.0.21.tar.gz", "has_sig": false, "md5_digest": "5478cb44e3e1c193174b9aaa40741311", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8212, "upload_time": "2018-06-13T12:18:52", "url": "https://files.pythonhosted.org/packages/2f/5c/c0d0acc3587b0caeb5e6e5f5d072a58e4677a7350f6795e520b89ae639d3/chuda-0.0.21.tar.gz" } ], "0.0.22": [ { "comment_text": "", "digests": { "md5": "1ee98d2a44a0d09423fe48bf7a6eb848", "sha256": "adf5ffb16ee11a9834590e06b86d23c9a2cb70ef9636186ad1b1f2e84f0264cc" }, "downloads": -1, "filename": "chuda-0.0.22.tar.gz", "has_sig": false, "md5_digest": "1ee98d2a44a0d09423fe48bf7a6eb848", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11830, "upload_time": "2018-11-09T17:22:50", "url": "https://files.pythonhosted.org/packages/02/0d/fcf678c33216f3a548f4a8b5399e0408fd950b6f52664c3bc8d23fc93856/chuda-0.0.22.tar.gz" } ], "0.0.23": [ { "comment_text": "", "digests": { "md5": "8527c773fb113f3ccb22fc6aa93178a7", "sha256": "68fc55f066ad9a64d5dfe570354faa552e76cca94aa595e0795bb31b36bc22f6" }, "downloads": -1, "filename": "chuda-0.0.23.tar.gz", "has_sig": false, "md5_digest": "8527c773fb113f3ccb22fc6aa93178a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11970, "upload_time": "2019-05-23T09:10:15", "url": "https://files.pythonhosted.org/packages/6e/ca/b31e8b03f4469ade229c4d7038504214c57f724c38c1be1d059821708445/chuda-0.0.23.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "b7e972198d9222e7e610ab0aa4490ef4", "sha256": "75e9c15cde426af15add621f846b03501f5cf85bc30eab3839eb0d72f7b0341d" }, "downloads": -1, "filename": "chuda-0.0.7.tar.gz", "has_sig": false, "md5_digest": "b7e972198d9222e7e610ab0aa4490ef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5882, "upload_time": "2018-05-11T13:45:26", "url": "https://files.pythonhosted.org/packages/0a/c3/ee4acbf2b8b819897e6eff1d7d9c5e5ee1a543b46accf57d8d1854ac2dcd/chuda-0.0.7.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "c143cd1b5727f658d5d33da6ebffbef4", "sha256": "471f2dfb47d7a59dac89bb4a994d1d7d9d0edb883c8e8cc20dff1ea9c139b9f4" }, "downloads": -1, "filename": "chuda-0.1.0.tar.gz", "has_sig": false, "md5_digest": "c143cd1b5727f658d5d33da6ebffbef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11896, "upload_time": "2019-08-06T08:08:18", "url": "https://files.pythonhosted.org/packages/49/34/d7598879868c7cf34ea863a2a9986ff174c155dac7f6733328e76591b37b/chuda-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "8372d85320d2ea8522444bc2195bdfcf", "sha256": "3064aaa4e01a5a9b132c8d3665458e4b8cca4a659a846019e47c58e65b3c364d" }, "downloads": -1, "filename": "chuda-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8372d85320d2ea8522444bc2195bdfcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11901, "upload_time": "2019-08-06T08:20:59", "url": "https://files.pythonhosted.org/packages/14/eb/117ffe70d9c4071647ab3c13aedeb3e5eea56c83c89998b162a700e71dec/chuda-0.1.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8372d85320d2ea8522444bc2195bdfcf", "sha256": "3064aaa4e01a5a9b132c8d3665458e4b8cca4a659a846019e47c58e65b3c364d" }, "downloads": -1, "filename": "chuda-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8372d85320d2ea8522444bc2195bdfcf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11901, "upload_time": "2019-08-06T08:20:59", "url": "https://files.pythonhosted.org/packages/14/eb/117ffe70d9c4071647ab3c13aedeb3e5eea56c83c89998b162a700e71dec/chuda-0.1.1.tar.gz" } ] }