dcicutils 8.14.0.1b11__py3-none-any.whl → 8.14.0.1b13__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/scripts/update_portal_object.py +39 -18
- {dcicutils-8.14.0.1b11.dist-info → dcicutils-8.14.0.1b13.dist-info}/METADATA +1 -1
- {dcicutils-8.14.0.1b11.dist-info → dcicutils-8.14.0.1b13.dist-info}/RECORD +6 -6
- {dcicutils-8.14.0.1b11.dist-info → dcicutils-8.14.0.1b13.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.14.0.1b11.dist-info → dcicutils-8.14.0.1b13.dist-info}/WHEEL +0 -0
- {dcicutils-8.14.0.1b11.dist-info → dcicutils-8.14.0.1b13.dist-info}/entry_points.txt +0 -0
@@ -123,7 +123,8 @@ def main():
|
|
123
123
|
parser.add_argument("--post", type=str, required=False, default=None, help="POST data.")
|
124
124
|
parser.add_argument("--patch", type=str, required=False, default=None, help="PATCH data.")
|
125
125
|
parser.add_argument("--upsert", type=str, required=False, default=None, help="Upsert data.")
|
126
|
-
parser.add_argument("--load", type=str, required=False, default=None,
|
126
|
+
parser.add_argument("--load", "--loadxl", type=str, required=False, default=None,
|
127
|
+
help="Load data via snovault.loadxl.")
|
127
128
|
parser.add_argument("--ini", type=str, required=False, default=None, help="INI file for data via snovault.loadxl.")
|
128
129
|
parser.add_argument("--delete", type=str, required=False, default=None, help="Delete data.")
|
129
130
|
parser.add_argument("--purge", type=str, required=False, default=None, help="Purge data.")
|
@@ -159,11 +160,12 @@ def main():
|
|
159
160
|
"when using the --load option (to load data via snovault.loadxl).")
|
160
161
|
exit(1)
|
161
162
|
if args.env:
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
_load_data(load=args.load, ini_file=args.ini,
|
166
|
-
|
163
|
+
if args.ini:
|
164
|
+
_print("The --env is not used for the --load option (to load data via snovault.loadxl).")
|
165
|
+
args.ini = args.env
|
166
|
+
if not _load_data(load=args.load, ini_file=args.ini, explicit_schema_name=args.schema,
|
167
|
+
verbose=args.verbose, debug=args.debug, noprogress=args.noprogress):
|
168
|
+
exit(1)
|
167
169
|
exit(0)
|
168
170
|
|
169
171
|
portal = _create_portal(env=args.env, app=app, verbose=args.verbose, debug=args.debug)
|
@@ -171,7 +173,7 @@ def main():
|
|
171
173
|
if explicit_schema_name := args.schema:
|
172
174
|
schema, explicit_schema_name = _get_schema(portal, explicit_schema_name)
|
173
175
|
if not schema:
|
174
|
-
usage(f"
|
176
|
+
usage(f"Unknown specified schema name: {args.schema}")
|
175
177
|
|
176
178
|
if args.post:
|
177
179
|
_post_or_patch_or_upsert(portal=portal,
|
@@ -401,7 +403,8 @@ def _upsert_data(portal: Portal, data: dict, schema_name: str,
|
|
401
403
|
|
402
404
|
|
403
405
|
def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = None,
|
404
|
-
verbose: bool = False, debug: bool = False, noprogress: bool = False
|
406
|
+
verbose: bool = False, debug: bool = False, noprogress: bool = False,
|
407
|
+
_portal: Optional[Portal] = None, _single_insert_file: Optional[str] = None) -> bool:
|
405
408
|
|
406
409
|
from snovault.loadxl import load_all_gen, LoadGenWrapper
|
407
410
|
from dcicutils.captured_output import captured_output
|
@@ -411,7 +414,7 @@ def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = N
|
|
411
414
|
|
412
415
|
nonlocal LoadGenWrapper, load_all_gen, verbose, debug
|
413
416
|
progress_total = sum(schema_names_to_load.values()) * 2 # loadxl does two passes
|
414
|
-
progress_bar = ProgressBar(progress_total) if not noprogress else None
|
417
|
+
progress_bar = ProgressBar(progress_total, interrupt_exit=True) if not noprogress else None
|
415
418
|
|
416
419
|
def decode_bytes(str_or_bytes: Union[str, bytes], *, encoding: str = "utf-8") -> str:
|
417
420
|
if not isinstance(encoding, str):
|
@@ -477,9 +480,9 @@ def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = N
|
|
477
480
|
inserts_directory = None
|
478
481
|
inserts_file = load
|
479
482
|
|
480
|
-
portal
|
481
|
-
|
482
|
-
|
483
|
+
if not (portal := _portal):
|
484
|
+
with captured_output(not debug):
|
485
|
+
portal = Portal(ini_file)
|
483
486
|
|
484
487
|
if inserts_file:
|
485
488
|
with io.open(inserts_file, "r") as f:
|
@@ -493,14 +496,25 @@ def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = N
|
|
493
496
|
if not (schema_name := _get_schema_name_from_schema_named_json_file_name(portal, inserts_file)):
|
494
497
|
_print("Unable to determine schema name for JSON data file: {inserts_file}")
|
495
498
|
return False
|
499
|
+
elif not (schema_name := _get_schema(portal, explicit_schema_name)[1]):
|
500
|
+
_print(f"Unknown specified schema name: {explicit_schema_name}")
|
501
|
+
return False
|
496
502
|
with temporary_directory() as tmpdir:
|
497
503
|
file_name = os.path.join(tmpdir, f"{to_snake_case(schema_name)}.json")
|
498
504
|
with io.open(file_name, "w") as f:
|
499
505
|
json.dump(data, f)
|
500
|
-
return _load_data(load=tmpdir, ini_file=ini_file, explicit_schema_name=
|
501
|
-
verbose=verbose, debug=debug, noprogress=noprogress
|
506
|
+
return _load_data(load=tmpdir, ini_file=ini_file, explicit_schema_name=schema_name,
|
507
|
+
verbose=verbose, debug=debug, noprogress=noprogress,
|
508
|
+
_portal=portal, _single_insert_file=inserts_file)
|
502
509
|
elif isinstance(data, dict):
|
503
|
-
|
510
|
+
if schema_name := explicit_schema_name:
|
511
|
+
if _is_schema_name_list(portal, schema_names := list(data.keys())):
|
512
|
+
_print(f"Ignoring specify --schema: {schema_name}")
|
513
|
+
elif not (schema_name := _get_schema(portal, schema_name)[1]):
|
514
|
+
_print(f"Unknown specified schema name: {explicit_schema_name}")
|
515
|
+
return False
|
516
|
+
else:
|
517
|
+
data = {schema_name: [data]}
|
504
518
|
if not _is_schema_name_list(portal, schema_names := list(data.keys())):
|
505
519
|
_print(f"Unrecognized types in JSON data file: {inserts_file}")
|
506
520
|
return False
|
@@ -517,7 +531,8 @@ def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = N
|
|
517
531
|
nfiles += 1
|
518
532
|
if nfiles > 0:
|
519
533
|
return _load_data(load=tmpdir, ini_file=ini_file,
|
520
|
-
verbose=verbose, debug=debug, noprogress=noprogress
|
534
|
+
verbose=verbose, debug=debug, noprogress=noprogress,
|
535
|
+
_portal=portal, _single_insert_file=inserts_file)
|
521
536
|
# TODO
|
522
537
|
return True
|
523
538
|
else:
|
@@ -525,7 +540,10 @@ def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = N
|
|
525
540
|
return False
|
526
541
|
return True
|
527
542
|
if verbose:
|
528
|
-
|
543
|
+
if _single_insert_file:
|
544
|
+
_print(f"Loading data into Portal (via snovault.loadxl) from file: {_single_insert_file}")
|
545
|
+
else:
|
546
|
+
_print(f"Loading data into Portal (via snovault.loadxl) from directory: {inserts_directory}")
|
529
547
|
_print(f"Portal INI file for load is: {ini_file}")
|
530
548
|
|
531
549
|
schema_names = list(_get_schemas(portal).keys())
|
@@ -569,7 +587,10 @@ def _load_data(load: str, ini_file: str, explicit_schema_name: Optional[str] = N
|
|
569
587
|
else:
|
570
588
|
loadxl(portal=portal, inserts_directory=inserts_directory, schema_names_to_load=schema_names_to_load)
|
571
589
|
if verbose:
|
572
|
-
|
590
|
+
if _single_insert_file:
|
591
|
+
_print(f"Done loading data into Portal (via snovault.loadxl) from file: {_single_insert_file}")
|
592
|
+
else:
|
593
|
+
_print(f"Done loading data into Portal (via snovault.loadxl) from directory: {inserts_directory}")
|
573
594
|
return True
|
574
595
|
|
575
596
|
|
@@ -60,7 +60,7 @@ dcicutils/s3_utils.py,sha256=h2B9ftOo-kxqfiKth5ZDC_cAUFy1Pbu7BrVanFnE5Iw,28839
|
|
60
60
|
dcicutils/schema_utils.py,sha256=GmRm-XqZKJ6qine16SQF1txcby9WougDav_sYmKNs9E,12400
|
61
61
|
dcicutils/scripts/publish_to_pypi.py,sha256=sMd4WASQGlxlh7uLrt2eGkFRXYgONVmvIg8mClMS5RQ,13903
|
62
62
|
dcicutils/scripts/run_license_checker.py,sha256=z2keYnRDZsHQbTeo1XORAXSXNJK5axVzL5LjiNqZ7jE,4184
|
63
|
-
dcicutils/scripts/update_portal_object.py,sha256=
|
63
|
+
dcicutils/scripts/update_portal_object.py,sha256=Y3bdu8qJMSZ26RM5XkaBPVoFb81bayQjAbc08fKtgw0,33901
|
64
64
|
dcicutils/scripts/view_portal_object.py,sha256=lcgXWH9ooVf7tJDIRnoFGOgT0wYLGhiJlJW3a9w6A_c,36983
|
65
65
|
dcicutils/secrets_utils.py,sha256=8dppXAsiHhJzI6NmOcvJV5ldvKkQZzh3Fl-cb8Wm7MI,19745
|
66
66
|
dcicutils/sheet_utils.py,sha256=VlmzteONW5VF_Q4vo0yA5vesz1ViUah1MZ_yA1rwZ0M,33629
|
@@ -75,8 +75,8 @@ dcicutils/trace_utils.py,sha256=g8kwV4ebEy5kXW6oOrEAUsurBcCROvwtZqz9fczsGRE,1769
|
|
75
75
|
dcicutils/validation_utils.py,sha256=cMZIU2cY98FYtzK52z5WUYck7urH6JcqOuz9jkXpqzg,14797
|
76
76
|
dcicutils/variant_utils.py,sha256=2H9azNx3xAj-MySg-uZ2SFqbWs4kZvf61JnK6b-h4Qw,4343
|
77
77
|
dcicutils/zip_utils.py,sha256=_Y9EmL3D2dUZhxucxHvrtmmlbZmK4FpSsHEb7rGSJLU,3265
|
78
|
-
dcicutils-8.14.0.
|
79
|
-
dcicutils-8.14.0.
|
80
|
-
dcicutils-8.14.0.
|
81
|
-
dcicutils-8.14.0.
|
82
|
-
dcicutils-8.14.0.
|
78
|
+
dcicutils-8.14.0.1b13.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
79
|
+
dcicutils-8.14.0.1b13.dist-info/METADATA,sha256=5QlfpJpS0C59LVay7HnYSP-GQUeE8BsEM60E1GvKSfI,3440
|
80
|
+
dcicutils-8.14.0.1b13.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
81
|
+
dcicutils-8.14.0.1b13.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
|
82
|
+
dcicutils-8.14.0.1b13.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|