Skip to main content

An XML marshalling and demartialling library

Project description

=====================
About GeneralMarshall
=====================

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

*******
License
*******

``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 <Daniel.Lee@dwd.de>`_ if you use the library and/or have any
feature requests or suggestions.

*****
Usage
*****

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
>>> print(xml_object)
>>> # Create empty XML object
>>> new_xml = MyXML()
>>> # Set a tag value, creating parent nodes if necessary
>>> new_xml.value = "something"
>>> # Export to file
>>> new_xml.export("output_file.xml")

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.

**********
Versioning
**********
Version numbers are set using `Semantic Versioning <http://semver.org>`_.

Project details


Download files

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

Source Distribution

GeneralMarshall-1.0.1.tar.gz (4.7 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page