dcicutils 8.8.6.1b6__tar.gz → 8.8.6.1b8__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/PKG-INFO +1 -1
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/portal_object_utils.py +2 -5
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/portal_utils.py +6 -10
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/pyproject.toml +1 -1
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/LICENSE.txt +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/README.rst +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/__init__.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/base.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/beanstalk_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/bundle_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/captured_output.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/cloudformation_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/codebuild_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/command_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/common.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/contribution_scripts.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/contribution_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/creds_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/data_readers.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/data_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/datetime_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/deployment_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/diff_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/docker_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/ecr_scripts.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/ecr_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/ecs_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/env_base.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/env_manager.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/env_scripts.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/env_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/env_utils_legacy.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/es_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/exceptions.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/ff_mocks.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/ff_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/file_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/function_cache_decorator.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/glacier_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/http_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/jh_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/kibana/dashboards.json +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/kibana/readme.md +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/lang_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/c4-infrastructure.jsonc +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/c4-python-infrastructure.jsonc +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-common-server.jsonc +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-common.jsonc +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-gpl-pipeline.jsonc +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-pipeline.jsonc +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/log_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/misc_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/obfuscation_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/opensearch_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/progress_bar.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/project_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/qa_checkers.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/qa_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/redis_tools.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/redis_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/s3_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/schema_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/scripts/publish_to_pypi.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/scripts/run_license_checker.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/scripts/view_portal_object.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/secrets_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/sheet_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/snapshot_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/ssl_certificate_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/structured_data.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/submitr/progress_constants.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/submitr/ref_lookup_strategy.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/task_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/tmpfile_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/trace_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/validation_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/variant_utils.py +0 -0
- {dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/zip_utils.py +0 -0
@@ -145,15 +145,12 @@ class PortalObject:
|
|
145
145
|
return diffs
|
146
146
|
|
147
147
|
@lru_cache(maxsize=1)
|
148
|
-
def _get_identifying_paths(self,
|
149
|
-
ref_lookup_strategy: Optional[Callable] = None) -> Optional[List[str]]:
|
148
|
+
def _get_identifying_paths(self, ref_lookup_strategy: Optional[Callable] = None) -> Optional[List[str]]:
|
150
149
|
if not self._portal and (uuid := self.uuid):
|
151
|
-
if all is True and (type := self.type):
|
152
|
-
return [f"/{type}/{uuid}", f"/{uuid}"]
|
153
150
|
return [f"/{uuid}"]
|
154
151
|
# Migrating to and unifying this in portal_utils.Portal.get_identifying_paths (2024-05-26).
|
155
152
|
return self._portal.get_identifying_paths(self._data,
|
156
|
-
portal_type=self.schema,
|
153
|
+
portal_type=self.schema,
|
157
154
|
lookup_strategy=ref_lookup_strategy) if self._portal else None
|
158
155
|
|
159
156
|
def _normalized_refs(self, refs: List[dict]) -> Tuple[PortalObject, int]:
|
@@ -407,7 +407,7 @@ class Portal:
|
|
407
407
|
|
408
408
|
@function_cache(maxsize=100, serialize_key=True)
|
409
409
|
def get_identifying_paths(self, portal_object: dict, portal_type: Optional[Union[str, dict]] = None,
|
410
|
-
|
410
|
+
lookup_strategy: Optional[Union[Callable, bool]] = None) -> List[str]:
|
411
411
|
"""
|
412
412
|
Returns the list of the identifying Portal (URL) paths for the given Portal object. Favors any uuid
|
413
413
|
and identifier based paths and defavors aliases based paths (ala self.get_identifying_property_names);
|
@@ -467,20 +467,16 @@ class Portal:
|
|
467
467
|
# And note the disction of just using /{uuid} here rather than /{type}/{uuid} as in the else
|
468
468
|
# statement below is not really necessary; just here for emphasis that this is all that's needed.
|
469
469
|
#
|
470
|
-
if all is True:
|
471
|
-
results.append(f"/{portal_type}/{identifying_value}")
|
472
470
|
results.append(f"/{identifying_value}")
|
473
471
|
elif isinstance(identifying_value, list):
|
474
472
|
for identifying_value_item in identifying_value:
|
475
473
|
if identifying_value_item:
|
476
474
|
results.append(f"/{portal_type}/{identifying_value_item}")
|
477
|
-
if all is True:
|
478
|
-
results.append(f"/{identifying_value_item}")
|
479
475
|
else:
|
480
476
|
lookup_options = Portal.LOOKUP_UNDEFINED
|
481
477
|
if schema := self.get_schema(portal_type):
|
482
478
|
if callable(lookup_strategy):
|
483
|
-
lookup_options, validator = lookup_strategy(self,
|
479
|
+
lookup_options, validator = lookup_strategy(self, portal_type, schema, identifying_value)
|
484
480
|
if callable(validator):
|
485
481
|
if validator(schema, identifying_property, identifying_value) is False:
|
486
482
|
continue
|
@@ -494,12 +490,12 @@ class Portal:
|
|
494
490
|
lookup_options = Portal.LOOKUP_DEFAULT
|
495
491
|
if is_lookup_root_first(lookup_options):
|
496
492
|
results.append(f"/{identifying_value}")
|
497
|
-
if is_lookup_specified_type(lookup_options) and
|
498
|
-
results.append(f"/{
|
493
|
+
if is_lookup_specified_type(lookup_options) and portal_type:
|
494
|
+
results.append(f"/{portal_type}/{identifying_value}")
|
499
495
|
if is_lookup_root(lookup_options) and not is_lookup_root_first(lookup_options):
|
500
496
|
results.append(f"/{identifying_value}")
|
501
497
|
if is_lookup_subtypes(lookup_options):
|
502
|
-
for subtype_name in self.get_schema_subtype_names(
|
498
|
+
for subtype_name in self.get_schema_subtype_names(portal_type):
|
503
499
|
results.append(f"/{subtype_name}/{identifying_value}")
|
504
500
|
return results
|
505
501
|
|
@@ -542,7 +538,7 @@ class Portal:
|
|
542
538
|
@staticmethod
|
543
539
|
def _lookup_strategy(portal: Portal, type_name: str, schema: dict, value: str) -> (int, Optional[str]):
|
544
540
|
#
|
545
|
-
# Note this
|
541
|
+
# Note this slightly odd situation WRT object lookups by submitted_id and accession:
|
546
542
|
# -----------------------------+-----------------------------------------------+---------------+
|
547
543
|
# PATH | EXAMPLE | LOOKUP RESULT |
|
548
544
|
# -----------------------------+-----------------------------------------------+---------------+
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/c4-infrastructure.jsonc
RENAMED
File without changes
|
File without changes
|
{dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-common-server.jsonc
RENAMED
File without changes
|
{dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-common.jsonc
RENAMED
File without changes
|
{dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-gpl-pipeline.jsonc
RENAMED
File without changes
|
{dcicutils-8.8.6.1b6 → dcicutils-8.8.6.1b8}/dcicutils/license_policies/park-lab-pipeline.jsonc
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|