~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: Martin Pool
  • Date: 2005-06-28 05:33:40 UTC
  • Revision ID: mbp@sourcefrog.net-20050628053340-ea73b03fbcde9c46
- Remove XMLMixin class in favour of simple pack_xml, unpack_xml functions
  called as needed.  

- Avoid importing xml and ElementTree library unless needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
import sys, os.path, types, re
24
24
 
25
25
import bzrlib
26
 
from bzrlib.xml import XMLMixin, Element
27
26
from bzrlib.errors import BzrError, BzrCheckError
28
27
 
29
28
from bzrlib.osutils import uuid, quotefn, splitpath, joinpath, appendpath
30
29
from bzrlib.trace import mutter
31
30
 
32
 
class InventoryEntry(XMLMixin):
 
31
class InventoryEntry(object):
33
32
    """Description of a versioned file.
34
33
 
35
34
    An InventoryEntry has the following fields, which are also
155
154
    
156
155
    def to_element(self):
157
156
        """Convert to XML element"""
 
157
        from bzrlib.xml import Element
 
158
        
158
159
        e = Element('entry')
159
160
 
160
161
        e.set('name', self.name)
243
244
 
244
245
 
245
246
 
246
 
class Inventory(XMLMixin):
 
247
class Inventory(object):
247
248
    """Inventory of versioned files in a tree.
248
249
 
249
250
    This describes which file_id is present at each point in the tree,
261
262
    inserted, other than through the Inventory API.
262
263
 
263
264
    >>> inv = Inventory()
264
 
    >>> inv.write_xml(sys.stdout)
265
 
    <inventory>
266
 
    </inventory>
267
265
    >>> inv.add(InventoryEntry('123-123', 'hello.c', 'file', ROOT_ID))
268
266
    >>> inv['123-123'].name
269
267
    'hello.c'
279
277
 
280
278
    >>> [x[0] for x in inv.iter_entries()]
281
279
    ['hello.c']
282
 
    
283
 
    >>> inv.write_xml(sys.stdout)
284
 
    <inventory>
285
 
    <entry file_id="123-123" kind="file" name="hello.c" />
286
 
    </inventory>
287
 
 
288
280
    """
289
281
    def __init__(self):
290
282
        """Create or read an inventory.
473
465
 
474
466
    def to_element(self):
475
467
        """Convert to XML Element"""
 
468
        from bzrlib.xml import Element
 
469
        
476
470
        e = Element('inventory')
477
471
        e.text = '\n'
478
472
        for path, ie in self.iter_entries():