dcicutils 8.14.0.1b17__py3-none-any.whl → 8.14.0.1b19__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 +32 -15
- {dcicutils-8.14.0.1b17.dist-info → dcicutils-8.14.0.1b19.dist-info}/METADATA +1 -1
- {dcicutils-8.14.0.1b17.dist-info → dcicutils-8.14.0.1b19.dist-info}/RECORD +6 -6
- {dcicutils-8.14.0.1b17.dist-info → dcicutils-8.14.0.1b19.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.14.0.1b17.dist-info → dcicutils-8.14.0.1b19.dist-info}/WHEEL +0 -0
- {dcicutils-8.14.0.1b17.dist-info → dcicutils-8.14.0.1b19.dist-info}/entry_points.txt +0 -0
@@ -433,15 +433,19 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O
|
|
433
433
|
current_item_total = 0
|
434
434
|
|
435
435
|
for item in LoadGenWrapper(load_all_gen(testapp=portal.vapp, inserts=inserts_directory,
|
436
|
-
docsdir=None, overwrite=True, verbose=True
|
436
|
+
docsdir=None, overwrite=True, verbose=True,
|
437
|
+
continue_on_exception=True)):
|
437
438
|
loadxl_total_item_count += 1
|
438
439
|
item = decode_bytes(item)
|
439
440
|
match = LOADXL_RESPONSE_PATTERN.match(item)
|
440
441
|
if not match or match.re.groups < 3:
|
441
442
|
continue
|
442
443
|
if (action := LOADXL_ACTION_NAME[match.group(1).upper()]) == "Error":
|
444
|
+
loadxl_total_error_count += 1
|
443
445
|
identifying_value = match.group(2)
|
444
|
-
#
|
446
|
+
#
|
447
|
+
# Example message for unresolved link ...
|
448
|
+
#
|
445
449
|
# ERROR: /22813a02-906b-4b60-b2b2-4afaea24aa28 Bad response: 422 Unprocessable Entity
|
446
450
|
# (not 200 OK or 3xx redirect for http://localhost/file_set?skip_indexing=true)b\'{"@type":
|
447
451
|
# ["ValidationFailure", "Error"], "status": "error", "code": # 422, "title": "Unprocessable Entity",
|
@@ -449,21 +453,33 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O
|
|
449
453
|
# "description": "Unable to resolve link: /Library/a4e8f79f-4d47-4e85-9707-c343c940a315"},
|
450
454
|
# {"location": "body", "name": "Schema: libraries.0",
|
451
455
|
# "description": "\\\'a4e8f79f-4d47-4e85-9707-c343c940a315\\\' not found"}]}\'
|
456
|
+
#
|
457
|
+
# OR ...
|
458
|
+
#
|
459
|
+
# ERROR: /22813a02-906b-4b60-b2b2-4afaea24aa28 Bad response: 404 Not Found (not 200 OK or 3xx
|
460
|
+
# redirect for http://localhost/22813a02-906b-4b60-b2b2-4afaea24aa28)b\'{"@type": ["HTTPNotFound",
|
461
|
+
# "Error"], "status": "error", "code": 404, "title": "Not Found", "description": "The resource
|
462
|
+
# could not be found.", "detail": "debug_notfound of url http://localhost/22813a02-906b-4b60-b2b2-4afaea24aa28; # noqa
|
463
|
+
# path_info: \\\'/22813a02-906b-4b60-b2b2-4afaea24aa28\\\', context: <encoded.root.SMAHTRoot object at 0x136d41460>, # noqa
|
464
|
+
# view_name: \\\'22813a02-906b-4b60-b2b2-4afaea24aa28\\\', subpath: (), traversed: (), root:
|
465
|
+
# <encoded.root.SMAHTRoot object at 0x136d41460>, vroot: <encoded.root.SMAHTRoot object at 0x136d41460>, vroot_path: ()"}\' # noqa
|
466
|
+
#
|
467
|
+
if (item_type := re.search(r"https?://.*/(.*)\?skip_indexing=.*", item)) and (len(item_type.groups()) == 1): # noqa
|
468
|
+
item_type = to_snake_case(item_type.group(1))
|
469
|
+
identifying_value = f"/{to_camel_case(item_type)}{identifying_value}"
|
452
470
|
unresolved_link_error_message_prefix = "Unable to resolve link:"
|
453
471
|
if (i := item.find(unresolved_link_error_message_prefix)) > 0:
|
454
472
|
unresolved_link = item[i + len(unresolved_link_error_message_prefix):].strip()
|
455
473
|
if (i := unresolved_link.find("\"")) > 0:
|
456
474
|
if (unresolved_link := unresolved_link[0:i]):
|
457
|
-
if
|
458
|
-
|
459
|
-
|
460
|
-
identifying_value
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
continue
|
466
|
-
item_type = match.group(3)
|
475
|
+
if not loadxl_unresolved.get(unresolved_link):
|
476
|
+
loadxl_unresolved[unresolved_link] = []
|
477
|
+
if identifying_value not in loadxl_unresolved[unresolved_link]:
|
478
|
+
loadxl_unresolved[unresolved_link].append(identifying_value)
|
479
|
+
if not item_type:
|
480
|
+
continue
|
481
|
+
else:
|
482
|
+
item_type = match.group(3)
|
467
483
|
if current_item_type != item_type:
|
468
484
|
if noprogress and debug and current_item_type is not None:
|
469
485
|
_print()
|
@@ -482,6 +498,7 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O
|
|
482
498
|
_print(f"{current_item_type}: {current_item_count} or {current_item_total} ({action})")
|
483
499
|
if progress_bar:
|
484
500
|
progress_bar.set_description("▶ Load Complete")
|
501
|
+
progress_bar.set_progress(progress_total)
|
485
502
|
if loadxl_total_item_count > loadxl_total_error_count:
|
486
503
|
_print()
|
487
504
|
|
@@ -607,16 +624,16 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O
|
|
607
624
|
_print(f"Done loading data into Portal (via snovault.loadxl) from file: {_single_insert_file}")
|
608
625
|
else:
|
609
626
|
_print(f"Done loading data into Portal (via snovault.loadxl) from directory: {inserts_directory}")
|
610
|
-
_print(f"Total items loaded: {loadxl_total_item_count}"
|
627
|
+
_print(f"Total items loaded: {loadxl_total_item_count // 2}" # TODO: straightend out this arithmetic
|
611
628
|
f"{f' (errors: {loadxl_total_error_count})' if loadxl_total_error_count else ''}")
|
612
629
|
for item in sorted(loadxl_summary.keys()):
|
613
630
|
_print(f"▷ {to_camel_case(item)}: {loadxl_summary[item]}")
|
614
631
|
if loadxl_unresolved:
|
615
632
|
_print("✗ Unresolved references:")
|
616
633
|
for item in loadxl_unresolved:
|
617
|
-
_print(f"
|
634
|
+
_print(f" ✗ {item}: {len(loadxl_unresolved[item])}")
|
618
635
|
for subitem in loadxl_unresolved[item]:
|
619
|
-
_print(f"
|
636
|
+
_print(f" ▶ {subitem}")
|
620
637
|
if debug and loadxl_output:
|
621
638
|
_print("✗ Output from loadxl:")
|
622
639
|
for item in loadxl_output:
|
@@ -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=Xp1Jho_LC9gkaR6pV3Jvukxx27LW2N18ucDgxz6gc9w,39639
|
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.1b19.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
|
79
|
+
dcicutils-8.14.0.1b19.dist-info/METADATA,sha256=fNFLeE-npH786qVeBJgJemerLOwaIGYkbOT1jZWKqKs,3440
|
80
|
+
dcicutils-8.14.0.1b19.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
|
81
|
+
dcicutils-8.14.0.1b19.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
|
82
|
+
dcicutils-8.14.0.1b19.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|