dcicutils 8.8.0.1b13__py3-none-any.whl → 8.8.0.1b15__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 +6 -1
- dcicutils/structured_data.py +15 -20
- {dcicutils-8.8.0.1b13.dist-info → dcicutils-8.8.0.1b15.dist-info}/METADATA +1 -1
- {dcicutils-8.8.0.1b13.dist-info → dcicutils-8.8.0.1b15.dist-info}/RECORD +7 -7
- {dcicutils-8.8.0.1b13.dist-info → dcicutils-8.8.0.1b15.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.8.0.1b13.dist-info → dcicutils-8.8.0.1b15.dist-info}/WHEEL +0 -0
- {dcicutils-8.8.0.1b13.dist-info → dcicutils-8.8.0.1b15.dist-info}/entry_points.txt +0 -0
dcicutils/data_readers.py
CHANGED
@@ -168,7 +168,12 @@ class Excel:
|
|
168
168
|
|
169
169
|
def open(self) -> None:
|
170
170
|
if self._workbook is None:
|
171
|
-
|
171
|
+
import warnings
|
172
|
+
with warnings.catch_warnings():
|
173
|
+
# Without this warning suppression thing, for some spreadsheets we get this stdout warning:
|
174
|
+
# UserWarning: data validation extension is not supported and will be removed
|
175
|
+
warnings.filterwarnings("ignore", category=UserWarning)
|
176
|
+
self._workbook = openpyxl.load_workbook(self._file, data_only=True)
|
172
177
|
self.sheet_names = [sheet_name for sheet_name in self._workbook.sheetnames
|
173
178
|
if not self.is_hidden_sheet(self._workbook[sheet_name])]
|
174
179
|
|
dcicutils/structured_data.py
CHANGED
@@ -7,7 +7,6 @@ from pyramid.router import Router
|
|
7
7
|
import re
|
8
8
|
import sys
|
9
9
|
import time
|
10
|
-
from tqdm import tqdm
|
11
10
|
from typing import Any, Callable, List, Optional, Tuple, Type, Union
|
12
11
|
from webtest.app import TestApp
|
13
12
|
from dcicutils.common import OrchestratedApp
|
@@ -70,10 +69,9 @@ class StructuredDataSet:
|
|
70
69
|
order: Optional[List[str]] = None, prune: bool = True,
|
71
70
|
ref_lookup_strategy: Optional[Callable] = None,
|
72
71
|
ref_lookup_nocache: bool = False,
|
73
|
-
progress:
|
72
|
+
progress: Optional[Callable] = None,
|
74
73
|
debug_sleep: Optional[str] = None) -> None:
|
75
|
-
|
76
|
-
self._progress = progress
|
74
|
+
self._progress = progress if callable(progress) else None
|
77
75
|
self._data = {}
|
78
76
|
self._portal = Portal(portal, data=self._data, schemas=schemas,
|
79
77
|
ref_lookup_strategy=ref_lookup_strategy,
|
@@ -93,20 +91,15 @@ class StructuredDataSet:
|
|
93
91
|
self._debug_sleep = None
|
94
92
|
self._load_file(file) if file else None
|
95
93
|
|
96
|
-
def
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
elif isinstance(self._progress, tqdm):
|
106
|
-
if amount > 0:
|
107
|
-
self._progress.total += amount
|
108
|
-
elif amount < 0:
|
109
|
-
self._progress.update(-amount)
|
94
|
+
def _progress_update(self, nrows: Union[int, Callable],
|
95
|
+
nrefs_resolved: Optional[int] = None,
|
96
|
+
nrefs_unresolved: Optional[int] = None,
|
97
|
+
nlookups: Optional[int] = None) -> None:
|
98
|
+
if self._progress:
|
99
|
+
if callable(nrows):
|
100
|
+
nrows = nrows()
|
101
|
+
if isinstance(nrows, int) and nrows != 0:
|
102
|
+
self._progress(nrows, nrefs_resolved, nrefs_unresolved, nlookups)
|
110
103
|
|
111
104
|
@property
|
112
105
|
def data(self) -> dict:
|
@@ -259,7 +252,8 @@ class StructuredDataSet:
|
|
259
252
|
for row in excel.sheet_reader(sheet_name):
|
260
253
|
nrows += 1
|
261
254
|
return nrows
|
262
|
-
self.
|
255
|
+
if self._progress:
|
256
|
+
self._progress_update(calculate_total_rows_to_process)
|
263
257
|
excel = Excel(file) # Order the sheet names by any specified ordering (e.g. ala snovault.loadxl).
|
264
258
|
order = {Schema.type_name(key): index for index, key in enumerate(self._order)} if self._order else {}
|
265
259
|
for sheet_name in sorted(excel.sheet_names, key=lambda key: order.get(Schema.type_name(key), sys.maxsize)):
|
@@ -301,7 +295,8 @@ class StructuredDataSet:
|
|
301
295
|
if self._autoadd_properties:
|
302
296
|
self._add_properties(structured_row, self._autoadd_properties, schema)
|
303
297
|
self._add(type_name, structured_row)
|
304
|
-
self.
|
298
|
+
if self._progress:
|
299
|
+
self._progress_update(-1, len(self._resolved_refs), len(self.ref_errors), self.ref_lookup_count)
|
305
300
|
self._note_warning(reader.warnings, "reader")
|
306
301
|
if schema:
|
307
302
|
self._note_error(schema._unresolved_refs, "ref")
|
@@ -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=4VqjTbmm6YtyUQBuxG8J0cpns1fNtzkfo611RmI0Atk,7016
|
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
|
@@ -62,15 +62,15 @@ 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=Xoyz-ig6N6LKkuYP_RNJ-ZTS1BVNX1DnpHe13q_aV5A,53005
|
66
66
|
dcicutils/task_utils.py,sha256=MF8ujmTD6-O2AC2gRGPHyGdUrVKgtr8epT5XU8WtNjk,8082
|
67
67
|
dcicutils/tmpfile_utils.py,sha256=n95XF8dZVbQRSXBZTGToXXfSs3JUVRyN6c3ZZ0nhAWI,1403
|
68
68
|
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.8.0.
|
73
|
-
dcicutils-8.8.0.
|
74
|
-
dcicutils-8.8.0.
|
75
|
-
dcicutils-8.8.0.
|
76
|
-
dcicutils-8.8.0.
|
72
|
+
dcicutils-8.8.0.1b15.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
73
|
+
dcicutils-8.8.0.1b15.dist-info/METADATA,sha256=LYKE0PGwS9Rrc3wl6M8cIreHJj5sMYHSAm2wSSRbmQ8,3357
|
74
|
+
dcicutils-8.8.0.1b15.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
75
|
+
dcicutils-8.8.0.1b15.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
|
76
|
+
dcicutils-8.8.0.1b15.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|