dcicutils 8.8.6.1b12__py3-none-any.whl → 8.8.6.1b14__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/structured_data.py +6 -15
- {dcicutils-8.8.6.1b12.dist-info → dcicutils-8.8.6.1b14.dist-info}/METADATA +1 -1
- {dcicutils-8.8.6.1b12.dist-info → dcicutils-8.8.6.1b14.dist-info}/RECORD +6 -6
- {dcicutils-8.8.6.1b12.dist-info → dcicutils-8.8.6.1b14.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.8.6.1b12.dist-info → dcicutils-8.8.6.1b14.dist-info}/WHEEL +0 -0
- {dcicutils-8.8.6.1b12.dist-info → dcicutils-8.8.6.1b14.dist-info}/entry_points.txt +0 -0
dcicutils/structured_data.py
CHANGED
@@ -11,7 +11,6 @@ from webtest.app import TestApp
|
|
11
11
|
from dcicutils.common import OrchestratedApp
|
12
12
|
from dcicutils.data_readers import CsvReader, Excel, RowReader
|
13
13
|
from dcicutils.datetime_utils import normalize_date_string, normalize_datetime_string
|
14
|
-
from dcicutils.file_utils import search_for_file
|
15
14
|
from dcicutils.misc_utils import (create_dict, create_readonly_object, is_uuid, load_json_if,
|
16
15
|
merge_objects, remove_empty_properties, right_trim, split_string,
|
17
16
|
to_boolean, to_enum, to_float, to_integer, VirtualApp)
|
@@ -209,14 +208,6 @@ class StructuredDataSet:
|
|
209
208
|
result.append({"type": type_name, "file": file_name})
|
210
209
|
return result
|
211
210
|
|
212
|
-
def upload_files_located(self,
|
213
|
-
location: Union[str, Optional[List[str]]] = None, recursive: bool = False) -> List[str]:
|
214
|
-
upload_files = copy.deepcopy(self.upload_files)
|
215
|
-
for upload_file in upload_files:
|
216
|
-
if file_path := search_for_file(upload_file["file"], location, recursive=recursive, single=True):
|
217
|
-
upload_file["path"] = file_path
|
218
|
-
return upload_files
|
219
|
-
|
220
211
|
@property
|
221
212
|
def nrows(self) -> int:
|
222
213
|
return self._nrows
|
@@ -351,20 +342,20 @@ class StructuredDataSet:
|
|
351
342
|
|
352
343
|
def _load_json_file(self, file: str) -> None:
|
353
344
|
with open(file) as f:
|
354
|
-
|
345
|
+
data = json.load(f)
|
355
346
|
if ((schema_name_inferred_from_file_name := Schema.type_name(file)) and
|
356
347
|
(self._portal.get_schema(schema_name_inferred_from_file_name) is not None)): # noqa
|
357
348
|
# If the JSON file name looks like a schema name then assume it
|
358
349
|
# contains an object or an array of object of that schema type.
|
359
350
|
if self._merge:
|
360
|
-
|
361
|
-
self._add(Schema.type_name(file),
|
362
|
-
elif isinstance(
|
351
|
+
data = self._merge_with_existing_portal_object(data, schema_name_inferred_from_file_name)
|
352
|
+
self._add(Schema.type_name(file), data)
|
353
|
+
elif isinstance(data, dict):
|
363
354
|
# Otherwise if the JSON file name does not look like a schema name then
|
364
355
|
# assume it a dictionary where each property is the name of a schema, and
|
365
356
|
# which (each property) contains a list of object of that schema type.
|
366
|
-
for schema_name in
|
367
|
-
item =
|
357
|
+
for schema_name in data:
|
358
|
+
item = data[schema_name]
|
368
359
|
if self._merge:
|
369
360
|
item = self._merge_with_existing_portal_object(item, schema_name)
|
370
361
|
self._add(schema_name, item)
|
@@ -64,7 +64,7 @@ dcicutils/secrets_utils.py,sha256=8dppXAsiHhJzI6NmOcvJV5ldvKkQZzh3Fl-cb8Wm7MI,19
|
|
64
64
|
dcicutils/sheet_utils.py,sha256=VlmzteONW5VF_Q4vo0yA5vesz1ViUah1MZ_yA1rwZ0M,33629
|
65
65
|
dcicutils/snapshot_utils.py,sha256=ymP7PXH6-yEiXAt75w0ldQFciGNqWBClNxC5gfX2FnY,22961
|
66
66
|
dcicutils/ssl_certificate_utils.py,sha256=F0ifz_wnRRN9dfrfsz7aCp4UDLgHEY8LaK7PjnNvrAQ,9707
|
67
|
-
dcicutils/structured_data.py,sha256=
|
67
|
+
dcicutils/structured_data.py,sha256=GfG96VyFwQIkmUax-ZdEzbWnfEiJxmeZEaUWz78IQZY,64030
|
68
68
|
dcicutils/submitr/progress_constants.py,sha256=5bxyX77ql8qEJearfHEvsvXl7D0GuUODW0T65mbRmnE,2895
|
69
69
|
dcicutils/submitr/ref_lookup_strategy.py,sha256=VJN-Oo0LLna6Vo2cu47eC-eU-yUC9NFlQP29xajejVU,4741
|
70
70
|
dcicutils/task_utils.py,sha256=MF8ujmTD6-O2AC2gRGPHyGdUrVKgtr8epT5XU8WtNjk,8082
|
@@ -73,8 +73,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
|
73
73
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
74
74
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
75
75
|
dcicutils/zip_utils.py,sha256=_Y9EmL3D2dUZhxucxHvrtmmlbZmK4FpSsHEb7rGSJLU,3265
|
76
|
-
dcicutils-8.8.6.
|
77
|
-
dcicutils-8.8.6.
|
78
|
-
dcicutils-8.8.6.
|
79
|
-
dcicutils-8.8.6.
|
80
|
-
dcicutils-8.8.6.
|
76
|
+
dcicutils-8.8.6.1b14.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
77
|
+
dcicutils-8.8.6.1b14.dist-info/METADATA,sha256=N8O0UIPFjCjW1EOlZh7L88wU4DJdSugNJpbJmDa6lRo,3440
|
78
|
+
dcicutils-8.8.6.1b14.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
79
|
+
dcicutils-8.8.6.1b14.dist-info/entry_points.txt,sha256=51Q4F_2V10L0282W7HFjP4jdzW4K8lnWDARJQVFy_hw,270
|
80
|
+
dcicutils-8.8.6.1b14.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|