{ "info": { "author": "Peter Zagubisalo", "author_email": "peter.zagubisalo@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# litereval\n\n`litereval` is wrapper around `ast.literal_eval` with new additional `{foo='bar', key=None}` `dict` syntax.\nPlus some helper tools to deep merge dictionaries, parse `ast.literal_eval` python data to `*args` and `**kwargs`.\n\nCan be used to create wrapper command line interfaces. See [pyppdf](https://github.com/kiwi0fruit/pyppdf).\n\n\n# Install\n\nNeeds python 3.6+\n\n```bash\nconda install -c defaults -c conda-forge litereval\n```\n\nor\n\n```bash\npip install litereval\n```\n\n\n# API\n\n### litereval\n\n```py\ndef litereval(string: str):\n \"\"\"\n Small extension of ``ast.literal_eval`` that also\n accepts dict in a form of ``{key=100, foo='bar'}``\n\n Returns\n -------\n ret :\n ast.literal_eval(preprocess(string))\n \"\"\"\n```\n\n### merge\n\n```py\ndef merge(source: dict, destination: dict,\n copy: bool = False) -> dict:\n \"\"\"\n Deep merge two dictionaries.\n Overwrites in case of conflicts.\n From https://stackoverflow.com/a/20666342\n \"\"\"\n```\n\n### args_kwargs\n\n```py\ndef args_kwargs(args: Any) -> Tuple[\n Union[tuple, None], Union[dict, None]\n]:\n \"\"\"\n Parses ``args`` object to ``(*args, **kwargs)`` tuple.\n Special case when ``args`` is ``None``: returns ``(None, None)``.\n Otherwise tries to put not iterable object to tuple:\n ``args`` to ``(args,)``. Examples:\n\n * ``(1, 2)`` to ``(1, 2), {}``\n * ``\"foo\"`` to ``(\"foo\",), {}``\n * ``{(): ('a', 0), 'foo': None} to\n ``('a', 0), {'foo': None}``\n\n Returns\n -------\n ret :\n tuple: *args, **kwargs\n \"\"\"\n```\n\n### get_args\n\n```py\ndef get_args(name: str, args, default=None) -> Args:\n \"\"\"\n Gets ``*args`` and ``**kwargs`` for a ``name`` function\n from an ``args`` dict. Wrapper around ``args_kwargs`` function.\n\n Returns ``NamedTuple`` ``Args``: ``(args: tuple, kwargs: dict)``\n \"\"\"\n```\n\n### get\n\n```py\ndef get(key: str, dic, default=None):\n \"\"\"Gets key even from not a dictionary.\"\"\"\n```\n\n### tuple\\_\n\n```py\ndef tuple_(obj: Any) -> tuple:\n \"\"\"Converts any object to tuple. ``string`` to ``(string,)``.\"\"\"\n```\n\n### validated\n\n```py\ndef validated(args: tuple, kwargs: dict) -> Tuple[tuple, dict]:\n \"\"\"Validates inputs and returns ``*args, **kwargs``.\"\"\"\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/kiwi0fruit/litereval", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "litereval", "package_url": "https://pypi.org/project/litereval/", "platform": "", "project_url": "https://pypi.org/project/litereval/", "project_urls": { "Homepage": "https://github.com/kiwi0fruit/litereval" }, "release_url": "https://pypi.org/project/litereval/0.0.11/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Wrapper around ast.literal_eval with new {foo='bar', key=None} dict syntax.", "version": "0.0.11" }, "last_serial": 4722646, "releases": { "0.0.10": [ { "comment_text": "", "digests": { "md5": "c11d6e1186a94b75c09462e32d476ce1", "sha256": "56bf1a14c234d96ee80c0318e1c2aeb0a31cf162af92b139ec79fe6c0573a9f0" }, "downloads": -1, "filename": "litereval-0.0.10.tar.gz", "has_sig": false, "md5_digest": "c11d6e1186a94b75c09462e32d476ce1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20776, "upload_time": "2019-01-21T17:09:20", "url": "https://files.pythonhosted.org/packages/43/df/ef18ac39ad6c3dbeae7a45889ae08857093d76584d6b3168819bf342d74b/litereval-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "085e94db92577346b1b722591e85c35f", "sha256": "d2df538916be7aca13c2ebe6afa98ce7b0bbd683b28425189bfa1f24582f512d" }, "downloads": -1, "filename": "litereval-0.0.11.tar.gz", "has_sig": false, "md5_digest": "085e94db92577346b1b722591e85c35f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20781, "upload_time": "2019-01-21T18:03:42", "url": "https://files.pythonhosted.org/packages/ee/46/e4f867cdf72dfec08ae0c854ae163bf6643161120be27d7797f24015e24c/litereval-0.0.11.tar.gz" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "f47f9ad3c90a015507f425d8a0396fa2", "sha256": "55e01106cbe2917d7950087d4dc1d9eb23f9f65eff87e7bf80cfcaab8287b70c" }, "downloads": -1, "filename": "litereval-0.0.6.tar.gz", "has_sig": false, "md5_digest": "f47f9ad3c90a015507f425d8a0396fa2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20133, "upload_time": "2019-01-19T08:23:23", "url": "https://files.pythonhosted.org/packages/30/c3/f523d04b1b3aa881295a958691ae43134bc51ddd5446f2cd2dc0739fe49f/litereval-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "c532302e4d1d246146bf0853af541b18", "sha256": "6ab900b532b9651b23780301a23e6e330c14076208b0c56300e09cc573a3546d" }, "downloads": -1, "filename": "litereval-0.0.7.tar.gz", "has_sig": false, "md5_digest": "c532302e4d1d246146bf0853af541b18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20725, "upload_time": "2019-01-21T11:40:24", "url": "https://files.pythonhosted.org/packages/07/31/fe08787f427902e68f9a1324bb9dc3bd1f1dda8ace8f5a029e555ba3c13d/litereval-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "515cfee4eac72318d4d01ad00aee653f", "sha256": "cb4badcc23df50188561545c3612cc4d2487de5381621d41f3848ce1ce8db2af" }, "downloads": -1, "filename": "litereval-0.0.8.tar.gz", "has_sig": false, "md5_digest": "515cfee4eac72318d4d01ad00aee653f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20727, "upload_time": "2019-01-21T12:16:23", "url": "https://files.pythonhosted.org/packages/5b/8b/7e524649fb48c55e349d1a23a9d99cb702f0dcd1fd8a176893a3c5613296/litereval-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "c8d36957dc20f3da4f0598a9edb92fed", "sha256": "0193c15bfb312a7145e3fdd7443d77c123d67db442f925f90fa075233e637abc" }, "downloads": -1, "filename": "litereval-0.0.9.tar.gz", "has_sig": false, "md5_digest": "c8d36957dc20f3da4f0598a9edb92fed", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20738, "upload_time": "2019-01-21T15:42:09", "url": "https://files.pythonhosted.org/packages/92/1d/d5b16538c32945b49175d37143037092f50636a0372218927c5ce00c8f91/litereval-0.0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "085e94db92577346b1b722591e85c35f", "sha256": "d2df538916be7aca13c2ebe6afa98ce7b0bbd683b28425189bfa1f24582f512d" }, "downloads": -1, "filename": "litereval-0.0.11.tar.gz", "has_sig": false, "md5_digest": "085e94db92577346b1b722591e85c35f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 20781, "upload_time": "2019-01-21T18:03:42", "url": "https://files.pythonhosted.org/packages/ee/46/e4f867cdf72dfec08ae0c854ae163bf6643161120be27d7797f24015e24c/litereval-0.0.11.tar.gz" } ] }