dcicutils 8.14.0.1b26__py3-none-any.whl → 8.14.0.1b27__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 +20 -0
- {dcicutils-8.14.0.1b26.dist-info → dcicutils-8.14.0.1b27.dist-info}/METADATA +1 -1
- {dcicutils-8.14.0.1b26.dist-info → dcicutils-8.14.0.1b27.dist-info}/RECORD +6 -6
- {dcicutils-8.14.0.1b26.dist-info → dcicutils-8.14.0.1b27.dist-info}/LICENSE.txt +0 -0
- {dcicutils-8.14.0.1b26.dist-info → dcicutils-8.14.0.1b27.dist-info}/WHEEL +0 -0
- {dcicutils-8.14.0.1b26.dist-info → dcicutils-8.14.0.1b27.dist-info}/entry_points.txt +0 -0
| @@ -139,6 +139,8 @@ def main(): | |
| 139 139 | 
             
                parser.add_argument("--noignore", action="store_true", required=False, default=False,
         | 
| 140 140 | 
             
                                    help="Do not ignore standard fields on update(s).")
         | 
| 141 141 | 
             
                parser.add_argument("--ignore", nargs="+", help="Ignore these additional fields.")
         | 
| 142 | 
            +
                parser.add_argument("--unresolved-output", "--unresolved", type=str,
         | 
| 143 | 
            +
                                    help="Output file to write unresolved references to for --load only.")
         | 
| 142 144 | 
             
                parser.add_argument("--confirm", action="store_true", required=False, default=False, help="Confirm before action.")
         | 
| 143 145 | 
             
                parser.add_argument("--verbose", action="store_true", required=False, default=False, help="Verbose output.")
         | 
| 144 146 | 
             
                parser.add_argument("--quiet", action="store_true", required=False, default=False, help="Quiet output.")
         | 
| @@ -162,6 +164,7 @@ def main(): | |
| 162 164 |  | 
| 163 165 | 
             
                if args.load:
         | 
| 164 166 | 
             
                    _load_data(portal=portal, load=args.load, ini_file=args.ini, explicit_schema_name=args.schema,
         | 
| 167 | 
            +
                               unresolved_output=args.unresolved_output,
         | 
| 165 168 | 
             
                               verbose=args.verbose, debug=args.debug, noprogress=args.noprogress)
         | 
| 166 169 |  | 
| 167 170 | 
             
                if explicit_schema_name := args.schema:
         | 
| @@ -397,6 +400,7 @@ def _upsert_data(portal: Portal, data: dict, schema_name: str, | |
| 397 400 |  | 
| 398 401 |  | 
| 399 402 | 
             
            def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: Optional[str] = None,
         | 
| 403 | 
            +
                           unresolved_output: Optional[str] = False,
         | 
| 400 404 | 
             
                           verbose: bool = False, debug: bool = False, noprogress: bool = False,
         | 
| 401 405 | 
             
                           _single_insert_file: Optional[str] = None) -> bool:
         | 
| 402 406 |  | 
| @@ -515,6 +519,7 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O | |
| 515 519 | 
             
                if not os.path.isabs(load := os.path.normpath(os.path.expanduser(load))):
         | 
| 516 520 | 
             
                    load = os.path.normpath(os.path.join(os.getcwd(), load))
         | 
| 517 521 | 
             
                if not os.path.exists(load):
         | 
| 522 | 
            +
                    _print(f"Specified JSON data file not found: {load}")
         | 
| 518 523 | 
             
                    return False
         | 
| 519 524 |  | 
| 520 525 | 
             
                if os.path.isdir(load):
         | 
| @@ -544,6 +549,7 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O | |
| 544 549 | 
             
                                with io.open(file_name, "w") as f:
         | 
| 545 550 | 
             
                                    json.dump(data, f)
         | 
| 546 551 | 
             
                                return _load_data(portal=portal, load=tmpdir, ini_file=ini_file, explicit_schema_name=schema_name,
         | 
| 552 | 
            +
                                                  unresolved_output=unresolved_output,
         | 
| 547 553 | 
             
                                                  verbose=verbose, debug=debug, noprogress=noprogress,
         | 
| 548 554 | 
             
                                                  _single_insert_file=inserts_file)
         | 
