{ "info": { "author": "Jeremie Bigras-Dunberry", "author_email": "Bigjerbd@gmail.com", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "pydarg\n======\n\nPydarg is a python simple utility package providing a way to handle\nmore deeply dictionary parameters of implemented function\n\n\nREQUIREMENT\n===========\n\nRequire python 3.6+\n\nINSTALLATION\n============\n\nRun this command line to fetch the package on Pypi\n\n``` shell\n$ pip install pydarg\n```\n\nUSAGE\n============\n\nThis package provide a method \"dct_arg\" used as a decorator\n\n### Basic Usage\n\nwithout any parameter, dct_arg unpacks the dictionary\nargument of function signature\n\n``` python\n\n@dct_arg\ndef example(foo,bar):\n print(foo,bar)\n\nparam = {'foo':'1,'bar':'2','other':3}\nexample(param)\n```\n\nthe main advantage of using dct_arg instead of **param\nis that it avoid binding extra argument, making it really useful for\nhandling configuration dictionary having multiple of parameter.\n\nthose functions call would also be valid\n\n``` python\nexample(foo='foo',bar='bar')\nexample({'foo':'foo_1'},bar='bar)\nexample({},'foo','bar')\n```\n\nIt is also possible to override dct_arg's name by using keyword argument.\nmaking this line printing \"foo_2\" and \"bar_2\"\n\n``` python\nexample({'foo':'foo_1','bar:'bar_1},'foo_2,bar='bar_2)\n```\n\n\n### parameters\n\n```python\ndct_arg(\n _fct=None, *,\n is_positional=True,\n is_keyword=True,\n name='dct_arg',\n path=\"\",\n fetch_args=None\n ):\n```\n\nWhere :\n- arg_type:\n\n define what is the type of the dct_arg\n\n - ArgType.POSITIONAL\n - ArgType.KEY_WORD\n - ArgType.BOTH,\n\n- name\n\n represent the keyword name of the dct_arg\n\n- path\n\n if the desired dct_arg is nested you you can specify the path\n with \"/\"\n\n- fetch_args\n\n dictionary composed of key representing keyword parameter, and\n the path with \"/\" to fetch them in the dct_arg\n\n\n### Examples\n\n**fetch the nested dictionary argument named config**\n\n```python\n@dct_arg(name='config,path='child/subchild')\ndef example(e0, e1):\n print(e1, e0)\n\n\nexample(config={'child': {'subchild': {'e1': 1, 'e0': 0}}})\nexample({'child': {'subchild': {'e1': 1}}}, e0=0)\n```\n\nsince by default a dct_arg is a positional keyword\nboth function call works\n\n**fetch the dct_arg itself as an argument**\n\n```python\n@dct_arg(fetch_args={'config': \"\"})\ndef example(config, e0):\n pass\n\nexample(configuration={'e0': 0})\n```\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/BigJerBD/pydarg", "keywords": "python,dictionary,decorator,configuration,utils", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "pydarg", "package_url": "https://pypi.org/project/pydarg/", "platform": "POSIX", "project_url": "https://pypi.org/project/pydarg/", "project_urls": { "Homepage": "https://github.com/BigJerBD/pydarg" }, "release_url": "https://pypi.org/project/pydarg/0.1/", "requires_dist": null, "requires_python": "", "summary": "Pure Python decorator for more complex dictionary handling", "version": "0.1" }, "last_serial": 4040788, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "35babcf75a7ff442562fdfbecea1077a", "sha256": "984a951f5cd0590805d63d5233b7c54b72ab86febc3966542a3957e36d08cf10" }, "downloads": -1, "filename": "pydarg-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "35babcf75a7ff442562fdfbecea1077a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4476, "upload_time": "2018-07-08T14:36:08", "url": "https://files.pythonhosted.org/packages/48/56/40338449fd4f6486b050e7b5b05beec9fa526511046455f5527fb976ac05/pydarg-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d0c8a774efb98b0e3442fd55c8dac0a", "sha256": "112304fa5b8a189492b762b17ec42a4f22bffe47209dc6b3fce51101314491fd" }, "downloads": -1, "filename": "pydarg-0.1.tar.gz", "has_sig": false, "md5_digest": "0d0c8a774efb98b0e3442fd55c8dac0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4048, "upload_time": "2018-07-08T14:36:09", "url": "https://files.pythonhosted.org/packages/f6/65/d5ec339e68cbbbf5443a59d3e9ade6c262a0dc1185a30a963783e3c770e2/pydarg-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "35babcf75a7ff442562fdfbecea1077a", "sha256": "984a951f5cd0590805d63d5233b7c54b72ab86febc3966542a3957e36d08cf10" }, "downloads": -1, "filename": "pydarg-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "35babcf75a7ff442562fdfbecea1077a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4476, "upload_time": "2018-07-08T14:36:08", "url": "https://files.pythonhosted.org/packages/48/56/40338449fd4f6486b050e7b5b05beec9fa526511046455f5527fb976ac05/pydarg-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d0c8a774efb98b0e3442fd55c8dac0a", "sha256": "112304fa5b8a189492b762b17ec42a4f22bffe47209dc6b3fce51101314491fd" }, "downloads": -1, "filename": "pydarg-0.1.tar.gz", "has_sig": false, "md5_digest": "0d0c8a774efb98b0e3442fd55c8dac0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4048, "upload_time": "2018-07-08T14:36:09", "url": "https://files.pythonhosted.org/packages/f6/65/d5ec339e68cbbbf5443a59d3e9ade6c262a0dc1185a30a963783e3c770e2/pydarg-0.1.tar.gz" } ] }