dcicutils 8.8.0.1b14__py3-none-any.whl → 8.8.0.1b15__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- dcicutils/structured_data.py +15 -20
- {dcicutils-8.8.0.1b14.dist-info → dcicutils-8.8.0.1b15.dist-info}/METADATA +1 -1
- {dcicutils-8.8.0.1b14.dist-info → dcicutils-8.8.0.1b15.dist-info}/RECORD +6 -6
- {dcicutils-8.8.0.1b14.dist-info → dcicutils-8.8.0.1b15.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.8.0.1b14.dist-info → dcicutils-8.8.0.1b15.dist-info}/WHEEL +0 -0
- {dcicutils-8.8.0.1b14.dist-info → dcicutils-8.8.0.1b15.dist-info}/entry_points.txt +0 -0
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")
|
@@ -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
|