dcicutils 8.8.1.1b25__py3-none-any.whl → 8.8.1.1b27__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dcicutils/portal_object_utils.py +1 -1
- dcicutils/structured_data.py +11 -15
- {dcicutils-8.8.1.1b25.dist-info → dcicutils-8.8.1.1b27.dist-info}/METADATA +1 -1
- {dcicutils-8.8.1.1b25.dist-info → dcicutils-8.8.1.1b27.dist-info}/RECORD +7 -7
- {dcicutils-8.8.1.1b25.dist-info → dcicutils-8.8.1.1b27.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.8.1.1b25.dist-info → dcicutils-8.8.1.1b27.dist-info}/WHEEL +0 -0
- {dcicutils-8.8.1.1b25.dist-info → dcicutils-8.8.1.1b27.dist-info}/entry_points.txt +0 -0
dcicutils/portal_object_utils.py
CHANGED
@@ -195,7 +195,7 @@ class PortalObject:
|
|
195
195
|
# sure we check accession format (since it does not have a pattern).
|
196
196
|
if callable(ref_lookup_strategy):
|
197
197
|
lookup_options, ref_validator = ref_lookup_strategy(
|
198
|
-
self.type, schema, identifying_value)
|
198
|
+
self._portal, self.type, schema, identifying_value)
|
199
199
|
if callable(ref_validator):
|
200
200
|
if ref_validator(schema, identifying_property, identifying_value) is False:
|
201
201
|
continue
|
dcicutils/structured_data.py
CHANGED
@@ -17,7 +17,7 @@ from dcicutils.misc_utils import (create_dict, create_readonly_object, is_uuid,
|
|
17
17
|
to_boolean, to_enum, to_float, to_integer, VirtualApp)
|
18
18
|
from dcicutils.portal_object_utils import PortalObject
|
19
19
|
from dcicutils.portal_utils import Portal as PortalBase
|
20
|
-
from dcicutils.progress_constants import PROGRESS_PARSE as PROGRESS
|
20
|
+
from dcicutils.submitr.progress_constants import PROGRESS_PARSE as PROGRESS
|
21
21
|
from dcicutils.schema_utils import Schema as SchemaBase
|
22
22
|
from dcicutils.zip_utils import unpack_gz_file_to_temporary_file, unpack_files
|
23
23
|
|
@@ -822,7 +822,7 @@ class Portal(PortalBase):
|
|
822
822
|
if callable(ref_lookup_strategy):
|
823
823
|
self._ref_lookup_strategy = ref_lookup_strategy
|
824
824
|
else:
|
825
|
-
self._ref_lookup_strategy = lambda type_name, schema, value: (Portal.LOOKUP_DEFAULT, None)
|
825
|
+
self._ref_lookup_strategy = lambda portal, type_name, schema, value: (Portal.LOOKUP_DEFAULT, None)
|
826
826
|
if ref_lookup_nocache is True:
|
827
827
|
self.ref_lookup = self.ref_lookup_uncached
|
828
828
|
self._ref_cache = None
|
@@ -860,10 +860,6 @@ class Portal(PortalBase):
|
|
860
860
|
@lru_cache(maxsize=100)
|
861
861
|
def get_schema(self, schema_name: str) -> Optional[dict]:
|
862
862
|
return schemas.get(Schema.type_name(schema_name), None) if (schemas := self.get_schemas()) else None
|
863
|
-
# if schema_name == schema_name.upper() and (schema := schemas.get(schema_name.lower().title())):
|
864
|
-
# return schema
|
865
|
-
# if schema_name == schema_name.lower() and (schema := schemas.get(schema_name.title())):
|
866
|
-
# return schema
|
867
863
|
|
868
864
|
@lru_cache(maxsize=1)
|
869
865
|
def get_schemas(self) -> Optional[dict]:
|
@@ -892,7 +888,7 @@ class Portal(PortalBase):
|
|
892
888
|
self._ref_total_count += 1
|
893
889
|
# First make sure the given value can possibly be a reference to the given type.
|
894
890
|
schema = self.get_schema(type_name)
|
895
|
-
|
891
|
+
ref_lookup_flags, ref_validator = self._ref_lookup_strategy(self, type_name, schema, value)
|
896
892
|
if not self._is_valid_ref(type_name, value, ref_validator):
|
897
893
|
if called_from_map_ref:
|
898
894
|
self._ref_invalid_identifying_property_count += 1
|
@@ -922,11 +918,11 @@ class Portal(PortalBase):
|
|
922
918
|
# Get the lookup strategy; i.e. should do we lookup by root path, and if so, should
|
923
919
|
# we do this first, and do we lookup by subtypes; by default we lookup by root path
|
924
920
|
# but not first, and we also lookup by subtypes by default.
|
925
|
-
|
926
|
-
is_ref_lookup_specified_type = StructuredDataSet._is_ref_lookup_specified_type(
|
927
|
-
is_ref_lookup_root = StructuredDataSet._is_ref_lookup_root(
|
928
|
-
is_ref_lookup_root_first = StructuredDataSet._is_ref_lookup_root_first(
|
929
|
-
is_ref_lookup_subtypes = StructuredDataSet._is_ref_lookup_subtypes(
|
921
|
+
ref_lookup_flags, _ = self._ref_lookup_strategy(self, type_name, self.get_schema(type_name), value)
|
922
|
+
is_ref_lookup_specified_type = StructuredDataSet._is_ref_lookup_specified_type(ref_lookup_flags)
|
923
|
+
is_ref_lookup_root = StructuredDataSet._is_ref_lookup_root(ref_lookup_flags)
|
924
|
+
is_ref_lookup_root_first = StructuredDataSet._is_ref_lookup_root_first(ref_lookup_flags)
|
925
|
+
is_ref_lookup_subtypes = StructuredDataSet._is_ref_lookup_subtypes(ref_lookup_flags)
|
930
926
|
# First construct the list of lookup paths at which to look for the referenced item.
|
931
927
|
lookup_paths = []
|
932
928
|
if is_ref_lookup_root_first:
|
@@ -971,9 +967,9 @@ class Portal(PortalBase):
|
|
971
967
|
if not type_name or not value:
|
972
968
|
return None # Should not happen.
|
973
969
|
# Note that root lookup not applicable here.
|
974
|
-
|
975
|
-
self._ref_lookup_strategy(type_name, self.get_schema(type_name), value))
|
976
|
-
is_ref_lookup_subtypes = StructuredDataSet._is_ref_lookup_subtypes(
|
970
|
+
ref_lookup_flags, ref_validator = (
|
971
|
+
self._ref_lookup_strategy(self, type_name, self.get_schema(type_name), value))
|
972
|
+
is_ref_lookup_subtypes = StructuredDataSet._is_ref_lookup_subtypes(ref_lookup_flags)
|
977
973
|
subtype_names = self.get_schema_subtype_names(type_name) if is_ref_lookup_subtypes else []
|
978
974
|
for type_name in [type_name] + subtype_names:
|
979
975
|
is_resolved, resolved_item = self._ref_exists_single_internally(type_name, value)
|
@@ -46,7 +46,7 @@ dcicutils/log_utils.py,sha256=7pWMc6vyrorUZQf-V-M3YC6zrPgNhuV_fzm9xqTPph0,10883
|
|
46
46
|
dcicutils/misc_utils.py,sha256=zVc4urdVGgnWjQ4UQlrGH-URAzr2l_PwZWI3u_GJdFE,102210
|
47
47
|
dcicutils/obfuscation_utils.py,sha256=fo2jOmDRC6xWpYX49u80bVNisqRRoPskFNX3ymFAmjw,5963
|
48
48
|
dcicutils/opensearch_utils.py,sha256=V2exmFYW8Xl2_pGFixF4I2Cc549Opwe4PhFi5twC0M8,1017
|
49
|
-
dcicutils/portal_object_utils.py,sha256=
|
49
|
+
dcicutils/portal_object_utils.py,sha256=gDXRgPsRvqCFwbC8WatsuflAxNiigOnqr0Hi93k3AgE,15422
|
50
50
|
dcicutils/portal_utils.py,sha256=oBoI3KWRp6YrbsuVGbmPQ3kATB5cVVsQo7-qmnYXWqg,30260
|
51
51
|
dcicutils/project_utils.py,sha256=qPdCaFmWUVBJw4rw342iUytwdQC0P-XKpK4mhyIulMM,31250
|
52
52
|
dcicutils/qa_checkers.py,sha256=cdXjeL0jCDFDLT8VR8Px78aS10hwNISOO5G_Zv2TZ6M,20534
|
@@ -62,7 +62,7 @@ dcicutils/secrets_utils.py,sha256=8dppXAsiHhJzI6NmOcvJV5ldvKkQZzh3Fl-cb8Wm7MI,19
|
|
62
62
|
dcicutils/sheet_utils.py,sha256=VlmzteONW5VF_Q4vo0yA5vesz1ViUah1MZ_yA1rwZ0M,33629
|
63
63
|
dcicutils/snapshot_utils.py,sha256=ymP7PXH6-yEiXAt75w0ldQFciGNqWBClNxC5gfX2FnY,22961
|
64
64
|
dcicutils/ssl_certificate_utils.py,sha256=F0ifz_wnRRN9dfrfsz7aCp4UDLgHEY8LaK7PjnNvrAQ,9707
|
65
|
-
dcicutils/structured_data.py,sha256=
|
65
|
+
dcicutils/structured_data.py,sha256=IjiLOLsxtINOEaz3oVSEscA4lW-t6u9dFfW-NRCRmfs,58451
|
66
66
|
dcicutils/submitr/progress_constants.py,sha256=5bxyX77ql8qEJearfHEvsvXl7D0GuUODW0T65mbRmnE,2895
|
67
67
|
dcicutils/task_utils.py,sha256=MF8ujmTD6-O2AC2gRGPHyGdUrVKgtr8epT5XU8WtNjk,8082
|
68
68
|
dcicutils/tmpfile_utils.py,sha256=n95XF8dZVbQRSXBZTGToXXfSs3JUVRyN6c3ZZ0nhAWI,1403
|
@@ -70,8 +70,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
|
70
70
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
71
71
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
72
72
|
dcicutils/zip_utils.py,sha256=rnjNv_k6L9jT2SjDSgVXp4BEJYLtz9XN6Cl2Fy-tqnM,2027
|
73
|
-
dcicutils-8.8.1.
|
74
|
-
dcicutils-8.8.1.
|
75
|
-
dcicutils-8.8.1.
|
76
|
-
dcicutils-8.8.1.
|
77
|
-
dcicutils-8.8.1.
|
73
|
+
dcicutils-8.8.1.1b27.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
74
|
+
dcicutils-8.8.1.1b27.dist-info/METADATA,sha256=10eVXu2Pbsp3riFUY08fAjFnIkywJg2qPNTJqjJ9Noc,3357
|
75
|
+
dcicutils-8.8.1.1b27.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
76
|
+
dcicutils-8.8.1.1b27.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
|
77
|
+
dcicutils-8.8.1.1b27.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|