Skip to content

Commit 65428e2

Browse files
committed
updated METS package generation
1 parent 3ea9c6b commit 65428e2

3 files changed

Lines changed: 18 additions & 4 deletions

File tree

ted_sws/notice_packager/services/metadata_transformer.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def from_notice_metadata(cls, notice_metadata: ExtractedMetadata) -> PackagerMet
6060
metadata.notice.id = cls.normalize_value(notice_metadata.notice_publication_number)
6161
metadata.notice.public_number_document = publication_notice_number(metadata.notice.id)
6262
metadata.notice.public_number_edition = publication_notice_year(
63-
notice_metadata) + notice_metadata.ojs_issue_number.zfill(3)
63+
notice_metadata) + filled_ojs_issue_number(notice_metadata.ojs_issue_number)
6464

6565
# WORK
6666
publication_date = datetime.datetime.strptime(notice_metadata.publication_date, '%Y%m%d').strftime('%Y-%m-%d')
@@ -132,10 +132,15 @@ def publication_notice_uri(notice_id, notice_metadata):
132132
def publication_work_identifier(notice_id, notice_metadata):
133133
year = publication_notice_year(notice_metadata)
134134
number = publication_notice_number(notice_id)
135-
return f"{year}_{notice_metadata.ojs_type}_{notice_metadata.ojs_issue_number.zfill(3)}_{number}"
135+
return f"{year}_{notice_metadata.ojs_type}_{filled_ojs_issue_number(notice_metadata.ojs_issue_number)}_{number}"
136136

137137

138138
def publication_work_oj_identifier(notice_id, notice_metadata):
139139
year = publication_notice_year(notice_metadata)
140140
number = publication_notice_number(notice_id)
141-
return f"JOS_{year}_{notice_metadata.ojs_issue_number.zfill(3)}_R_{number}"
141+
return f"JOS_{year}_{filled_ojs_issue_number(notice_metadata.ojs_issue_number)}_R_{number}"
142+
143+
144+
def filled_ojs_issue_number(ojs_issue_number: str) -> str:
145+
# just return the number without any preceding 0 (leaved the formula as it is in case of revert)
146+
return ojs_issue_number.zfill(0)

ted_sws/notice_packager/services/notice_packager.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@
3535
FILE_METS_ACTION_FORMAT = "{work_identifier}_{action}.mets.xml"
3636
DEFAULT_RDF_FILE_FORMAT = "turtle"
3737

38+
# The naming convention for an TEDRDF package:
39+
# {year}_{notice_metadata.ojs_type}_{notice_metadata.ojs_issue_number}_{notice_number}_{action}
40+
# ex.: "2021_S_4_003544_create.zip" , where:
41+
# year = 2021
42+
# notice_metadata.ojs_type = S
43+
# notice_metadata.ojs_issue_number = 4
44+
# notice_number = 003544
45+
# action = create
46+
3847

3948
def package_notice(notice: Notice, action: str = METS_TYPE_CREATE) -> Notice:
4049
"""

tests/unit/notice_packager/test_metadata_transformer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,5 @@ def test_publication_notice_uri(notice_id, notice_sample_metadata):
4747

4848
def test_publication_work_identifier(notice_id, notice_sample_metadata):
4949
work_id = publication_work_identifier(notice_id, notice_sample_metadata)
50-
assert work_id == "2018_S_022_196390"
50+
assert work_id == "2018_S_22_196390"
5151

0 commit comments

Comments
 (0)