Skip to content

Commit cd391ec

Browse files
refactor: implement new querying interface (#191)
1 parent 0083cd8 commit cd391ec

File tree

12 files changed

+581
-3103
lines changed

12 files changed

+581
-3103
lines changed

medmodels/medrecord/__init__.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@
1111
)
1212
from medmodels.medrecord.medrecord import (
1313
EdgeIndex,
14-
EdgeOperation,
14+
EdgeQuery,
1515
MedRecord,
1616
NodeIndex,
17-
NodeOperation,
17+
NodeQuery,
1818
)
19-
from medmodels.medrecord.querying import edge, node
19+
from medmodels.medrecord.querying import EdgeOperand, NodeOperand
2020
from medmodels.medrecord.schema import AttributeType, GroupSchema, Schema
2121

2222
__all__ = [
@@ -33,10 +33,10 @@
3333
"AttributeType",
3434
"Schema",
3535
"GroupSchema",
36-
"node",
37-
"edge",
3836
"NodeIndex",
3937
"EdgeIndex",
40-
"NodeOperation",
41-
"EdgeOperation",
38+
"EdgeQuery",
39+
"NodeQuery",
40+
"NodeOperand",
41+
"EdgeOperand",
4242
]

medmodels/medrecord/indexers.py

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from typing import TYPE_CHECKING, Dict, Tuple, Union, overload
44

