{ "info": { "author": "Timo Furrer", "author_email": "tuxtimo@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX", "Operating System :: POSIX :: Linux", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Testing" ], "description": "tag-expressions\n===============\n\nPackage to evaluate logical tag expressions by using a modified version of the `Shunting Yard algorithm `_.\nThis package is a Python port of cucumbers tag expression.\n\nIt's also used by `radish `_.\n\n|Build Status| |PyPI package version| |PyPI python versions|\n\n\nInstalling\n----------\n\n.. code:: bash\n\n $ pip install tag-expressions\n\nHere is a tease\n---------------\n\n\n.. code:: python\n\n >>> from tagexpressions import parse\n >>>\n >>> expression = '( a and b ) or ( c and d )'\n >>> compiled_expression = parse(expression)\n >>> print(compiled_expression)\n ( ( a and b ) or ( c and d ) )\n >>>\n >>> data = ['a', 'b', 'c', 'd']\n >>> assert compiled_expression.evaluate(data) == True\n >>>\n >>> data = ['a', 'c']\n >>> assert compiled_expression.evaluate(data) == False\n >>>\n >>>\n >>> expression = 'not a or b and not c or not d or e and f'\n >>> compiled_expression = parse(expression)\n >>> print(compiled_expression)\n ( ( ( not ( a ) or ( b and not ( c ) ) ) or not ( d ) ) or ( e and f ) )\n >>>\n >>> data = ['b', 'e', 'f']\n >>> assert compiled_expression.evaluate(data) == True\n >>>\n >>> data = ['a', 'c', 'd']\n >>> assert compiled_expression.evaluate(data) == False\n\n\n.. |Build Status| image:: https://travis-ci.org/timofurrer/tag-expressions.png?branch=master\n :target: https://travis-ci.org/timofurrer/tag-expressions\n.. |PyPI package version| image:: https://badge.fury.io/py/tag-expressions.svg\n :target: https://badge.fury.io/py/tag-expressions\n.. |PyPI python versions| image:: https://img.shields.io/pypi/pyversions/tag-expressions.svg\n :target: https://pypi.python.org/pypi/tag-expressions\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/timofurrer/tag-expressions", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "tag-expressions", "package_url": "https://pypi.org/project/tag-expressions/", "platform": "", "project_url": "https://pypi.org/project/tag-expressions/", "project_urls": { "Homepage": "http://github.com/timofurrer/tag-expressions" }, "release_url": "https://pypi.org/project/tag-expressions/1.1.0/", "requires_dist": null, "requires_python": "", "summary": "", "version": "1.1.0" }, "last_serial": 2668652, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "85542dbfc5b13efd111a9f50cbf3845f", "sha256": "ddc263e3408dfaf1f3a8d4f3e4ebffb64c8cfb78c346c9411cbe65c89db31f70" }, "downloads": -1, "filename": "tag_expressions-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "85542dbfc5b13efd111a9f50cbf3845f", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5370, "upload_time": "2017-02-25T13:50:19", "url": "https://files.pythonhosted.org/packages/cb/7b/448524c5b578d1a0fb5d061e03bf62974c7defe3ebf2d160d725a5c906d6/tag_expressions-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e0c80c426ba38c06292e0423488a180b", "sha256": "1bac34ed90ee5acd3749ea8c45a08dc8d7d0465a1937726599f2a3f6a12bc68f" }, "downloads": -1, "filename": "tag-expressions-0.0.0.tar.gz", "has_sig": false, "md5_digest": "e0c80c426ba38c06292e0423488a180b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4948, "upload_time": "2017-02-25T13:50:17", "url": "https://files.pythonhosted.org/packages/62/fb/a0fc0da6fcc25c3ffdd7d741ae8da63df5765745776386fe83a2e607584e/tag-expressions-0.0.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "7a3d5122bf561644c1a9c1b7e232bc39", "sha256": "8e4b289b97d476e19420a2348437544d62a4e5bd2e9f5cf6ee4c16427026a5c6" }, "downloads": -1, "filename": "tag_expressions-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7a3d5122bf561644c1a9c1b7e232bc39", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5371, "upload_time": "2017-02-25T13:54:48", "url": "https://files.pythonhosted.org/packages/1d/42/67fbfaca4fc6cd3e7c10f5c9c6c3492ecf5073851a3c861a8c495134f874/tag_expressions-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49ca46144f12aeb9c337d0e16ca0c0ee", "sha256": "0622e40d625fb738324b2591d11c86588d448d0f34e43c73e545cc89d219301d" }, "downloads": -1, "filename": "tag-expressions-1.0.0.tar.gz", "has_sig": false, "md5_digest": "49ca46144f12aeb9c337d0e16ca0c0ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4950, "upload_time": "2017-02-25T13:54:44", "url": "https://files.pythonhosted.org/packages/10/00/ba91152c22e3548ae3dd188120f858dd569c16eebb2da105a46b8246a218/tag-expressions-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "3208bcb478a232d6692ee481dbb287e2", "sha256": "45d2b616495b56778ec54ab5581b9196f4c08eb8dafa3dc54b25e26ba6a37e51" }, "downloads": -1, "filename": "tag_expressions-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3208bcb478a232d6692ee481dbb287e2", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5616, "upload_time": "2017-02-26T09:36:15", "url": "https://files.pythonhosted.org/packages/80/9c/d7f83ffcb34a267b03a742e25239d05fdf151cb749035a107ceec2432398/tag_expressions-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f4fe9635eba94ce24bd1f0b203d31cf", "sha256": "1c0a49c3c0357976822b03c43db8d4a1c5548e16fb07ac939c10bbd5183f529d" }, "downloads": -1, "filename": "tag-expressions-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2f4fe9635eba94ce24bd1f0b203d31cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5221, "upload_time": "2017-02-26T09:36:13", "url": "https://files.pythonhosted.org/packages/96/02/e3056e924b4ce7af16cd02cfe9e65e550e125062fb1eb4cbdbd7130606d7/tag-expressions-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3208bcb478a232d6692ee481dbb287e2", "sha256": "45d2b616495b56778ec54ab5581b9196f4c08eb8dafa3dc54b25e26ba6a37e51" }, "downloads": -1, "filename": "tag_expressions-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3208bcb478a232d6692ee481dbb287e2", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 5616, "upload_time": "2017-02-26T09:36:15", "url": "https://files.pythonhosted.org/packages/80/9c/d7f83ffcb34a267b03a742e25239d05fdf151cb749035a107ceec2432398/tag_expressions-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2f4fe9635eba94ce24bd1f0b203d31cf", "sha256": "1c0a49c3c0357976822b03c43db8d4a1c5548e16fb07ac939c10bbd5183f529d" }, "downloads": -1, "filename": "tag-expressions-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2f4fe9635eba94ce24bd1f0b203d31cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5221, "upload_time": "2017-02-26T09:36:13", "url": "https://files.pythonhosted.org/packages/96/02/e3056e924b4ce7af16cd02cfe9e65e550e125062fb1eb4cbdbd7130606d7/tag-expressions-1.1.0.tar.gz" } ] }