[Pkg-bazaar-commits] ./bzr/unstable r150: experiment in writing XML by hand, not through ElementTree

mbp at sourcefrog.net mbp at sourcefrog.net
Fri Apr 10 07:51:15 UTC 2009


------------------------------------------------------------
revno: 150
committer: mbp at sourcefrog.net
timestamp: Thu 2005-03-31 09:01:29 +1000
message:
  experiment in writing XML by hand, not through ElementTree
modified:
  bzrlib/newinventory.py
-------------- next part --------------
=== modified file 'bzrlib/newinventory.py'
--- a/bzrlib/newinventory.py	2005-03-30 22:27:17 +0000
+++ b/bzrlib/newinventory.py	2005-03-30 23:01:29 +0000
@@ -37,7 +37,8 @@
                 el.set('text_size', ('%d' % ie.text_size))
         elif kind != 'directory':
             bailout('unknown InventoryEntry kind %r' % kind)
-            
+
+        el.tail = '\n'
         parent_el.append(el)
 
         if kind == 'directory':
@@ -56,3 +57,44 @@
     
     ElementTree(el).write(f, 'utf-8')
     f.write('\n')
+
+
+
+def write_slacker_inventory(inv, f):
+    def descend(ie):
+        kind = ie.kind
+        f.write('<%s name="%s" id="%s" ' % (kind, ie.name, ie.file_id))
+
+        if kind == 'file':
+            if ie.text_id:
+                f.write('text_id="%s" ' % ie.text_id)
+            if ie.text_sha1:
+                f.write('text_sha1="%s" ' % ie.text_sha1)
+            if ie.text_size != None:
+                f.write('text_size="%d" ' % ie.text_size)
+            f.write('/>\n')
+        elif kind == 'directory':
+            f.write('>\n')
+            
+            l = ie.children.items()
+            l.sort()
+            for child_name, child_ie in l:
+                descend(child_ie)
+
+            f.write('</directory>\n')
+        else:
+            bailout('unknown InventoryEntry kind %r' % kind)
+
+    f.write('<inventory>\n')
+    f.write('<root_directory id="bogus-root-id">\n')
+
+    l = inv._root.children.items()
+    l.sort()
+    for entry_name, ie in l:
+        descend(ie)
+
+    f.write('</root-directory>\n')
+    f.write('</inventory>\n')
+    
+
+



More information about the Pkg-bazaar-commits mailing list