| 549 555 | 
             
                        elif isinstance(data, dict):
         | 
| @@ -571,6 +577,7 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O | |
| 571 577 | 
             
                                    nfiles += 1
         | 
| 572 578 | 
             
                                if nfiles > 0:
         | 
| 573 579 | 
             
                                    return _load_data(portal=portal, load=tmpdir, ini_file=ini_file,
         | 
| 580 | 
            +
                                                      unresolved_output=unresolved_output,
         | 
| 574 581 | 
             
                                                      verbose=verbose, debug=debug, noprogress=noprogress,
         | 
| 575 582 | 
             
                                                      _single_insert_file=inserts_file)
         | 
| 576 583 | 
             
                            return True
         | 
| @@ -641,6 +648,19 @@ def _load_data(portal: Portal, load: str, ini_file: str, explicit_schema_name: O | |
| 641 648 | 
             
                        _print(f"  ✗ {item}: {len(loadxl_unresolved[item])}")
         | 
| 642 649 | 
             
                        for subitem in loadxl_unresolved[item]:
         | 
| 643 650 | 
             
                            _print(f"     ▶ {subitem}")
         | 
| 651 | 
            +
                    if unresolved_output:
         | 
| 652 | 
            +
                        if unresolved_output:
         | 
| 653 | 
            +
                            if not os.path.isabs(unresolved_output := os.path.normpath(os.path.expanduser(unresolved_output))):
         | 
| 654 | 
            +
                                unresolved_output = os.path.normpath(os.path.join(os.getcwd(), unresolved_output))
         | 
| 655 | 
            +
                            if os.path.exists(unresolved_output):
         | 
| 656 | 
            +
                                if os.path.isdir(unresolved_output):
         | 
| 657 | 
            +
                                    _print("Unresolved output file exists as a directory: {unresolved_output}")
         | 
| 658 | 
            +
                                    return False
         | 
| 659 | 
            +
                                _print(f"Unresolved output file already exists: {unresolved_output}")
         | 
| 660 | 
            +
                                if yes_or_no(f"Do you want to overwrite this file?"):
         | 
| 661 | 
            +
                                    with io.open(unresolved_output, "w") as f:
         | 
| 662 | 
            +
                                        for item in loadxl_unresolved:
         | 
| 663 | 
            +
                                            f.write(f"{item}\n")
         | 
| 644 664 | 
             
                if debug and loadxl_output:
         | 
| 645 665 | 
             
                    _print("✗ Output from loadxl:")
         | 
| 646 666 | 
             
                    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=c4-nQ_QkmVA6pnAM-08TjhdISseLPh0rg_OX3_V2ugU,41613
         | 
| 64 64 | 
             
            dcicutils/scripts/view_portal_object.py,sha256=vsJzS985JFEW6-xOe_ExkuE4Dk21G6d8xfC9RBUNwUg,38655
         | 
| 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.1b27.dist-info/LICENSE.txt,sha256=qnwSmfnEWMl5l78VPDEzAmEbLVrRqQvfUQiHT0ehrOo,1102
         | 
| 79 | 
            +
            dcicutils-8.14.0.1b27.dist-info/METADATA,sha256=eTXjvupOrwP4AJOFmh9XvYc91x12alWq6dGPFKakDq8,3440
         | 
| 80 | 
            +
            dcicutils-8.14.0.1b27.dist-info/WHEEL,sha256=7Z8_27uaHI_UZAc4Uox4PpBhQ9Y5_modZXWMxtUi4NU,88
         | 
| 81 | 
            +
            dcicutils-8.14.0.1b27.dist-info/entry_points.txt,sha256=W6kEWdUJk9tQ4myAgpehPdebcwvCAZ7UgB-wyPgDUMg,335
         | 
| 82 | 
            +
            dcicutils-8.14.0.1b27.dist-info/RECORD,,
         | 
| 
            File without changes
         | 
| 
            File without changes
         | 
| 
            File without changes
         |