dcicutils 8.7.0.1b31__tar.gz → 8.7.0.1b33__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/PKG-INFO +1 -1
  2. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/file_utils.py +12 -10
  3. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/portal_object_utils.py +13 -9
  4. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/structured_data.py +1 -1
  5. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/pyproject.toml +1 -1
  6. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/LICENSE.txt +0 -0
  7. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/README.rst +0 -0
  8. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/__init__.py +0 -0
  9. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/base.py +0 -0
  10. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/beanstalk_utils.py +0 -0
  11. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/bundle_utils.py +0 -0
  12. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/cloudformation_utils.py +0 -0
  13. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/codebuild_utils.py +0 -0
  14. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/command_utils.py +0 -0
  15. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/common.py +0 -0
  16. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/contribution_scripts.py +0 -0
  17. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/contribution_utils.py +0 -0
  18. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/creds_utils.py +0 -0
  19. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/data_readers.py +0 -0
  20. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/data_utils.py +0 -0
  21. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/deployment_utils.py +0 -0
  22. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/diff_utils.py +0 -0
  23. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/docker_utils.py +0 -0
  24. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/ecr_scripts.py +0 -0
  25. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/ecr_utils.py +0 -0
  26. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/ecs_utils.py +0 -0
  27. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/env_base.py +0 -0
  28. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/env_manager.py +0 -0
  29. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/env_scripts.py +0 -0
  30. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/env_utils.py +0 -0
  31. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/env_utils_legacy.py +0 -0
  32. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/es_utils.py +0 -0
  33. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/exceptions.py +0 -0
  34. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/ff_mocks.py +0 -0
  35. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/ff_utils.py +0 -0
  36. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/function_cache_decorator.py +0 -0
  37. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/glacier_utils.py +0 -0
  38. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/jh_utils.py +0 -0
  39. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/kibana/dashboards.json +0 -0
  40. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/kibana/readme.md +0 -0
  41. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/lang_utils.py +0 -0
  42. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_policies/c4-infrastructure.jsonc +0 -0
  43. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_policies/c4-python-infrastructure.jsonc +0 -0
  44. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_policies/park-lab-common-server.jsonc +0 -0
  45. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_policies/park-lab-common.jsonc +0 -0
  46. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_policies/park-lab-gpl-pipeline.jsonc +0 -0
  47. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_policies/park-lab-pipeline.jsonc +0 -0
  48. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/license_utils.py +0 -0
  49. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/log_utils.py +0 -0
  50. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/misc_utils.py +0 -0
  51. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/obfuscation_utils.py +0 -0
  52. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/opensearch_utils.py +0 -0
  53. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/portal_utils.py +0 -0
  54. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/project_utils.py +0 -0
  55. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/qa_checkers.py +0 -0
  56. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/qa_utils.py +0 -0
  57. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/redis_tools.py +0 -0
  58. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/redis_utils.py +0 -0
  59. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/s3_utils.py +0 -0
  60. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/schema_utils.py +0 -0
  61. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/scripts/publish_to_pypi.py +0 -0
  62. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/scripts/run_license_checker.py +0 -0
  63. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/secrets_utils.py +0 -0
  64. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/sheet_utils.py +0 -0
  65. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/snapshot_utils.py +0 -0
  66. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/ssl_certificate_utils.py +0 -0
  67. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/task_utils.py +0 -0
  68. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/tmpfile_utils.py +0 -0
  69. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/trace_utils.py +0 -0
  70. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/validation_utils.py +0 -0
  71. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/variant_utils.py +0 -0
  72. {dcicutils-8.7.0.1b31 → dcicutils-8.7.0.1b33}/dcicutils/zip_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dcicutils
3
- Version: 8.7.0.1b31
3
+ Version: 8.7.0.1b33
4
4
  Summary: Utility package for interacting with the 4DN Data Portal and other 4DN resources
5
5
  Home-page: https://github.com/4dn-dcic/utils
6
6
  License: MIT
@@ -6,19 +6,21 @@ from typing import List, Optional, Union
6
6
 
7
7
  def search_for_file(file: str,
8
8
  location: Union[str, Optional[List[str]]] = None,
9
- multiple: bool = True,
10
- recursive: bool = False) -> Union[List[str], Optional[str]]:
9
+ recursive: bool = False,
10
+ single: bool = False) -> Union[List[str], Optional[str]]:
11
11
  """
12
- Searches for the actual existence of the given file name, first in the given directory of list
12
+ Searches for the existence of the given file name, first directly in the given directory or list
13
13
  of directories, if specified, and if not then just in the current (working) directory; if the
14
14
  given recursive flag is True then also searches all sub-directories of these directories;
15
- returns the full path name to the file if found, otherwise None is returned.
15
+ returns the full path name to the file if found. If the single flag is True then just the
16
+ first file which is found is returns (as a string), or None if none; if the single flag
17
+ is False, then all matched files are returned in a list, or and empty list if none.
16
18
  """
17
19
  if file and isinstance(file, (str, pathlib.PosixPath)):
18
20
  if os.path.isabs(file):
19
21
  if os.path.exists(file):
