# Buildsheet autogenerated by ravenadm tool -- Do not edit.
NAMEBASE= python-xmltodict
VERSION= 0.14.2
KEYWORDS= python
VARIANTS= v12 v13
SDESC[v12]= Makes XML feel like JSON (3.12)
SDESC[v13]= Makes XML feel like JSON (3.13)
HOMEPAGE= https://github.com/martinblech/xmltodict
CONTACT= Python_Automaton[python@ironwolf.systems]
DOWNLOAD_GROUPS= main
SITES[main]= PYPIWHL/d6/45/fc303eb433e8a2a271739c98e953728422fa61a3c1f36077a49e395c972e
DISTFILE[1]= xmltodict-0.14.2-py2.py3-none-any.whl:main
DIST_SUBDIR= python-src
DF_INDEX= 1
SPKGS[v12]= single
SPKGS[v13]= single
OPTIONS_AVAILABLE= PY312 PY313
OPTIONS_STANDARD= none
VOPTS[v12]= PY312=ON PY313=OFF
VOPTS[v13]= PY312=OFF PY313=ON
DISTNAME= xmltodict-0.14.2.dist-info
GENERATED= yes
[PY312].USES_ON= python:v12,wheel
[PY313].USES_ON= python:v13,wheel
[FILE:2307:descriptions/desc.single]
# xmltodict
`xmltodict` is a Python module that makes working with XML feel like you
are working with [JSON], as in this ["spec"]:
[Build Status]
```python
>>> print(json.dumps(xmltodict.parse("""
...
...
... elements
... more elements
...
...
... element as well
...
...
... """), indent=4))
{
"mydocument": {
"@has": "an attribute",
"and": {
"many": [
"elements",
"more elements"
]
},
"plus": {
"@a": "complex",
"#text": "element as well"
}
}
}
```
## Namespace support
By default, `xmltodict` does no XML namespace processing (it just treats
namespace declarations as regular node attributes), but passing
`process_namespaces=True` will make it expand namespaces for you:
```python
>>> xml = """
...
... 1
... 2
... 3
...
... """
>>> xmltodict.parse(xml, process_namespaces=True) == {
... 'http://defaultns.com/:root': {
... 'http://defaultns.com/:x': '1',
... 'http://a.com/:y': '2',
... 'http://b.com/:z': '3',
... }
... }
True
```
It also lets you collapse certain namespaces to shorthand prefixes, or skip
them altogether:
```python
>>> namespaces = {
... 'http://defaultns.com/': None, # skip this namespace
... 'http://a.com/': 'ns_a', # collapse "http://a.com/" -> "ns_a"
... }
>>> xmltodict.parse(xml, process_namespaces=True, namespaces=namespaces) ==
{
... 'root': {
... 'x': '1',
... 'ns_a:y': '2',
... 'http://b.com/:z': '3',
... },
... }
True
```
## Streaming mode
`xmltodict` is very fast ([Expat]-based) and has a streaming mode with a
small memory footprint, suitable for big XML dumps like [Discogs] or
[Wikipedia]:
```python
>>> def handle_artist(_, artist):
... print(artist['name'])
... return True
>>>
>>> xmltodict.parse(GzipFile('discogs_artists.xml.gz'),
... item_depth=2, item_callback=handle_artist)
A Perfect Circle
Fantômas
King Crimson
Chris Potter
...
```
[FILE:127:distinfo]
20cc7d723ed729276e808f26fb6b3599f786cbc37e06c65e192ba77c40f20aac 9981 python-src/xmltodict-0.14.2-py2.py3-none-any.whl