Metadata-Version: 1.0
Name: GeneralMarshall
Version: 1.0.1
Summary: An XML marshalling and demartialling library
Home-page: https://github.com/erget/GeneralMarshall
Author: Daniel Lee
Author-email: Daniel.Lee@dwd.de
License: GNU GPL
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>`_.
        
Platform: UNKNOWN