20
- return file if not multiple else [file]
21
- return None if not multiple else []
22
+ return file if single else [file]
23
+ return None if single else []
22
24
  files_found = []
23
25
  if not location:
24
26
  location = ["."]
@@ -29,7 +31,7 @@ def search_for_file(file: str,
29
31
  for directory in location:
30
32
  if isinstance(directory, (str, pathlib.PosixPath)) and os.path.exists(os.path.join(directory, file)):
31
33
  file_found = os.path.abspath(os.path.normpath(os.path.join(directory, file)))
32
- if not multiple:
34
+ if single:
33
35
  return file_found
34
36
  if file_found not in files_found:
35
37
  files_found.append(file_found)
@@ -43,10 +45,10 @@ def search_for_file(file: str,
43
45
  if files:
44
46
  for file_found in files:
45
47
  file_found = os.path.abspath(file_found)
46
- if not multiple:
48
+ if single:
47
49
  return file_found
48
50
  if file_found not in files_found:
49
51
  files_found.append(file_found)
50
52
  if files_found:
51
- return files_found[0] if not multiple else files_found
52
- return None if not multiple else []
53
+ return files_found[0] if single else files_found
54
+ return None if single else []
@@ -8,9 +8,13 @@ class PortalObject:
8
8
 
9
9
  def __init__(self, portal: Portal, portal_object: dict, portal_object_type: Optional[str] = None) -> None:
10
10
  self._portal = portal
11
- self._object = portal_object
11
+ self._data = portal_object
12
12
  self._type = portal_object_type if isinstance(portal_object_type, str) and portal_object_type else None
13
13
 
14
+ @property
15
+ def data(self):
16
+ return self._data
17
+
14
18
  @property
15
19
  @lru_cache(maxsize=1)
16
20
  def schema(self):
@@ -19,12 +23,12 @@ class PortalObject:
19
23
  @property
20
24
  @lru_cache(maxsize=1)
21
25
  def schema_type(self):
22
- return self._type or Portal.get_schema_type(self._object)
26
+ return self._type or Portal.get_schema_type(self._data)
23
27
 
24
28
  @property
25
29
  @lru_cache(maxsize=1)
26
30
  def schema_types(self):
27
- return self._type or Portal.get_schema_types(self._object)
31
+ return self._type or Portal.get_schema_types(self._data)
28
32
 
29
33
  @property
30
34
  @lru_cache(maxsize=1)
@@ -36,7 +40,7 @@ class PortalObject:
36
40
  @property
37
41
  @lru_cache(maxsize=1)
38
42
  def uuid(self) -> Optional[str]:
39
- return PortalObject.get_uuid(self._object)
43
+ return PortalObject.get_uuid(self._data)
40
44
 
41
45
  @staticmethod
42
46
  def get_uuid(portal_object: dict) -> Optional[str]:
@@ -53,13 +57,13 @@ class PortalObject:
53
57
  identifying_properties = []
54
58
  for identifying_property in self.schema_identifying_properties:
55
59
  if identifying_property not in ["uuid", "identifier", "aliases"]:
56
- if self._object.get(identifying_property):
60
+ if self._data.get(identifying_property):
57
61
  identifying_properties.append(identifying_property)
58
- if self._object.get("identifier"):
62
+ if self._data.get("identifier"):
59
63
  identifying_properties.insert(0, "identifier")
60
- if self._object.get("uuid"):
64
+ if self._data.get("uuid"):
61
65
  identifying_properties.insert(0, "uuid")
62
- if "aliases" in self.schema_identifying_properties and self._object.get("aliases"):
66
+ if "aliases" in self.schema_identifying_properties and self._data.get("aliases"):
63
67
  identifying_properties.append("aliases")
64
68
  return identifying_properties
65
69
 
@@ -73,7 +77,7 @@ class PortalObject:
73
77
  return []
74
78
  identifying_paths = []
75
79
  for identifying_property in identifying_properties:
76
- if (identifying_value := self._object.get(identifying_property)):
80
+ if (identifying_value := self._data.get(identifying_property)):
77
81
  if identifying_property == "uuid":
78
82
  identifying_paths.append(f"/{identifying_value}")
79
83
  # For now at least we include the path both with and without the schema type component
@@ -116,7 +116,7 @@ class StructuredDataSet:
116
116
  location: Union[str, Optional[List[str]]] = None, recursive: bool = False) -> List[str]:
117
117
  upload_files = copy.deepcopy(self.upload_files)
118
118
  for upload_file in upload_files:
119
- if file_path := search_for_file(upload_file["file"], location, multiple=False, recursive=recursive):
119
+ if file_path := search_for_file(upload_file["file"], location, recursive=recursive, single=True):
120
120
  upload_file["path"] = file_path
121
121
  return upload_files
122
122
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "dcicutils"
3
- version = "8.7.0.1b31" # TODO: To become 8.7.1
3
+ version = "8.7.0.1b33" # TODO: To become 8.7.1
4
4
  description = "Utility package for interacting with the 4DN Data Portal and other 4DN resources"
5
5
  authors = ["4DN-DCIC Team <support@4dnucleome.org>"]
6
6
  license = "MIT"