{ "info": { "author": "orf", "author_email": "tom@tomforb.es", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "# XPath-expressions\n\n![https://travis-ci.org/orf/xpath-expressions](https://travis-ci.org/orf/xpath-expressions.svg?branch=master)\n![https://pypi.org/project/xpath-expressions/](https://badge.fury.io/py/xpath-expressions.svg)\n\n\nThis is a small, lightweight Python 3.5+ library to aide in the manipulations of\nxpath expressions. It allows you to manipulate them as Python objects with\nPython expressions and operators.\n\n### Install\n\n`pip install xpath-expressions`\n\n\n### Quickstart\n\n```python\nfrom xpath import Expression, Attribute\n\nroot_node = Expression('/root')\nprint(root_node.children) # /root/*\nprint(root_node.name) # name(/root)\nprint(root_node.attributes[1]) # /root/@*[1]\nprint(root_node / 'abc' / 'def') # /root/abc/def\n\n# Filtering expressions:\nprint(root_node.text == 'abc') # /root/text()='abc'\n\nexpr = Attribute('abc') == 'def'\nprint(expr) # @abc='def'\nprint(root_node.children[expr]) # /root/*[@abc='def']\n\n# The library handles quoting for you:\nexpr = Attribute('abc') == \"def'\"\nfiltered2 = root_node.children[expr] # /root/*[@abc=\"def'\"]\n\n# You can use xpath functions:\nfrom xpath import func\n# Pass arguments like usual\nexpr = func.string_length(root_node.name)\nprint(expr) # string-length(name(/root/))\n\n# And treat those as normal expressions\nprint(expr == 5) # string-length(name(/root/)) == 5\n\n# The library normalizes python reserved names:\nprint(func.or_()) # or()\n\n# Use custom namespaces\nfrom xpath import Functions\nns_functions = Functions('my-ns:')\nprint(ns_functions.something()) # my-ns:something()\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/orf/xpath-expressions", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "xpath-expressions", "package_url": "https://pypi.org/project/xpath-expressions/", "platform": "", "project_url": "https://pypi.org/project/xpath-expressions/", "project_urls": { "Homepage": "https://github.com/orf/xpath-expressions" }, "release_url": "https://pypi.org/project/xpath-expressions/1.0.1/", "requires_dist": null, "requires_python": ">=3.5", "summary": "Treat XPath expressions as Python objects", "version": "1.0.1" }, "last_serial": 4576278, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d5cc6dad514436195859f2f60e697eb6", "sha256": "0370837356c7885f4219f29211c0fd26d772578929d0ee83647d03e3e048b6e3" }, "downloads": -1, "filename": "xpath_expressions-0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d5cc6dad514436195859f2f60e697eb6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 4800, "upload_time": "2017-05-29T15:11:26", "url": "https://files.pythonhosted.org/packages/e6/d1/384f78e46c81eaf173be8998dab3220888c03df6af6545953625fe30a298/xpath_expressions-0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85fe948cd2533010f2e4b437a36cc296", "sha256": "0e9e812c898643dd990436c7a8591eeaa07d8571770c18aee5d699d6948c81d9" }, "downloads": -1, "filename": "xpath-expressions-0.1.tar.gz", "has_sig": false, "md5_digest": "85fe948cd2533010f2e4b437a36cc296", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2767, "upload_time": "2017-05-29T15:11:24", "url": "https://files.pythonhosted.org/packages/bc/27/d6cedeef2cd4a567bef3a3961b16bc873bce09c1dc20e197f05b2b7ba296/xpath-expressions-0.1.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "ec968c1ebd750bd0fcdf1e03988f1377", "sha256": "46a4fc8235f9178803b9261664cc17944b495c46b1dcd7d986c06f51611be517" }, "downloads": -1, "filename": "xpath_expressions-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ec968c1ebd750bd0fcdf1e03988f1377", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8537, "upload_time": "2017-05-29T17:04:51", "url": "https://files.pythonhosted.org/packages/d8/80/88e1078092798442e0e5162300fbbd4f2e178c6784f9cb3f36a4507e12e1/xpath_expressions-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cde85ab9029fb5c6843b3256a805a80", "sha256": "ea3c093f876ee681f91931287e7330231cfc7e922dcc59d3c752daafdc855ae0" }, "downloads": -1, "filename": "xpath-expressions-0.2.1.tar.gz", "has_sig": false, "md5_digest": "0cde85ab9029fb5c6843b3256a805a80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4258, "upload_time": "2017-05-29T17:04:49", "url": "https://files.pythonhosted.org/packages/ba/b3/682dd214ffbe5b753aa7466dfca2afbd0895d07957b6a390d694911f4d82/xpath-expressions-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "ffe95b1ff1953e7503457ca8808290cf", "sha256": "fcf8035e25dbf6354321f3ee82d8ae52d0caa8f66883cdefb7226a1ff48ad08a" }, "downloads": -1, "filename": "xpath_expressions-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "ffe95b1ff1953e7503457ca8808290cf", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8576, "upload_time": "2017-05-29T21:55:35", "url": "https://files.pythonhosted.org/packages/ff/91/aff12d7c3efba8111cfc5b131da2c129e97427ab89f117b246427fc08589/xpath_expressions-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3e2b6da2ae5ce67182d7908c37132d40", "sha256": "84475bde91ca391451f03d7da6c09983ca476344dcc3ff04c126fd2f9dd326f3" }, "downloads": -1, "filename": "xpath-expressions-0.2.2.tar.gz", "has_sig": false, "md5_digest": "3e2b6da2ae5ce67182d7908c37132d40", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4282, "upload_time": "2017-05-29T21:55:33", "url": "https://files.pythonhosted.org/packages/34/5e/0623e770113a404d6bea8d24d9678fb8a020010a9d96b604c6f4935ab794/xpath-expressions-0.2.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "3f936a127fe0357a126723a7c5792b58", "sha256": "ecbd0284f2c99f614e289d45cc3400b2dab4e8bf92d0696f9e2b541f201e8107" }, "downloads": -1, "filename": "xpath_expressions-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3f936a127fe0357a126723a7c5792b58", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 2527, "upload_time": "2018-12-08T23:22:34", "url": "https://files.pythonhosted.org/packages/a8/46/2438e82081b2c59c4700461d12f4f2da1dbe7c1a3d60580dc8174188a749/xpath_expressions-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16b93aa3cca76cc575a5a99b4795e090", "sha256": "4eef494d767cba7f670e9d146fba35dfd9c55907049a2217ece845ead493a6b2" }, "downloads": -1, "filename": "xpath-expressions-1.0.0.tar.gz", "has_sig": false, "md5_digest": "16b93aa3cca76cc575a5a99b4795e090", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2698, "upload_time": "2018-12-08T23:22:32", "url": "https://files.pythonhosted.org/packages/8d/ad/c3e6263fdb4a592f180f85a4b3c645d45f3fe3b6bdce6e0aa882a815b045/xpath-expressions-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "d5e500d91bfcd458038652445274259a", "sha256": "fff9d8e2598626678ea097a67de586151037322816786a13c03dbaea58eccdfb" }, "downloads": -1, "filename": "xpath_expressions-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d5e500d91bfcd458038652445274259a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3171, "upload_time": "2018-12-08T23:26:33", "url": "https://files.pythonhosted.org/packages/c5/da/4fcf09ae85afab6e9c4a8f24354cfd0236f88de53e81f8826ad1ceff7080/xpath_expressions-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "687a2a693ca69661a8768089e591fc09", "sha256": "6105e2f0351fe6d36f32cc3dbc9b31919a716bcbd3eaa17b2d78356acbbd7714" }, "downloads": -1, "filename": "xpath-expressions-1.0.1.tar.gz", "has_sig": false, "md5_digest": "687a2a693ca69661a8768089e591fc09", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2954, "upload_time": "2018-12-08T23:26:34", "url": "https://files.pythonhosted.org/packages/de/22/2798fcbe0ea8d632615ef629a2834caff2cce9c8cd389e7852c2d8d95bad/xpath-expressions-1.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d5e500d91bfcd458038652445274259a", "sha256": "fff9d8e2598626678ea097a67de586151037322816786a13c03dbaea58eccdfb" }, "downloads": -1, "filename": "xpath_expressions-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d5e500d91bfcd458038652445274259a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 3171, "upload_time": "2018-12-08T23:26:33", "url": "https://files.pythonhosted.org/packages/c5/da/4fcf09ae85afab6e9c4a8f24354cfd0236f88de53e81f8826ad1ceff7080/xpath_expressions-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "687a2a693ca69661a8768089e591fc09", "sha256": "6105e2f0351fe6d36f32cc3dbc9b31919a716bcbd3eaa17b2d78356acbbd7714" }, "downloads": -1, "filename": "xpath-expressions-1.0.1.tar.gz", "has_sig": false, "md5_digest": "687a2a693ca69661a8768089e591fc09", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 2954, "upload_time": "2018-12-08T23:26:34", "url": "https://files.pythonhosted.org/packages/de/22/2798fcbe0ea8d632615ef629a2834caff2cce9c8cd389e7852c2d8d95bad/xpath-expressions-1.0.1.tar.gz" } ] }