dcicutils 8.7.2.1b5__py3-none-any.whl → 8.7.2.1b7__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/data_readers.py +9 -1
- dcicutils/portal_object_utils.py +7 -5
- dcicutils/schema_utils.py +3 -1
- dcicutils/scripts/view_portal_object.py +1 -1
- {dcicutils-8.7.2.1b5.dist-info → dcicutils-8.7.2.1b7.dist-info}/METADATA +1 -1
- {dcicutils-8.7.2.1b5.dist-info → dcicutils-8.7.2.1b7.dist-info}/RECORD +9 -9
- {dcicutils-8.7.2.1b5.dist-info → dcicutils-8.7.2.1b7.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.7.2.1b5.dist-info → dcicutils-8.7.2.1b7.dist-info}/WHEEL +0 -0
- {dcicutils-8.7.2.1b5.dist-info → dcicutils-8.7.2.1b7.dist-info}/entry_points.txt +0 -0
dcicutils/data_readers.py
CHANGED
@@ -170,7 +170,15 @@ class Excel:
|
|
170
170
|
if self._workbook is None:
|
171
171
|
self._workbook = openpyxl.load_workbook(self._file, data_only=True)
|
172
172
|
self.sheet_names = [sheet_name for sheet_name in self._workbook.sheetnames
|
173
|
-
if self.
|
173
|
+
if not self.is_hidden_sheet(self._workbook[sheet_name])]
|
174
|
+
|
175
|
+
def is_hidden_sheet(self, sheet: openpyxl.worksheet.worksheet.Worksheet) -> bool:
|
176
|
+
if not self._include_hidden_sheets:
|
177
|
+
if sheet.sheet_state == "hidden":
|
178
|
+
return True
|
179
|
+
if sheet.title.startswith("(") and sheet.title.endswith(")"):
|
180
|
+
return True
|
181
|
+
return False
|
174
182
|
|
175
183
|
def __del__(self) -> None:
|
176
184
|
if (workbook := self._workbook) is not None:
|
dcicutils/portal_object_utils.py
CHANGED
@@ -13,9 +13,11 @@ class PortalObject:
|
|
13
13
|
|
14
14
|
_PROPERTY_DELETION_SENTINEL = RowReader.CELL_DELETION_SENTINEL
|
15
15
|
|
16
|
-
def __init__(self,
|
17
|
-
|
18
|
-
self.
|
16
|
+
def __init__(self, data: dict, portal: Portal = None,
|
17
|
+
schema: Optional[Union[dict, Schema]] = None, type: Optional[str] = None) -> None:
|
18
|
+
self._data = data if isinstance(data, dict) else {}
|
19
|
+
self._portal = portal if isinstance(portal, Portal) else None
|
20
|
+
self._schema = schema if isinstance(schema, dict) else (schema.data if isinstance(schema, Schema) else None)
|
19
21
|
self._type = type if isinstance(type, str) and type else None
|
20
22
|
|
21
23
|
@property
|
@@ -29,7 +31,7 @@ class PortalObject:
|
|
29
31
|
@property
|
30
32
|
@lru_cache(maxsize=1)
|
31
33
|
def type(self) -> Optional[str]:
|
32
|
-
return self._type or Portal.get_schema_type(self._data)
|
34
|
+
return self._type or Portal.get_schema_type(self._data) or (Schema(self._schema).type if self._schema else None)
|
33
35
|
|
34
36
|
@property
|
35
37
|
@lru_cache(maxsize=1)
|
@@ -44,7 +46,7 @@ class PortalObject:
|
|
44
46
|
@property
|
45
47
|
@lru_cache(maxsize=1)
|
46
48
|
def schema(self) -> Optional[dict]:
|
47
|
-
return self._portal.get_schema(self.type) if self._portal else None
|
49
|
+
return self._schema if self._schema else (self._portal.get_schema(self.type) if self._portal else None)
|
48
50
|
|
49
51
|
def copy(self) -> PortalObject:
|
50
52
|
return PortalObject(deepcopy(self.data), portal=self.portal, type=self.type)
|
dcicutils/schema_utils.py
CHANGED
@@ -191,7 +191,9 @@ class Schema:
|
|
191
191
|
|
192
192
|
def __init__(self, schema: dict, type: Optional[str] = None) -> None:
|
193
193
|
self._data = schema if isinstance(schema, dict) else (schema.data if isinstance(schema, Schema) else {})
|
194
|
-
self._type = (type if isinstance(type, str) else "") or
|
194
|
+
self._type = ((type if isinstance(type, str) else "") or
|
195
|
+
Schema.type_name(self._data.get("title", "")) or
|
196
|
+
Schema.type_name(self._data.get("$id", "")))
|
195
197
|
|
196
198
|
@property
|
197
199
|
def data(self) -> dict:
|
@@ -139,7 +139,7 @@ def _get_portal_object(portal: Portal, uuid: str,
|
|
139
139
|
response = portal.get(path, raw=raw, database=database)
|
140
140
|
except Exception as e:
|
141
141
|
if "404" in str(e) and "not found" in str(e).lower():
|
142
|
-
_print("Portal object not found: {uuid}")
|
142
|
+
_print(f"Portal object not found: {uuid}")
|
143
143
|
_exit_without_action()
|
144
144
|
_exit_without_action(f"Exception getting Portal object: {uuid}\n{get_error_message(e)}")
|
145
145
|
if not response:
|
@@ -10,7 +10,7 @@ dcicutils/common.py,sha256=YE8Mt5-vaZWWz4uaChSVhqGFbFtW5QKtnIyOr4zG4vM,3955
|
|
10
10
|
dcicutils/contribution_scripts.py,sha256=0k5Gw1TumcD5SAcXVkDd6-yvuMEw-jUp5Kfb7FJH6XQ,2015
|
11
11
|
dcicutils/contribution_utils.py,sha256=vYLS1JUB3sKd24BUxZ29qUBqYeQBLK9cwo8x3k64uPg,25653
|
12
12
|
dcicutils/creds_utils.py,sha256=xrLekD49Ex0GOpL9n7LlJA4gvNcY7txTVFOSYD7LvEU,11113
|
13
|
-
dcicutils/data_readers.py,sha256=
|
13
|
+
dcicutils/data_readers.py,sha256=A48f7H7upkePpRKfq8bEv1EGM5Jjdes1pyjnreatjh0,6666
|
14
14
|
dcicutils/data_utils.py,sha256=k2OxOlsx7AJ6jF-YNlMyGus_JqSUBe4_n1s65Mv1gQQ,3098
|
15
15
|
dcicutils/datetime_utils.py,sha256=EODDGAngp1yh2ZlDIuI7tB74JBJucw2DljqfPknzK0Y,4666
|
16
16
|
dcicutils/deployment_utils.py,sha256=rcNUFMe_tsrG4CHEtgBe41cZx4Pk4JqISPsjrJRMoEs,68891
|
@@ -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=6QYVsmIVH-GUgZnws0Ob2d-THtiHERETx_OrLKNn0vA,13015
|
50
50
|
dcicutils/portal_utils.py,sha256=WA0KfBYYLXJmG-TVUPbBiwSfI-3phU07F5Fy79cJEWs,27684
|
51
51
|
dcicutils/project_utils.py,sha256=qPdCaFmWUVBJw4rw342iUytwdQC0P-XKpK4mhyIulMM,31250
|
52
52
|
dcicutils/qa_checkers.py,sha256=cdXjeL0jCDFDLT8VR8Px78aS10hwNISOO5G_Zv2TZ6M,20534
|
@@ -54,10 +54,10 @@ dcicutils/qa_utils.py,sha256=TT0SiJWiuxYvbsIyhK9VO4uV_suxhB6CpuC4qPacCzQ,160208
|
|
54
54
|
dcicutils/redis_tools.py,sha256=qkcSNMtvqkpvts-Cm9gWhneK523Q_oHwhNUud1be1qk,7055
|
55
55
|
dcicutils/redis_utils.py,sha256=VJ-7g8pOZqR1ZCtdcjKz3-6as2DMUcs1b1zG6wSprH4,6462
|
56
56
|
dcicutils/s3_utils.py,sha256=LauLFQGvZLfpBJ81tYMikjLd3SJRz2R_FrL1n4xSlyI,28868
|
57
|
-
dcicutils/schema_utils.py,sha256=
|
57
|
+
dcicutils/schema_utils.py,sha256=IhtozG2jQ7bFyn54iPEdmDrHoCf3ryJXeXvPJRBXNn0,10095
|
58
58
|
dcicutils/scripts/publish_to_pypi.py,sha256=LFzNHIQK2EXFr88YcfctyA_WKEBFc1ElnSjWrCXedPM,13889
|
59
59
|
dcicutils/scripts/run_license_checker.py,sha256=z2keYnRDZsHQbTeo1XORAXSXNJK5axVzL5LjiNqZ7jE,4184
|
60
|
-
dcicutils/scripts/view_portal_object.py,sha256=
|
60
|
+
dcicutils/scripts/view_portal_object.py,sha256=QZqNtXIDmgyVZEAYRNSpjCRLPwP-TUyFqcBx2La-nUo,8245
|
61
61
|
dcicutils/secrets_utils.py,sha256=8dppXAsiHhJzI6NmOcvJV5ldvKkQZzh3Fl-cb8Wm7MI,19745
|
62
62
|
dcicutils/sheet_utils.py,sha256=VlmzteONW5VF_Q4vo0yA5vesz1ViUah1MZ_yA1rwZ0M,33629
|
63
63
|
dcicutils/snapshot_utils.py,sha256=ymP7PXH6-yEiXAt75w0ldQFciGNqWBClNxC5gfX2FnY,22961
|
@@ -69,8 +69,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
|
69
69
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
70
70
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
71
71
|
dcicutils/zip_utils.py,sha256=rnjNv_k6L9jT2SjDSgVXp4BEJYLtz9XN6Cl2Fy-tqnM,2027
|
72
|
-
dcicutils-8.7.2.
|
73
|
-
dcicutils-8.7.2.
|
74
|
-
dcicutils-8.7.2.
|
75
|
-
dcicutils-8.7.2.
|
76
|
-
dcicutils-8.7.2.
|
72
|
+
dcicutils-8.7.2.1b7.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
73
|
+
dcicutils-8.7.2.1b7.dist-info/METADATA,sha256=QPMBO-ACtYso8RGVZNhcN3t5o2mDUFvlBviU6Q6bIXk,3356
|
74
|
+
dcicutils-8.7.2.1b7.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
75
|
+
dcicutils-8.7.2.1b7.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
|
76
|
+
dcicutils-8.7.2.1b7.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|