{ "info": { "author": "Dan Watson", "author_email": "dcwatson@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Topic :: Text Processing :: Markup" ], "description": "## Basic Usage\n\n import drill\n doc = drill.parse(path_or_url_or_string)\n\n # Drill down to a specific element.\n print unicode(doc.book.title)\n\n # Iterate through all \"title\" tags in the document.\n for t in doc.iter('title'):\n print t.attrs, t.data\n\n # Find all \"bar\" nodes with a \"baz\" child and a \"foo\" parent.\n q = doc.find('//foo/bar[baz]')\n # Easily access the first and last elements of matching results.\n print q.first(), q.last()\n # Iterate over results.\n for e in q:\n do_something(e)\n\n # Parse only elements matching some path\n for e in drill.iterparse(filelike, xpath='root/*/something'):\n print e.tagname, e.data\n\n## Features\n\n* Runnable test suite\n* Python 3 support\n\n## Advantages\n\n* Pure python\n* Faster, more efficient parsing than ElementTree\n * Using ElementTree, a ~150 MB XML file (~3,000,000 elements) took ~46 seconds to parse, consuming ~1.3 GB of RAM\n * Parsing the same file using drill took ~24 seconds and consumed ~950 MB of RAM\n * Very unscientific benchmarks performed on a Core i5 @ 2.8 GHz, running Windows 7. YMMV.\n* Lots of convenience methods for accessing elements quickly:\n * doc.response.resultCode.data\n * root[2].child['attr']\n * first/last/prev/next methods for traversing siblings\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dcwatson/drill", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "drill", "package_url": "https://pypi.org/project/drill/", "platform": "", "project_url": "https://pypi.org/project/drill/", "project_urls": { "Homepage": "https://github.com/dcwatson/drill" }, "release_url": "https://pypi.org/project/drill/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "A small python library for quickly traversing XML data.", "version": "1.2.0" }, "last_serial": 4553865, "releases": { "1.1.0": [ { "comment_text": "", "digests": { "md5": "e55fe6f621a6ab691cec0fd6ef630cb7", "sha256": "5c765b7c405918539df9b635fd73b1e84a36eed86fd99d99ab18e427a3af4722" }, "downloads": -1, "filename": "drill-1.1.0.tar.gz", "has_sig": false, "md5_digest": "e55fe6f621a6ab691cec0fd6ef630cb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5430, "upload_time": "2013-03-08T17:47:03", "url": "https://files.pythonhosted.org/packages/ea/2c/5750740cce36bbded8f7596d3a6bfc20bdd518c254fcf3bf6155e05791ea/drill-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "a4ed82f906134b5430f25c2961ea002f", "sha256": "9d337a9a04c00c4fe72af127f65a9397d2078983d877f22b70b9eed2b6928d77" }, "downloads": -1, "filename": "drill-1.1.1.tar.gz", "has_sig": false, "md5_digest": "a4ed82f906134b5430f25c2961ea002f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5752, "upload_time": "2013-08-05T17:25:37", "url": "https://files.pythonhosted.org/packages/b9/51/74b1827627cc28f5fb901ad43e6d1de8ea7d9ea30831a1516b39b7cf5c26/drill-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "22a719476f0f237abebbd94bd2972f43", "sha256": "1146721672f503c781cc99ec1034fcb4736e7af77e08b0d65aca05088017108d" }, "downloads": -1, "filename": "drill-1.1.2.tar.gz", "has_sig": false, "md5_digest": "22a719476f0f237abebbd94bd2972f43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5751, "upload_time": "2015-09-24T15:33:19", "url": "https://files.pythonhosted.org/packages/a0/ae/e2466e46bf28f45a081b871b8f0f96be2581f51fec15aecee27fa262d957/drill-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "221555264bdb681168b2b5bfb3f279d0", "sha256": "8cb3af2487b2441f3eafb32ebfa5c4461ed7b051ba705935847f83c7ae8c388f" }, "downloads": -1, "filename": "drill-1.1.3.tar.gz", "has_sig": false, "md5_digest": "221555264bdb681168b2b5bfb3f279d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5797, "upload_time": "2016-03-30T20:12:50", "url": "https://files.pythonhosted.org/packages/21/a5/2da3dff9bf97840a66f13d4205c7b7b5010c24d481f9b8709e4b471fdf97/drill-1.1.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0183625d1a2b40b1ab2d9465c6e16448", "sha256": "fb5a1eae68993076d033034dd446a832f2b9757222478c47f0cf129bafe70a74" }, "downloads": -1, "filename": "drill-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0183625d1a2b40b1ab2d9465c6e16448", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8444, "upload_time": "2018-12-03T00:36:36", "url": "https://files.pythonhosted.org/packages/73/6c/2871f4b4ad4dbc2d0fc7078e1b91fbdd2a62b33b9ffe9cba3dc610fd669b/drill-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b995f9ce6739ee3f2722b4aff6c065e", "sha256": "d2645ed6d3cfc925bd7bf5328982d8a5aff7cda9c7e56107c7a74482f7037b7d" }, "downloads": -1, "filename": "drill-1.2.0.tar.gz", "has_sig": false, "md5_digest": "8b995f9ce6739ee3f2722b4aff6c065e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7546, "upload_time": "2018-12-03T00:36:38", "url": "https://files.pythonhosted.org/packages/e4/21/3d1dec8958c74c3d1f46a6f264e12b146a4b97458240a68ad10ab3a41031/drill-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0183625d1a2b40b1ab2d9465c6e16448", "sha256": "fb5a1eae68993076d033034dd446a832f2b9757222478c47f0cf129bafe70a74" }, "downloads": -1, "filename": "drill-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0183625d1a2b40b1ab2d9465c6e16448", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8444, "upload_time": "2018-12-03T00:36:36", "url": "https://files.pythonhosted.org/packages/73/6c/2871f4b4ad4dbc2d0fc7078e1b91fbdd2a62b33b9ffe9cba3dc610fd669b/drill-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b995f9ce6739ee3f2722b4aff6c065e", "sha256": "d2645ed6d3cfc925bd7bf5328982d8a5aff7cda9c7e56107c7a74482f7037b7d" }, "downloads": -1, "filename": "drill-1.2.0.tar.gz", "has_sig": false, "md5_digest": "8b995f9ce6739ee3f2722b4aff6c065e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7546, "upload_time": "2018-12-03T00:36:38", "url": "https://files.pythonhosted.org/packages/e4/21/3d1dec8958c74c3d1f46a6f264e12b146a4b97458240a68ad10ab3a41031/drill-1.2.0.tar.gz" } ] }