Skip to content

Commit

Permalink
Create a mechanism to provide a custom FILEID
Browse files Browse the repository at this point in the history
Enable mets-reader-writer to output a FILEID for a METS document that
isn't automatically generated using another component provided to the
FSENTRY constructor.
  • Loading branch information
ross-spencer committed Jun 9, 2019
1 parent d95939c commit 9931ae5
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions metsrw/fsentry.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,12 @@ class FSEntry(DependencyPossessor):
populate FLocat @xlink:href
:param str label: Label in the structMap. If not provided, will be populated
with the basename of path
:param str fileid: Provides a mechanism to assign a FILEID to an FSENTRY
when a pointer file is being created, so when a METS file is being
written for an package-file-type, i.e. an AIP. The FILE ID is an XML
NC (Non-colonized) name and so callers must understand the restricted
character-set of that type to use it properly. There is currently no
validation on this attribute on generation.
:param str use: Use for the fileGrp. Items with identical uses will be
grouped together.
:param str type: Type of FSEntry this is. This will appear in the structMap.
Expand Down Expand Up @@ -112,6 +118,7 @@ class FSEntry(DependencyPossessor):
def __init__(
self,
path=None,
fileid=None,
label=None,
use="original",
type=u"Item",
Expand All @@ -138,6 +145,7 @@ def __init__(
self.path = path
if label is None and path is not None:
label = os.path.basename(path)
self.fileid = fileid
self.label = label
self.use = use
self.type = six.text_type(type)
Expand Down Expand Up @@ -204,6 +212,8 @@ def file_id(self):
"No FILEID: File %s does not have file_uuid set" % self.path
)
if self.is_aip:
if self.fileid:
return self.fileid
return os.path.splitext(os.path.basename(self.path))[0]
return utils.FILE_ID_PREFIX + self.file_uuid

Expand Down

0 comments on commit 9931ae5

Please sign in to comment.