Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

An XML marshalling and demartialling library

Project Description

GeneralMarshall is a package for manipulating XML. It is comprised of an abstract class that should be subclassed for usage.


GeneralMarshall is released under the GNU Greater Public License. Feel free to reuse or distribute it in any way you see fit. I would appreciate being notified if you use the library and/or have any feature requests or suggestions.


The class makes extensive use of an overriden __getattr__ and __setattr__ in order to allow XML tag values to be set with a pythonic programming interface. In order to make this possible, the XML file’s tag heirarchy must be defined in the subclass that implements GeneralMarshall. This is done by setting the private class attributes _namespace, _root_name, _unique_tags, _unique_tag_attributes and _tag_hierarchy.

When the subclass knows the possible structure of XML files it should use, the interaction can look like this:

import general_marshall
class MyXML(general_marshall.XML):

# Load XML file
xml_object = MyXML("file_name.xml")
# Print pretty printed XML to stdout
# Create empty XML object
new_xml = MyXML()
# Set a tag value, creating parent nodes if necessary
new_xml.value = "something"
# Export to file

Although lxml is used to interface with the XML file that is either read or created, not all of the functions that GeneralMarshall would profit from lxml most are used in order to maintain compatibility with Python’s builtin xml library. This is due to the fact that GeneralMarshall is used in some places where lxml is not available.


Version numbers are set using Semantic Versioning.

Release History

Release History

This version
History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
GeneralMarshall-v1.0.3.tar.gz (16.2 kB) Copy SHA256 Checksum SHA256 Source Dec 2, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting