diff --git a/metsrw/__init__.py b/metsrw/__init__.py index 35ba950..c7da1ec 100644 --- a/metsrw/__init__.py +++ b/metsrw/__init__.py @@ -43,7 +43,7 @@ LOGGER = logging.getLogger(__name__) LOGGER.addHandler(logging.NullHandler()) -__version__ = "0.3.9" +__version__ = "0.3.x" __all__ = [ "Agent", diff --git a/metsrw/fsentry.py b/metsrw/fsentry.py index 4ea82ba..f39f72b 100644 --- a/metsrw/fsentry.py +++ b/metsrw/fsentry.py @@ -179,10 +179,12 @@ def dir(cls, label, children): """Return ``FSEntry`` directory object.""" return FSEntry(label=label, children=children, type=u"Directory", use=None) + # XXXXXX @classmethod - def from_fptr(cls, label, type_, fptr): + def from_fptr(cls, label, type_, fptr, fileid): """Return ``FSEntry`` object.""" return FSEntry( + fileid=fileid, label=label, type=type_, path=fptr.path, @@ -196,9 +198,17 @@ def from_fptr(cls, label, type_, fptr): def __str__(self): return "{s.type}: {s.path}".format(s=self) + # XXXXXX def __repr__(self): - return "FSEntry(type={s.type!r}, path={s.path!r}, use={s.use!r}, label={s.label!r}, file_uuid={s.file_uuid!r}, checksum={s.checksum!r}, checksumtype={s.checksumtype!r})".format( - s=self + return ( + "FSEntry(type={s.type!r}, \ + path={s.path!r}, \ + fileid={s._fielid!r}, \ + use={s.use!r}, \ + label={s.label!r}, \ + file_uuid={s.file_uuid!r}, \ + checksum={s.checksum!r}, \ + checksumtype={s.checksumtype!r})".format(s=self) ) # PROPERTIES diff --git a/metsrw/mets.py b/metsrw/mets.py index 55236a6..af09362 100755 --- a/metsrw/mets.py +++ b/metsrw/mets.py @@ -356,6 +356,7 @@ def _parse_tree_structmap(self, tree, parent_elem, normative_parent_elem=None): continue # Only handle divs, not fptrs entry_type = elem.get("TYPE") label = elem.get("LABEL") + fileid = elem.get("FILEID") fptr_elems = elem.findall("mets:fptr", namespaces=utils.NAMESPACES) # Directories are walked recursively. Additionally, they may # contain direct fptrs. @@ -369,7 +370,7 @@ def _parse_tree_structmap(self, tree, parent_elem, normative_parent_elem=None): for fptr_elem in fptr_elems: fptr = self._analyze_fptr(fptr_elem, tree, entry_type) fs_entry = fsentry.FSEntry.from_fptr( - label=None, type_=u"Item", fptr=fptr + label=None, type_=u"Item", fptr=fptr, fileid=fileid ) self._add_amdsecs_to_fs_entry(fptr.amdids, fs_entry, tree) siblings.append(fs_entry) @@ -378,7 +379,7 @@ def _parse_tree_structmap(self, tree, parent_elem, normative_parent_elem=None): if not len(fptr_elems): continue fptr = self._analyze_fptr(fptr_elems[0], tree, entry_type) - fs_entry = fsentry.FSEntry.from_fptr(label, entry_type, fptr) + fs_entry = fsentry.FSEntry.from_fptr(label, entry_type, fptr, fileid) self._add_dmdsecs_to_fs_entry(elem, fs_entry, tree) self._add_amdsecs_to_fs_entry(fptr.amdids, fs_entry, tree) siblings.append(fs_entry)