diff options
Diffstat (limited to 'examples/elementtree/pickle.py')
| -rw-r--r-- | examples/elementtree/pickle.py | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/examples/elementtree/pickle.py b/examples/elementtree/pickle.py index a86fe30e5..ca2c65504 100644 --- a/examples/elementtree/pickle.py +++ b/examples/elementtree/pickle.py @@ -1,31 +1,37 @@ -"""illustrates a quick and dirty way to persist an XML document expressed using ElementTree and pickle. +""" +illustrates a quick and dirty way to persist an XML document expressed using +ElementTree and pickle. This is a trivial example using PickleType to marshal/unmarshal the ElementTree -document into a binary column. Compare to explicit.py which stores the individual components of the ElementTree -structure in distinct rows using two additional mapped entities. Note that the usage of both -styles of persistence are identical, as is the structure of the main Document class. +document into a binary column. Compare to explicit.py which stores the +individual components of the ElementTree structure in distinct rows using two +additional mapped entities. Note that the usage of both styles of persistence +are identical, as is the structure of the main Document class. + """ -from sqlalchemy import ( - create_engine, - MetaData, - Table, - Column, - Integer, - String, - PickleType, -) -from sqlalchemy.orm import mapper, Session +import os +import sys +from xml.etree import ElementTree -import sys, os +from sqlalchemy import Column +from sqlalchemy import create_engine +from sqlalchemy import Integer +from sqlalchemy import MetaData +from sqlalchemy import PickleType +from sqlalchemy import String +from sqlalchemy import Table +from sqlalchemy.orm import mapper +from sqlalchemy.orm import Session -from xml.etree import ElementTree e = create_engine("sqlite://") meta = MetaData() # setup a comparator for the PickleType since it's a mutable # element. + + def are_elements_equal(x, y): return x == y @@ -44,6 +50,8 @@ meta.create_all(e) # our document class. contains a string name, # and the ElementTree root element. + + class Document(object): def __init__(self, name, element): self.filename = name @@ -53,7 +61,7 @@ class Document(object): # setup mapper. mapper(Document, documents) -###### time to test ! ######### +# time to test ! # get ElementTree document filename = os.path.join(os.path.dirname(__file__), "test.xml") |
