{ "info": { "author": "ClericPy", "author_email": "clericpy@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "# [Ask4args](https://github.com/ClericPy/ask4args)\n\nAsk for function args by Terminal UI / GUI, ensuring the type annotation. Inspired by [python-fire](https://github.com/google/python-fire), and it maybe need a human-friendly interactive UI.\n\n### Install\n\n> pip install ask4args -U\n\n### Simple Usage\n\n> python3 -m ask4args module:function\n\n#### Terminal UI\n\n![demo.gif](demo.gif)\n\n#### GUI\n\n![demo2.png](demo2.png)\n\n### More Usage Examples\n\n```python\nfrom ask4args.core import Ask4Args, Ask4ArgsGUI, Ask4ArgsWeb\nfrom typing import List, Dict\n\n\ndef test_normal_function(a: int, b: int = 2, **args_dict: Dict[str, int]):\n # first a value=1, args_dict['c']=3, others use default.\n # press 1, enter, enter, enter, c, enter, 3, enter, enter\n assert a == 1\n assert b == 2\n assert args_dict['c'] == 3\n return ('success', vars())\n\n\ndef test_keyword_only_function(a: float,\n b: int = 2,\n *,\n c: bool = False,\n d: str = 'string',\n e: int = None,\n f: List[int] = None,\n **args_dict: Dict[str, int]):\n \"\"\"Read the doc, and test kw-only args.\n\n :param a: one float num\n :type a: float\n :param b: one int num, defaults to 4\n :type b: int, optional\n :param c: boolen arg, defaults to False\n :type c: bool, optional\n :param d: string arg, defaults to 'string'\n :type d: str, optional\n :return: return the args_dict\n :rtype: Dict[str, list]\n \"\"\"\n assert a == 1.1\n assert b == 2\n assert c is False\n assert d == 'string'\n assert e == 1\n assert f == [1, 2, 3]\n assert args_dict['h'] == 3\n return ('success', vars())\n\n\nclass TestClass(object):\n\n def test_method(self, a: str, b: int = 1):\n assert a == ''\n assert b == 1\n return ('success', vars())\n\n @classmethod\n def test_class_method(cls, a: str, b: int = 1):\n assert a == ''\n assert b == 1\n return ('success', vars())\n\n\ndef test_defaults(a: int):\n assert a == 1\n return ('success', vars())\n\n\nif __name__ == \"__main__\":\n # cls = Ask4ArgsWeb\n cls = Ask4Args\n # cls = Ask4ArgsGUI\n # =====================\n # =====================\n # ('success', {'a': 1, 'b': 2, 'args_dict': {'c': 3}})\n # cls(test_normal_function).run()\n # =====================\n # ('success', {'a': 1.1, 'b': 2, 'c': False, 'd': 'string', 'e': 1, 'f': [1, 2, 3], 'args_dict': {'h': 3}})\n # cls(test_keyword_only_function,\n # choices={\n # 'e': [1, 2, 3, 4, 5]\n # },\n # checkboxes={\n # 'f': [1, 2, 3, 4, 5]\n # }).run()\n # =====================\n # cls(TestClass().test_method).run()\n # =====================\n # cls(TestClass().test_class_method).run()\n # =====================\n # cls(test_defaults, defaults={'a': 1}).run()\n pass\n\n```\n\n### TODO\n\n- [x] Terminal UI\n- [x] GUI\n- [ ] ~~Web UI~~ (no need to do)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ClericPy/ask4args", "keywords": "fire,REPL,Terminal UI", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "ask4args", "package_url": "https://pypi.org/project/ask4args/", "platform": "any", "project_url": "https://pypi.org/project/ask4args/", "project_urls": { "Homepage": "https://github.com/ClericPy/ask4args" }, "release_url": "https://pypi.org/project/ask4args/0.3.0/", "requires_dist": [ "PyInquirer", "pysimplegui", "pydantic" ], "requires_python": "", "summary": "Python-Fire-like, ask for function args by Terminal UI / GUI, ensuring the type annotation. Read more: https://github.com/ClericPy/ask4args.", "version": "0.3.0" }, "last_serial": 5966746, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "61e33809e70c5b89a49c9d822722fb95", "sha256": "659fc7222796c94d30539d731417cb246fecabe0a60d28c6df4cc741bccf96e3" }, "downloads": -1, "filename": "ask4args-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "61e33809e70c5b89a49c9d822722fb95", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7885, "upload_time": "2019-10-06T10:56:09", "url": "https://files.pythonhosted.org/packages/87/7d/2d8ddf7b06b6bbc243beb9f42116eebc20fbd27615890d4ececceb7f76de/ask4args-0.0.1-py3-none-any.whl" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "34d707329e50fc6c19c084372f8bb65c", "sha256": "fe613faf268cf557780631739837cd3b63f0ac5027b593d83c0680666f67b7cc" }, "downloads": -1, "filename": "ask4args-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "34d707329e50fc6c19c084372f8bb65c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7922, "upload_time": "2019-10-06T11:03:13", "url": "https://files.pythonhosted.org/packages/b9/e2/d4c3a090d0bcfcf8db245eaeaac5caa6a72ec6e69332c23d8ceec7e70770/ask4args-0.0.2-py3-none-any.whl" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "817d699846bcf4e6f672b8fc634e1821", "sha256": "ff6b0f7d68ab8909331101b9fbc938c4c0353fee5b4f0134bbdb135cf6274895" }, "downloads": -1, "filename": "ask4args-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "817d699846bcf4e6f672b8fc634e1821", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7936, "upload_time": "2019-10-07T06:06:34", "url": "https://files.pythonhosted.org/packages/64/c5/bdee82d36f74de123e6219a85661a1c2f50304ab4d984702089e5cba1c94/ask4args-0.0.3-py3-none-any.whl" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "f2653661bac65b768aed47870ddfea36", "sha256": "c64653ac92c0f80751f31f41db1d729ff8c05c9ae93621ccad1a7026256a56d4" }, "downloads": -1, "filename": "ask4args-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f2653661bac65b768aed47870ddfea36", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7758, "upload_time": "2019-10-07T09:55:21", "url": "https://files.pythonhosted.org/packages/a9/9e/a7a75bf3c0534abd4423fb8d2f28c51f09cc1121c6f8a3ce393415289cf0/ask4args-0.1.0-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "b168f2e12135c83616d42515a30790c9", "sha256": "2d255dd199be948c0b90817ba71e21b82b4eab2244f3c4c751b90623e9a6cb56" }, "downloads": -1, "filename": "ask4args-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b168f2e12135c83616d42515a30790c9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7694, "upload_time": "2019-10-12T07:37:00", "url": "https://files.pythonhosted.org/packages/f2/f5/1793571b28ee30b9912d19c21f851be73da67298cfcf1110495bb2360641/ask4args-0.2.0-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "7c543a730fa9a045bbd1b91e0aafbb0b", "sha256": "09c3fa4a9d2160fe0a71e4c5484815e73e5c26f27284819ee277d8c17000e495" }, "downloads": -1, "filename": "ask4args-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7c543a730fa9a045bbd1b91e0aafbb0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8185, "upload_time": "2019-10-12T11:50:33", "url": "https://files.pythonhosted.org/packages/2f/7e/feb77353e9b12c35edd5c83d4096cf2733834d1492d90df9b4749b17d168/ask4args-0.2.1-py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "8d614074daf37994c94b8ee50ed41c92", "sha256": "9f07ddaaf7776533441d002afae462cf5327ae3801b3653d85c8f62711883636" }, "downloads": -1, "filename": "ask4args-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8d614074daf37994c94b8ee50ed41c92", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8207, "upload_time": "2019-10-12T11:57:41", "url": "https://files.pythonhosted.org/packages/e9/55/2f260773cca64f66e79be086026dc6a260492d1ddfab76c0c732f526984a/ask4args-0.2.2-py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "0a87e8815952cb2916f3fff6736e75dc", "sha256": "b2d0c4be2834bca7f227abc102b5721f38893b176f087ddbf77b4a41385ee50a" }, "downloads": -1, "filename": "ask4args-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0a87e8815952cb2916f3fff6736e75dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8271, "upload_time": "2019-10-13T08:25:22", "url": "https://files.pythonhosted.org/packages/d3/9c/9acc0222cad78ea47e8b218753fe4b79df3797b31b84b8e62321d7a9231c/ask4args-0.3.0-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0a87e8815952cb2916f3fff6736e75dc", "sha256": "b2d0c4be2834bca7f227abc102b5721f38893b176f087ddbf77b4a41385ee50a" }, "downloads": -1, "filename": "ask4args-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0a87e8815952cb2916f3fff6736e75dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8271, "upload_time": "2019-10-13T08:25:22", "url": "https://files.pythonhosted.org/packages/d3/9c/9acc0222cad78ea47e8b218753fe4b79df3797b31b84b8e62321d7a9231c/ask4args-0.3.0-py3-none-any.whl" } ] }