Comments (2)
Confirmed the issue for me with a more self-contained example:
from collections import namedtuple
import declxml as xml
Author = namedtuple("Author", ["name", "birth_year", "genre"])
Genre = namedtuple("Genre", ["name"])
processor = xml.named_tuple(
"author",
Author,
[
xml.string("name"),
xml.integer("birth-year", alias="birth_year"),
xml.named_tuple("genre", Genre, [xml.string("name")], required=False),
],
)
author_xml = """
<author>
<name>Robert A. Heinlein</name>
<birth-year>1907</birth-year>
</author>
"""
# author_xml = """
# <author>
# <name>Robert A. Heinlein</name>
# <birth-year>1907</birth-year>
# <genre>
# <name>horror</name>
# </genre>
# </author>
# """
author = xml.parse_from_string(processor, author_xml)
Parsing works OK when having the "genre" in the xml, not when I leave it out.
Tested both for python 2.7 and 3.7
from declxml.
Thank you so much for letting me know about this issue! I'm very glad to hear that this library has been useful for you.
This issue has been fixed in 8746a32 and is available on PyPi under version 1.1.3 of the decxml
package.
Please let me know if you have any issues with the new version and happy coding!
from declxml.
Related Issues (18)
- Exception messages are too vague HOT 3
- Array with nodes that have attributes AND values HOT 3
- Send xml data to constructor HOT 5
- Use attributes as keys for dictionaries HOT 19
- Cannot parse XML into frozen attrs classes
- Support for reading data from attributes on childless objects? HOT 2
- Add type hints to public API
- Is there any array attributes HOT 2
- Recursive Elements
- Optional aggregate processors - a pain point
- Create processor from typing annotations
- Order changed when seriallized to string
- Calling `xml.serialize_to_string()` without an indent leaves out `<?xml version="1.0" encoding="utf-8"?>`
- declxml on Arch Linux HOT 3
- None values for namedtuples and objects not handled when serializing
- Access a node's parent attribute HOT 2
- Parser fails on non ASCII strings on python 2 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from declxml.