Changeset View
Changeset View
Standalone View
Standalone View
swh/deposit/api/private/deposit_read.py
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | def metadata_read(self, deposit: Deposit) -> Dict[str, Any]: | ||||
""" | """ | ||||
raw_metadata = self._metadata_get(deposit) | raw_metadata = self._metadata_get(deposit) | ||||
author_date: Optional[dict] | author_date: Optional[dict] | ||||
commit_date: Optional[dict] | commit_date: Optional[dict] | ||||
if raw_metadata: | if raw_metadata: | ||||
metadata_tree = ElementTree.fromstring(raw_metadata) | metadata_tree = ElementTree.fromstring(raw_metadata) | ||||
author_date, commit_date = self._parse_dates(deposit, metadata_tree) | author_date, commit_date = self._parse_dates(deposit, metadata_tree) | ||||
release_notes_elements = metadata_tree.findall( | |||||
"codemeta:releaseNotes", namespaces=NAMESPACES | |||||
) | |||||
else: | else: | ||||
author_date = commit_date = None | author_date = commit_date = None | ||||
release_notes_elements = [] | |||||
if deposit.parent and deposit.parent.swhid: | if deposit.parent and deposit.parent.swhid: | ||||
parent_swhid = deposit.parent.swhid | parent_swhid = deposit.parent.swhid | ||||
assert parent_swhid is not None | assert parent_swhid is not None | ||||
swhid = CoreSWHID.from_string(parent_swhid) | swhid = CoreSWHID.from_string(parent_swhid) | ||||
parent_revision = hash_to_hex(swhid.object_id) | parent_revision = hash_to_hex(swhid.object_id) | ||||
parents = [parent_revision] | parents = [parent_revision] | ||||
else: | else: | ||||
parents = [] | parents = [] | ||||
release_notes_elements = metadata_tree.findall( | |||||
"codemeta:releaseNotes", namespaces=NAMESPACES | |||||
) | |||||
release_notes: Optional[str] | release_notes: Optional[str] | ||||
if release_notes_elements: | if release_notes_elements: | ||||
release_notes = "\n\n".join( | release_notes = "\n\n".join( | ||||
element.text for element in release_notes_elements if element.text | element.text for element in release_notes_elements if element.text | ||||
) | ) | ||||
else: | else: | ||||
release_notes = None | release_notes = None | ||||
Show All 28 Lines |