Skip to content
Snippets Groups Projects
Commit 382df894 authored by Romin's avatar Romin :eye:
Browse files

Add post/put metadata to file objects

parent 533154c1
No related branches found
No related tags found
No related merge requests found
......@@ -1242,6 +1242,48 @@ class FileObject:
raise ValueError("unrecognized metadata format")
self.resource.update_metadata(metadata)
def post_metadata(self, metadata: MetadataForm | dict | rdflib.Graph) -> None:
"""
Creates metadata for a file object for the first time.
There shall be no metadata assigned to the file already - in that
case use put_metadata()!
"""
if isinstance(metadata, MetadataForm):
metadata = metadata.serialize(self.path)
elif isinstance(metadata, dict):
raise NotImplementedError("Fill MetadataForm")
elif isinstance(metadata, rdflib.Graph):
metadata = {
"path": self.path,
"definition": {
"content": metadata.serialize(format="turtle"),
"type": "text/turtle"
}
}
else:
raise ValueError("unrecognized metadata format")
self.resource.post_metadata(metadata)
def put_metadata(self, metadata: MetadataForm | dict | rdflib.Graph) -> None:
"""
Updates existing metadata of a file object. If the file object
does not yet have metadata, use post_metadata()!
"""
if isinstance(metadata, MetadataForm):
metadata = metadata.serialize(self.path)
elif isinstance(metadata, dict):
raise NotImplementedError("Fill MetadataForm")
elif isinstance(metadata, rdflib.Graph):
metadata = {
"path": self.path,
"definition": {
"content": metadata.serialize(format="turtle"),
"type": "text/turtle"
}
}
else:
raise ValueError("unrecognized metadata format")
self.resource.put_metadata(metadata)
def assign_metadata(self, metadata: list[FileMetadata]) -> None:
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment