dcicutils 8.7.0.1b24__py3-none-any.whl → 8.7.0.1b26__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_utils.py +7 -5
- dcicutils/structured_data.py +10 -0
- {dcicutils-8.7.0.1b24.dist-info → dcicutils-8.7.0.1b26.dist-info}/METADATA +1 -1
- {dcicutils-8.7.0.1b24.dist-info → dcicutils-8.7.0.1b26.dist-info}/RECORD +7 -7
- {dcicutils-8.7.0.1b24.dist-info → dcicutils-8.7.0.1b26.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.7.0.1b24.dist-info → dcicutils-8.7.0.1b26.dist-info}/WHEEL +0 -0
- {dcicutils-8.7.0.1b24.dist-info → dcicutils-8.7.0.1b26.dist-info}/entry_points.txt +0 -0
dcicutils/portal_utils.py
CHANGED
@@ -69,8 +69,8 @@ class Portal:
|
|
69
69
|
self._keys_file = portal._keys_file
|
70
70
|
self._env = portal._env
|
71
71
|
self._server = portal._server
|
72
|
-
self._app = portal._app
|
73
72
|
self._vapp = portal._vapp
|
73
|
+
self._app = portal._app
|
74
74
|
|
75
75
|
def init_from_vapp(vapp: Union[TestApp, VirtualApp, PyramidRouter], unspecified: Optional[list] = []) -> None:
|
76
76
|
init(unspecified=unspecified)
|
@@ -145,9 +145,9 @@ class Portal:
|
|
145
145
|
server = server[:-1]
|
146
146
|
return prefix + server if server else None
|
147
147
|
|
148
|
-
if app and not (
|
148
|
+
if (valid_app := app) and not (valid_app := Portal._valid_app(app)):
|
149
149
|
raise Exception(f"Portal init error; invalid app: {app}")
|
150
|
-
self._app =
|
150
|
+
self._app = valid_app
|
151
151
|
if isinstance(arg, Portal):
|
152
152
|
init_from_portal(arg, unspecified=[env, server, app])
|
153
153
|
elif isinstance(arg, (TestApp, VirtualApp, PyramidRouter)):
|
@@ -298,6 +298,8 @@ class Portal:
|
|
298
298
|
"""
|
299
299
|
if isinstance(schema_name_or_object, dict):
|
300
300
|
return self.isinstance_schema(schema_name_or_object, target_schema_name)
|
301
|
+
elif not isinstance(schema_name_or_object, str) or not schema_name_or_object:
|
302
|
+
return False
|
301
303
|
schema_name = self.schema_name(schema_name_or_object).lower()
|
302
304
|
target_schema_name = self.schema_name(target_schema_name).lower()
|
303
305
|
if schema_name == target_schema_name:
|
@@ -341,8 +343,8 @@ class Portal:
|
|
341
343
|
"""
|
342
344
|
Returns the "super type map" for all of the known schemas (via /profiles).
|
343
345
|
This is a dictionary with property names which are all known schema type names which
|
344
|
-
have (one or more) sub-types, and the value each such property name is an array
|
345
|
-
all of those sub-types (direct and all descendents), in breadth first order.
|
346
|
+
have (one or more) sub-types, and the value of each such property name is an array
|
347
|
+
of all of those sub-types (direct and all descendents), in breadth first order.
|
346
348
|
"""
|
347
349
|
def list_breadth_first(super_type_map: dict, super_type_name: str) -> dict:
|
348
350
|
result = []
|
dcicutils/structured_data.py
CHANGED
@@ -602,12 +602,22 @@ class Portal(PortalBase):
|
|
602
602
|
resolved = []
|
603
603
|
if self._ref_exists_single(type_name, value):
|
604
604
|
resolved.append(type_name)
|
605
|
+
# TODO: Added this return on 2024-01-14 (dmichaels).
|
606
|
+
# Why did I orginally check for multiple existing values?
|
607
|
+
# Why not just return right away if I find that the ref exists?
|
608
|
+
# Getting multiple values because, for example, we find
|
609
|
+
# both this /Sample/UW_CELL-CULTURE-SAMPLE_COLO-829BL_HI-C_1
|
610
|
+
# and /CellSample/UW_CELL-CULTURE-SAMPLE_COLO-829BL_HI-C_1
|
611
|
+
# Why does that matter at all? Same thing.
|
612
|
+
return resolved
|
605
613
|
# Check for the given ref in all sub-types of the given type.
|
606
614
|
if (schemas_super_type_map := self.get_schemas_super_type_map()):
|
607
615
|
if (sub_type_names := schemas_super_type_map.get(type_name)):
|
608
616
|
for sub_type_name in sub_type_names:
|
609
617
|
if self._ref_exists_single(sub_type_name, value):
|
610
618
|
resolved.append(type_name)
|
619
|
+
# TODO: Added this return on 2024-01-14 (dmichaels). See above TODO.
|
620
|
+
return resolved
|
611
621
|
return resolved
|
612
622
|
|
613
623
|
def _ref_exists_single(self, type_name: str, value: str) -> bool:
|
@@ -43,7 +43,7 @@ dcicutils/log_utils.py,sha256=7pWMc6vyrorUZQf-V-M3YC6zrPgNhuV_fzm9xqTPph0,10883
|
|
43
43
|
dcicutils/misc_utils.py,sha256=bMRWWxdbhuF3PKdCZEH-H4U1ecgT3Nag3EL92D9XGoY,100973
|
44
44
|
dcicutils/obfuscation_utils.py,sha256=fo2jOmDRC6xWpYX49u80bVNisqRRoPskFNX3ymFAmjw,5963
|
45
45
|
dcicutils/opensearch_utils.py,sha256=V2exmFYW8Xl2_pGFixF4I2Cc549Opwe4PhFi5twC0M8,1017
|
46
|
-
dcicutils/portal_utils.py,sha256=
|
46
|
+
dcicutils/portal_utils.py,sha256=sO5S8a2g-fIwC_Spdy7aBpmDjVbijCrtU-mpd8YrZog,25864
|
47
47
|
dcicutils/project_utils.py,sha256=qPdCaFmWUVBJw4rw342iUytwdQC0P-XKpK4mhyIulMM,31250
|
48
48
|
dcicutils/qa_checkers.py,sha256=cdXjeL0jCDFDLT8VR8Px78aS10hwNISOO5G_Zv2TZ6M,20534
|
49
49
|
dcicutils/qa_utils.py,sha256=TT0SiJWiuxYvbsIyhK9VO4uV_suxhB6CpuC4qPacCzQ,160208
|
@@ -57,15 +57,15 @@ dcicutils/secrets_utils.py,sha256=8dppXAsiHhJzI6NmOcvJV5ldvKkQZzh3Fl-cb8Wm7MI,19
|
|
57
57
|
dcicutils/sheet_utils.py,sha256=VlmzteONW5VF_Q4vo0yA5vesz1ViUah1MZ_yA1rwZ0M,33629
|
58
58
|
dcicutils/snapshot_utils.py,sha256=ymP7PXH6-yEiXAt75w0ldQFciGNqWBClNxC5gfX2FnY,22961
|
59
59
|
dcicutils/ssl_certificate_utils.py,sha256=F0ifz_wnRRN9dfrfsz7aCp4UDLgHEY8LaK7PjnNvrAQ,9707
|
60
|
-
dcicutils/structured_data.py,sha256
|
60
|
+
dcicutils/structured_data.py,sha256=-QcaVVbta9t5hIXVO0yKMDs8jQyrpvuEET0WFFkNFSM,33582
|
61
61
|
dcicutils/task_utils.py,sha256=MF8ujmTD6-O2AC2gRGPHyGdUrVKgtr8epT5XU8WtNjk,8082
|
62
62
|
dcicutils/tmpfile_utils.py,sha256=n95XF8dZVbQRSXBZTGToXXfSs3JUVRyN6c3ZZ0nhAWI,1403
|
63
63
|
dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
64
64
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
65
65
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
66
66
|
dcicutils/zip_utils.py,sha256=rnjNv_k6L9jT2SjDSgVXp4BEJYLtz9XN6Cl2Fy-tqnM,2027
|
67
|
-
dcicutils-8.7.0.
|
68
|
-
dcicutils-8.7.0.
|
69
|
-
dcicutils-8.7.0.
|
70
|
-
dcicutils-8.7.0.
|
71
|
-
dcicutils-8.7.0.
|
67
|
+
dcicutils-8.7.0.1b26.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
68
|
+
dcicutils-8.7.0.1b26.dist-info/METADATA,sha256=Qq3W6hpTaEuDnAAZpv0NFpmBHPra6gzi9Uo6tCciBjw,3315
|
69
|
+
dcicutils-8.7.0.1b26.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
70
|
+
dcicutils-8.7.0.1b26.dist-info/entry_points.txt,sha256=8wbw5csMIgBXhkwfgsgJeuFcoUc0WsucUxmOyml2aoA,209
|
71
|
+
dcicutils-8.7.0.1b26.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|