{"info":{"author":"Christian Stefanescu","author_email":"hello@stchris.net","bugtrack_url":null,"classifiers":["License :: OSI Approved :: MIT License","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9"],"description":"untangle\n========\n\n[![Build Status](https:\/\/github.com\/stchris\/untangle\/actions\/workflows\/build.yml\/badge.svg)](https:\/\/github.com\/stchris\/untangle\/actions)\n[![PyPi version](https:\/\/img.shields.io\/pypi\/v\/untangle.svg)](https:\/\/pypi.python.org\/pypi\/untangle)\n<a href=\"https:\/\/github.com\/psf\/black\"><img alt=\"Code style: black\" src=\"https:\/\/img.shields.io\/badge\/code%20style-black-000000.svg\"><\/a>\n\n[Documentation](http:\/\/readthedocs.org\/docs\/untangle\/en\/latest\/)\n\n* Converts XML to a Python object.\n* Siblings with similar names are grouped into a list.\n* Children can be accessed with ``parent.child``, attributes with ``element['attribute']``.\n* You can call the ``parse()`` method with a filename, an URL or an XML string.\n* Substitutes ``-``, ``.`` and ``:`` with ``_`` ``<foobar><foo-bar\/><\/foobar>`` can be accessed with ``foobar.foo_bar``, ``<foo.bar.baz\/>`` can be accessed with ``foo_bar_baz`` and ``<foo:bar><foo:baz\/><\/foo:bar>`` can be accessed with ``foo_bar.foo_baz``\n* Works with Python 3.7 - 3.10\n\nInstallation\n------------\n\nWith pip:\n```\npip install untangle\n```\n\nWith conda:\n```\nconda install -c conda-forge untangle\n```\n\nConda feedstock maintained by @htenkanen. Issues and questions about conda-forge packaging \/ installation can be done [here](https:\/\/github.com\/conda-forge\/untangle-feedstock\/issues).\n\nUsage\n-----\n(See and run <a href=\"https:\/\/github.com\/stchris\/untangle\/blob\/main\/examples.py\">examples.py<\/a> or this blog post: [Read XML painlessly](http:\/\/pythonadventures.wordpress.com\/2011\/10\/30\/read-xml-painlessly\/) for more info)\n\n```python\nimport untangle\nobj = untangle.parse(resource)\n```\n\n``resource`` can be:\n\n* a URL\n* a filename\n* an XML string\n\nRunning the above code and passing this XML:\n\n```xml\n<?xml version=\"1.0\"?>\n<root>\n\t<child name=\"child1\"\/>\n<\/root>\n```\nallows it to be navigated from the ``untangle``d object like this:\n\n```python\nobj.root.child['name'] # u'child1'\n```\n\nChangelog\n---------\n\nsee CHANGELOG.md\n\n","description_content_type":"text\/markdown","docs_url":null,"download_url":"","downloads":{"last_day":-1,"last_month":-1,"last_week":-1},"dynamic":null,"home_page":"","keywords":"","license":"MIT","license_expression":null,"license_files":null,"maintainer":"","maintainer_email":"","name":"untangle","package_url":"https:\/\/pypi.org\/project\/untangle\/","platform":null,"project_url":"https:\/\/pypi.org\/project\/untangle\/","project_urls":null,"provides_extra":null,"release_url":"https:\/\/pypi.org\/project\/untangle\/1.2.1\/","requires_dist":["defusedxml (>=0.7.1,<0.8.0)"],"requires_python":">=3.7,<4.0","summary":"Converts XML to Python objects","version":"1.2.1","yanked":false,"yanked_reason":null},"last_serial":14355553,"ownership":{"organization":null,"roles":[{"role":"Owner","user":"Christian.tefnescu"}]},"releases":{"0.3":[{"comment_text":"","digests":{"blake2b_256":"3f5a25d79d5891aa1ddb336fb39c3c942b4079139f53d618a669e2c1a57f61dd","md5":"65c525083aea82f12c779cc5b351dc0b","sha256":"87c49366fe5838d517d2986945e03fdecbf000c5249ae8ebc56890401680affb"},"downloads":-1,"filename":"untangle-0.3.tar.gz","has_sig":false,"md5_digest":"65c525083aea82f12c779cc5b351dc0b","packagetype":"sdist","python_version":"source","requires_python":null,"size":2672,"upload_time":"2011-06-08T21:43:02","upload_time_iso_8601":"2011-06-08T21:43:02.926840Z","url":"https:\/\/files.pythonhosted.org\/packages\/3f\/5a\/25d79d5891aa1ddb336fb39c3c942b4079139f53d618a669e2c1a57f61dd\/untangle-0.3.tar.gz","yanked":false,"yanked_reason":null}],"0.3.1":[{"comment_text":"","digests":{"blake2b_256":"9e69f21102f49e55a6232e5011a6457e1a0aa1ce09b6ff1886220a1ce6b833d3","md5":"75ae4c09a1e7d85417d7353c48bd3ccb","sha256":"0e6a5722a48148050dcef930f6ef77ef12754031d105c47ff8b62ccabfb81019"},"downloads":-1,"filename":"untangle-0.3.1.tar.gz","has_sig":false,"md5_digest":"75ae4c09a1e7d85417d7353c48bd3ccb","packagetype":"sdist","python_version":"source","requires_python":null,"size":2224,"upload_time":"2011-06-13T16:42:52","upload_time_iso_8601":"2011-06-13T16:42:52.565407Z","url":"https:\/\/files.pythonhosted.org\/packages\/9e\/69\/f21102f49e55a6232e5011a6457e1a0aa1ce09b6ff1886220a1ce6b833d3\/untangle-0.3.1.tar.gz","yanked":false,"yanked_reason":null}],"0.4.0":[{"comment_text":"","digests":{"blake2b_256":"1d533ed3fc9e5c43600486c210d0fc6b7dd2820164003d95915582202561c539","md5":"00ddcbb72ac87e845bc669983fc3097c","sha256":"6a4db1aa482ed64b725c553cc21a0ffc53b995e7db115d7a7ff1a665bd66ace5"},"downloads":-1,"filename":"untangle-0.4.0.tar.gz","has_sig":false,"md5_digest":"00ddcbb72ac87e845bc669983fc3097c","packagetype":"sdist","python_version":"source","requires_python":null,"size":2311,"upload_time":"2012-02-28T21:54:51","upload_time_iso_8601":"2012-02-28T21:54:51.555821Z","url":"https:\/\/files.pythonhosted.org\/packages\/1d\/53\/3ed3fc9e5c43600486c210d0fc6b7dd2820164003d95915582202561c539\/untangle-0.4.0.tar.gz","yanked":false,"yanked_reason":null}],"1.0.0":[{"comment_text":"","digests":{"blake2b_256":"5de9e053791e99b9aa61e52caaf0a282ef591563c67be902c69500f177e06069","md5":"7db1415cdfdefc3c73d75323e05665c4","sha256":"e3a9f877557bc6f9f4a410538328151507e20f375d854eadad94c73713066273"},"downloads":-1,"filename":"untangle-1.0.0.tar.gz","has_sig":false,"md5_digest":"7db1415cdfdefc3c73d75323e05665c4","packagetype":"sdist","python_version":"source","requires_python":null,"size":2622,"upload_time":"2012-04-23T20:38:51","upload_time_iso_8601":"2012-04-23T20:38:51.576363Z","url":"https:\/\/files.pythonhosted.org\/packages\/5d\/e9\/e053791e99b9aa61e52caaf0a282ef591563c67be902c69500f177e06069\/untangle-1.0.0.tar.gz","yanked":false,"yanked_reason":null}],"1.1.0":[{"comment_text":"","digests":{"blake2b_256":"e885435cd3540c4a3fd443f22faf83fdf848db37e1880e4da77b23c0f119caa5","md5":"5ce6e50009d408b9f36794d0ffaae0dd","sha256":"d16a5afe0cd426071f3b043132f1d8195e3ebc294ad26461f90543d6d1d90d68"},"downloads":-1,"filename":"untangle-1.1.0.tar.gz","has_sig":false,"md5_digest":"5ce6e50009d408b9f36794d0ffaae0dd","packagetype":"sdist","python_version":"source","requires_python":null,"size":2666,"upload_time":"2012-12-17T22:18:51","upload_time_iso_8601":"2012-12-17T22:18:51.977525Z","url":"https:\/\/files.pythonhosted.org\/packages\/e8\/85\/435cd3540c4a3fd443f22faf83fdf848db37e1880e4da77b23c0f119caa5\/untangle-1.1.0.tar.gz","yanked":false,"yanked_reason":null}],"1.1.1":[{"comment_text":"","digests":{"blake2b_256":"f4eba19a34858cd702b09524bd2ddb01c0d75a71f993a96aec8755a76e867911","md5":"b8744e11d3f3a5aa15b72283d7378d84","sha256":"e7cfa1ad57707e6b74cfea8b9fc50f7cbe9bbaf18401cc9d72192002bcd80bcb"},"downloads":-1,"filename":"untangle-1.1.1.tar.gz","has_sig":false,"md5_digest":"b8744e11d3f3a5aa15b72283d7378d84","packagetype":"sdist","python_version":"source","requires_python":null,"size":3089,"upload_time":"2017-05-07T11:00:30","upload_time_iso_8601":"2017-05-07T11:00:30.776534Z","url":"https:\/\/files.pythonhosted.org\/packages\/f4\/eb\/a19a34858cd702b09524bd2ddb01c0d75a71f993a96aec8755a76e867911\/untangle-1.1.1.tar.gz","yanked":false,"yanked_reason":null}],"1.2.0":[{"comment_text":"","digests":{"blake2b_256":"427f942663bed7872dbb7f02e35d4f455d7942465423adb213634068140b37e0","md5":"7b352932941685c77b952896dec7bf92","sha256":"a527b234e930df124120684cbcd3dcc24061bf3c9a95fe0e1dfc5e51835a2a2c"},"downloads":-1,"filename":"untangle-1.2.0-py3-none-any.whl","has_sig":false,"md5_digest":"7b352932941685c77b952896dec7bf92","packagetype":"bdist_wheel","python_version":"py3","requires_python":null,"size":5385,"upload_time":"2022-07-01T18:37:36","upload_time_iso_8601":"2022-07-01T18:37:36.325271Z","url":"https:\/\/files.pythonhosted.org\/packages\/42\/7f\/942663bed7872dbb7f02e35d4f455d7942465423adb213634068140b37e0\/untangle-1.2.0-py3-none-any.whl","yanked":true,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"43182086eec49e2a83d51a3c48f96725fe1655b5195229e8fa54283ce45ad3b5","md5":"74e3a16af8c3e26c6214ac1a82fe2bfd","sha256":"dda75a60bfe69d76f116c3aea91c478885d25288d798f290201daa1400c1b5d4"},"downloads":-1,"filename":"untangle-1.2.0.tar.gz","has_sig":false,"md5_digest":"74e3a16af8c3e26c6214ac1a82fe2bfd","packagetype":"sdist","python_version":"source","requires_python":null,"size":5161,"upload_time":"2022-07-01T18:37:37","upload_time_iso_8601":"2022-07-01T18:37:37.911596Z","url":"https:\/\/files.pythonhosted.org\/packages\/43\/18\/2086eec49e2a83d51a3c48f96725fe1655b5195229e8fa54283ce45ad3b5\/untangle-1.2.0.tar.gz","yanked":true,"yanked_reason":null}],"1.2.1":[{"comment_text":"","digests":{"blake2b_256":"c74a7f7857e04d5499af7c20b82b6bae13cb4ca7543aabcef06b4069a09462d9","md5":"b67fc1c895e85e26933f71b98c6ba6fd","sha256":"1e783bb75996daf46ff7239ba049ee0eb54c056e235ac34809d74ea9e9898dd1"},"downloads":-1,"filename":"untangle-1.2.1-py3-none-any.whl","has_sig":false,"md5_digest":"b67fc1c895e85e26933f71b98c6ba6fd","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7,<4.0","size":4816,"upload_time":"2022-07-02T14:09:28","upload_time_iso_8601":"2022-07-02T14:09:28.861485Z","url":"https:\/\/files.pythonhosted.org\/packages\/c7\/4a\/7f7857e04d5499af7c20b82b6bae13cb4ca7543aabcef06b4069a09462d9\/untangle-1.2.1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"a1694fbd17bc16143343c022d845fd0fc2fc3bd89f85a5dce897cf00ad2c0e70","md5":"60b402a34d2d854ee8f7e3b39f7875b4","sha256":"ae76522472722b31b303d5100c3c6f8b7dd4952b7b6c9d31e6d7b4a56f1a6d30"},"downloads":-1,"filename":"untangle-1.2.1.tar.gz","has_sig":false,"md5_digest":"60b402a34d2d854ee8f7e3b39f7875b4","packagetype":"sdist","python_version":"source","requires_python":">=3.7,<4.0","size":4809,"upload_time":"2022-07-02T14:09:30","upload_time_iso_8601":"2022-07-02T14:09:30.670493Z","url":"https:\/\/files.pythonhosted.org\/packages\/a1\/69\/4fbd17bc16143343c022d845fd0fc2fc3bd89f85a5dce897cf00ad2c0e70\/untangle-1.2.1.tar.gz","yanked":false,"yanked_reason":null}]},"urls":[{"comment_text":"","digests":{"blake2b_256":"c74a7f7857e04d5499af7c20b82b6bae13cb4ca7543aabcef06b4069a09462d9","md5":"b67fc1c895e85e26933f71b98c6ba6fd","sha256":"1e783bb75996daf46ff7239ba049ee0eb54c056e235ac34809d74ea9e9898dd1"},"downloads":-1,"filename":"untangle-1.2.1-py3-none-any.whl","has_sig":false,"md5_digest":"b67fc1c895e85e26933f71b98c6ba6fd","packagetype":"bdist_wheel","python_version":"py3","requires_python":">=3.7,<4.0","size":4816,"upload_time":"2022-07-02T14:09:28","upload_time_iso_8601":"2022-07-02T14:09:28.861485Z","url":"https:\/\/files.pythonhosted.org\/packages\/c7\/4a\/7f7857e04d5499af7c20b82b6bae13cb4ca7543aabcef06b4069a09462d9\/untangle-1.2.1-py3-none-any.whl","yanked":false,"yanked_reason":null},{"comment_text":"","digests":{"blake2b_256":"a1694fbd17bc16143343c022d845fd0fc2fc3bd89f85a5dce897cf00ad2c0e70","md5":"60b402a34d2d854ee8f7e3b39f7875b4","sha256":"ae76522472722b31b303d5100c3c6f8b7dd4952b7b6c9d31e6d7b4a56f1a6d30"},"downloads":-1,"filename":"untangle-1.2.1.tar.gz","has_sig":false,"md5_digest":"60b402a34d2d854ee8f7e3b39f7875b4","packagetype":"sdist","python_version":"source","requires_python":">=3.7,<4.0","size":4809,"upload_time":"2022-07-02T14:09:30","upload_time_iso_8601":"2022-07-02T14:09:30.670493Z","url":"https:\/\/files.pythonhosted.org\/packages\/a1\/69\/4fbd17bc16143343c022d845fd0fc2fc3bd89f85a5dce897cf00ad2c0e70\/untangle-1.2.1.tar.gz","yanked":false,"yanked_reason":null}],"vulnerabilities":[]}