5-
from medmodels.medrecord.querying import EdgeOperation, NodeOperation
5+
from medmodels.medrecord.querying import EdgeQuery, NodeQuery
66
from medmodels.medrecord.types import (
77
Attributes,
88
AttributesInput,
@@ -48,10 +48,10 @@ def __getitem__(
4848
self,
4949
key: Union[
5050
NodeIndexInputList,
51-
NodeOperation,
51+
NodeQuery,
5252
slice,
5353
Tuple[
54-
Union[NodeIndexInputList, NodeOperation, slice],
54+
Union[NodeIndexInputList, NodeQuery, slice],
5555
Union[MedRecordAttributeInputList, slice],
5656
],
5757
],
@@ -60,18 +60,18 @@ def __getitem__(
6060
@overload
6161
def __getitem__(
6262
self,
63-
key: Tuple[Union[NodeIndexInputList, NodeOperation, slice], MedRecordAttribute],
63+
key: Tuple[Union[NodeIndexInputList, NodeQuery, slice], MedRecordAttribute],
6464
) -> Dict[NodeIndex, MedRecordValue]: ...
6565

6666
def __getitem__(
6767
self,
6868
key: Union[
6969
NodeIndex,
7070
NodeIndexInputList,
71-
NodeOperation,
71+
NodeQuery,
7272
slice,
7373
Tuple[
74-
Union[NodeIndex, NodeIndexInputList, NodeOperation, slice],
74+
Union[NodeIndex, NodeIndexInputList, NodeQuery, slice],
7575
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
7676
],
7777
],
@@ -87,7 +87,7 @@ def __getitem__(
8787
if isinstance(key, list):
8888
return self._medrecord._medrecord.node(key)
8989

90-
if isinstance(key, NodeOperation):
90+
if isinstance(key, NodeQuery):
9191
return self._medrecord._medrecord.node(self._medrecord.select_nodes(key))
9292

9393
if isinstance(key, slice):
@@ -112,7 +112,7 @@ def __getitem__(
112112

113113
return {x: attributes[x][attribute_selection] for x in attributes.keys()}
114114

115-
if isinstance(index_selection, NodeOperation) and is_medrecord_attribute(
115+
if isinstance(index_selection, NodeQuery) and is_medrecord_attribute(
116116
attribute_selection
117117
):
118118
attributes = self._medrecord._medrecord.node(
@@ -151,7 +151,7 @@ def __getitem__(
151151
for x in attributes.keys()
152152
}
153153

154-
if isinstance(index_selection, NodeOperation) and isinstance(
154+
if isinstance(index_selection, NodeQuery) and isinstance(
155155
attribute_selection, list
156156
):
157157
attributes = self._medrecord._medrecord.node(
@@ -198,7 +198,7 @@ def __getitem__(
198198

199199
return self._medrecord._medrecord.node(index_selection)
200200

201-
if isinstance(index_selection, NodeOperation) and isinstance(
201+
if isinstance(index_selection, NodeQuery) and isinstance(
202202
attribute_selection, slice
203203
):
204204
if (
@@ -230,15 +230,15 @@ def __getitem__(
230230
@overload
231231
def __setitem__(
232232
self,
233-
key: Union[NodeIndex, NodeIndexInputList, NodeOperation, slice],
233+
key: Union[NodeIndex, NodeIndexInputList, NodeQuery, slice],
234234
value: AttributesInput,
235235
) -> None: ...
236236

237237
@overload
238238
def __setitem__(
239239
self,
240240
key: Tuple[
241-
Union[NodeIndex, NodeIndexInputList, NodeOperation, slice],
241+
Union[NodeIndex, NodeIndexInputList, NodeQuery, slice],
242242
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
243243
],
244244
value: MedRecordValue,
@@ -249,10 +249,10 @@ def __setitem__(
249249
key: Union[
250250
NodeIndex,
251251
NodeIndexInputList,
252-
NodeOperation,
252+
NodeQuery,
253253
slice,
254254
Tuple[
255-
Union[NodeIndex, NodeIndexInputList, NodeOperation, slice],
255+
Union[NodeIndex, NodeIndexInputList, NodeQuery, slice],
256256
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
257257
],
258258
],
@@ -270,7 +270,7 @@ def __setitem__(
270270

271271
return self._medrecord._medrecord.replace_node_attributes(key, value)
272272

273-
if isinstance(key, NodeOperation):
273+
if isinstance(key, NodeQuery):
274274
if not is_attributes(value):
275275
raise ValueError("Invalid value type. Expected Attributes")
276276

@@ -311,7 +311,7 @@ def __setitem__(
311311
index_selection, attribute_selection, value
312312
)
313313

314-
if isinstance(index_selection, NodeOperation) and is_medrecord_attribute(
314+
if isinstance(index_selection, NodeQuery) and is_medrecord_attribute(
315315
attribute_selection
316316
):
317317
if not is_medrecord_value(value):
@@ -364,7 +364,7 @@ def __setitem__(
364364

365365
return
366366

367-
if isinstance(index_selection, NodeOperation) and isinstance(
367+
if isinstance(index_selection, NodeQuery) and isinstance(
368368
attribute_selection, list
369369
):
370370
if not is_medrecord_value(value):
@@ -440,7 +440,7 @@ def __setitem__(
440440

441441
return
442442

443-
if isinstance(index_selection, NodeOperation) and isinstance(
443+
if isinstance(index_selection, NodeQuery) and isinstance(
444444
attribute_selection, slice
445445
):
446446
if (
@@ -494,7 +494,7 @@ def __setitem__(
494494
def __delitem__(
495495
self,
496496
key: Tuple[
497-
Union[NodeIndex, NodeIndexInputList, NodeOperation, slice],
497+
Union[NodeIndex, NodeIndexInputList, NodeQuery, slice],
498498
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
499499
],
500500
) -> None:
@@ -514,7 +514,7 @@ def __delitem__(
514514
index_selection, attribute_selection
515515
)
516516

517-
if isinstance(index_selection, NodeOperation) and is_medrecord_attribute(
517+
if isinstance(index_selection, NodeQuery) and is_medrecord_attribute(
518518
attribute_selection
519519
):
520520
return self._medrecord._medrecord.remove_node_attribute(
@@ -553,7 +553,7 @@ def __delitem__(
553553

554554
return
555555

556-
if isinstance(index_selection, NodeOperation) and isinstance(
556+
if isinstance(index_selection, NodeQuery) and isinstance(
557557
attribute_selection, list
558558
):
559559
for attribute in attribute_selection:
@@ -602,7 +602,7 @@ def __delitem__(
602602
index_selection, {}
603603
)
604604

605-
if isinstance(index_selection, NodeOperation) and isinstance(
605+
if isinstance(index_selection, NodeQuery) and isinstance(
606606
attribute_selection, slice
607607
):
608608
if (
@@ -658,10 +658,10 @@ def __getitem__(
658658
self,
659659
key: Union[
660660
EdgeIndexInputList,
661-
EdgeOperation,
661+
EdgeQuery,
662662
slice,
663663
Tuple[
664-
Union[EdgeIndexInputList, EdgeOperation, slice],
664+
Union[EdgeIndexInputList, EdgeQuery, slice],
665665
Union[MedRecordAttributeInputList, slice],
666666
],
667667
],
@@ -670,18 +670,18 @@ def __getitem__(
670670
@overload
671671
def __getitem__(
672672
self,
673-
key: Tuple[Union[EdgeIndexInputList, EdgeOperation, slice], MedRecordAttribute],
673+
key: Tuple[Union[EdgeIndexInputList, EdgeQuery, slice], MedRecordAttribute],
674674
) -> Dict[EdgeIndex, MedRecordValue]: ...
675675

676676
def __getitem__(
677677
self,
678678
key: Union[
679679
EdgeIndex,
680680
EdgeIndexInputList,
681-
EdgeOperation,
681+
EdgeQuery,
682682
slice,
683683
Tuple[
684-
Union[EdgeIndex, EdgeIndexInputList, EdgeOperation, slice],
684+
Union[EdgeIndex, EdgeIndexInputList, EdgeQuery, slice],
685685
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
686686
],
687687
],
@@ -697,7 +697,7 @@ def __getitem__(
697697
if isinstance(key, list):
698698
return self._medrecord._medrecord.edge(key)
699699

700-
if isinstance(key, EdgeOperation):
700+
if isinstance(key, EdgeQuery):
701701
return self._medrecord._medrecord.edge(self._medrecord.select_edges(key))
702702

703703
if isinstance(key, slice):
@@ -722,7 +722,7 @@ def __getitem__(
722722

723723
return {x: attributes[x][attribute_selection] for x in attributes.keys()}
724724

725-
if isinstance(index_selection, EdgeOperation) and is_medrecord_attribute(
725+
if isinstance(index_selection, EdgeQuery) and is_medrecord_attribute(
726726
attribute_selection
727727
):
728728
attributes = self._medrecord._medrecord.edge(
@@ -761,7 +761,7 @@ def __getitem__(
761761
for x in attributes.keys()
762762
}
763763

764-
if isinstance(index_selection, EdgeOperation) and isinstance(
764+
if isinstance(index_selection, EdgeQuery) and isinstance(
765765
attribute_selection, list
766766
):
767767
attributes = self._medrecord._medrecord.edge(
@@ -808,7 +808,7 @@ def __getitem__(
808808

809809
return self._medrecord._medrecord.edge(index_selection)
810810

811-
if isinstance(index_selection, EdgeOperation) and isinstance(
811+
if isinstance(index_selection, EdgeQuery) and isinstance(
812812
attribute_selection, slice
813813
):
814814
if (
@@ -840,15 +840,15 @@ def __getitem__(
840840
@overload
841841
def __setitem__(
842842
self,
843-
key: Union[EdgeIndex, EdgeIndexInputList, EdgeOperation, slice],
843+
key: Union[EdgeIndex, EdgeIndexInputList, EdgeQuery, slice],
844844
value: AttributesInput,
845845
) -> None: ...
846846

847847
@overload
848848
def __setitem__(
849849
self,
850850
key: Tuple[
851-
Union[EdgeIndex, EdgeIndexInputList, EdgeOperation, slice],
851+
Union[EdgeIndex, EdgeIndexInputList, EdgeQuery, slice],
852852
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
853853
],
854854
value: MedRecordValue,
@@ -859,10 +859,10 @@ def __setitem__(
859859
key: Union[
860860
EdgeIndex,
861861
EdgeIndexInputList,
862-
EdgeOperation,
862+
EdgeQuery,
863863
slice,
864864
Tuple[
865-
Union[EdgeIndex, EdgeIndexInputList, EdgeOperation, slice],
865+
Union[EdgeIndex, EdgeIndexInputList, EdgeQuery, slice],
866866
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
867867
],
868868
],
@@ -880,7 +880,7 @@ def __setitem__(
880880

881881
return self._medrecord._medrecord.replace_edge_attributes(key, value)
882882

883-
if isinstance(key, EdgeOperation):
883+
if isinstance(key, EdgeQuery):
884884
if not is_attributes(value):
885885
raise ValueError("Invalid value type. Expected Attributes")
886886

@@ -921,7 +921,7 @@ def __setitem__(
921921
index_selection, attribute_selection, value
922922
)
923923

924-
if isinstance(index_selection, EdgeOperation) and is_medrecord_attribute(
924+
if isinstance(index_selection, EdgeQuery) and is_medrecord_attribute(
925925
attribute_selection
926926
):
927927
if not is_medrecord_value(value):
@@ -974,7 +974,7 @@ def __setitem__(
974974

975975
return
976976

977-
if isinstance(index_selection, EdgeOperation) and isinstance(
977+
if isinstance(index_selection, EdgeQuery) and isinstance(
978978
attribute_selection, list
979979
):
980980
if not is_medrecord_value(value):
@@ -1048,7 +1048,7 @@ def __setitem__(
10481048

10491049
return
10501050

1051-
if isinstance(index_selection, EdgeOperation) and isinstance(
1051+
if isinstance(index_selection, EdgeQuery) and isinstance(
10521052
attribute_selection, slice
10531053
):
10541054
if (
@@ -1102,7 +1102,7 @@ def __setitem__(
11021102
def __delitem__(
11031103
self,
11041104
key: Tuple[
1105-
Union[EdgeIndex, EdgeIndexInputList, EdgeOperation, slice],
1105+
Union[EdgeIndex, EdgeIndexInputList, EdgeQuery, slice],
11061106
Union[MedRecordAttribute, MedRecordAttributeInputList, slice],
11071107
],
11081108
) -> None:
@@ -1122,7 +1122,7 @@ def __delitem__(
11221122
index_selection, attribute_selection
11231123
)
11241124

1125-
if isinstance(index_selection, EdgeOperation) and is_medrecord_attribute(
1125+
if isinstance(index_selection, EdgeQuery) and is_medrecord_attribute(
11261126
attribute_selection
11271127
):
11281128
return self._medrecord._medrecord.remove_edge_attribute(
@@ -1161,7 +1161,7 @@ def __delitem__(
11611161

11621162
return
11631163

1164-
if isinstance(index_selection, EdgeOperation) and isinstance(
1164+
if isinstance(index_selection, EdgeQuery) and isinstance(
11651165
attribute_selection, list
11661166
):
11671167
for attribute in attribute_selection:
@@ -1210,7 +1210,7 @@ def __delitem__(
12101210
index_selection, {}
12111211
)
12121212

1213-
if isinstance(index_selection, EdgeOperation) and isinstance(
1213+
if isinstance(index_selection, EdgeQuery) and isinstance(
12141214
attribute_selection, slice
12151215
):
12161216
if (

0 commit comments

Comments
 (0)