|
9 | 9 | from curies import Converter |
10 | 10 | from linkml_runtime.linkml_model.meta import SlotDefinition |
11 | 11 | from linkml_runtime.utils.schemaview import SchemaView |
12 | | -from pandas import DataFrame |
| 12 | +from pandas import DataFrame, Series |
13 | 13 | from rdflib import BNode, Graph, Literal, Node, URIRef |
14 | 14 | from rdflib.namespace import RDF, RDFS, XSD |
15 | 15 | from typing_extensions import override |
|
36 | 36 | __all__ = ["MappingSetRDFConverter"] |
37 | 37 |
|
38 | 38 | TRIPLE = tuple[Node, Node, Node] |
| 39 | +DICT_OR_SERIES = Union[Dict[str, Any], Series] |
39 | 40 | MAPPINGS_IRI = URIRef(MAPPINGS, SSSOM_URI_PREFIX) |
40 | 41 | EXTENSION_DEFINITION_IRI = URIRef(EXTENSION_DEFINITIONS, SSSOM_URI_PREFIX) |
41 | 42 |
|
@@ -563,7 +564,7 @@ def _multivalue_from_rdf(self, value: Any, slot_name: str, dest: Dict[str, Any]) |
563 | 564 | # Conversion to RDF |
564 | 565 | # |
565 | 566 |
|
566 | | - def dict_to_rdf(self, g: Graph, obj: Dict[str, Any]) -> Node: |
| 567 | + def dict_to_rdf(self, g: Graph, obj: DICT_OR_SERIES) -> Node: |
567 | 568 | """Export a SSSOM object to a RDF graph. |
568 | 569 |
|
569 | 570 | :param g: The graph to export the object to. |
@@ -611,7 +612,7 @@ def _is_empty(self, value: Any) -> bool: |
611 | 612 | """ |
612 | 613 | return value is None or (hasattr(value, "__len__") and len(value) == 0) |
613 | 614 |
|
614 | | - def _init_dict_to_rdf(self, g: Graph, obj: Dict[str, Any]) -> Node: |
| 615 | + def _init_dict_to_rdf(self, g: Graph, obj: DICT_OR_SERIES) -> Node: |
615 | 616 | """Create the root node representing a SSSOM object. |
616 | 617 |
|
617 | 618 | Subclasses should override this method to customize the way |
@@ -897,7 +898,7 @@ def msdf_to_rdf( |
897 | 898 | return g |
898 | 899 |
|
899 | 900 | @override |
900 | | - def _init_dict_to_rdf(self, g: Graph, obj: Dict[str, Any]) -> Node: |
| 901 | + def _init_dict_to_rdf(self, g: Graph, obj: DICT_OR_SERIES) -> Node: |
901 | 902 | if MAPPING_SET_ID in obj: |
902 | 903 | return URIRef(obj[MAPPING_SET_ID]) |
903 | 904 | else: |
@@ -926,7 +927,7 @@ def _process_slot(self, g: Graph, subject: Node, name: str, value: Any) -> bool: |
926 | 927 | return done |
927 | 928 |
|
928 | 929 | def _mapping_to_rdf( |
929 | | - self, g: Graph, subject: Node, mapping: Dict[str, Any], hydrate: bool |
| 930 | + self, g: Graph, subject: Node, mapping: DICT_OR_SERIES, hydrate: bool |
930 | 931 | ) -> None: |
931 | 932 | mapping_node = self.mapping_converter.dict_to_rdf(g, mapping) |
932 | 933 | g.add(cast(TRIPLE, [subject, MAPPINGS_IRI, mapping_node])) |
@@ -979,7 +980,7 @@ def _multivalue_from_rdf(self, value: Any, slot_name: str, dest: Dict[str, Any]) |
979 | 980 | dest[slot_name] = dest[slot_name] + "|" + value |
980 | 981 |
|
981 | 982 | @override |
982 | | - def _init_dict_to_rdf(self, g: Graph, obj: Dict[str, Any]) -> Node: |
| 983 | + def _init_dict_to_rdf(self, g: Graph, obj: DICT_OR_SERIES) -> Node: |
983 | 984 | if RECORD_ID in obj: |
984 | 985 | return URIRef(self.ccp().expand(obj[RECORD_ID])) |
985 | 986 | else: |
|
0 commit comments