'''
Sirius.py
This is a simple interface to a collection of classes which
serialize Python objects to XML and back.
The system is very lightweight and was not intended for complex XML
Usage:
xmlString = Sirius.serialize( pythonObj )
pythonObj = Sirius.deserialize( xmlString )
'''
from XML2Py import XML2Py
from Py2XML import Py2XML
def deserialize( xmlString ):
deserializer = XML2Py()
return deserializer.parse( xmlString )
def serialize( pyObject, root=None ) :
serializer = Py2XML()
return serializer.parse( pyObject, root )
def main():
test_xml = '''
Python is very nice. Very, very nice.
'''
# This is not for use, just to see how XML compares to Python
data_output = '''
{'documents': [
{ 'title': 'The Newness of Python',
'date': 'June 6, 2009',
'author': 'John Doe',
'copyright': {
'url': 'http://www.creativecommons.org/',
'date': 'June 24, 2009',
'type': 'CC'},
'text': ['Python is very nice. Very, very nice.'],
'formats': [
{ 'type': 'pdf',
'info': {
'uri': 'http://www.python.org/newness-of-python.pdf',
'pages': '245'}
},
{ 'type': 'web',
'info': {
'uri': 'http://www.python.org/newness-of-python.html'}
}
]
}
]
}
'''
print test_xml
deserialized1 = deserialize( test_xml )
#print deserialized1
serialized1 = serialize( deserialized1 )
#print serialized1
deserialized2 = deserialize( serialized1 )
print deserialized2
serialized2 = serialize( deserialized2 )
print serialized2
# compare using Python data structures
if deserialized1 == deserialized2:
print "They are equal"
if __name__ == '__main__':
main()