From 3a1aa7379154954400857e9db1b91091204f9404 Mon Sep 17 00:00:00 2001 From: Alexander VT Date: Thu, 9 Jun 2022 15:56:32 -0500 Subject: [PATCH 01/11] feat(populate-guids): add CLI/SDK functionality to populate a manifest with valid GUIDs --- .secrets.baseline | 20 ++-- gen3/cli/objects.py | 39 +++++++- gen3/index.py | 33 +++++++ gen3/tools/indexing/index_manifest.py | 63 ++++++++++++ tests/test_data/test_populate_guids.csv | 4 + .../test_populate_guids_different_columns.csv | 4 + tests/test_manifests.py | 98 ++++++++++++++++++- 7 files changed, 246 insertions(+), 15 deletions(-) create mode 100644 tests/test_data/test_populate_guids.csv create mode 100644 tests/test_data/test_populate_guids_different_columns.csv diff --git a/.secrets.baseline b/.secrets.baseline index d49240ea8..9f881e8b5 100644 --- a/.secrets.baseline +++ b/.secrets.baseline @@ -3,7 +3,7 @@ "files": "(docs\\/_build|poetry.lock)|^.secrets.baseline$", "lines": null }, - "generated_at": "2022-06-07T20:32:38Z", + "generated_at": "2022-06-09T20:56:24Z", "plugins_used": [ { "name": "AWSKeyDetector" @@ -344,55 +344,55 @@ { "hashed_secret": "6487fa7aea293dfde99cda9c6ccb9161219331c7", "is_verified": false, - "line_number": 110, + "line_number": 120, "type": "Hex High Entropy String" }, { "hashed_secret": "96c9184fb19c9c1618ccf44d141f8029a739891c", "is_verified": false, - "line_number": 426, + "line_number": 436, "type": "Hex High Entropy String" }, { "hashed_secret": "e1da93616713812cb50e0ac845b1e9e305d949f1", "is_verified": false, - "line_number": 562, + "line_number": 572, "type": "Hex High Entropy String" }, { "hashed_secret": "47f42f4c34fddab383b817e689dc0fb75af81266", "is_verified": false, - "line_number": 586, + "line_number": 596, "type": "Hex High Entropy String" }, { "hashed_secret": "300d95dd5d30ab6928ffda6c08c6a129a23e5b39", "is_verified": false, - "line_number": 610, + "line_number": 620, "type": "Hex High Entropy String" }, { "hashed_secret": "f9e664db75c7f23a299b0b055c10e08d47073e93", "is_verified": false, - "line_number": 678, + "line_number": 688, "type": "Hex High Entropy String" }, { "hashed_secret": "7c35c215b326b9463b669b657c1ff9873ff53d9a", "is_verified": false, - "line_number": 819, + "line_number": 829, "type": "Hex High Entropy String" }, { "hashed_secret": "0d515eaf06062d52e8c80abb4d3b713a65396d30", "is_verified": false, - "line_number": 823, + "line_number": 833, "type": "Hex High Entropy String" }, { "hashed_secret": "b4cff7c2af45cdfe66195ec574a7b8832f8621ea", "is_verified": false, - "line_number": 828, + "line_number": 838, "type": "Hex High Entropy String" } ], diff --git a/gen3/cli/objects.py b/gen3/cli/objects.py index 8cbe6abe7..f98bd1127 100644 --- a/gen3/cli/objects.py +++ b/gen3/cli/objects.py @@ -11,6 +11,7 @@ from gen3.tools.indexing.index_manifest import ( index_object_manifest, delete_all_guids, + populate_object_manifest_with_valid_guids, ) from gen3.tools.indexing.verify_manifest import manifest_row_parsers from gen3.utils import get_or_create_event_loop_for_thread @@ -101,7 +102,7 @@ def objects_manifest_verify(ctx, file, max_concurrent_requests): loop = get_or_create_event_loop_for_thread() if not file: - file = click.prompt("Enter Discovery metadata file path to publish") + file = click.prompt("Enter file path to verify") click.echo(f"Verifying {file}...\n Against: {auth.endpoint}") @@ -205,7 +206,7 @@ def objects_manifest_validate_format( line_limit, ): if not file: - file = click.prompt("Enter Discovery metadata file path to validate format for") + file = click.prompt("Enter file path to validate format for") is_valid = is_valid_manifest_format( manifest_path=file, @@ -270,7 +271,7 @@ def objects_manifest_publish( loop = get_or_create_event_loop_for_thread() if not file: - file = click.prompt("Enter Discovery metadata file path to publish") + file = click.prompt("Enter file path to publish") click.echo( f"Publishing/writing object data from {file}...\n to: {auth.endpoint}" @@ -288,6 +289,37 @@ def objects_manifest_publish( ) +@click.command( + help="Populates specified object manifest with valid GUIDs WITHOUT publishing." +) +@click.argument("file", required=False) +@click.option( + "--out-manifest-file", + "out_manifest_file", + help="The path to output manifest", + required=False, +) +@click.pass_context +def objects_manifest_populate_guids( + ctx, + file, + out_manifest_file, +): + auth = ctx.obj["auth_factory"].get() + loop = get_or_create_event_loop_for_thread() + + if not file: + file = click.prompt("Enter file path to populate GUIDs for") + + click.echo(f"Populating GUIDs missing from {file}...") + + populate_object_manifest_with_valid_guids( + commons_url=auth.endpoint, + manifest_file=file, + output_filename=out_manifest_file, + ) + + @click.command(help="Deletes specified object manifest to Gen3 instance.") @click.argument("file", required=True) @click.pass_context @@ -315,4 +347,5 @@ def objects_manifest_delete_all_guids(ctx, file): manifest.add_command(objects_manifest_verify, name="verify") manifest.add_command(objects_manifest_validate_format, name="validate-manifest-format") manifest.add_command(objects_manifest_publish, name="publish") +manifest.add_command(objects_manifest_populate_guids, name="populate-guids") manifest.add_command(objects_manifest_delete_all_guids, name="delete-all-guids") diff --git a/gen3/index.py b/gen3/index.py index 0f69bfd82..4444bfc55 100755 --- a/gen3/index.py +++ b/gen3/index.py @@ -813,6 +813,39 @@ async def async_query_urls(self, pattern, _ssl=None): return response + ## Mint GUID Requests + + @backoff.on_exception(backoff.expo, Exception, **DEFAULT_BACKOFF_SETTINGS) + def get_valid_guids(self, count=None): + """ + Get a list of valid GUIDs without indexing + + Args: + count (int): number of GUIDs to request + + Returns: + List[str]: list of valid indexd GUIDs + """ + url = "/mint/guids" + if count: + url += f"?count={count}" + + response = self.client._get(url) + raise_for_status(response) + return response.json().get("guids", []) + + @backoff.on_exception(backoff.expo, Exception, **DEFAULT_BACKOFF_SETTINGS) + def get_guids_prefix(self): + """ + Get the prefix for GUIDs if there is one + + Returns: + str: prefix for this instance + """ + response = self.client._get("/mint/prefix") + raise_for_status(response) + return response.json().get("prefix") + def _print_func_name(function): return "{}.{}".format(function.__module__, function.__name__) diff --git a/gen3/tools/indexing/index_manifest.py b/gen3/tools/indexing/index_manifest.py index a9cb23a66..2b60ef8ed 100644 --- a/gen3/tools/indexing/index_manifest.py +++ b/gen3/tools/indexing/index_manifest.py @@ -458,6 +458,69 @@ def index_object_manifest( return files, headers +def populate_object_manifest_with_valid_guids( + commons_url, manifest_file, output_filename=None +): + """ + Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs + for the given commons. + + NOTE: This DOES NOT index anything, it only works client side to populate the manifest + with valid GUIDs (which are obtained from the server). No records are created + as part of this function call. + + Args: + commons_url (str): root domain for commons where indexd lives + manifest_file (str): file path for input manifest file to populate empty GUIDs + output_filename(str): output file name for manifest + """ + if not output_filename: + file, extension = os.path.splitext(manifest_file) + output_filename = file + "_populated_guids" + extension + + try: + records, headers = get_and_verify_fileinfos_from_manifest( + manifest_file, manifest_file_delimiter=None, include_additional_columns=True + ) + except Exception as exc: + logging.error( + f"Can not read records and headers from input manifest: {manifest_file}." + ) + raise + + # ensure GUID column exists + try: + headers.index(GUID_STANDARD_KEY) + except ValueError: + headers.insert(0, GUID_STANDARD_KEY) + + index = Gen3Index(commons_url) + valid_guids = index.get_valid_guids(count=10000) + + # modify records to include a valid GUID if it doesn't exist + new_records = [] + for record in records: + if not record.get(GUID_STANDARD_KEY): + record[GUID_STANDARD_KEY] = valid_guids.pop() + + # if we run out of valid GUIDs, get some more + if not valid_guids: + valid_guids = index.get_valid_guids(count=10000) + + new_records.append(record) + + assert len(new_records) == len(records) + + output_filename = os.path.abspath(output_filename) + logging.info(f"Writing output to {output_filename}") + + # remove existing output if it exists + if os.path.isfile(output_filename): + os.unlink(output_filename) + + _write_csv(os.path.join(CURRENT_DIR, output_filename), new_records, headers) + + @click.command() @click.option( "--commons-url", diff --git a/tests/test_data/test_populate_guids.csv b/tests/test_data/test_populate_guids.csv new file mode 100644 index 000000000..b4fd3ab6e --- /dev/null +++ b/tests/test_data/test_populate_guids.csv @@ -0,0 +1,4 @@ +guid,authz,acl,file_size,md5,urls +,/programs/DEV/projects/test,DEV test,123,a1234567891234567890123456789012,gs://test/test.txt s3://testaws/aws/test.txt +,/programs/DEV/projects/test2,DEV,235,c1234567891234567890123456789012,gs://test/test.txt s3://testaws/aws/test.txt +dg.TEST/9c205cd7-c399-4503-9f49-5647188bde66,/programs/DEV/projects/test3 /programs/DEV/projects/test3bak,DEV test3,334,b1334567891334567890133456789013,gs://test/test.txt s3://testaws/aws/test.txt diff --git a/tests/test_data/test_populate_guids_different_columns.csv b/tests/test_data/test_populate_guids_different_columns.csv new file mode 100644 index 000000000..1dc4ea3be --- /dev/null +++ b/tests/test_data/test_populate_guids_different_columns.csv @@ -0,0 +1,4 @@ +file_size,md5,urls,foobar +123,a1234567891234567890123456789012,gs://test/test.txt s3://testaws/aws/test.txt,foobar1 +235,c1234567891234567890123456789012,gs://test/test.txt,foobar2 +334,b1334567891334567890133456789013,gs://test/test.txt,foobar3 diff --git a/tests/test_manifests.py b/tests/test_manifests.py index 86e1e742a..3b77cff28 100644 --- a/tests/test_manifests.py +++ b/tests/test_manifests.py @@ -10,9 +10,19 @@ from gen3.tools.indexing import async_download_object_manifest from gen3.tools.indexing.index_manifest import ( index_object_manifest, + populate_object_manifest_with_valid_guids, +) +from gen3.tools.utils import ( + get_and_verify_fileinfos_from_tsv_manifest, + GUID_STANDARD_KEY, + FILENAME_STANDARD_KEY, + SIZE_STANDARD_KEY, + MD5_STANDARD_KEY, + ACL_STANDARD_KEY, + URLS_STANDARD_KEY, + AUTHZ_STANDARD_KEY, + PREV_GUID_STANDARD_KEY, ) -from gen3.tools.utils import get_and_verify_fileinfos_from_tsv_manifest - CURRENT_DIR = os.path.dirname(os.path.realpath(__file__)) @@ -922,3 +932,87 @@ def test_index_manifest_packages_failure(data, gen3_index, gen3_auth, logfile): for error in data["expected_error_msgs"]: assert error in logfile.read() + + +@pytest.mark.parametrize( + "data", + [ + {"manifest": "test_populate_guids.csv"}, + {"manifest": "test_populate_guids_different_columns.csv"}, + ], +) +def test_objects_manifest_populate_guids(data, gen3_index, gen3_auth, logfile): + """ + Test that the output of the populate GUIDs functionality is as expected + + guid,md5 + dg.TEST/f2a39f98-6ae1-48a5-8d48-825a0c52a22b,a1234567891234567890123456789012 + dg.TEST/1e9d3103-cbe2-4c39-917c-b3abad4750d2,c1234567891234567890123456789012 + dg.TEST/9c205cd7-c399-4503-9f49-5647188bde66,b1334567891334567890133456789013 + """ + input_filename = f"{CURRENT_DIR}/test_data/{data['manifest']}" + output_filename = ( + f"{CURRENT_DIR}/test_data/{data['manifest'].rstrip('.csv')}_output.csv" + ) + + input_files, input_headers = get_and_verify_fileinfos_from_tsv_manifest( + input_filename + ) + + existing_guids = [] + records_from_input = {} + for file in input_files: + records_from_input[file[MD5_STANDARD_KEY]] = file + + existing_guid = file.get(GUID_STANDARD_KEY) + if existing_guid: + existing_guids.append(existing_guid) + + # mock with GUIDs + mocked_valid_guids = [ + "dg.TEST/f2a39f98-6ae1-48a5-8d48-825a0c52a22b", + "dg.TEST/1e9d3103-cbe2-4c39-917c-b3abad4750d2", + "dg.TEST/9c205cd7-c399-4503-9f49-5647188bde66", + ] + + with patch( + "gen3.tools.indexing.index_manifest.Gen3Index.get_valid_guids", MagicMock() + ) as mock_indexd_valid_guids: + mock_indexd_valid_guids.return_value = mocked_valid_guids + populate_object_manifest_with_valid_guids( + commons_url=gen3_index.client.url, + manifest_file=f"{CURRENT_DIR}/test_data/{data['manifest']}", + output_filename=output_filename, + ) + + output_files, headers = get_and_verify_fileinfos_from_tsv_manifest(output_filename) + + # cleanup output + if os.path.isfile(output_filename): + os.unlink(output_filename) + + # ensure output has valid input headers + for header in input_headers: + if header in [ + GUID_STANDARD_KEY, + SIZE_STANDARD_KEY, + MD5_STANDARD_KEY, + ACL_STANDARD_KEY, + AUTHZ_STANDARD_KEY, + URLS_STANDARD_KEY, + FILENAME_STANDARD_KEY, + PREV_GUID_STANDARD_KEY, + ]: + assert headers.index() >= 0 + + records_from_output = {} + for file in output_files: + records_from_output[file[MD5_STANDARD_KEY]] = file + + # ensure that for every record in the input manifest: + # the record exists in the output and it now has a valid GUID (whether it be + # one that already existed in the input OR a new GUID from the population logic) + valid_guids = existing_guids + mocked_valid_guids + for record_md5, record in records_from_input.items(): + assert record_md5 in records_from_output + assert records_from_output[record_md5].get(GUID_STANDARD_KEY) in valid_guids From 9ed4c513e17d7d6f9ff56dbaaa68c1e1fdc5d5f2 Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Thu, 9 Jun 2022 20:59:02 +0000 Subject: [PATCH 02/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 306980 -> 310983 bytes docs/_build/doctrees/indexing.doctree | Bin 139195 -> 145291 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 87834 -> 94216 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 36345 -> 36345 bytes docs/_build/html/_modules/gen3/index.html | 35 +++++++++- .../gen3/tools/indexing/index_manifest.html | 63 ++++++++++++++++++ docs/_build/html/genindex.html | 12 +++- docs/_build/html/indexing.html | 31 +++++++++ docs/_build/html/objects.inv | Bin 1823 -> 1859 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 23 ++++++- docs/_build/html/tools/metadata.html | 2 +- 12 files changed, 161 insertions(+), 7 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index c6eb4fb4f32d3acbff36ab46249d2eff30ea04a9..6243b86a6da42f8523d9e8e83bdee5853592e4d4 100644 GIT binary patch delta 11713 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 Dt1r#{ diff --git a/docs/_build/doctrees/indexing.doctree b/docs/_build/doctrees/indexing.doctree index ee524a5d2798333e9d6549ac1579df2d67e7350d..32396a0ac8abf73686c7406651a5474029495494 100644 GIT binary patch delta 7778 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 delta 6065 zcmZu#d3aPs5>HitWJo3igaHzA0VbJyCNn0AktB$+!ivNIE4nCQMdJ%M=q^Hli3cEO zc!6R8SK=othjMsqypY6QJU<0*gcXSkc%i_8c%ZOV-7|T^e$F4$-PQf8tE;-}_2LuB zFYZpB{|q$EYOb$`UO;Q^g(2q3qt#SC8#<8lK1ee=9_vaI?uT1oKfOB>vdw+14*Z~i zD*A#8_Z3jT2Vg9mw5E<1m=$^Xa9&g9zv+PE)HDuhGyG(-2Ms3O18&$SO~J~y zJJ7P(P)n5ypoDyL;1&!O(&9N#LHP^eSt!%MmURwFUj(zUw2<2BAk)0CcNmP+a~noE zY?Xxx2{l>9-U13f1nXgnnxXV-!GX1fW=mTyZfM7?;Fn?b&=A%XnsAj9Cls2kLocNd z7Q=n8CJxl7L5+p9X$ce{x9={2>tTmlvNEHKZJP+pGwn41i9Q)&Or~p3`j22|*ThUCF-eEsgln-pR>&^{Gi@XY_KKUEjWyN>4xv9a;(f z8QQcAdM6qQPIKqNfxUY9xp!h*~G@-3FP6PO6>-<;{UrP!0Hiwg@9UyBhZ4 zdTr7gZBk>qNfAqksZF9a5Q0e5n%UZ#S9n#-8dDHj)4Bg|%{x(R>Z~&tM*TUy`A!^JyC%yX~Os4X6V58;hVKh2iYNxsptbqcvCAR~l zN!M*ZXNj}B)K-1^Fa+RS)ULDIu2Pp}m!11jyM9!55&q6)o|+z_>mPxcc#TVPV<4Tl zlLKxnPuw1|-7JtSg9S9*;iQHQFbb!;%;4oAoa|D0G1)~WO>nskIWIU7S+^W>N6!?z znJFBye{h+BQTgVEd;8(Tn&;Y!cs}tcRN*$}`FserTIjWL=t_J`BVUh0y3EpnHX8mI zT#?GFFe+yVnq;1i4S>oLYOEy8xP(UL~?ALG3#o99S0 zzH^z&YqA~Ru~fZ@-QBTG?Cz%R*)XPg_1|FypwF$63teurHOru>k3$B1xd|rXHB86} zVTD`HHLP-*m233K>A`BZd8%Nj%(Z!3c$M4Seg6==R|D?RfQ1?$BL=M203JmFtqWXs z7poLa*itt~!Ckcd3Gj+0ZGqm{->p)07cYthcc}n$a2L3(RGsxCEX6n6I#u(nHLtR1 zlBxyqa&&MXW|H`U zjChw;cw}2)DphX*H%|0WT{B#dn>AviMl@@Lj2N*;BQ~}pIy?_U@sLIw(1_z2AtOfo ztPuwk0wzkMPH#(HqgMMh>qQQRF&^dDkscKcd0xw}wU%E;dn6cK^yQ0i7kH`ZACOH` zUxEeb@>*BsAVoLj$}D3xd@`_{*3bz0b{E_LV>L=$n`6A{co^fQr7uGf@=&hL(Oz|J zR(UCJH#ES5ae#UasP|H03tWdh6u`U~K;5(Nx3HA$aiFalwAD*9TKRJ3p@25EgJRd{ z2sTKr(K24ZXHuyw(AOwiC;6W`x_zgOS`{mf|FVHPR!&P##mZ@~PWx%^!7u5HAtU8wARNGAV>(3=rzQxbh@Q;K+bEJHH| zssp)`&&trFA94jTP()_0%y8H{TC1+~=^X78FH`5}C?;tmMoUi_G1{kdw4+buDBbii ze8DA8yDhaos@o6m@a`}vjP=Z2>b1G5&6g^n))G{wj5F&Fq|opKd=}Sgv+mGlJ;4iO zX4MHun^mLCa#6Q~@CZDoOrm`UVKF}IvtsRSMOU%*ra-fdIv>HOa5t^|7suv^H0X(k zd@9Ng`BZU6Prn8kX6}GYJm}N={iaXt_iMiP{bmX3yswEjLHnw=Kjy0p=_y}j`1OW2 zeg=~P!ZhvG=!OUURNe+hV3?3}VLQaHs@E}^!qqDZ#p!`Ng)&S=a&TYm7k?^023St? z@E+u+yw_k7ZENFVH|+=qNPw5~5$^J<09nRMW1bu&FzrdNUuW%}Bk(J(^_!E5`_SQ| zuoE7oci-SNo>Bryz19kLe2rrX_!=K*j5O9Y7ILA+tE-0wyJQ(2iyir!v%i3T(0Py0 zlEyaHILvwL1LnE)o#8dbarIhAvPTgen9D!?lF`X6N`&zdP5Fv9Xwp|)j~((;+1F4D z#}v*sGo3kR8i)L5Lz*+jp(9fcC=S>n6WKKG8|V?675*>DY~SuLh(7JA$^`kzH;xm{ zD>J%cWgqgzUE=5wh;5`pdTJvb0Uh)nzrL8(ABSrI0u>h?h`3(%H z#N`UukDh?qjr@SxjZwTPwi^Ql5WRN-R=OsigfUPp{GAlo1}XMJYu&8@ov_Y$Sz7nM zFi9uuEa@rTXGL`{4CsVia0(8?N~JpGwm}Y?(WLT;TcbhFS^K*C0fe8SazlQimn zSZ2xF&~94_%|8SEahW!7kv4EIuZ$VEK~UPj#mYbz4f-Db1P7II=7@(<=)m_d1NR54 z`jNlt#By`$;uPDrg3mHoqSTOCKfomH7*sVR1kLK)lV|33mqxC$6;Y+; zU8IyQU)ksCI9nXQvl2;MzOq76zWT+7>a*~O^i)J0394g_)?I)(G<6K5uL|G;_-jy? zX+H(!0x;7F${+kt ze$m{dzEFXG)To;-npxf-hTu#!gHwxiX;q|4D;`N{RTM3)D&n-*-4Tc4W{ujYQOz19 zBPp*mY9qx^e8B2%Al3epY^OdwQi>$o z^be`D=pT|`@zcB%%)_ffDmMm%+H<3f8N}ztnIe@N43^yBMskCBn5mdALkXq4ket?- z9a7~~xg96s-CE`}EpuAD%!jnh1tQZ8H`2~uzTQUY>!0u(+Hr(XJgZhjL57-tL2<@NfE_nTRsn zh%(%~aK-PXVad>4u`zT1oFeXz6{eXXU8rI9%IpYLT!3=hs&zRD>PL|akkNd$Ck_W(8`k-~I!t|T*7==80}Ihc-aO9q z&KbA`cZOA_KPlR}adVi`^Z60t4MoL0VU?91vzh!IDF82w!wnn_XN75#BMBoV(}XwwsmmFYb+MI0v-hWFDHQh+av&eK$#r(a)u2mz}xsVVl}*6>2;#RMKE3tG8HFj zSXJD9j>%IGucGpikYuZ2u6&_x3hVdN2lZ4S1(TszRp|A_`uViJSS7=egwX^@0lHIADr-rpc2$)Qab!J;_?vouxSoN9Pol@lgtN;;pMtg%WX zGu}D6)cP+gt<&eU^i=wsE|!Zim(F`}VroK3jGR!?e2)*8BKk|3I|lLd!~&blb>hDn zOKg*?Cry|+YwCmPidFos(A_W_$N=R#%%eM7fIu+{K*@h(O+Iq zO2C4cfbVvLmM3Hh8i68S^LkgrMO4*8Q$FT=$(uOS}~Mn2#BhLo(vBKea7&p0F3 Tyj*NXgB%O1!_CFTI12s;2qH{_ diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 487867079a7ecda338e24667da9196de21913ae8..c48787a6bce2063f7612e1b7c68b6c5280735402 100644 GIT binary patch delta 6737 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 W#|3fxA3>3wK?c(Source code for gen3.index
                 raise_for_status(response)
                 response = await response.json()
 
-        return response
+ return response + + ## Mint GUID Requests + +
[docs] @backoff.on_exception(backoff.expo, Exception, **DEFAULT_BACKOFF_SETTINGS) + def get_valid_guids(self, count=None): + """ + Get a list of valid GUIDs without indexing + + Args: + count (int): number of GUIDs to request + + Returns: + List[str]: list of valid indexd GUIDs + """ + url = "/mint/guids" + if count: + url += f"?count={count}" + + response = self.client._get(url) + raise_for_status(response) + return response.json().get("guids", [])
+ +
[docs] @backoff.on_exception(backoff.expo, Exception, **DEFAULT_BACKOFF_SETTINGS) + def get_guids_prefix(self): + """ + Get the prefix for GUIDs if there is one + + Returns: + str: prefix for this instance + """ + response = self.client._get("/mint/prefix") + raise_for_status(response) + return response.json().get("prefix")
def _print_func_name(function): diff --git a/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html b/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html index 5a9a2c77d..d2591a404 100644 --- a/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html +++ b/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html @@ -492,6 +492,69 @@

Source code for gen3.tools.indexing.index_manifest

return files, headers
+
[docs]def populate_object_manifest_with_valid_guids( + commons_url, manifest_file, output_filename=None +): + """ + Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs + for the given commons. + + NOTE: This DOES NOT index anything, it only works client side to populate the manifest + with valid GUIDs (which are obtained from the server). No records are created + as part of this function call. + + Args: + commons_url (str): root domain for commons where indexd lives + manifest_file (str): file path for input manifest file to populate empty GUIDs + output_filename(str): output file name for manifest + """ + if not output_filename: + file, extension = os.path.splitext(manifest_file) + output_filename = file + "_populated_guids" + extension + + try: + records, headers = get_and_verify_fileinfos_from_manifest( + manifest_file, manifest_file_delimiter=None, include_additional_columns=True + ) + except Exception as exc: + logging.error( + f"Can not read records and headers from input manifest: {manifest_file}." + ) + raise + + # ensure GUID column exists + try: + headers.index(GUID_STANDARD_KEY) + except ValueError: + headers.insert(0, GUID_STANDARD_KEY) + + index = Gen3Index(commons_url) + valid_guids = index.get_valid_guids(count=10000) + + # modify records to include a valid GUID if it doesn't exist + new_records = [] + for record in records: + if not record.get(GUID_STANDARD_KEY): + record[GUID_STANDARD_KEY] = valid_guids.pop() + + # if we run out of valid GUIDs, get some more + if not valid_guids: + valid_guids = index.get_valid_guids(count=10000) + + new_records.append(record) + + assert len(new_records) == len(records) + + output_filename = os.path.abspath(output_filename) + logging.info(f"Writing output to {output_filename}") + + # remove existing output if it exists + if os.path.isfile(output_filename): + os.unlink(output_filename) + + _write_csv(os.path.join(CURRENT_DIR, output_filename), new_records, headers)
+ + @click.command() @click.option( "--commons-url", diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index 52dfbf46b..31557fabd 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -333,13 +333,15 @@

G

  • get_dictionary_all() (gen3.submission.Gen3Submission method)
  • - - +
    • get_fresh_token() (gen3.tools.download.drs_download.DownloadManager method)
    • get_graphql_schema() (gen3.submission.Gen3Submission method) +
    • +
    • get_guids_prefix() (gen3.index.Gen3Index method)
    • get_index_key_paths() (gen3.metadata.Gen3Metadata method)
    • @@ -370,6 +372,8 @@

      G

    • get_status() (gen3.jobs.Gen3Jobs method)
    • get_urls() (gen3.index.Gen3Index method) +
    • +
    • get_valid_guids() (gen3.index.Gen3Index method)
    • get_version() (gen3.index.Gen3Index method) @@ -506,10 +510,12 @@

      O

      P

      diff --git a/docs/_build/html/indexing.html b/docs/_build/html/indexing.html index c1a021d7b..81116edb4 100644 --- a/docs/_build/html/indexing.html +++ b/docs/_build/html/indexing.html @@ -312,6 +312,20 @@

      Gen3 Index Class +
      +get_guids_prefix()[source]
      +

      Get the prefix for GUIDs if there is one

      +
      +
      Returns:
      +

      prefix for this instance

      +
      +
      Return type:
      +

      str

      +
      +
      +
      +
      get_latest_version(guid, has_version=False)[source]
      @@ -389,6 +403,23 @@

      Gen3 Index Class +
      +get_valid_guids(count=None)[source]
      +

      Get a list of valid GUIDs without indexing

      +
      +
      Parameters:
      +

      count (int) – number of GUIDs to request

      +
      +
      Returns:
      +

      list of valid indexd GUIDs

      +
      +
      Return type:
      +

      List[str]

      +
      +
      +

      +
      get_version()[source]
      diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index fa43b62537b877cd671252d8d76e8ebceb793d5a..11f365cb127d7ff2a0cf6c3a6ead41e5e395eaf1 100644 GIT binary patch delta 1759 zcmV<51|a#L4#N(Rcz?}yqc#-Y`zhShZbRGCGn?6^Hpyff#~J@L)7j|AAR7`uj3nZ? ztG-5GuTN6_fx#xWk;D$8`+Zlsy7x-r${UpZ=D~tR-YtK+<`2Vs_c2HyrNdu`vLRw= z^5aj#tHI_-)(Z-f2tbNhgu_b^8^iz%0z@fb_yuL%&;+dsqJL2*hIO1E$#BCT>Z6kl zCuF@4C5R!g*0@SZ7a&M*09lMP+KockDd%I2HyH}Sp_$LZi#)+Fyr}DO7NR$ayc17# z3(2N9+nh#tknXYo1O!1oXo3Pv!iLgLG-BZHI4D>XoPr=i!3!-?H6ft*Ao-)?)n<+=aEl8QoEZ9Zw9t}bq*fCH`xJ{G`8pE2Xt=R@%hVWC5FwbbXlH`9OQ|}U8t1~!$@m$ssDH$N<`4C?TQ;1K)!CmE8Q|{$ z%tEk*aWjLR<GdLGh^XAq@N;R;_VZ6%OnllU*?C`*N^>7=-~Aux}=C*asbm!Qp1 z1a5&a9^ayFGjYm3%Rq}&8dKp&l4f50tPi&)bblebOeZ`+ayvB7wpMIMQ)j@Y{UF03 za!5rTaXB*Cp3R}jTK0anWY%UwZ#gE+$!uyWH=`6eI*bGHeGT$mJ3mG{W^^%Pc{j*QLPDEMVT0ml(VQ1a(wWN}>xT)<;70BL%f+&d+Jw^! zAP-0oVah1jGF?$>@f;apbrv;!FwW$H{BCz3a(N1w}+xc-$(OS6>dC z`H`X&M<2lA6dfLYT=7!|`I_0Y25lRs?0<08thqTM^u&@lGj`CUII@q#E$ zLZZU72X?uY@5v>lhJJFHq?T3F4EEJ?Nl)Xyd!iRhNq?PJc^AZCuk>t}_tgJ9C;9`C zW2aFcIUIZZq_%OjPGBXO7vMC-87*u2PJ3D&;`Ky|uh4FcT`6!MolR<|ky%l@OMg`j z%J!p;J$D*@(3ch5n!$bgC?9}$yZ`97E;4zNbV4osf`T}cI_eg8p+y#I^orl73itMr zw2o|36&EX`H$1y}qH9(n+fQ`w6MCcNZ00{K!1!*~?uPGFI?oc{J&gUYV=(ha)7cn2 zUf=p)e)r9Ht7LNh6^y12{^_g3~jq+2dNeRIg?$e#~bZLRLQ>mimJRCS&cXd7Lw}X8h{Wri zvy^f`=PGCqX?s{54ppceuHRZuaa9TC0%8VF*t=OYZnyV)blzxsznnaP#S|>(KDeHr z$R6($r_U%5d|>g{qt6%48IW56e++K!?tL)*{j)z>^r!4$`p~z+PJU&kLittsR!g1s zEE`4pYj)~}w)E1li<&J}_kXRP=$v7qZ)%oVUNoK&=Lhk;S+=nCGu_0yQM{$q%s`kH-q2LD%vJj%_gJ~XzH(Y;Kd7hb`P_>tJ*v1`gY9dp3b7Es2hC&pk$m$2KOE2I z!}1GggP_fCS~dd8U_!1AZu5(lB)oSF1?HhwN0gDMM)!ot3(aAGhB|-;{{z97htOeu BWxoIb delta 1723 zcmV;s21NP84xbK?cz?@w+cps0>nqgLZq2r*C!6eCNlBbqmZL|VW`hHfkjR)M7yz`Q zuKFAOy?#mYB1KBHBof0NMa;be3}yxZ2ilVKHxK6`^xn&-Tlp}|_HX?db3Xias2f6& z#6SKtycujyWIaD;u>vGSgfzGYu_Xdw-zS_SL7z$54$a7h5q}=GV%S76(G2h8Lv?hz z;f$;okeCR9HWpVZX#+$t^|6R(%G*&WJ7sdL(KaOkIyUn~c%H=+2Um4HN(1s;Bk$Bx z)k3-{O1I|`9_IVhM?NE14w@04vY@846^$A=90x}mMibKz%m`?g)2@P({N97M=UhH5wJxarP{{vwFvz6mb+19E)(@ z1?`s0Y!>UBgj#38uXN2d{-b=TE}FXGjI2$&EKiYqkAH9)pdF6tspBGt&35u-JDi$j znu{zK?Qtq9a^4=-}uWPVJBCJeC4i;A&f-n&u8H z$LmN33ggWVEV)VqjJ`wxVTuL|!J>68Ia@NVvG7A@!@%H?4rTOA_A<$tlTJ4}vsG}# zgLQ|bL4QW0R5(qPlh>&*uaAbiku~LvRwS?Fk5(LdMd}W}J_zahEAfR!&-7z8581{G zh{C66i7%Bl66mpM{HJ1+g+kMGR@~b%oQ2NmE4!0t7CAvr_GC@i^)DM+TY$sFKfq%{VK}rJxNX3D;fJ}B^12kE~-p`fH z*=*!{MwtMaO-ltcN|mF7$X6e>u-vuF^D8hT#E2DTk*K&Ik_1CAS{LR(T*`qf1BYZy za2jn07l543qox^2q2l&*8RNiHpyt}Cjd&TPK z1%Hg!m%1y0B zfU&FSFja}uas-$X$xq{#Vtdz*RSd?E5!2HNis-q7QQ9_Q7K2ZEzV7X@Y ztijp_lpU|@#V!y+Pc11$N&xS!XRCU~?|=F+iRXt=95556J+SMod`~W^HT09qG_@{Q zrns-3YkD62-4nf9O8V=($-5{DdZicptf&5G8M7aVfStyC&p;_XDLuh1~YE)~E>XPp`}GD~W>R8^yFKH9i*C&3$gO90jk@ady?K!57( z;iKOsPxVO>gj)FpM^UPER4opnMHg!9ir=RSc>8EtAlsD1#nR|C&#s^7>Xpdm6W!~C z-e@(SPac+Nd^c})!&fSu7m4p4#*@!uG@p!S^D%n7eLq2qyDt-1CDYr_Xf%5$1~H#} zT1^(q1+0?g^bx(A-H#{07BW@2@_)Te2WQ>pI#s6V0_8JxHt%+H?_}R&y4CW-7eGEB ze?DS;zq%U((oM&20NEbrlRpt~4_!m`h;A9molr2MsbDld-N1F?T+Klp(SD*=m#(&X zWKNnO@n?U+h4%|#(Pj@8-$!&%5p+!3L#jSjVG^o+>um3`EGq@nCAu^Au76i>o9+D? zoj01@uci-ZIYX<(1l=yqgz_tu;tL8CA6owPIFYN^9O-p=GDh$2?k8yW`^U*>*`Kn9 z*+bt7TlrNt6~?cMw^r)BXSpak+<7zil(m-zZPe_zx%~9R7lJZ-=dnn+s_}xjJQZj4 z8p<`G#;;IqfG0QFuK^$341c^1a(cJs8XQYHK)R_iSM@u>&f8I4;~H`iyj3@HZz}(e z7%Hxz{=3Hq5@&=Bbp5L$TK-YMi0c1NjFelc{%AMV(lK6>SjiV}4MyLo92~?fX+`3R z#6C@kbZ(Indexing Tools +
      +gen3.tools.indexing.index_manifest.populate_object_manifest_with_valid_guids(commons_url, manifest_file, output_filename=None)[source]
      +

      Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs +for the given commons.

      +
      +
      NOTE: This DOES NOT index anything, it only works client side to populate the manifest

      with valid GUIDs (which are obtained from the server). No records are created +as part of this function call.

      +
      +
      +
      +
      Parameters:
      +
        +
      • commons_url (str) – root domain for commons where indexd lives

      • +
      • manifest_file (str) – file path for input manifest file to populate empty GUIDs

      • +
      • output_filename (str) – output file name for manifest

      • +
      +
      +
      +
      +

      Verify

      @@ -340,7 +361,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654789636.6798043.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654808338.3985054.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index 827ab8497..1978655fc 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654789636.9773014.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654808338.7157485.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From d61920cbe8d88b2145ff0d1885a18f51cf2958fa Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Fri, 10 Jun 2022 14:27:16 +0000 Subject: [PATCH 03/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 307194 -> 311197 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 87834 -> 94211 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 36340 -> 36340 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 23 +++++++++++++++++++- docs/_build/html/tools/metadata.html | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 022ceb53fde37c4de8a9b3e4411882a91a93969c..a07f2b04e683080ef6a9bcef27c01c886aa701f8 100644 GIT binary patch delta 12143 zcmbU{d3;pWxtx24ERz+;zHv!HNJ7X00wEAcBnUW6*hFkWhe>9V%#h5)%uFeD3AV4$ z)F_Z|@XE7_SQV`mf`bGCD5wNOA_PS1f-LG!+gi70SASaH_no`s#@fF2<&T_mzU_S5 zIp;fP?w6OxKKRYp(VIr^cp_{6=;IUG!@PBFXT3kzIr`Rsvu$IrGs5L@IDhE!GzL3O z4X$Qquv6UN^C7&&>9;%VetWPp*6;N;`$~oZCbzc^Nlf;DzbV*h_66!%Tt1)6>(Ob4 zg^uQ3oR13`qf^%S9kN*oHW~v$1 zPKtyF^QJ&|VFvY)ZV++V@Ko_w9Gf9wauR%yH!hr1-x|z^ZweEkVN&`(;K`VOhCfi8 z0iWiX!^uRA=Jmotc%(R8pF^X0^QJNG#1`1 zNrBuci9qvqmfZ}YqGISM9ovQC$js4YHE?jsIF=8sMai%gC-^Ww5o)Itf^pJ)=&Zcr zI4GT(5xI>!o~FNAlKTG>omX7+&%|RK1~3k(sMt*~u`q?}todu{lmgPUqe$CI`HgnehI!DyW)~1I6>Mf!nUBf>Y%=aOs*`;L&LX z;GDi1`e)|A<>_{qkL~XlkB1-6sDhKTh$am7SyDipSp_x7(`e0sj+s^LRj8hk4S$$< z6I_Q>jpgfL&UEA~UkgXE&0LcKKb=(tFW`*N-I5E@70dZzbKfV98pRiydmr^^k-3jj zj~1A_pL(>o+^QQF8KcgPyp!;j;QKq@gCj3YFtX)x2EzYh@qYzBm(>txAI_H_SqB z-44sI&xJGdj<%Doo#9T8zs=?J1#b@K*Scx{*c`0o22o2!P)jCIO9oI&>QhU~Q%kB- zONvuV3wm?V*%|Hf)HeqlPTCRq6nqB7U%A{v+&SDY+$G!_+!5Rd1EDF^i2|ZjDzw8eZVUH81Q81xNZ?#sLX{wUDpRkYZcPV(M9Lg4y7Sayp?O^9_+Xv>9ZOZs5u3J)g5dWcz>3xBruQDW3g z=g#}X%oLcvbP*)a$%TDOyBCp)-*OIwRjNDU6&jBw-%*Vg8&3%Hsc!8_C$aEs$c;0c1HIBHjiH0dysEE^t?fx{!R zb9hAN4v)y{;Sm`>Jfhqm9+A#8nnOg}xMygnj3_(wQJ^!XvDsUP*3|pkoVZ*xjQe~@ ztYZQ$^U;nv#!iQtoG-Ho3en9$cYmn7ap&kUrHxL%tuf$oU^UQ&%k76y?aqcTT}iO+ zSyQwT5qhclNg=j`=zm~ub~%U(m?sx@HK&<%h$Ce4?i8TWIW82{_JqI&LkIk?hp|&| z_iYE*%b}{<9gGcy9=pSA#`V#?rP54xVvO?Lb3=dGvN6F-DWHyj^ot5HY;Gj3l|pF$ zMFwo!9UFRo*EOR{qzHt4ztxNNi{0EMae z!Pi0uUkV+3B`Aea2VVyrd>M4`sCMu)?ckB_;7gzbSAb<7onKGvD-EwQj~a!m050#V zj8^+NmpdQI4x~U;cdkybzPm{6pN5CJXX^cn-Ph{Ot<92s;g3iLzsGqpPXiDwq+{rFIg-d_`%r}uY1Y_;gUNh zLYG){V8pCz;OGIO2#3Av!-uJQ4$RSIetBT3-kv_tu`MG3=e$tV&*LzqWO(Xu0(@7r$UZvD2sqA{UHj2oBk)BPm;~<})x5{2>O+^NK-{q`)dhoa>ew{-A+wNdWFJ(i zlH@aHAxsZ5mv9yak1a3~pXa`DZA{Y^#UOnATrzl`)4agh-hii`n{8x!8&^aMn4ix! z0xw|_r@*r3GmXHjx;A&l3R=Xu(D&iU^OIFlUVQx){^$8}Bj6+0i-D^>K1K!d>g-ck ze_YE{4)`B<`nVP%4)_!N_PC}k2mBREPE1o}@Z#<(@SLbtoj3$bUr6qHQIfx@5n}bV z%E^RCFu$Pf1ROFN*7i*W>BVrk=Y?>i#0Yr!1#M5_lu-znBX5072s4t!!kia}C(e8c zC!Unl=B)R&IrLS^*%N5$GI^6*h|(j-5y>cFD#62{{m1%NHUx1eXUp-A3h}yC_LIr* z>Pyr0@zXfYJ9&*!n;f)e7VJ7X!je3A=H&H8ssf1U)3)Rx__PnRqp#RVP{N(^R$r_> zSNo}C2s<^&NHiU0otkF^lygI*JJFD1r?kZ2CeDU)r^c(KRH(SC;Hy*96O?_37hyGc zn!EQ$jT!}aUC4(kKabOW#L)}k=P$2O1#rOi@cGNNMt~K5-CqM+`?bvCRLc;!%1E^m zVoonN0&WEN=^7*8d(eAYa~7Ae7UBn17%6NBNQ9pZ%vPOq0a^yr;PODJk;n<@gBBy8 ziF0ik)Q+bM(Edsq#Gftc+7_wpZG1itC!G6Ag^~MK6?n~9kG;jI?em=8kEnSNzkPIC zpcS8moDQ4c^(~SO8cAY(oAVz@VA%P>;upJqFpnVJs>na5Z4;cl zO9ht3jBpApKc5Dlz8MXBA4q~L=SC#N{hVd&d2LhTavtEo?laj)9VuVmBaGEI4UT^( z5^lyF^vro}Z{yJ2F#6Rc#uz<{MlRNK!gC=N`d-xvs|#=f$N3kug69H^e=QZZT+sF~ zF0mW#dMg3mx-h~gAr35mEq{!%TKEO8hp!g6^);>HdS%0Iq=gr6XEznW8lk&qDQd22t%*0HInynMV9<#V!A<*er?%y_=9%^JBz7~hP}Vh z&Nx2LAfM-*-)QG12cA`dxiKpje}93NEa%{pH`2iOMuBnS*Es31H%9Qkq4AGhwPMLi zouBrWw>j$JBVq8pHzyheUE+vcZ)!&iSL7-Oe)^^s2@ZT86LF!D^+Pm%sS)sd^2UFD zZ%~UEKFP;Wc2Sbg)RHdWUvPB~y%P;v-_}Y*F73}8@$TF6javQ< zr>Ia9hd=Ustt8Iv7Z<3B`U-sgP8z&>agkc;a4ONv3n0roON`Jk1$yY6xkhND0!_Z8 z6(L+gG&EgWt!lynaWHUciVC3nta}`oE^C3{fFziASv$)(AQjp#YZs6Kxb;dh)Lu!6 zYSvHH0q90p+?5HcDFg5cr^(RArB{<+)BbR{_lj01a>4oV?3Jmi4ID7p44;LPA?j*Y zyOP@+T8#Iq&M>0*BI*e7q z58>}Rg;6o!dACSlG4P9bXJm|yL7`#vFP#2G;J+=w&B3}Y_)`PyelNAcEg~r2J(8|7 zTCrPNOuteDY4v}L!W|z2)$fg)n}pm=E52Ju)Jmtlt-eWGW^Z(Ur;KFidT&MPC{m36 zHLchjbjQ*tP8*SUw=xIfGHH|r3Gd&;3PUaL56%>XQS$5zc4KrkVl26qDQH%vyzFTq zQw+MRo~h$mb36*(Rl+7=bE%!0pnOYF4#B$6n&tWuVOfDZ|<)Pcmu7nzb|+c6f=Q&`6K+T`Om zF;jF-j$}peN()ylu8}XUWp(Kzo{t>9e4n$qp-8It20VUwe-%rRw=G~1^0I@>lxLTk zT|U3$ZIJklm<#bq^tj^<_$BQZF8Qt-S;izTK+4Ct3MwQ|pry{)MvOGCPx5=EHYfhv z=JU(vN`xG_GTjuOHc~d1=1}P6<*QkuJT#w$)nu2npvV&bc#v(D)IV2)qHu){Aq2)l znp`P0WY6QuRNls$JF?~0J6X28?H*>5m(F4N@=yiKl3TB3VP-{ak+kM!c}y+4WyEWn zd}}|;AU{M%%DbG@;B8aw!TJ47&Nipy@=0EgQ=af7%S|y*`I`{o^7#CAPrXyIruZC- zlIPB0V`5a36mt2lS*(UD6QKaI3*^_gu}?4?PHyMf@ZolrjU#gxldzfG#q!KNZNF#v zFU;ER`#I4aU2KxF@*cG8#VpN{uXeGFu23YhyxzrTU=sr@4V!#m$6rR*2S> zgpX12>o?fj8fgonJ>W*sx*CxIJeWEo^%?Ocm)5E`h>_@*@4b&V-S@Fl99_MS6=D-D zv%D~(>P&+>Lm4K{uxGCX6M4j1=`&7T&z7s>;FF&vocf)@9@J=$Z=Z&505z6Y@ zdU--U(aUqZznACqN4-2#qmFQ3(GixHO;NDywEPMKG>+`P9)E@BX5&ip2lz?hM>>@F zfWmcD8NGLem4wmTRp)qUK0JY)kt>d}GzBsas(cB8`;6SGgA$;%H_1fw^8Q|yoX$DN z>J!q&W#bd9l)1+)Uk!HEs1P_?`RQAqJzlt3H6Rb^z3=A$Xme1bL6LK))ji54nM z^fDwr93^Bby|^eLO@}4Q<70$~Fe1SfK6Er)>GG*Y^G9)ct69ingYvyG8r$;-$lx6D zWV%)T8iM>CR9Nh2voghOvyh>POoshGN>N3AY8H}EWOJ;L#s+(~#0sGZRCabUcadFb zwj>MF!srdFGX>(0r?FG=+sVR&$Q}1CW~1n@=c{DlRHi&QT}b5zu_e)xgieYhm6p>7 z9L36K9Oy4`1`k304DPn&GlVh|yU{?nCn%eNfqA*-;tb)k3l%*2uuu@e zQ?1N0UH<$LVcdPYg;+$y?G_5LslZ0TFSV@Wc)4^BC%9L~1S~(1t9J{T$}<)h_EU?D zicgd$>=E$Vd@@E6vD5Md7XkPPgtDt15el$zW24~DTdt6xG_(HHRV_dN2)FRJj|heQ zEU>0C>wG5Pikj-rTa-Zae#wQoe#sN=o?i;3DEhfy@|5{Z8BKUpn5yi_A2I9Ss1CYo z56{ax9~I`ZA^FzFgap`iB3|wCm%fM~|Iq~ZvN10vg?qdXd?y)_cR!Al>hqpLoh9G0 zTL@G7x!5q3B2qDhm{5HBuw_H?<;R2x3S~|hJ!o}K0Q*m}p!=oK2(5iwC>Vy0leaxC zkX|@(wgMjZErLIP9D~KN>GIiYh0(b6sY;@!75W6&w>eQj@SS_KX%l4aS&a?#ytGFc zIxLh|$oJVrTC%-%F+YRHas{tKW31{AUd75oOtt)XyI6^YbLvFe1?uWV3T9`W_l+hQ;DBUSuS4>)4zhc&TbUw!iJgxTn^>`Ohf4Ni7w`&FK0>UTA z)qfZ0tf-bBcZyV*o_C7VunB7rX_K4WAQsHz5_<&eo5T@ADh7PcHXHvUN;xhs3f3

      mvHTU0*;!MRe zWhU!76HRH;Uckr*()H6uF%?N8o5b`?KEXkg^#YMb+Y}Az>z(*v7gAO?@xZKa5@`$m zd6P(+^`R#2*teVbgkdf*+eDX0`QruzT##40#PMMSz%!)1e*!`ta*25gBps?xXD;H% z*c$a+Zl!u8acHy#wb$VXX8dy6nP`L+YsMf_E^&)#Nt`c2%P^HEU9RrI%}gDAJO7A9 z-enilP`PfDfz5y$Gx37_xm(Q6+#vJm@ks_AC&2eS0v%Bqcwmv8xE*stE|P^+bn;UXi9F!TY{^_ z-YgMLQY_QCi*y|%yJw@sztrkU_eDt#>QrAF5eoF2StaFvS999O&ah6NSU z4OHRREM2ft!m;FPr^`7>$I9Q+SR}dd*5qm4C~fezt@law%`W^_NAkHGPPz(d9^q4H zCK_%sbip#JB;{{ta^dCOju#GZo!{>AI2}?$o417vz(w~1=e2DG#ZoQZviR>IoK$^+ zHVC%+q*i+yztHg;3KhS8{Af|4Yq7k{V!BR#sLYfof0JcOEa#qVwWBKJ4VMQ!uX|K+ zv(Xf1ORIk)cd5MZb}?19eT-W~cD8b5!|RgAi_?w_-|*#4iLUd9ey4}Np_CuJ#WYzy ze7hK5fwwsd=wvC|rg@Ej_TcbkBT(m1B7+Y@!!qSdo5Tva;tO$_y!9qinC$sNtdVcK z#}qAp_K9GUE1zIyx%Gk=v#23^zTLz1!zX*kum?R3sR;qjHlO0_kshd!Zqp*i^YM;i zdHFIiQND7PnIQsYLMTm>T_Kk}DJIEFUlk{YDMpFA{0q@U`Rf1i&JXxwmJ12RWrpPcQ~RX)qtS+`J=(V;Vxp;EJlNi?X9i& z?v$@sqbhCp;Y#vLxV7XPNDHLON)A(KeJU|p)D!s^F`XqEXp6LjDd?&FtJoWd8)amK zX(~2zB20AmUL9e|S;$YOHOzXNj`spBtN+hWXw)P66=sd3Gc|RG-IQ2j!<|J%L<`on zgot-Io1OSc4n1`7%b<#P3f8UiV1y|pgI=+}i;Up1J;Ib)&ME#A)rcX`nN2@R$RE_0 z;`w8H&-zHy;aSQ{+-%Dt)NKr}WLg~4ZM1vY+PoX+Fs_+zqN2hz-$aM;&*qz`E_!ml ziSA1M3htBnCMu*-YD~N`sNuNA8WYt__Y&}2&#@ZQ>RKEof{BU<3z(>G*#MkzH*k&< zN^@0dSdjDQ2RY>pO0y|wDhs10+|CTxeJLxPx`ECdII$lJ{{oXdL>x%2W zts8^x0r?vuACNQm;amgqynUu*6Oqfy_L@>NI3vH@4Kud2ARAF^M~W~`k$_q!DcxZM Xk_Z*(jA+DrSTTJs?+*q7b;bV+m10|m delta 9890 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 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index aefbfd1a1a1c66d22e2c38a8c5e05344055050a4..f19bc51ef8dd703598afb275859f4999b0285f7b 100644 GIT binary patch delta 6804 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 E0fIkXRsaA1 delta 4346 zcma)94Nz3q73N%6epG}l`^Wyt0`ljgtDuNM0r961gJK<{0+Q8iU7jFL2r)Xf{rX|M-4*#7*umO$ymX;6I>Bp^_UOdlHE@dU(RFu3 zgPE}tBy)*-vCxi-94eDOxUSg+k5Y@?H{)#*xs&eiJ5*lcn9O zM}c7My6!*%)U&_nxb~q_dz1ECr0X~}uk;#PYeaiItQfW3x7D}FmnBR1sclZ}La$Bo z`x>eG@+87x7NHkfBUnX-7RJUsQtS=t#9}RMV1v3RcWag1drxGG$=`xsLn=>vn9Co( z9}@`0fC_fKC`y9MEKeUABuQL)uAP<2FQ1HIc0J$wMRw>mi=J2hC_8=+VX%55Wys=& z4nF2@4CIQEM9>7ZO==7SdRUX>)(5s!c?7o;dRpq)U`&C`Wn+quXDgZ2NWFUAP@TfAB5CWN zq3!XGp(=3H_@o{^KYz?B{$K@XaxW3!9p~Mv7DYPZI)i?tblzAqm)!{ioq@v7^}IB# zlKn@|`!>7c1_&Ef6yLfclZ`a+1hbjPr;mn2;bxG{+qV?*@24l~q}!+{=^-Mbf*d|V zL-C~H4C9yTG|qs9;ox054I7X%z;D(D(@hHh((|hgISg@}+UCkU^E7hQaJ^|YzAVXZ z;GbF?2D zDub}5ffMRw3Gda~uiP??SvTiK+e%AanT8D*ccjPK0?3Vh&M2QKZQ_v&#)yY5n9iyc zjTaRS_MDM-x+aNh6X8YHq=*`WBJtKF_$%A3Ebmm8@8&@lJFF}pRF{jUK(cswGK?1s zCc{>CMp5VvQ@F@}rz~Glm)8|QC;LiSzN0ShmUR(IH{l9Z*!uwrZoexp$T{4%=4x0qL0I9+;3!2%W0^=J622Oq$kRZ0^fsMa3 z!^lP@%P`ve;@LHma92W3x;A+@IB1ICeB+0MvvCe`ipxPf{|v`-We#-09L4RrA|sob zEK`Hit=V&-O2xBuD4v>O@t_&PGc#GC2j{_WLj^er;wdJ(DnFN=hYhe##q(ye*f0;C zheM%DGQ>9tqEi%=!*n>U;{4fAoZZ9XL|cRtoylp$*)t!{3tSH3+#QPZG~8A3e5p`| zQ=po_9IU2CL*Yc4hf5=xA~;|A;ow}b0Mm%eK{#K8!buhP7hq#JmE7jBe6!3CP60eG zsCee#BUX24SuGeA51Jx8`DTS4oc~q{lObPpl)*$ckxWts@vcf02N&Vle~5}qX&l;U z*}?zuCk<;=R&Tzlp;r~}u7v*3`v8yk(uSm{Ea{qw_kWdQxJGZA+#bn2<9XQI^XXfthOW=0o(v!6JI1PQ#IDAUOE^KC{oizNE1V?aa zZjD>(Zt%RiVV$Rmx^#*5wa9x~Wc?Odx24(ZAn9?l=v@w#Q5FlLo}f7>eqIGmt!(o5 zoC zeQaRcBh4U3s%5p~OhP9ks5^|HVFL}t7T)(;i}>yeXkxXp-w(zOc8SeG11q(wR*+_ND?Lic|X z*ncT}e{8CB0m*5NZfb0PWfgM&=S2J!RbRK(<105Rwb0${fknXl=Kd|gE%tT5-2I@r zM3Lo%)I>j=eMxe2<=@ln1C2oGMqQ!T(Jeih5SSN@>uFmc?4d|6^cZJzQh80Rz?H2Cg)K-Z^Y}(91(F oWFRr)*1~PJF<^4NYO*ZWswTmz=4MzARDksAN$V}*bR$&!4+%o~=l}o! diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 616a9c69c5aa5fa0e9acef9dfa829fe388664073..e478cf96ea5ac5ddc8ec9750f49c8e2683b94a62 100644 GIT binary patch delta 101 zcmew|o9WAJrVXz&dCU!sj1Be749!gqO*enjbY?{nnfy)DW^Indexing Tools +

      +gen3.tools.indexing.index_manifest.populate_object_manifest_with_valid_guids(commons_url, manifest_file, output_filename=None)[source]
      +

      Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs +for the given commons.

      +
      +
      NOTE: This DOES NOT index anything, it only works client side to populate the manifest

      with valid GUIDs (which are obtained from the server). No records are created +as part of this function call.

      +
      +
      +
      +
      Parameters:
      +
        +
      • commons_url (str) – root domain for commons where indexd lives

      • +
      • manifest_file (str) – file path for input manifest file to populate empty GUIDs

      • +
      • output_filename (str) – output file name for manifest

      • +
      +
      +
      +
      +

      Verify

      @@ -340,7 +361,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654807944.3028057.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654871231.116127.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index da4286ad3..099daded2 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654807944.560571.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654871231.617515.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From 90ca6d6e5a862f3efd6217260c02b5ee2b77705d Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Fri, 10 Jun 2022 20:32:35 +0000 Subject: [PATCH 04/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 307194 -> 311197 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 87829 -> 94216 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 36345 -> 36340 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 23 +++++++++++++++++++- docs/_build/html/tools/metadata.html | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 271deea41bddc14231ae18a18fd60ce70fc38af2..e17c4faa7a083f743aa3d569955f9816aa497ba4 100644 GIT binary patch delta 12085 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 E06>;ktN;K2 delta 9718 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 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 6c48b29a057409fa61f8265f041903b706e3248f..333b9c1401dd0a18ce43722e990dad0bb1ea9351 100644 GIT binary patch delta 6839 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 delta 4370 zcmb7H3s6+o8RkE*z>0+3?vs5fZ`LdViXkZSD5zB%h1M}DprX<&R}iO!5ScNkO`{?z zc+iuXbX2O7MuiB;WGE%$BU6)_iALIFw3C^tHP+0;M`&$^F&6v(_wMdxMTeFd&e?nZ z*Y|(tzvujS$2HCVcQs*KH2WKS!-{T;EDgND+Kjxg#1kIlwM)B=;;sgI*=}QBXE@jx z>n2%-xDyF&xX7W@@ctD|3xrA^8u?IZM)ZI&B*g1lsF7_+Eb5}5pM4r6)ymSomnMQ> z?27R~4Aii{8@c|WM}Lj%?a~#T8rFEttremz8dgsHb;s6@%^j(-g!gXq=u5m#$rme1 zja8+CBP_%u^cHZ4WIZHlM-+b#jADr%Hn9iB$F22>b$hp4%=i(UgLtlcn8qKy8{tpI zj0!H3$Th$PHr+HjNs?rkxV|`^UpN`TTqfRr(>>bEZsMhHx}$d!28TCPhAgfc;S;`N zI87AjK;zf8syPgsV7;Nz{bxyWE6gF;)MyN><1Gc zY|hXQ6E>Vn~g^&J_9;Y$-vFqw&d{F5_LxD1}aJ>2nkt40Y}hLG--H( z_@z44nz1nAc#l!ThUFdL*H#6#n-uDe%24SsvZr7=OEF(0dyBOb zwvA=PgBs0dVjK?0Qhqu?qvaIO$GVX}h&8aciTPAGK{_()VoEaT4P#k6gs$RdW!>4^p60;n=NNb{jWA zY)l15->pU%X69r}&zd3Ln*ts1kPth?x@W-|HjF;`%(qh51PdSRck(T7 zIoPn7Uq6*BVmuJR?#p}BE6#ghJ)2~q*C+bEiq&Nio6}$wOS90ck{l#KM&$!zXJ|-> z|J7P{3DNPrcbt7?Q=#)QaM}!5$BGC?4$HTQ>$#8?Im;rSD0>fN!Xz=00kc_|qVS@k zz-C$a@r-HWubJ>7t5-yI0g?F4H24SGr7Uk(m+wx89(F`oKBO+^JqNMk7c*e0IGGL4 zh*dM7o((8keL-4(Vt-MVKUbCmFhy@RWRrC*`&QAor5f&d9*(k5tDN5>b@|O4=w^0h z*jIZJJRO`YU6Gjlgp4A!HBWq=4r%()J3Y0g?xhqlm;(k-q_#2A z4sS$72VQK7+%;CNUUdrs5LVI!n>fr3FUv_ubrhn%e#|k0!kF!%GnJ+vvU6&5l@k^QZA5 zxfmMQ0|m+V3KE=rNFYXJP6H=joo8VaWBo`bvdieL-kl`rW5)x7z6cCX1m=6IaLh%H z@zIawUqNWTm1{5Vqx{&>99^6bn_!=cYEP_qZ2`=O!=snvP23ZU)OkeVLYNI7s94{70@l89 zv7$5L4kzLcgGxWeLj)iF-0ccNnfd~7xUE9^M&^#;-QwI@G{3cmejJU{qV1UpPcr}PzjX*G_2_mzgVDy!FC z*3kQlS6j@`=<5Pc|H4{BSgM58KlJTn^JRMT;goN;gEskgv&r46Q)xTZ1|(HF zZtT1Ib2!G>m$tr^rEnv3*-5hPqG2!`hl@0{V6Q7}r{Q-bIEq6(I=Sp}KT(box{ zxKbWPQhlo}ssY1Hpms8ZhD|i&+xg(1?PC2(sE1X7$OYw(M<(U5k?U!-RZ~;-N>xqA zLe?5aly^wW?c(riFpUq$fq=+|R82z*4L(5OmCy}MDxk*40g>`pK(Ev4Qvod)mmvZ~ zKBOiZ`e~q#2x$qmWYnzU6^8?MORuki`|O5IG_3^}^MU?gEfhgd05t2i(=Cu9N~$1I zl&yowEYB`Bufv{iw83Yp!Fkm{%RaV?vMTHd^6Y(0Rq!+L8;wYC9sa2r-SZi3sKY2} zUWnKE3Sggs%E!-WlNV3CXGG~DrMOs>gTQ5^FGpru!)mHGRCO$LwuaZ&HT-fd?&05b zLB$m8YoHo-fm`*JtoUNM@m&%)Z9V{BQz6Qqp}ucQU)pj8#j1IsY@Q-811*bm{7*ha z4P3^G4Wv^(%12S8L(NIA<}~j1(+ff`ou9Le4R8aiFc75iX+a$SM-ZwpdcUMbyZA#L GEc!2t2^RMN diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 2de6d9326c3dfac926da85e475deaaed279e2e5e..e4eb1bd70a9b6cde43e6da827c65dfb488519cf2 100644 GIT binary patch delta 145 zcmex4o9WAJCYA=)sV_IOv}!QU+1#a(z{q21Y-nnzXK7$;XlAtdyCw@u9U}w7=G7YZ ys8XBV^;QgeIndexing Tools +
      +gen3.tools.indexing.index_manifest.populate_object_manifest_with_valid_guids(commons_url, manifest_file, output_filename=None)[source]
      +

      Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs +for the given commons.

      +
      +
      NOTE: This DOES NOT index anything, it only works client side to populate the manifest

      with valid GUIDs (which are obtained from the server). No records are created +as part of this function call.

      +
      +
      +
      +
      Parameters:
      +
        +
      • commons_url (str) – root domain for commons where indexd lives

      • +
      • manifest_file (str) – file path for input manifest file to populate empty GUIDs

      • +
      • output_filename (str) – output file name for manifest

      • +
      +
      +
      +
      +

      Verify

      @@ -340,7 +361,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654874771.190345.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654893151.5314457.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index 489f2422c..04f8046f8 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654874771.4957037.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654893151.903162.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From bf608eada32720f9809ed11198e32ba422b32b33 Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Mon, 13 Jun 2022 16:13:34 +0000 Subject: [PATCH 05/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 307179 -> 311182 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 87834 -> 94216 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 36345 -> 36340 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 23 +++++++++++++++++++- docs/_build/html/tools/metadata.html | 2 +- 6 files changed, 24 insertions(+), 3 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index e62fdd660464957985d8436e14b5d8f5bf37967c..f71a741147f84d5f81d2c82379fa3348e33db4ab 100644 GIT binary patch delta 11815 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 z zkJJj;p~P$y%*C=)C&a;(<1r}qlUiX6HVJhCt0Sh>kuB~zfvvgU*9qek&lHK~#Uh*1 zqPFf51x@I+`mJ{%!WIfN_)k__c1Ql}F#vO;|`o2wo$ z1P#}q)@uAjiLQ=qae7$3W(*?b0;iA^PkbR-hN(Qsa(M@zoUD$n%|FH>Z?OtVs9ZbB zz~&t%W@3+g)hVQ>lEf%-1^bdp{e((UCJ8>?oP-hY=`b%5*0ba3@;>rPVp)JY zFQ9{DbuE|ZBQsZ>?qZ_9sgM$^YR6(-s&m|Bcj2{xRLVCHu4>jTQ%j^&h4`1F z$!>Jp9JR{>>S8R^k9{PoE_Wn!J?5g#ZTGmcy~^yA5H9;N3rm&^{ACO0U9gCtEYeB} zp)^f)iCpxe5HHU-8sfin`VqAd*cNP^9&YKr9M6}J`V8`!Z*fSJe z?Nq#-H?NVqL&Ss>_Qw2cWDG7_L&U^lqWDi#V+<{A>Ffss`TYtp8Xv+FJC=lsFO5g5 zi`+bcGjC^ZjWaVSq4w2P%J9mhzsC!Sr z{jh_)lC)DyMPTtxk=2w7l+ki!^u$had@_6YZlfFMt)97FcQY1y`896*YS`H)Ut#2Z za^xTHjPHdWn#=`67wc+vYR>gR992v%Y5&Bk3ag}^E=Bu_ndQ= zs$%;u9-rUz7`|orOL2kq!&}2D9LvmW3-im$@=ZlGRl>%yvYIM8(^|=xTV7K&yxe3e zKwx-@*;u*>+x((+#^2XeiI3$M7;CCri5*{PEYDe&Q=Wr(j=4OqrpjJ}NT#)Dz$!`V z`9OUqLFXb(wU*MlD(LwA62- zOp(i^UK>>&G)?NUQ5DxrQkRX|`pFgPyp4Kx^irwAMjiR+OX-}IO1abCaO<`-U}JWL zJ4t;u>dvN*r1xypmkr@kr;YkXoCtFxmT}!s9OVx_(K=Wh6UbU&htzMyJm6-e9x)HN zGfl1;7}y`_13TgZL7_ciTx=x#HPRajqXHo*(G&GNpgYn-#ZkY5 z^tHV3I6t@?6~SyF|J=Xfd%^qYUwW)3vyXBE|5mOqJ_@|_K^oaUCdkAoSpUMRp^cYqsX9Wa1i4W^VJxHCQtI+90&K6L^-IUx=9j~@*;COish zlSV`KM2rIRZcfaBS(8V@XLCc~nMrLhb>e7PZx{`gNoml8{d-A|z`Mv_pS%W6PC&Wj zRS=GC(8@sg!{jvR!m(N&4F~5bD=XNdk&X)Z!xoIx#CmM8NL{SQ7K(J4_1GejK4d+% zK&1Pu#}TA({(KgJwX^cUt16d-K)HJYdO;d%&d>L0$S| zFpv@s$uryGskud%hajk&H3t^W3y1%i)ecFEi!di)FmKKraLEdX6LZ?3Zp9=BU6qVE zS`Q7Y$bXA@-hcA&U}g~}YXkJo3Wt9h+TrBvNi@%UNq#V6!5pZb6Anigyg7&YQZ>R@ zR9>2IEUQ^v6O~C3WwT=OWG##4wi;uVbAC~7fq9*g?X)DS#Gbh)GXbE2A&%we+ zapdGscz5v}h|Ug&gsgT*OJ}3kg4fJ&%a=<$IPB;wx@DV`&hF(KsRQq>@`g8;JHVE| zxkKl2on`Is=5x?84VP7lKk83`;FY;>C^g*j*OhJ@c663^S3So;Q>GGxmPZTVxdq{n znf+l5OI-#>)t13iK9FJ=!G`4o8x6A$RLIeTV0IESt@j?YJ(>(x?1+uES#5?C8jy zgD3u&;>cXVI7LaxmbO1`@^WLLQfLP(&p6ooT442Fo#pXbdx1-~RP4(gj?J#uJa|Xu zs8#dCfe?}Fv|K)XM3~FcUrB+jq-<4E?kg$vm6Z8P+E*%RPpPC?S5ibODH4@b0+m<+ z7v6lHOM(^kGw^p${cQZbTc0>0$#K}QD5)DljwRXptB*bGV#RTEX`(%FUA}PUSeQ-X z^JB@jezZkz?e{~rWxBJXNqgc9xZR+K&<00`8p#U77nV$$_`?lzZ2cD-(rx|g4XIi) zi(%1QQQ$7wL51XMZ?m-F_(L|0Bgcmfyb@AQM8OSd1k`O9F{qJzVyaE!$rFjzNs_DU zlu5?F?FDZaIJ>BWu=%ft^u|HG)J9*}(>O}&Um;v*Ox6O$;QrP`El`FtNYMh1!~J7^ zu-p_dWTZ_H*5n61jb0w+QoI{#op=gO#zIB0{Sbu;C_Wwqsc#R5EyZ^3Lp7cmoKZ^2 z&>8&!sv4tU{yWZEm;Oj#)jQ6%5QV(s3tK+4gQjq$2owimI7PI_C7 z(P{A#tU9Sqn1G!)wFqb~b5i{$bT^{W;L>DowbcvzPR2lMxhTh-<_5tVCw-x$NiDx# z2yBY+%P-5$Gv*YO=WSBsL>6C%>rDw-PY!{9bG#LxGpr7lG$&b8Pe8prym-+Ivai`e z(k5@%@wl6-HS)x6P}tu!M{AWDmFUiD3Deqs2Tr!=VGcJeeYUT2L;4?JiY4>vd2IjB?ZfwWT$@lk8L2VOjdNoXD7%|*y- zouM_~2aT-{X@N_)K(XN3)N-Z?U%^uIgH>%oTFGlzX?}n{yP1pefy6lINot!fTy68W z3eyeY@9>~aT@VC(1o0L>SaDism7*)er?Bz#BrR|c-af6SiX^^*Z%#ji8&%!uATXR! z=SEkLf5H=Irdtz2!1wlWE@a?Yk&!`lJwXMLgN z>^Q40q%#~2pPef2J;2*(QG3|Yl_(b<7Hbw%WPb)*#`o;C(g`dY*As z^V9)5-t~pF_ITUaH;{h5eS&rrU+8Y1tpx%gv}2YQ2!b_e_kPC+dGir|gq9NuEgkc0 z#tS=qA)-?aGPx9CRdsS4bQRn>ec_4DPzZX~MO~jH99!Kr*=Fo03N7!7(~g#i@tAHC zNW)X&t1cI-06TxBDPVtYqE6ZS>FzKM&p~M)WS*O96(e*y{MWgaS|A;MK9{KlX2VK}(oqbx%AzsJ11K80BQ5sYg9a3EYTaI)v6ZsCg#z z2}Fm4`)LyUrFV#0vFnAHggw z@H$B?KQ{`t|Jhw#@&hpPvOnCtJR~?rVBGstt?PoW)Ah=_c=~-cw}dv(w5DE(g#CN` z)Tj`r(aK4)dff+Y?*~BbmGM@8NT`{FzP_SvCIq&UlaE{-qaFT?GW_06c?ZwE9;_ z^o?ukp+HVuBe3?0H@II9)=J;Nf*Uf^+ceWxuB!`|)b9}3dczr3)v^aPou9Hh5%XgT zgA-o4%WJkm+Uw(o#QZZF`N7}ROp?kM1g^fJ))RsEt%F2ZV@%KS-zYKu_Qp)B*Mxqn z=--^91%Dv0{pNfv__K9*XGp!3sAUX;`kUTReQT!mh$Fj#BZOV{gl})n(4uw!U;jN? ze$XO1Xi;|@5p=O5Yx*wHk|oq`N2 zmr}|W=pc8|uefae405;piu=9K2< z)kvHR^GW(mlTKMA6uK~Hy|HG{qSK&5Jh4!j6tiy~1bOz1 za)1}^KEiohKDm1#iGRjlJ`v0<<6>o(5H1><WU!OEk8))#$XdZo(p?eVX(1g;VUP-xwycTvo4!n^wYZ& zbCm;oPpT&bzYRDNrF;;GdSuU+VR|pY+01KdpPpfG8d+JI4NT~dgu)$ z#XdZSXVOkCRPi)3V>x>I;vNd<=A9JfgFCrM)b8EMjZ?JW%s7wQW5K;4W(>`*JL6+D zG*nXh^+r7EiS=p5Pt4$6&Ie7Dzf2L3UnYa6UZxm-@-nAKp6@O$#+9iUmU9M)h1v(* z^A_>W87t@SqO9!L#l@m%^Db_TBKjR?aOY7p5PFWY%)0I7!pTR&YTjT*j=W|c7l4cv zyUD=T-DIFnp)T#_MkDY0-P~9Q8aYrf=;h6S=6oN~3ux6nn=UQckC}^dvz1E~i6sbz zM8a`Er{qppE+(SSK*>Hv%IZ0tLcjw{fup!WRePNJxerSKgLjJ`mx#!TflxOMW^SL((PJ2J>N! z9l?A@ki$zIG2AfrCvTt1`=jK6sig4kREqCsQ(3qgJyUo|Lgwbz`LRsqbqZqd>pa{4 zf5Ju?azVx#9P;)Niu=L?#C;MQWyAVIhK$Q~4BYNu8`;$ZWP?9Q7GtqdZ1iQ^LL0in zm;!t*S2mul2TAtOL9%%1AkWSS?ht9l9HR6tIK+=baLXY+LD`f#IKu~Q{|dwLJmr0d zcqh-C0(Mle?cq9S_?R(ABXgwu)nZ;bpnTpSlWA}8)3^?~;tdP|HNouF1TS^SuN>yR zfu9Yiw}a+XRJA;Z?drCTA0NVj(4JR1mpFTSk`cgSTG! zu5FzxZ0vGT+;c+rxQ@ncb$rj;{G0^&kvxGdtEcjWs6ZCejKwVZRW62{qWs5n2ty%L%EMiN*JjM*Tti^c2>1WFr(NTniLIYTGY_mmUv z@t$-eIgU&e{o4j%Ru~n=Pn;o@9cAw3qT-y~4S0>pwto1>VbTj|%6SC>tG}88VLUdS z1p?cMz9Wc)nkk1zhBcsTp6QW^& zi8^O1qvqxs@n0Gghu#+r-yu)FUm~#WG0sHIe3QWT(;5b+HhjBRzYy$QT@0B8>7U_}8_^KshH*2vB_Wgpyq>?E~`jCBhiR!viKE#E+ES zC^qaLF4Tk%$X}FTB@HyXl?v4cCo1xkj4}+Q9Q=$BMg`P!N?^yy_ooDQC5mVjlCjBd zr95tLrE)&nidESs-)a?>@@0m`q&DGtid-cN`o_0Lh?QN-13-vrCP+ zrczo%JAB2_N)fN*4Ch!8`^yPB(cj6M#cs|JBnSJ6zRD>U!5bFJ)BHp~kv#&*VSb_) zdSLPs1G&D&W$)i#qa&CMcvXt~xbvVG`*LIt)EmD(as zp3I(AtLQGWyezBSREj%-KG#%?A1{dG!w&92&S1HA%JnT`m_G^8={_jLz7TcFpSOsC tzsY9L*PU|cDNI(UoN`JWiOug$i6K7BmbuD)J&ven|C3Z+V>YkV{|k8E*7g7Z diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 675e2ae1744c729ff6e59aec47bece9955ad7202..9175934a58bfbf530261145d1969124ccec20c8c 100644 GIT binary patch delta 6742 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 delta 4310 zcmb7H4Nz3q73N%6U`1rN`^)aKy8N$M1QdS|#@H50A0akP_Z)f$`3B+<~?3}Y+LH^Rq! z$55Im(1FIUZB=s^GQoO7rO9uy*y~)}uts`l6fc?~kyZPW`>h$0biU+BSyB1c4DqZ< zRw?wSUP-WALDB4Lv=`1!`;@m$ZHh$1)sJzdL|#`hpM4nwIvIsun0R4ADf_|1 z2bwdqLxhbwif>(+!lKMP#%ANui4#C4DjB$W>y~W(a-z;C-9kml1R)`dDc~?ViY5(D z5Wm!?S~E6=i+39}Y)GyEzp*M%Zc_NSiC?ar%n(PrJR=PnDcze#!1K zJI#n87cof1^lOgtOLU}wk@!Edp-5br1P6Sz5C>iGDpU~4xczTC*>ba35f5irnOQgz zzyme1grCtnqnD#QU!$%!i?#$Xu%%``Q0+*hw7uuO;ogs>GE{nm?8%tUGRzmr-eT>5 zZKE0SphmNq7>9$hl%Gz}XgS66v2Nt|V-4&rVm=j4l8(%}n4AoH!)Vsu9vvecV;oai z=Vt2rk*t$Kt663pu^{Ww%YqUvNdYVCQ#kHJiNf)9`XzIG-5kX6{S@d>ICl4*Pldli zOxCPfGc&WNPsyAyW5%@XS>oNv&<+m>X`ER16vTxMp)WrBjTAP{!Uy`|_?9;uY{<-S zewZv`JP^U|$+hVb7d)_@O|;N!6Mav`=(LEh~fh(gSXft3PE23!G zEZ-t-=0aLzjz!)t_8rWGiDEbd=CCqF;aNq2IZT`4lmb4F;jl1<$DRKAj8MuE*K5tH;$M1;hM6Bq}ywACJmrUoUH}Ek(&=qZnWOyJksMuG0GnXHifV7HczGc#fFmQ9bKXP^LZu9KKN@eI;|paPn6Z zL}8Avn!}Gl6lxo*n&^uV;Y5hOiWRv_u$uVjM|3*~(Y+P8Jt80tHG8JwwL3qG8oupzJU{e#1Uo`a zr`!$p(W;Ao_qm3(D62PK(9rvf$5YJU$gLkwj>1|)SgM5GKlt?|^HqBDJR}(?wh&yPdMlPFa7ath=+p>mq5VO`KZ+rD1kEqE6Qw7JX&l zF~}}IqX>gEI7nFeON)pphXh3xmh9yZN}|O;In)^_E`EUEaDoQEdMG}M#tN7eN#4D2 zE!+8EXR){&4nNT$I)lZG{w>NQe_7n@4DU3ru6 zKL!8Yc)1*B64|RDa|V53;EpThQ6$y3dd)Oom~nI^4548Y4f%FH@F%-izY^+URUmRf z`J<6Zd35A@T5ZwPRJ~YL)4qtcgc0TK(sH{vvKmZd19BiB@*!2zu!{yCpzuoQf+iJE zbvIg$4TQ!e(#1-1u_yML3C#jx<562#ej0KT9`ls_eX--W)k zM?r1q(-~=T^%g`FBsGVA^-pY diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index a3d58de0d1a6248b2ebb25dee736afd561df0238..6d73d1de44dc059a744dc5bc59f4eca75f2f956b 100644 GIT binary patch delta 155 zcmex4o9WAJCYA=)sV_IOv}!QU+1#ZO$H-@DXl!O-XsBmtVPtG*zWBQ)3rig%1H7VaLINTogKC~$PJX)jlnnORDH&ot*mQ2*Yhe=#0Fp*4 AEC2ui delta 171 zcmew|o9X9lCYA=)sqZ$jv}&--Wn^HOTwo`+d9{WuBfp7-g}I@nsh+91rGcf9>Edsi zEG+dv6ld diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 836ebb15e..47d48f073 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "filenames": ["auth.rst", "file.rst", "index.rst", "indexing.rst", "jobs.rst", "metadata.rst", "object.rst", "query.rst", "submission.rst", "tools.rst", "tools/drs_pull.rst", "tools/indexing.rst", "tools/metadata.rst", "wss.rst"], "titles": ["Gen3 Auth Helper", "Gen3 File Class", "Welcome to Gen3 SDK\u2019s documentation!", "Gen3 Index Class", "Gen3 Jobs Class", "Gen3 Metadata Class", "Gen3 Object Class", "Gen3 Query Class", "Gen3 Submission Class", "Gen3 Tools", "DRS Download Tools", "Indexing Tools", "Metadata Tools", "Gen3 Workspace Storage"], "terms": {"class": [0, 2, 10, 11, 13], "gen3auth": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 3, 4, 5, 7, 8, 13], "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "idp": 0, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "authbas": 0, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "request": [0, 1, 3, 8, 11, 12], "implement": 0, "order": [0, 8], "support": [0, 1, 5, 8, 11], "jwt": 0, "authent": 0, "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "access": [0, 1, 3, 7, 10], "token": [0, 10], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "provid": [0, 1, 3, 5, 7, 8, 12], "refresh": [0, 10], "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "string": [0, 3, 5, 11, 13], "automat": 0, "when": [0, 3, 7, 10, 12], "thei": [0, 10], "expir": [0, 1], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "opt": 0, "The": [0, 1, 2, 3, 5, 8, 10, 11], "contain": [0, 2, 5, 8, 9, 10, 11, 12], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "web": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 10], "workspac": [0, 2], "default": [0, 1, 3, 7, 8, 11, 12], "env": 0, "gen3_api_kei": 0, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "set": [0, 1, 10], "includ": [0, 3], "search": [0, 2, 3], "path": [0, 1, 5, 10, 11, 13], "valu": [0, 1, 3, 5, 7, 10, 11], "doe": [0, 12], "interpret": 0, "wt": [0, 10], "an": [0, 3, 6, 8, 10], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "instal": [0, 2], "crdc": 0, "some": [0, 2], "arbitrari": 0, "kei": [0, 3, 5, 13], "variabl": [0, 7, 8], "rather": 0, "than": [0, 5], "pass": [0, 7, 8, 10], "argument": [0, 13], "constructor": 0, "initi": [0, 10], "follow": [0, 11], "curl": 0, "data": [0, 1, 3, 5, 7, 8, 10, 11], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "user": [0, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 3, 10, 11], "map": [0, 11], "get": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 3, 5, 6, 8, 10, 11], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": 0, "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "refresh_access_token": 0, "new": [0, 3], "gen3fil": 1, "auth_provid": [1, 3, 4, 5, 6, 7, 8, 13], "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "For": [1, 5, 6, 7, 8, 9, 11], "interact": [1, 3, 4, 5, 6, 8, 13], "manag": [1, 5, 10], "featur": [1, 6], "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "presign": 1, "url": [1, 3, 9, 10, 11, 12, 13], "right": 1, "now": [1, 8], "instanc": [1, 3, 6, 7, 8, 9, 10], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "delete_fil": 1, "guid": [1, 3, 5, 6, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 6], "instead": [1, 7, 11], "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "locat": [1, 6], "store": [1, 3, 10], "remov": [1, 6, 11, 13], "its": [1, 3], "record": [1, 3, 5, 7, 8, 11, 12], "indexd": [1, 3, 6, 10, 11, 12], "uuid": [1, 3, 8], "id": [1, 3, 10, 11], "text": [1, 7, 8], "result": [1, 8, 10], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "get_presigned_url": 1, "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": 1, "file_nam": [1, 3, 10, 11], "expires_in": 1, "upload": [1, 3, 8, 13], "list": [1, 3, 4, 5, 7, 8, 10, 11, 13], "author": 1, "scope": 1, "storag": [1, 2, 6], "s3": [1, 10, 11], "az": 1, "isn": 1, "t": [1, 5, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "amount": [1, 9], "second": [1, 4], "sign": 1, "datetim": [1, 10], "utcnow": 1, "Be": 1, "sure": 1, "posit": [1, 7], "integ": [1, 3, 8], "also": 1, "treat": [1, 5], "max_presigned_url_ttl": 1, "configur": 1, "represent": [1, 3], "document": [1, 3], "readm": 2, "python": [2, 9, 11], "github": [2, 7], "repo": 2, "setup": 2, "inform": [2, 3, 10], "along": 2, "quickstart": 2, "script": 2, "more": [2, 5, 7, 9, 10], "detail": [2, 7, 10], "about": [2, 3], "variou": 2, "function": [2, 3, 4, 5, 9, 10, 11, 12], "mostli": 2, "docstr": 2, "code": [2, 8], "helper": 2, "job": 2, "metadata": [2, 3, 6, 9, 11], "submiss": 2, "tool": 2, "dr": [2, 9], "verifi": [2, 9], "ingest": [2, 9], "modul": [2, 10, 11], "gen3index": 3, "service_loc": [3, 4, 5], "public": [3, 5], "read": [3, 5, 11], "onli": [3, 5, 7, 8, 10, 11], "necessari": [3, 5], "basic": [3, 11, 12], "cred": 3, "tupl": [3, 11, 12], "async": [3, 4, 5, 9, 11, 12], "async_create_record": 3, "hash": [3, 11], "size": [3, 10, 11], "did": 3, "baseid": 3, "acl": [3, 11], "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "creat": [3, 4, 5, 6, 8, 10, 11], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "md5": [3, 11], "ab167e49d25b488939b1ede42752458b": 3, "associ": [3, 5], "made": 3, "where": [3, 5, 11, 12], "you": [3, 8, 11], "control": 3, "rbac": 3, "name": [3, 4, 8, 10, 11, 12, 13], "addit": [3, 10, 11], "entri": 3, "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "async_get_record": 3, "async_get_records_from_checksum": 3, "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "async_get_records_on_pag": 3, "async_get_with_param": 3, "param": [3, 8, 10], "correspond": 3, "suppli": 3, "need": [3, 7, 10, 11], "handl": [3, 10], "hash_typ": 3, "whether": [3, 4, 5, 8, 11, 12], "ssl": [3, 4, 5], "async_query_url": 3, "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "async_update_record": 3, "updat": [3, 5, 10, 11], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "create_blank": 3, "blank": 3, "create_new_vers": 3, "add": [3, 5], "sinc": 3, "content": [3, 13], "immut": 3, "want": [3, 8], "chang": [3, 11], "That": 3, "field": [3, 5, 7, 11, 12], "old": 3, "ad": 3, "least": 3, "one": [3, 5, 10, 11], "suffici": 3, "note": [3, 11, 12], "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "create_record": 3, "delete_record": [3, 8], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": 3, "distribut": 3, "identifi": [3, 9, 11], "boolean": 3, "we": [3, 11], "get_all_record": 3, "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "get_latest_vers": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "get_record": 3, "get_record_doc": 3, "repres": [3, 5, 10], "get_records_on_pag": 3, "get_stat": 3, "info": [3, 11], "get_url": 3, "algorithm": 3, "get_vers": [3, 4, 5], "get_with_param": 3, "file_st": 3, "client": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "is_healthi": [3, 4, 5], "healthi": [3, 4, 5], "query_url": 3, "update_blank": 3, "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "update_record": 3, "exist": [3, 5, 6, 9, 12], "gen3job": [4, 10], "s": [4, 8, 10, 11], "dispatch": 4, "async_run_job_and_wait": 4, "job_nam": 4, "job_input": 4, "kwarg": [4, 5], "wait": 4, "output": [4, 5, 11, 12], "Will": [4, 7, 10], "sleep": 4, "linear": 4, "delai": 4, "until": [4, 10], "done": 4, "1": [4, 5, 8, 10], "global": 4, "input": [4, 10, 11], "create_job": 4, "get_output": 4, "job_id": 4, "previous": 4, "complet": [4, 11], "get_statu": 4, "statu": [4, 10], "bool": [4, 5, 8, 10, 11, 12], "list_job": 4, "gen3metadata": 5, "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "async_cr": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "async_get": 5, "async_upd": 5, "batch_creat": 5, "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "create_index_key_path": 5, "databas": 5, "delete_index_key_path": 5, "get_index_key_path": 5, "return_full_metadata": 5, "10": [5, 7, 11], "offset": [5, 7], "0": [5, 7, 8, 11], "use_agg_md": 5, "off": 5, "logic": [5, 12], "filter": [5, 7], "b": [5, 11], "2": 5, "have": [5, 11], "ar": [5, 7, 8, 9, 10, 11], "alwai": 5, "nest": 5, "c": [5, 11], "3": 5, "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 5, "must": 5, "33": 5, "d": 5, "4": [5, 11], "e": [5, 10], "won": 5, "333": 5, "defin": [5, 8, 10], "api": [5, 8, 11], "just": [5, 11, 12], "max": 5, "num": 5, "OR": 5, "gen3object": 6, "level": 6, "current": [6, 8, 10], "allow": [6, 8, 10, 11, 12], "system": [6, 7, 8, 9], "delete_object": 6, "bucket": 6, "gen3queri": 7, "elasticsearch": 7, "graphql_queri": 7, "query_str": 7, "execut": [7, 8], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "http": [7, 11, 12], "com": 7, "uc": 7, "cdi": 7, "guppi": 7, "master": 7, "doc": [7, 10], "data_typ": 7, "my_index": 7, "my_field": 7, "first": [7, 8], "filter_object": 7, "sort_object": 7, "verbos": [7, 8], "row": [7, 8, 11, 12], "sort": 7, "equal": 7, "respect": 7, "complex": 7, "appli": 7, "One": 7, "unaccess": 7, "valid": 7, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "raw_data_download": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "gen3submiss": 8, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "create_program": 8, "program": [8, 11], "create_project": 8, "project": [8, 11], "dcf": 8, "delete_nod": 8, "node_nam": 8, "batch_siz": 8, "100": [8, 11], "node": 8, "how": [8, 11], "mani": [8, 11], "print": [8, 10], "progress": [8, 10], "log": [8, 10, 11, 12], "ccle": 8, "demograph": 8, "ordered_node_list": 8, "revers": 8, "graph": 8, "experi": 8, "delete_program": 8, "empti": 8, "delete_project": 8, "uuid1": 8, "uuid2": 8, "export_nod": 8, "node_typ": 8, "fileformat": 8, "singl": [8, 10], "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "export_record": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "get_dictionary_al": 8, "entir": 8, "schema": 8, "get_dictionary_nod": 8, "get_graphql_schema": 8, "run": 8, "introspect": 8, "get_program": 8, "regist": 8, "get_project_dictionari": 8, "get_project_manifest": 8, "manifest": [8, 9, 10, 11, 12], "get_project": 8, "open_project": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "submit_fil": 8, "chunk_siz": 8, "30": 8, "row_offset": 8, "spreadsheet": 8, "multipl": [8, 11], "csv": [8, 11, 12], "xlsx": 8, "worksheet": 8, "skip": 8, "data_spreadsheet": 8, "submit_record": 8, "should": [8, 11], "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": 9, "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "downloadmanag": 10, "datafil": 10, "load": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "i": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "hostnam": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "user_access": 10, "cache_hosts_wts_token": 10, "object_list": 10, "host": 10, "obtain": 10, "It": 10, "possibl": 10, "save_directori": 10, "unpack_packag": 10, "delete_unpacked_packag": 10, "directori": [10, 11], "call": [10, 13], "case": 10, "error": [10, 11, 12], "continu": 10, "downloadstatu": 10, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "get_fresh_token": 10, "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolve_object": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "start_tim": 10, "end_tim": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "object_id": 10, "object_typ": 10, "drsobjecttyp": 10, "unknown": 10, "file_s": [10, 11], "updated_tim": 10, "created_tim": 10, "access_method": 10, "factori": 10, "children": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "_manag": 10, "self": 10, "pprint": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": 10, "md5sum": 10, "commons_url": [10, 11, 12], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "create_object_list": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "load_manifest": 10, "download_drs_object": 10, "output_dir": 10, "conveni": 10, "download_files_in_drs_manifest": 10, "infil": 10, "list_access_in_drs_manifest": 10, "list_drs_object": 10, "list_files_in_drs_manifest": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "separ": 11, "header": 11, "space": 11, "download_manifest": 11, "current_dir": 11, "indexd_record_page_s": 11, "per": [11, 12], "max_concurrent_request": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "tmp_folder": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "async_download_object_manifest": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "tab": 11, "session": 11, "column": [11, 12], "shown": 11, "below": 11, "255e396f": 11, "f1f8": 11, "11e9": 11, "9a07": 11, "0a80fada099c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "363455714": 11, "pdcdatastor": 11, "test1": 11, "0a80fada098c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "343434344": 11, "test2": 11, "0a80fada097c": 11, "473d83400bc1bc9dc635e334fadd433c": 11, "543434443": 11, "phs0001": 11, "phs0002": 11, "test3": 11, "0a80fada096c": 11, "test4": 11, "0a80fada010c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "test5": 11, "index_manifest": 11, "prev_guid": 11, "usag": 11, "py": 11, "giangb": 11, "planx": 11, "pla": 11, "net": 11, "manifest_fil": [11, 12], "path_to_manifest": 11, "replace_url": 11, "thread_num": 11, "api_kei": 11, "threadcontrol": 11, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "delete_all_guid": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "index_object_manifest": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "loop": 11, "ha": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 11, "altern": 11, "behavior": 11, "simpli": 11, "manifest_row_pars": [11, 12], "custom": 11, "import": 11, "verify_manifest": 11, "def": 11, "_get_authz_from_row": 11, "strip": 11, "parser": [11, 12], "verify_object_manifest": 11, "verif": 11, "error_nam": 11, "value_from_manifest": 11, "actual": 11, "value_from_indexd": 11, "93d9af72": 11, "b0f1": 11, "450c": 11, "a5c6": 11, "7d3d8d2083b4": 11, "dev": 11, "test": 11, "async_verify_object_manifest": 11, "_get_acl_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "1654627682": [], "4302042": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 12, "column_to_use_as_guid": 12, "guid_type_for_indexed_file_object": 12, "guid_type_for_non_indexed_file_object": 12, "NOT": 12, "guid_from_fil": 12, "_get_guid_for_row": 12, "indexed_file_object_guid": 12, "_query_for_associated_indexd_record_guid": 12, "guid_for_row": 12, "elsewher": 12, "async_ingest_metadata_manifest": 12, "metadata_sourc": 12, "672043": [], "get_guid_from_fil": 12, "metadata_typ": 12, "namespac": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "async_query_urls_from_indexd": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "gen3wsstorag": 13, "copi": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "download_url": 13, "ws": 13, "wskei": 13, "ls": 13, "ls_path": 13, "ws_urlstr": 13, "form": 13, "rm": 13, "rm_path": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "upload_url": 13, "1654634067": [], "5923028": [], "8967967": [], "1654789636": [], "6798043": [], "9773014": [], "1654807944": [], "3028057": [], "560571": [], "1654874610": [], "345438": [], "6664228": [], "1654874771": [], "190345": [], "4957037": [], "1654887195": [11, 12], "1666398": 11, "5790925": 12}, "objects": {"gen3.auth": [[0, 0, 1, "", "Gen3Auth"]], "gen3.auth.Gen3Auth": [[0, 1, 1, "", "curl"], [0, 1, 1, "", "get_access_token"], [0, 1, 1, "", "refresh_access_token"]], "gen3.file": [[1, 0, 1, "", "Gen3File"]], "gen3.file.Gen3File": [[1, 1, 1, "", "delete_file"], [1, 1, 1, "", "delete_file_locations"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"]], "gen3.index": [[3, 0, 1, "", "Gen3Index"]], "gen3.index.Gen3Index": [[3, 1, 1, "", "async_create_record"], [3, 1, 1, "", "async_get_record"], [3, 1, 1, "", "async_get_records_from_checksum"], [3, 1, 1, "", "async_get_records_on_page"], [3, 1, 1, "", "async_get_with_params"], [3, 1, 1, "", "async_query_urls"], [3, 1, 1, "", "async_update_record"], [3, 1, 1, "", "create_blank"], [3, 1, 1, "", "create_new_version"], [3, 1, 1, "", "create_record"], [3, 1, 1, "", "delete_record"], [3, 1, 1, "", "get"], [3, 1, 1, "", "get_all_records"], [3, 1, 1, "", "get_latest_version"], [3, 1, 1, "", "get_record"], [3, 1, 1, "", "get_record_doc"], [3, 1, 1, "", "get_records"], [3, 1, 1, "", "get_records_on_page"], [3, 1, 1, "", "get_stats"], [3, 1, 1, "", "get_urls"], [3, 1, 1, "", "get_version"], [3, 1, 1, "", "get_versions"], [3, 1, 1, "", "get_with_params"], [3, 1, 1, "", "is_healthy"], [3, 1, 1, "", "query_urls"], [3, 1, 1, "", "update_blank"], [3, 1, 1, "", "update_record"]], "gen3.jobs": [[4, 0, 1, "", "Gen3Jobs"]], "gen3.jobs.Gen3Jobs": [[4, 1, 1, "", "async_run_job_and_wait"], [4, 1, 1, "", "create_job"], [4, 1, 1, "", "get_output"], [4, 1, 1, "", "get_status"], [4, 1, 1, "", "get_version"], [4, 1, 1, "", "is_healthy"], [4, 1, 1, "", "list_jobs"]], "gen3.metadata": [[5, 0, 1, "", "Gen3Metadata"]], "gen3.metadata.Gen3Metadata": [[5, 1, 1, "", "async_create"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_update"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_index_key_paths"], [5, 1, 1, "", "get_version"], [5, 1, 1, "", "is_healthy"], [5, 1, 1, "", "query"], [5, 1, 1, "", "update"]], "gen3.object": [[6, 0, 1, "", "Gen3Object"]], "gen3.object.Gen3Object": [[6, 1, 1, "", "delete_object"]], "gen3.query": [[7, 0, 1, "", "Gen3Query"]], "gen3.query.Gen3Query": [[7, 1, 1, "", "graphql_query"], [7, 1, 1, "", "query"], [7, 1, 1, "", "raw_data_download"]], "gen3.submission": [[8, 0, 1, "", "Gen3Submission"]], "gen3.submission.Gen3Submission": [[8, 1, 1, "", "create_program"], [8, 1, 1, "", "create_project"], [8, 1, 1, "", "delete_node"], [8, 1, 1, "", "delete_nodes"], [8, 1, 1, "", "delete_program"], [8, 1, 1, "", "delete_project"], [8, 1, 1, "", "delete_record"], [8, 1, 1, "", "delete_records"], [8, 1, 1, "", "export_node"], [8, 1, 1, "", "export_record"], [8, 1, 1, "", "get_dictionary_all"], [8, 1, 1, "", "get_dictionary_node"], [8, 1, 1, "", "get_graphql_schema"], [8, 1, 1, "", "get_programs"], [8, 1, 1, "", "get_project_dictionary"], [8, 1, 1, "", "get_project_manifest"], [8, 1, 1, "", "get_projects"], [8, 1, 1, "", "open_project"], [8, 1, 1, "", "query"], [8, 1, 1, "", "submit_file"], [8, 1, 1, "", "submit_record"]], "gen3": [[9, 3, 0, "-", "tools"]], "gen3.tools.download": [[10, 3, 0, "-", "drs_download"]], "gen3.tools.download.drs_download": [[10, 0, 1, "", "DownloadManager"], [10, 0, 1, "", "DownloadStatus"], [10, 0, 1, "", "Downloadable"], [10, 0, 1, "", "Manifest"], [10, 4, 1, "", "download_drs_object"], [10, 4, 1, "", "download_files_in_drs_manifest"], [10, 4, 1, "", "list_access_in_drs_manifest"], [10, 4, 1, "", "list_drs_object"], [10, 4, 1, "", "list_files_in_drs_manifest"]], "gen3.tools.download.drs_download.DownloadManager": [[10, 1, 1, "", "cache_hosts_wts_tokens"], [10, 1, 1, "", "download"], [10, 1, 1, "", "get_fresh_token"], [10, 1, 1, "", "resolve_objects"], [10, 1, 1, "", "user_access"]], "gen3.tools.download.drs_download.DownloadStatus": [[10, 2, 1, "", "end_time"], [10, 2, 1, "", "start_time"], [10, 2, 1, "", "status"]], "gen3.tools.download.drs_download.Downloadable": [[10, 2, 1, "", "_manager"], [10, 2, 1, "", "access_methods"], [10, 2, 1, "", "children"], [10, 2, 1, "", "created_time"], [10, 1, 1, "", "download"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 2, 1, "", "hostname"], [10, 2, 1, "", "object_id"], [10, 2, 1, "", "object_type"], [10, 1, 1, "", "pprint"], [10, 2, 1, "", "updated_time"]], "gen3.tools.download.drs_download.Manifest": [[10, 2, 1, "", "commons_url"], [10, 1, 1, "", "create_object_list"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 1, 1, "", "load"], [10, 1, 1, "", "load_manifest"], [10, 2, 1, "", "md5sum"], [10, 2, 1, "", "object_id"]], "gen3.tools.indexing": [[11, 3, 0, "-", "download_manifest"], [11, 3, 0, "-", "index_manifest"], [11, 3, 0, "-", "verify_manifest"]], "gen3.tools.indexing.download_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "INDEXD_RECORD_PAGE_SIZE"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 2, 1, "", "TMP_FOLDER"], [11, 4, 1, "", "async_download_object_manifest"]], "gen3.tools.indexing.index_manifest": [[11, 2, 1, "", "ACLS"], [11, 2, 1, "", "AUTHZ"], [11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "GUID"], [11, 2, 1, "", "MD5"], [11, 2, 1, "", "PREV_GUID"], [11, 2, 1, "", "SIZE"], [11, 0, 1, "", "ThreadControl"], [11, 2, 1, "", "URLS"], [11, 4, 1, "", "delete_all_guids"], [11, 4, 1, "", "index_object_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 4, 1, "", "async_verify_object_manifest"]], "gen3.tools.metadata": [[12, 3, 0, "-", "ingest_manifest"]], "gen3.tools.metadata.ingest_manifest": [[12, 2, 1, "", "COLUMN_TO_USE_AS_GUID"], [12, 2, 1, "", "GUID_TYPE_FOR_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [12, 4, 1, "", "async_ingest_metadata_manifest"], [12, 4, 1, "", "async_query_urls_from_indexd"]], "gen3.wss": [[13, 0, 1, "", "Gen3WsStorage"]], "gen3.wss.Gen3WsStorage": [[13, 1, 1, "", "copy"], [13, 1, 1, "", "download"], [13, 1, 1, "", "download_url"], [13, 1, 1, "", "ls"], [13, 1, 1, "", "ls_path"], [13, 1, 1, "", "rm"], [13, 1, 1, "", "rm_path"], [13, 1, 1, "", "upload"], [13, 1, 1, "", "upload_url"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "auth": 0, "helper": 0, "file": 1, "class": [1, 3, 4, 5, 6, 7, 8], "welcom": 2, "sdk": 2, "s": 2, "document": 2, "indic": 2, "tabl": 2, "index": [3, 11], "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "submiss": 8, "tool": [9, 10, 11, 12], "dr": 10, "download": [10, 11], "verifi": 11, "ingest": 12, "workspac": 13, "storag": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "filenames": ["auth.rst", "file.rst", "index.rst", "indexing.rst", "jobs.rst", "metadata.rst", "object.rst", "query.rst", "submission.rst", "tools.rst", "tools/drs_pull.rst", "tools/indexing.rst", "tools/metadata.rst", "wss.rst"], "titles": ["Gen3 Auth Helper", "Gen3 File Class", "Welcome to Gen3 SDK\u2019s documentation!", "Gen3 Index Class", "Gen3 Jobs Class", "Gen3 Metadata Class", "Gen3 Object Class", "Gen3 Query Class", "Gen3 Submission Class", "Gen3 Tools", "DRS Download Tools", "Indexing Tools", "Metadata Tools", "Gen3 Workspace Storage"], "terms": {"class": [0, 2, 10, 11, 13], "gen3auth": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 3, 4, 5, 7, 8, 13], "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "idp": 0, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "authbas": 0, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "request": [0, 1, 3, 8, 11, 12], "implement": 0, "order": [0, 8], "support": [0, 1, 5, 8, 11], "jwt": 0, "authent": 0, "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "access": [0, 1, 3, 7, 10], "token": [0, 10], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "provid": [0, 1, 3, 5, 7, 8, 12], "refresh": [0, 10], "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "string": [0, 3, 5, 11, 13], "automat": 0, "when": [0, 3, 7, 10, 12], "thei": [0, 10], "expir": [0, 1], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "opt": 0, "The": [0, 1, 2, 3, 5, 8, 10, 11], "contain": [0, 2, 5, 8, 9, 10, 11, 12], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "web": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 10, 11], "workspac": [0, 2], "default": [0, 1, 3, 7, 8, 11, 12], "env": 0, "gen3_api_kei": 0, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "set": [0, 1, 10], "includ": [0, 3], "search": [0, 2, 3], "path": [0, 1, 5, 10, 11, 13], "valu": [0, 1, 3, 5, 7, 10, 11], "doe": [0, 11, 12], "interpret": 0, "wt": [0, 10], "an": [0, 3, 6, 8, 10], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "instal": [0, 2], "crdc": 0, "some": [0, 2], "arbitrari": 0, "kei": [0, 3, 5, 13], "variabl": [0, 7, 8], "rather": 0, "than": [0, 5], "pass": [0, 7, 8, 10], "argument": [0, 13], "constructor": 0, "initi": [0, 10], "follow": [0, 11], "curl": 0, "data": [0, 1, 3, 5, 7, 8, 10, 11], "given": [0, 3, 4, 5, 8, 10, 11, 12, 13], "ex": [0, 11, 12], "user": [0, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 3, 10, 11], "map": [0, 11], "get": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 3, 5, 6, 8, 10, 11], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": 0, "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "refresh_access_token": 0, "new": [0, 3], "gen3fil": 1, "auth_provid": [1, 3, 4, 5, 6, 7, 8, 13], "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "For": [1, 5, 6, 7, 8, 9, 11], "interact": [1, 3, 4, 5, 6, 8, 13], "manag": [1, 5, 10], "featur": [1, 6], "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "presign": 1, "url": [1, 3, 9, 10, 11, 12, 13], "right": 1, "now": [1, 8], "instanc": [1, 3, 6, 7, 8, 9, 10], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "delete_fil": 1, "guid": [1, 3, 5, 6, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 6], "instead": [1, 7, 11], "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "locat": [1, 6], "store": [1, 3, 10], "remov": [1, 6, 11, 13], "its": [1, 3], "record": [1, 3, 5, 7, 8, 11, 12], "indexd": [1, 3, 6, 10, 11, 12], "uuid": [1, 3, 8], "id": [1, 3, 10, 11], "text": [1, 7, 8], "result": [1, 8, 10], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "get_presigned_url": 1, "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": 1, "file_nam": [1, 3, 10, 11], "expires_in": 1, "upload": [1, 3, 8, 13], "list": [1, 3, 4, 5, 7, 8, 10, 11, 13], "author": 1, "scope": 1, "storag": [1, 2, 6], "s3": [1, 10, 11], "az": 1, "isn": 1, "t": [1, 5, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "amount": [1, 9], "second": [1, 4], "sign": 1, "datetim": [1, 10], "utcnow": 1, "Be": 1, "sure": 1, "posit": [1, 7], "integ": [1, 3, 8], "also": 1, "treat": [1, 5], "max_presigned_url_ttl": 1, "configur": 1, "represent": [1, 3], "document": [1, 3], "readm": 2, "python": [2, 9, 11], "github": [2, 7], "repo": 2, "setup": 2, "inform": [2, 3, 10], "along": 2, "quickstart": 2, "script": 2, "more": [2, 5, 7, 9, 10], "detail": [2, 7, 10], "about": [2, 3], "variou": 2, "function": [2, 3, 4, 5, 9, 10, 11, 12], "mostli": 2, "docstr": 2, "code": [2, 8], "helper": 2, "job": 2, "metadata": [2, 3, 6, 9, 11], "submiss": 2, "tool": 2, "dr": [2, 9], "verifi": [2, 9], "ingest": [2, 9], "modul": [2, 10, 11], "gen3index": 3, "service_loc": [3, 4, 5], "public": [3, 5], "read": [3, 5, 11], "onli": [3, 5, 7, 8, 10, 11], "necessari": [3, 5], "basic": [3, 11, 12], "cred": 3, "tupl": [3, 11, 12], "async": [3, 4, 5, 9, 11, 12], "async_create_record": 3, "hash": [3, 11], "size": [3, 10, 11], "did": 3, "baseid": 3, "acl": [3, 11], "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "creat": [3, 4, 5, 6, 8, 10, 11], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "md5": [3, 11], "ab167e49d25b488939b1ede42752458b": 3, "associ": [3, 5], "made": 3, "where": [3, 5, 11, 12], "you": [3, 8, 11], "control": 3, "rbac": 3, "name": [3, 4, 8, 10, 11, 12, 13], "addit": [3, 10, 11], "entri": 3, "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "async_get_record": 3, "async_get_records_from_checksum": 3, "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "async_get_records_on_pag": 3, "async_get_with_param": 3, "param": [3, 8, 10], "correspond": 3, "suppli": 3, "need": [3, 7, 10, 11], "handl": [3, 10], "hash_typ": 3, "whether": [3, 4, 5, 8, 11, 12], "ssl": [3, 4, 5], "async_query_url": 3, "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "async_update_record": 3, "updat": [3, 5, 10, 11], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "create_blank": 3, "blank": 3, "create_new_vers": 3, "add": [3, 5], "sinc": 3, "content": [3, 13], "immut": 3, "want": [3, 8], "chang": [3, 11], "That": 3, "field": [3, 5, 7, 11, 12], "old": 3, "ad": 3, "least": 3, "one": [3, 5, 10, 11], "suffici": 3, "note": [3, 11, 12], "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "create_record": 3, "delete_record": [3, 8], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": 3, "distribut": 3, "identifi": [3, 9, 11], "boolean": 3, "we": [3, 11], "get_all_record": 3, "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "get_latest_vers": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "get_record": 3, "get_record_doc": 3, "repres": [3, 5, 10], "get_records_on_pag": 3, "get_stat": 3, "info": [3, 11], "get_url": 3, "algorithm": 3, "get_vers": [3, 4, 5], "get_with_param": 3, "file_st": 3, "client": [3, 11], "like": [3, 5, 9, 11, 12], "signpost": 3, "is_healthi": [3, 4, 5], "healthi": [3, 4, 5], "query_url": 3, "update_blank": 3, "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "update_record": 3, "exist": [3, 5, 6, 9, 12], "gen3job": [4, 10], "s": [4, 8, 10, 11], "dispatch": 4, "async_run_job_and_wait": 4, "job_nam": 4, "job_input": 4, "kwarg": [4, 5], "wait": 4, "output": [4, 5, 11, 12], "Will": [4, 7, 10], "sleep": 4, "linear": 4, "delai": 4, "until": [4, 10], "done": 4, "1": [4, 5, 8, 10], "global": 4, "input": [4, 10, 11], "create_job": 4, "get_output": 4, "job_id": 4, "previous": 4, "complet": [4, 11], "get_statu": 4, "statu": [4, 10], "bool": [4, 5, 8, 10, 11, 12], "list_job": 4, "gen3metadata": 5, "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "async_cr": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "async_get": 5, "async_upd": 5, "batch_creat": 5, "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "create_index_key_path": 5, "databas": 5, "delete_index_key_path": 5, "get_index_key_path": 5, "return_full_metadata": 5, "10": [5, 7, 11], "offset": [5, 7], "0": [5, 7, 8, 11], "use_agg_md": 5, "off": 5, "logic": [5, 12], "filter": [5, 7], "b": [5, 11], "2": 5, "have": [5, 11], "ar": [5, 7, 8, 9, 10, 11], "alwai": 5, "nest": 5, "c": [5, 11], "3": 5, "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 5, "must": 5, "33": 5, "d": 5, "4": [5, 11], "e": [5, 10], "won": 5, "333": 5, "defin": [5, 8, 10], "api": [5, 8, 11], "just": [5, 11, 12], "max": 5, "num": 5, "OR": 5, "gen3object": 6, "level": 6, "current": [6, 8, 10], "allow": [6, 8, 10, 11, 12], "system": [6, 7, 8, 9], "delete_object": 6, "bucket": 6, "gen3queri": 7, "elasticsearch": 7, "graphql_queri": 7, "query_str": 7, "execut": [7, 8], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "http": [7, 11, 12], "com": 7, "uc": 7, "cdi": 7, "guppi": 7, "master": 7, "doc": [7, 10], "data_typ": 7, "my_index": 7, "my_field": 7, "first": [7, 8], "filter_object": 7, "sort_object": 7, "verbos": [7, 8], "row": [7, 8, 11, 12], "sort": 7, "equal": 7, "respect": 7, "complex": 7, "appli": 7, "One": 7, "unaccess": 7, "valid": [3, 7, 11], "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "raw_data_download": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "gen3submiss": 8, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "create_program": 8, "program": [8, 11], "create_project": 8, "project": [8, 11], "dcf": 8, "delete_nod": 8, "node_nam": 8, "batch_siz": 8, "100": [8, 11], "node": 8, "how": [8, 11], "mani": [8, 11], "print": [8, 10], "progress": [8, 10], "log": [8, 10, 11, 12], "ccle": 8, "demograph": 8, "ordered_node_list": 8, "revers": 8, "graph": 8, "experi": 8, "delete_program": 8, "empti": [8, 11], "delete_project": 8, "uuid1": 8, "uuid2": 8, "export_nod": 8, "node_typ": 8, "fileformat": 8, "singl": [8, 10], "which": [8, 10, 11], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "export_record": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "get_dictionary_al": 8, "entir": 8, "schema": 8, "get_dictionary_nod": 8, "get_graphql_schema": 8, "run": 8, "introspect": 8, "get_program": 8, "regist": 8, "get_project_dictionari": 8, "get_project_manifest": 8, "manifest": [8, 9, 10, 11, 12], "get_project": 8, "open_project": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "submit_fil": 8, "chunk_siz": 8, "30": 8, "row_offset": 8, "spreadsheet": 8, "multipl": [8, 11], "csv": [8, 11, 12], "xlsx": 8, "worksheet": 8, "skip": 8, "data_spreadsheet": 8, "submit_record": 8, "should": [8, 11], "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": 9, "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "downloadmanag": 10, "datafil": 10, "load": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "i": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "hostnam": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "user_access": 10, "cache_hosts_wts_token": 10, "object_list": 10, "host": 10, "obtain": [10, 11], "It": 10, "possibl": 10, "save_directori": 10, "unpack_packag": 10, "delete_unpacked_packag": 10, "directori": [10, 11], "call": [10, 11, 13], "case": 10, "error": [10, 11, 12], "continu": 10, "downloadstatu": 10, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "get_fresh_token": 10, "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolve_object": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "start_tim": 10, "end_tim": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "object_id": 10, "object_typ": 10, "drsobjecttyp": 10, "unknown": 10, "file_s": [10, 11], "updated_tim": 10, "created_tim": 10, "access_method": 10, "factori": 10, "children": 10, "popul": [10, 11, 12], "server": [10, 11], "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "_manag": 10, "self": 10, "pprint": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": 10, "md5sum": 10, "commons_url": [10, 11, 12], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "create_object_list": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "load_manifest": 10, "download_drs_object": 10, "output_dir": 10, "conveni": 10, "download_files_in_drs_manifest": 10, "infil": 10, "list_access_in_drs_manifest": 10, "list_drs_object": 10, "list_files_in_drs_manifest": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "separ": 11, "header": 11, "space": 11, "download_manifest": 11, "current_dir": 11, "indexd_record_page_s": 11, "per": [11, 12], "max_concurrent_request": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "tmp_folder": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "async_download_object_manifest": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "tab": 11, "session": 11, "column": [11, 12], "shown": 11, "below": 11, "255e396f": 11, "f1f8": 11, "11e9": 11, "9a07": 11, "0a80fada099c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "363455714": 11, "pdcdatastor": 11, "test1": 11, "0a80fada098c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "343434344": 11, "test2": 11, "0a80fada097c": 11, "473d83400bc1bc9dc635e334fadd433c": 11, "543434443": 11, "phs0001": 11, "phs0002": 11, "test3": 11, "0a80fada096c": 11, "test4": 11, "0a80fada010c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "test5": 11, "index_manifest": 11, "prev_guid": 11, "usag": 11, "py": 11, "giangb": 11, "planx": 11, "pla": 11, "net": 11, "manifest_fil": [11, 12], "path_to_manifest": 11, "replace_url": 11, "thread_num": 11, "api_kei": 11, "threadcontrol": 11, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "delete_all_guid": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "index_object_manifest": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "loop": 11, "ha": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 11, "altern": 11, "behavior": 11, "simpli": 11, "manifest_row_pars": [11, 12], "custom": 11, "import": 11, "verify_manifest": 11, "def": 11, "_get_authz_from_row": 11, "strip": 11, "parser": [11, 12], "verify_object_manifest": 11, "verif": 11, "error_nam": 11, "value_from_manifest": 11, "actual": 11, "value_from_indexd": 11, "93d9af72": 11, "b0f1": 11, "450c": 11, "a5c6": 11, "7d3d8d2083b4": 11, "dev": 11, "test": 11, "async_verify_object_manifest": 11, "_get_acl_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "1654627682": [], "4302042": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 12, "column_to_use_as_guid": 12, "guid_type_for_indexed_file_object": 12, "guid_type_for_non_indexed_file_object": 12, "NOT": [11, 12], "guid_from_fil": 12, "_get_guid_for_row": 12, "indexed_file_object_guid": 12, "_query_for_associated_indexd_record_guid": 12, "guid_for_row": 12, "elsewher": 12, "async_ingest_metadata_manifest": 12, "metadata_sourc": 12, "672043": [], "get_guid_from_fil": 12, "metadata_typ": 12, "namespac": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "async_query_urls_from_indexd": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "gen3wsstorag": 13, "copi": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "download_url": 13, "ws": 13, "wskei": 13, "ls": 13, "ls_path": 13, "ws_urlstr": 13, "form": 13, "rm": 13, "rm_path": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "upload_url": 13, "1654634067": [], "5923028": [], "8967967": [], "1654789636": [], "6798043": [], "9773014": [], "1654807944": [], "3028057": [], "560571": [], "1654874610": [], "345438": [], "6664228": [], "1654874771": [], "190345": [], "4957037": [], "1654887195": [], "1666398": [], "5790925": [], "get_guids_prefix": 3, "prefix": 3, "get_valid_guid": 3, "count": 3, "populate_object_manifest_with_valid_guid": 11, "minim": 11, "miss": 11, "anyth": 11, "side": 11, "No": 11, "part": 11, "1655136811": [11, 12], "5685084": 11, "982317": 12}, "objects": {"gen3.auth": [[0, 0, 1, "", "Gen3Auth"]], "gen3.auth.Gen3Auth": [[0, 1, 1, "", "curl"], [0, 1, 1, "", "get_access_token"], [0, 1, 1, "", "refresh_access_token"]], "gen3.file": [[1, 0, 1, "", "Gen3File"]], "gen3.file.Gen3File": [[1, 1, 1, "", "delete_file"], [1, 1, 1, "", "delete_file_locations"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"]], "gen3.index": [[3, 0, 1, "", "Gen3Index"]], "gen3.index.Gen3Index": [[3, 1, 1, "", "async_create_record"], [3, 1, 1, "", "async_get_record"], [3, 1, 1, "", "async_get_records_from_checksum"], [3, 1, 1, "", "async_get_records_on_page"], [3, 1, 1, "", "async_get_with_params"], [3, 1, 1, "", "async_query_urls"], [3, 1, 1, "", "async_update_record"], [3, 1, 1, "", "create_blank"], [3, 1, 1, "", "create_new_version"], [3, 1, 1, "", "create_record"], [3, 1, 1, "", "delete_record"], [3, 1, 1, "", "get"], [3, 1, 1, "", "get_all_records"], [3, 1, 1, "", "get_guids_prefix"], [3, 1, 1, "", "get_latest_version"], [3, 1, 1, "", "get_record"], [3, 1, 1, "", "get_record_doc"], [3, 1, 1, "", "get_records"], [3, 1, 1, "", "get_records_on_page"], [3, 1, 1, "", "get_stats"], [3, 1, 1, "", "get_urls"], [3, 1, 1, "", "get_valid_guids"], [3, 1, 1, "", "get_version"], [3, 1, 1, "", "get_versions"], [3, 1, 1, "", "get_with_params"], [3, 1, 1, "", "is_healthy"], [3, 1, 1, "", "query_urls"], [3, 1, 1, "", "update_blank"], [3, 1, 1, "", "update_record"]], "gen3.jobs": [[4, 0, 1, "", "Gen3Jobs"]], "gen3.jobs.Gen3Jobs": [[4, 1, 1, "", "async_run_job_and_wait"], [4, 1, 1, "", "create_job"], [4, 1, 1, "", "get_output"], [4, 1, 1, "", "get_status"], [4, 1, 1, "", "get_version"], [4, 1, 1, "", "is_healthy"], [4, 1, 1, "", "list_jobs"]], "gen3.metadata": [[5, 0, 1, "", "Gen3Metadata"]], "gen3.metadata.Gen3Metadata": [[5, 1, 1, "", "async_create"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_update"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_index_key_paths"], [5, 1, 1, "", "get_version"], [5, 1, 1, "", "is_healthy"], [5, 1, 1, "", "query"], [5, 1, 1, "", "update"]], "gen3.object": [[6, 0, 1, "", "Gen3Object"]], "gen3.object.Gen3Object": [[6, 1, 1, "", "delete_object"]], "gen3.query": [[7, 0, 1, "", "Gen3Query"]], "gen3.query.Gen3Query": [[7, 1, 1, "", "graphql_query"], [7, 1, 1, "", "query"], [7, 1, 1, "", "raw_data_download"]], "gen3.submission": [[8, 0, 1, "", "Gen3Submission"]], "gen3.submission.Gen3Submission": [[8, 1, 1, "", "create_program"], [8, 1, 1, "", "create_project"], [8, 1, 1, "", "delete_node"], [8, 1, 1, "", "delete_nodes"], [8, 1, 1, "", "delete_program"], [8, 1, 1, "", "delete_project"], [8, 1, 1, "", "delete_record"], [8, 1, 1, "", "delete_records"], [8, 1, 1, "", "export_node"], [8, 1, 1, "", "export_record"], [8, 1, 1, "", "get_dictionary_all"], [8, 1, 1, "", "get_dictionary_node"], [8, 1, 1, "", "get_graphql_schema"], [8, 1, 1, "", "get_programs"], [8, 1, 1, "", "get_project_dictionary"], [8, 1, 1, "", "get_project_manifest"], [8, 1, 1, "", "get_projects"], [8, 1, 1, "", "open_project"], [8, 1, 1, "", "query"], [8, 1, 1, "", "submit_file"], [8, 1, 1, "", "submit_record"]], "gen3": [[9, 3, 0, "-", "tools"]], "gen3.tools.download": [[10, 3, 0, "-", "drs_download"]], "gen3.tools.download.drs_download": [[10, 0, 1, "", "DownloadManager"], [10, 0, 1, "", "DownloadStatus"], [10, 0, 1, "", "Downloadable"], [10, 0, 1, "", "Manifest"], [10, 4, 1, "", "download_drs_object"], [10, 4, 1, "", "download_files_in_drs_manifest"], [10, 4, 1, "", "list_access_in_drs_manifest"], [10, 4, 1, "", "list_drs_object"], [10, 4, 1, "", "list_files_in_drs_manifest"]], "gen3.tools.download.drs_download.DownloadManager": [[10, 1, 1, "", "cache_hosts_wts_tokens"], [10, 1, 1, "", "download"], [10, 1, 1, "", "get_fresh_token"], [10, 1, 1, "", "resolve_objects"], [10, 1, 1, "", "user_access"]], "gen3.tools.download.drs_download.DownloadStatus": [[10, 2, 1, "", "end_time"], [10, 2, 1, "", "start_time"], [10, 2, 1, "", "status"]], "gen3.tools.download.drs_download.Downloadable": [[10, 2, 1, "", "_manager"], [10, 2, 1, "", "access_methods"], [10, 2, 1, "", "children"], [10, 2, 1, "", "created_time"], [10, 1, 1, "", "download"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 2, 1, "", "hostname"], [10, 2, 1, "", "object_id"], [10, 2, 1, "", "object_type"], [10, 1, 1, "", "pprint"], [10, 2, 1, "", "updated_time"]], "gen3.tools.download.drs_download.Manifest": [[10, 2, 1, "", "commons_url"], [10, 1, 1, "", "create_object_list"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 1, 1, "", "load"], [10, 1, 1, "", "load_manifest"], [10, 2, 1, "", "md5sum"], [10, 2, 1, "", "object_id"]], "gen3.tools.indexing": [[11, 3, 0, "-", "download_manifest"], [11, 3, 0, "-", "index_manifest"], [11, 3, 0, "-", "verify_manifest"]], "gen3.tools.indexing.download_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "INDEXD_RECORD_PAGE_SIZE"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 2, 1, "", "TMP_FOLDER"], [11, 4, 1, "", "async_download_object_manifest"]], "gen3.tools.indexing.index_manifest": [[11, 2, 1, "", "ACLS"], [11, 2, 1, "", "AUTHZ"], [11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "GUID"], [11, 2, 1, "", "MD5"], [11, 2, 1, "", "PREV_GUID"], [11, 2, 1, "", "SIZE"], [11, 0, 1, "", "ThreadControl"], [11, 2, 1, "", "URLS"], [11, 4, 1, "", "delete_all_guids"], [11, 4, 1, "", "index_object_manifest"], [11, 4, 1, "", "populate_object_manifest_with_valid_guids"]], "gen3.tools.indexing.verify_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 4, 1, "", "async_verify_object_manifest"]], "gen3.tools.metadata": [[12, 3, 0, "-", "ingest_manifest"]], "gen3.tools.metadata.ingest_manifest": [[12, 2, 1, "", "COLUMN_TO_USE_AS_GUID"], [12, 2, 1, "", "GUID_TYPE_FOR_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [12, 4, 1, "", "async_ingest_metadata_manifest"], [12, 4, 1, "", "async_query_urls_from_indexd"]], "gen3.wss": [[13, 0, 1, "", "Gen3WsStorage"]], "gen3.wss.Gen3WsStorage": [[13, 1, 1, "", "copy"], [13, 1, 1, "", "download"], [13, 1, 1, "", "download_url"], [13, 1, 1, "", "ls"], [13, 1, 1, "", "ls_path"], [13, 1, 1, "", "rm"], [13, 1, 1, "", "rm_path"], [13, 1, 1, "", "upload"], [13, 1, 1, "", "upload_url"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "auth": 0, "helper": 0, "file": 1, "class": [1, 3, 4, 5, 6, 7, 8], "welcom": 2, "sdk": 2, "s": 2, "document": 2, "indic": 2, "tabl": 2, "index": [3, 11], "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "submiss": 8, "tool": [9, 10, 11, 12], "dr": 10, "download": [10, 11], "verifi": 11, "ingest": 12, "workspac": 13, "storag": 13}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index d51943f09..287e1e359 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -285,6 +285,27 @@

      Indexing Tools +
      +gen3.tools.indexing.index_manifest.populate_object_manifest_with_valid_guids(commons_url, manifest_file, output_filename=None)[source]
      +

      Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs +for the given commons.

      +
      +
      NOTE: This DOES NOT index anything, it only works client side to populate the manifest

      with valid GUIDs (which are obtained from the server). No records are created +as part of this function call.

      +
      +
      +
      +
      Parameters:
      +
        +
      • commons_url (str) – root domain for commons where indexd lives

      • +
      • manifest_file (str) – file path for input manifest file to populate empty GUIDs

      • +
      • output_filename (str) – output file name for manifest

      • +
      +
      +
      +

      +

      Verify

      @@ -340,7 +361,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1654887195.1666398.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1655136811.5685084.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index ea9c87a51..7a2e696e3 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1654887195.5790925.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1655136811.982317.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From dbcc944d13e7ff51cc002c84abca4321d6edb43e Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Mon, 1 Aug 2022 17:45:12 +0000 Subject: [PATCH 06/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 311182 -> 319666 bytes docs/_build/doctrees/indexing.doctree | Bin 145291 -> 144585 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 94216 -> 103405 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 36340 -> 35851 bytes docs/_build/html/objects.inv | Bin 1859 -> 1866 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 45 ++++++++++++++++++-- docs/_build/html/tools/metadata.html | 4 +- 8 files changed, 45 insertions(+), 6 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index f71a741147f84d5f81d2c82379fa3348e33db4ab..7c88452f678ed740bdb41f29ebfec64330ad11af 100644 GIT binary patch delta 30830 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 PADHs_ozv}d%_#nV21XP% delta 24537 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 diff --git a/docs/_build/doctrees/indexing.doctree b/docs/_build/doctrees/indexing.doctree index 32396a0ac8abf73686c7406651a5474029495494..d2e4203e84283e84766e0b1f4f2bebd05b9c1512 100644 GIT binary patch delta 20149 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 GL;nxW+W*-A delta 19740 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 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 9175934a58bfbf530261145d1969124ccec20c8c..04558c4ba81c366193920c3c26dea5ac30f6a004 100644 GIT binary patch literal 103405 zcmeHw4V+w8b)RH??#PlXf5^tN{T1l2=%Z@CqZ6RwVRZ6?HRk?>O9jKcvI)`PTuQl7SFhicC%!6yhSKcs#I&`rd{ux=y+?Wc&l1- zheiDru3c(X8+E^WWm#o;WyOh3zS8F{YgJn{TYKfLIZ!X#XRGyT>sX^vb30TL1(zPP z&k_WY_iyfSn3m5L0YR%%S?Bc?e2^SVix5z>g3 zRLd?wzoJwtx-K5#`?7j*hJRaGZqKS8lf}}hraeVv+TMy*ahhIrDr+knDwkHSt1PK( z^zIv}G-m9PX1iXunpBkE-YgHQc@J|5jjGH2Ld&KYYT^Kyt0W#U%4JbuG|2;-iUuU<6l4i z4PZExSF>RZ@#2+1biW+kFY=Z#s5Clp5+=6ftpF{WRffL2w{*5xZFan&nMS!?v+uA7 z7sG6{!~ST?Vi<*)V!b+LW9;4_FF%y7cxCx`t5c*Q+=UT~A$V`eN(t&LM2V3IY{Rp2 zyNP5NA{ezXm2yNt=VG9<&+7xT7N?uV*@}iz@3}(^Kh{*EX-T|TMK*a{_E5q>ofa*L zDD&8dE#6qU-?jE0IWRD69c|CfHkvIrH`A`Qs4q`Gx$IC*Czr z*jWn^=+y+7NIyZ2V18e8TqQXk-1S;tG<@n<#kR`!R1suW+yd^JDYmRq(=N8aF;!62 z+SizwDGnXAi7n~jL&aL#=FF5Yxu*wmXR57=)oh&Md}yDxn{!sv2BVaRt-V&oE|%>k zy{G16%dE~+)vlE-COmiNrrXu>V6ok*ym7Etstppe7ToF^?ZKJyj=^@b=JH2eo|4>O z@BL7ZLGf2H6Mt1sLQ*V?rRl`IgizONRX{^%JWNHGrh2V<%7(0{4O$$(Y$6j%2P{{R z6?JUuG*Q;I7;W6yB4)imiO)yV3ImPo80gb5aJS^@Op0eYi7(g}-kyCAPE3rAA1mxX zFk$7Zb&IQ(baH#3<84i)gNC(UI6Nk&k4s|iSETe07^ zZgqHlXJ=}=88gC`L>1R=p0=4W@(ysoGrSizCsr|Iq>qg_G~CLw%u-zM1(2kG{RI=S zD+yQ*=}Kxm3S{NOm7gcu;v-RrY-I)gt0I|HFelMo$IDTxTp4$QBVNwgujAdEibk+S z8ScPS-pZ+Vt;XQ1JWBxmo61Ix8UXe*jgg^vh*1JP~d(&J-A;3n6C(s7cuKibU4{4&uIXG=&dI2&&O`%?^yqs zq_cLt3|Uk-ibv{N5yAZ*;cVRZNs`|;IhK*tX-;3RZE?7Fihum3*M|ekI6Wa$~o`A zf${xg5AQEbjO{x-vA=L+?|oy1qX%9;){EZTlS)1fC-i94fo~0J^nB%Q@_~1CVtY*I zz0)t4R%Zz*khZv*hsTWbFkks#)ga|~GGQK@Uzq1i(M zB#i0{a#YfY@#UX)bG6E1vUd|fvlB9U9 z0QhYM{vQXyuY5K5J74)z`M{`C94`|vP%F+;RD&x+(ky@D_p_u*o-ASyAC=B~s4zYH zzAUDc2NhRX`I*#!^sYRpN9PK3bk4bwx_jQa3V)=UaDF;92)d@Y3OIQ;YNk*Y40mDi z945Hb7u4>L3y8Y44VB?DhZMzX!o+#Zpf&v2AgGDC9;}mhK8F4i6^C;N-m)Ujo%HP` z`q<-ty9?hIT1gz*`*303;c>a5m>7HQgJVaJ9X*dqBB95gl|*8D7g|aD1;~?Z7MYdA zH~qRyNn9OJ65pbiLP;czR!#fw`b}k55>YS||2kho!`+nx0jn#Ct1&IUE? zXR9;q8A~Y(EW)rXAy;I*)NYbvUn&i_t4hs=>*jo)qLB@-~DW^SY!Y1Pb5Dx6Bq+>siP^QLBYr3OJ)GuHtp+flQd zD!`hA;Vvx9!vvRVhT63RMBUmZH6xiLy_%8pNl+8gLQPZVd2kM(|1N5Vif}d4pl?jg zuy5x<&D?qH(2>HuhacEK)|1<9OSZDg?lGB^G(E8(?;2FsW!8NT}e>~~eW%^@N zK!5x=z2y2sAD|L!Z})3wR~gZs6)!qJhK9SV41!Nr8JjRE-XuUWtBlk4Hfprxpqy8< zX*OFcmT14KWzS%P3ma6-o8{)l4<8$|hOF1wR;75_rWHurg|}QU$D5lRDXGma<_SB~ ztYRl@n)Ws74Ple7_s*X0?%94-8~}=TA2rf0ETg1SvVh_bD-`#6t0rrW(y785+KpDg zd;D*?RvmJSQ?}(ctTVP%D%Sg39EHVNP1`h-NCIMMkHLk@mtlT5cMKJ=`(4C_A~qJu z!8k}QF*4Z2QbjgmQ4@?ZMec#*`;hfgv6VxUGZyQx;kMvXW?Pk@$#5>TMDjjx@xv^Q zln=&&3bJ2J2-en=pXrI)HiO$fjhbDwq4P;GKbWbO6w#o&ZSBb90na3tdn>C9{qQ*ny3i3nr>VottR&EJXlQ=EK&hc zOgyru!1s{+$e8>1-);*S*?T9don!5&{q!b+>>W>p=^_C$sHVfz%&u>g?&~ z;~$a%FT)5)=pUrjV!>Yo?%6(w5Qnn`wO}j=FQdC>8{Spx)TC@-&v>J54=`Dr$7bwW zwxL+8L&FzCp=#c}$M0lsv6ojkWzRvIm3Lcr-q=Do+HR|#4XgjIy9O;)itS`-Wh}gh z+m2b4i@eLit!cYK-ZIvn)DhyBk{$cOdC86jZ}F*4F*M7Zd#K6==Pvw#MWyX77x;#& zwqLy1k{#ol>h!@bot}wydQ|T;IM;OegtOealNaCRcjW#2MHIC)Y-U{w(W9WQ3%Dt9 z%12bZ)o$99P)K$hYK8;v?@M@_x{a1EC%P3=>@(K|Sku-;Jg|$r%h?>FV5J$mWj8~6 z#$M|OAx-=V&f_EYecfQxE`IO&rp>O z&cDVVlh&1U^sT)3Q>?i2H2%n42=C@p@|xqv>F71rhH6Ur6M3#i`tJx17GxX8`_B9E zIwAwbP=6lpm<(L!i{J)!po)ln(22Boj|2nXRL8$*?ATk}h@$w@RAqxB`t9?USL-YS zS(CX}#p*T*K*C!E)bE*rLevcl{wuJkuONWl6)q10Ex0qqW{a)=+z#zBIA7A??k>I! ztg$wvqvM!hb)bwKdg!Sd@;8h_HZs81P_;ej{09E`%$q>%zcu&r1-y>1nIO05<#z+U zY?tF&yj|m|WlN3B{BpRL?lj|_&x>Z)CYw=ll$u^&+^i_>!x4EAlh|0U47g4W>v47*Jxh7an5;6Q(jrOQ{v?kgePEWg{ zxfc`dL@xo_EhY0`j*b6NBWjrY>VbY7gpBm-Ui>FWMs09njU-44evSvrl;P7=`%DRk zc{<)&`L$52mns3hCxQu*j)nw6$A$|$M$Bc$Sh}8;K=>kJ(5mH*^C&>}ma~Ah5{~i& z54=#sr}GxVzCI|f<`p)aQ6?2B%rYiqC2c^Z2y7vEgag_)htc~E!YmJ^G{m-S-!InZ z%sI)NwS1xKhq@q0qG4$VHLz}#T-RG=#ibuIa;d(`55G>yH!;KbZ-KSUYnHy1hevO~8XCe8i$=@hL5A!^kSJuGsn|FRz`_a3I1+Fg2d|{VVNDHPHH)u)_GGEVy$1E0x~hyo5i%(R%L^E3autdaT>Dd<-ofFd=BY zx6FFwiDz`TOazJRy<0PIhnfZ9hLos{^QRsGSzqjeFOuWGk1{CwC05jV0e_^)9pUty zp;aK`c6b42$rV?uF}|0+K*sdEJZEs{Wvyv1vTzhk9eJ*Xf9tX!GbXbE4NEZgEvOX3 z*!0-M*v@x!U=3`1cc>vVP=bx`WI!bs)!Eotfx;;x#htw$^i^T} zb-fHuU_2E280>MSWErVs)dSUgrI+4qR5E!O9=oI!$66s`b|g$yg8ekIgU zvREJz2?_EX11h;_&uspyXxJ=4I6i{&IZ=Xqv6sOKjL%V_<3g+tY#EHUrz94F+s%a5DITWp-{A{+H};SRBN@y8N1A4 zk9J$f=x81OPxX%-KDPG(5$lRwOc?Y|8;2n%fQg;J6T)fOdeF5IGte_6sOgkMj zIFxTyaLgJTnREb~9iyNF+@g--PTgB7GYOOd~lgT%% zacod~5EeF+O=c0;qGSp&86;OhL4eMelKg&-sCrACMc3dX0|n+RF1(M#wzQbV7iLeo17oyej;>e@G659lT=thaW52 zoXj-AgwgY(j64yehaP8`^%UJCjUM{0fNF;tN}kG^(bHr=B^T{^)}KMc=2`FKBQWbD z=!lv1F=c+^hnp!C6~kleKJ6drLc++jH#X_~4p!;#U3?yYOp89W%7WdLgz|M5)3=E-G94jw6Eywsf4~Al8~QDQu+S*HK&qBX&U0Me6q)dkA!C} zrFy!Ekgc&T*j3@ZbPSq5Ri39~#mR&$PpvLlo+ME&NMCAVFJ6&lVuN1JBC4_J;F2U{ zy=?&#DADdq(Y0WJ@l;B=qc)aWAjV!lyCAYJxi0+J%uEvzH!#XdjaqxA&hujV379TM z&=e`w_DYK7Nu-$A3$s??1codUlL4JmS|Tf%#|p+a%X>vBudv8HLl!ba^`wn;wq>6! z&LEMUkIM7Wv_i$kUQvOJR=yzDr|`ocM|3%5N3-xBlA&3Y6^*_lqZd!;h3|-s&TZSV z!ydhT=hV>D)~Q`XTesS`58Ynea@)|B;;t=I#d2}W?YEbx-uBx@%ezLmZ`m?g+B#Xf zy={=>*n(|>~M9(PA~kBrQgOSFb@5glib zAWdd#>oBr@o=5?~uC5T2B?Q|?+5ZRv>YsX#?|d6|o}%yDy7s+Y^u2@kynPgX&Q{zl zTefT!f43#TFq#sEovC36Qb0g~$o78zbsN#+cz--bwi7h{Dd@3vOILWn8LUhY9>o#y z5bPibgkE^~3qNQEe&vaG62Q><|HQ;#<{uCfg9?I;L5M-@S&N_BI9-n8K|C`tcBVqz zCwZ?79paF9I5<-)QUB^*Mg6LvsPAoYan9Q<6Lh3VTo|;^k+pC*?#NHDRC3BfUs1_* zXvL7RDUfuJ`I)r?5jUm)L)w?A$|~}V8_8onI{g~It~44ihfem7LO2i5dw$#@Fg(@! zkNPddttQNAnPPia%V}o}Z6}_f_BMA%X-CAk(J*M$i{wrIIKi9u3D_}YLyVgt_n$zG zp@c$|YeZDcvP(jGB_N$ukYS6t#h=N(j@m?yN~ z2jjv z#HXg;B;e}SJUPxJqey|JW|QJuU$SS|1TJV5AjIFyQT&)M(OH|9BG z-@=|VE>!26;cxW52M_G;b_O&k=b;VyyUUDWYB+etGm{!v%IniUJ^5Fb3E4z33b)~Wk zri%J0dM}h68MnSx z?z$ILX!#FDw1j86CPXa2{hJEzg;IDgWrBwk-iuVD7lrpVs+dyYeKR#!x>Crryh)?* zz8(T2tnec5(feZWI1n@1m;^M3%#!YaH7^dW^8ey?U=7llXJnEnLdcGF0t@Q9tl z3MD)ZG=)b^|DK>qx8_OV$tfeHpLqE>W^K3FuPe3PtpRPfgx+&)$H%24`xSoG?CLJITg7wEcfmoa)E&VWQg^pv z7JSd2F{T}=Yn8gAV41j8ovDaI#efkNx`ZQGH6=F)SZ@)Pf%k<{a(gntLrQKp)#ydZ z9ioaUmE1&XuyjSR;7aar2#m0ji@Z;x$%WsmS=U9$4TDV% z0^Dv|h?E?$Q&@?Fr-8Pfqo!{Y2<+B8DLFZ1(knSB5EPF?&IN~_cNj6uN{)(fCHH>% z#*`fUcAk{ngA?aT$x*}eQF6Tgg;R3BF4#koJUGA1O77!+U8&@@1eDw-=)F*KY+OpR zf6lL(UCG6Et9Z`&MYNqt$q{@ZCAS5$;Fkn!<~5zB!4L)7P02-yC{%peh>Gy+)|A{f z!1}U+b)l5pcQV04O71VHMlVWk@v8JnZaJ0B?ATjyCATC5Mp(&3-ltJ=8$*o-C!x*) zx&n8uM74!gauMi5N-q3f&AKj1ZadiI`(Tr9T8NY!u~S%y=s2J$t0_5Z`p*Q~`gOA_y4Zdd-#KNpol4OW zfFVV<6MQ`-U^6Sa>$KGz-4h?H>db`{I{u9j9pPE7DZ5>O_h|+1LMgisWrBy4-3O>f zFUs!YRFN@!R3(H%Qa+g)EL|ZixU&012#m0@i@cAHOh$(&7I-1lXi8=Gc~o0iWfy@y zr0l}))y(Un>~@1qei`6)(?+E1h@Ha9Bs>i?Wk*fFPav>c^Q7$Llu57bq)<>i4q+D@ zdfs8gFe^JM!j;|1OQo`7-_DP++jV4O?4d$WL70On6rSJuJd|Fa*2slZd^Z65$#%0@ z@on_$O2v0)K=EBq@44dB2B)U_h+jXu@{8?T@u71K+D@hX2*{A~yAw0xS^=9``Q4Xv**|z<-Z|f1#A&BbneKW%v-)=tUV;sbWfH zSWgYsc~yp|LSTfIVdQ-pW%%Y$qbZf)W2m;U$}j?bNEwFTtC`qE8U6^^WE$Xh(^jMm ziJijACOi!^Wk^jQ6$tFsJSjstWzs7{DI^q+LjVSco_82A%*v38aAo*u`o>m%?3-B` z_R%#+Q`I`|J8abBvlk*N{LXj3)pG#Ue{#QbDr_|#}y^loU^-|!f z&+AMRP%@Uekm9y)hI&orHg*v}yIJix-y#kJ@BL4zyTKvA!Eo!nw_23-y36!O2{!*< zdEz~q1bF3%_fp*$A%LeTr2tB%M6L4;fGiVSduCJ#8`fM%;q&haC+S?#bg=@%=l2PL zG5D;c#b+|tro*X$3xf(RtZ+5Eb00Y2%Zw9}S%?PtM}#0LrHrjR&r{KWZ2ONXI`|Cl zKxK^bp1CLzFbyAL_ulVo)REY~hICBhm^61wE)-%p@jj0gP(#fs?g^l?dgr`50*zVu zQmyE+d`;cgtBA;ny{9{*_5&Rxu52%6+#1fmj|N7Um)BC3naSer*}`wDY~g;%ntUX# zpLF)%vJpu%Z`*PIYDq?c{?s>1B1s^tp-sKJR|iFhb4>3l;kw8BLY0D(&pC-EA~#=& z`yQ#ku*IrRaCw)UxbN`}zo(0p=%I@pQ{^TQ;yqPaCFOtA$3?vJ!gQsh!lQGXnh9U& zxH`a_QlE#ODo~s*pqMUfj0MFxr?cHnY32sEdxF;tu8UL@rGi%qhDyodt_?p|1Af9d zVB?K)kD+SH>&Kop_hP!jO7s%A!fNprIWl}xV|kCcmmV&!;+-e!RXM4}Er4e^MxNG5 zzK*i`2V`F?o0lSs=6+X%(B(cB|vP+IXW_(2`KsiPeBJ|2i?}-IQMy2H{)q z7Y3mMkc(6`GG_QB4sbS-X&;hcK5#Oo+6S1?zVQ%&h2KZd-qA6 zEb}Cv9#{aa5JfbeU$Q2s)K!8J@A8C}u<%S+ar)vmT0k-n%Us2!XJ~mAP5mU?+^6IDh1s zVzb_P%DEEm2j}~s06P=zFdoraO^%i5_B|x{yhx4tgNuPTBDTq*qA}2tX@t-Wy^ku3 z=quKX;60Tg)Y`|)d49z}lM;`+bGQHy_kmU4$ZtFsjL^NH(lt9pPpSM$49weTUWCC^ z^D@r4OCd3GI$@x4l7*3y=bR|GBfy6I(E1?&%blX*^o==1*|!9zsKa5M&ys3y*~UF^ zb^*846lfdA%@1Ubj~VU0{2C5-leo6xa?q5<>$-4Td2+1`vP}14y>emlx=b5+%e;|T z^6PqUzc?1^VXVs3$$qXe@3LqSE}5e*)C4^34>W$!V6xN|lAJa*!xjxeOFgG(FYL8| zRkxI0vlqcjz14FlF#bb<>={8e+S=z()ucm0hUk;5cyI}^l(JCAf$Tpgkl7Cf@&|hd z`Tf0soGcIJ2!#a}Pr?gpft|$&gUXwU$Js7v*Jk+Fc}O3$pJ2F`s*0yx65yp)ofowv1HNDM@$LKv zxJ!de0OzyXBk%a@_D+l+7{3pfBHe%BsI~9#p(78B9UFV#5o==X(BX&1j#>xC_m4e{ zU;7SE>_3WYkdBV=qKC&(=)k?!BZnWf4vrswUGCWZW7YvwKd^7_u>*(4kIJh}zNq(i zV8Qxhk^>TA0b5io@n>0BLhjQ23030B&cBYYa7FyFHuUh$oVP9>VHi@(8wJ{Tvw+47 zJptEJaK_&;xPr?E-6=@&Lb&kx5R&B|6%{UgZQ%bSMF-M_?+?V`4ZyrJc2^$%mQDK_5_oXN9Bj#RA z#1*{+h`Y(WSdhc+R!m`G+6-S048g&k7enOJE_vcuVRQG&5>07}DpWmTMwN+S9!t+K zPn&x&F^uRXz%a|$(ohaq{8D3jkGZ!V$j^b87x@QLuVdrre^Z*;5+UgdD|~(2j4u-p zJeQsae#_j8i3db40UqG`UF^SxmHi9mzIxyQ4njr_=w4h#h4{vazPi1zdlE+gL*kx< zT7F0NBzB_Sg6v5U0CG=4uJPeV+$C^hjtY79fktDNyjhL*bcO9q(1nuz^{MnjnofgO zdlrr+n@*MBkGlL@ULT(0@5N=}R&|Qqm`Leis;*UUwB#L%O}o@+mg#~)i>@o63oR*^ z8d8T^r3%jE*kw5*FH-1~2w1YtWE6%R&*ZDV_&rx(oke0)V4cwU%Y5al!OfO@vhV)q(lj`)LBsmJA>W7g3Er&X z<0EimeFPmbH`d3L$!WAzycjN+tb0ht9sxcEyWoTNjeeh_Zh#dv^Wm$dd}T{h#ffzA z&}uc943$OVcrxU}6NC>vRpWgEAnCl6OjjC*;LFF@I3j#WkM*{C=F4Y84Vi%weEBv8 zRB}}0xJq{po$G>` zj2ya6xnn7!ti=Q+cD^RMapuQSv$PAQV(f`JPN-o+ni~b23HnXUYj{u8C&=JF;F=aM& zp|(O(xN>)9eZC8hGBWFZm42{YS~4|TZQR^#ovEVKWYMjb_=`FW z7k2sgEDoZbfq5Fo!A7V3HJ1lDEt%>X*ItQAF$$j^r{~(0a(vl7B!zi;?7U*{^KUOA=eG_+V1ScoHSJ?Q)Oxz=w`lAdX5vHcc>6zNF zM0-BeP%@utEd3uDP{~DmX6etNVKYnn_z19c1RXIf9aCn#q&}`@*Xgfl7OvEtgFoB_ zHyJs2XJ~UtaV~$sd}kIjC+Pf(98eq!NA{xx>qefd;eR(1cL0WC+D4j?<~#!nwS7-iYmn3pNaj% zoY>FUFES_Sar!x7v`tQgno2b*UeCZvF52^~D4=2Utne`sm=zI(#LSAAGJEF7K8m>E zw!6=oy6!&R~f=#{c*lj9F~Eb2&O&IA{$I4-bm=_R25!3|jjd zwf0PXUoN**6tOIdO-2#%-(YT=|AsxHH&o=F!CY>_cH6ZU2B}bm^-LPa#=niD>Y^U^Z5a31#Khr= zkZ z{cxzMWFu5t#r-S;E4gUT_UcE_u-RVqF%qy>BM6DHS0iOq=8Dh$!?4{LPlH+hp$tb& zo-btKQg%3W9c|ogI(Q{^?j_+7iyb{SoDZHGKAT|wrZRuYvQ4&t>20zVEaXw(Q1SYB zU?iE7UMsZyw=8Ir$9)Cnt^?*?X7fDexNi(1gLr%-6~dB{l?_ohrRhzgO%#6RiJz4# zn3$!Ewgvn*^F-obB_UCZN*e6}6LLIMmklO%(Iwsx^I2-qr44Vzl|fySEY+a^^r^K0 z46+oJP3}C>8RFbEM}u)8FV9_T9QbX9JR?kwICuT66h#FroUgOO@`s#|fjk2*&VTVL z)~-Y#eL*9auiA6Dgk_I{%UHFr)5^1DFcv}Dqkz2^-%gw)+B@%IN^V_%mXv(EEer34 z$q$GV+GU{i01&#z1@5aoSf`_>*GZz(kO~g2;gE*b`shPnzi3WKG1z8bVKr12Aqq1A0)%CrCNz-EkDtB9F z1cfx!;)Bz$nkb~V^$Hx_uFbnKbB7Spe43k!28A?@g9~YMEx}0A*CBJh87pB%Y;fM1 zV%hZj`nd*Ulg{t(qPKJp@2$}NSaiZCoaZWhe(EbIcR4F(I)=1j!fv&jb^i>K|62)Z zHxrfV0MabgFdaZr%=Pd?%N8x-2ivfDi4>5C&YWuGj$h3CY&%9%?6Y0;12`~#@8OZH zfqlZ+hU-=*L4#Jch0g}|!D(BR1%fw=b(dw)8qOV~BaO82T*dY&Ma`D0^&)o6TlU!& zw#rMzwhJ=05R~X59;VW0(jF>pGn2oGHjwFWLF}B9B~5gvATWBTJ$9>aq(@t~Y(W_u zdZgFK`x~=%z5fJNn!#a5i1(s?w}hm{^DeIC(4NAwg-9>gEV_D-t_(?j zSw^S{`I=aOy<*A&?STbk(c`Z?@lH}22$Mb`%YzlyYmNM7$gGID%`99jK)wf(BqdwS*IE zsq_`p6#CO%2TONGE3l0NW-Em^bte_G>B(qb7@K|-x9Kf@T$e951J4u|`qpPz1(R*R zoNA=A?Y(t0YlWJ^k*n5#%$^#(5qTLas?EPmsUhn%Y{C06jH@ zlEAgUl$5MCpzWb5$urAXMVn72fLKN-l zYJZU3C+yW2V;8Rpo3Jz!(oa}(zjQ0LOeB)d2|?MfW!4%s9~XxK%Jakg#_ZR0+@IgS z@@5Q)XTN6O&QJF1*UvU)+cliOEQAtZ7bqsTfLLy<4#@`SX-_A#=nV9s|TeLhrp=|4eRvfd5Mak3p zoq>TQKEzf%=Yjq$<7ka(LjOIgnxu3nrR}F!@$;Jp`j2`a%^%KxG*=qP7s#d@IWZ|D zL*%*Q%Kz2-$iB@HpC-rh;;Vy3RnS6mOv(F1FTvz}rgW}r&3*NdypMyBtmb1GvU_on zyf1!kU)bb*9|I{9llLhABgy-oMZE<{-bVmXI2~OmBqbcopm*Rg8RIb14HpVk?!$Sl zI-M-5)~ho`oCu@c25y4*=e7ndDdv&iWDZ5)5Qn3iUqHmtpfK}c#)c;cop--Ie)!lJt~8>vfcp>Q5+nTP zc^8SuI3ie|9;CgDM!hy?A)U=Bq*km|arDb_t7UA4G!#?lDIRlSez5XqD%BDaLpF)8 zT19M~l&z^|V}>yao%Xex1H;yM!_NjuC3%9#at=Ewv&AN$pd?X%bgEr1wdgox36~TO z=i$0$`^kW{TN}CQY2NN8{*KU5y+Jz*OMBRn$R3WsI1)G>$xfNq7OLSZAn@P((`(+XndK@+Mzeu5u;s=K1PMEPEDBjTE)KcDR<~vB z`<%vB4-GMtLLg$LLnQ^CDI9z_3l3zO!w)fHqS0XbO?qtdj5%r3Z~kVeAv0f!bVZ+H zKqVK|U2B=rZ+-?1>prPH^!qAYXFN^@$@jn(K0X3RtRm=$Ibs!4=GF|fS9APnamtCSaE{zuh?KC%uSE=w!$9M)Xcr=nqWg_pagTTL?zRbS7&bL zKLgaXIXqXRVKa04_y{m}1RXKV9aHA^-q}HsHQa7@UjH_usTtE5c>M>P+vuK53?#Vv zF2+C+uBOKe!qu+}HDt!M;Ob)xsN|wObM+%=*v!>FJ_1}FK}QT%$COE(+bCSOJLlff z1w|1lZER8o8@{Led|>+=WbcHx6+&iVg@O&wrD%`#Ih1J^_7o&tGA|eS%Ib>Q=U@WQ zxX(c)_&&$a5o@qpKG`?pK8M0(-ud=&2-RiG^6J#XmDMm4S4oFGPeh)tTqYlQ%OA3v)u}nTe2_ntxcdYk*5_#Qe4*ag0?ohT*I)o# z2>^P#uk@hz>X}BlT|;`5xXl$TY5}>wyVCJ)<)w$x6s{~EZ*__U@?8Oty`NZ!4TBJ9 z!?Sa{%Z(Cp_mEEq>+DnzGB3Ioo$#?k3>nNKmpe?jl7W`$JgqbDmAZhhN!+A`-g2xk zc?6W-$+hyuX_)u8*MXb!h?(4b1rAiD}!ZFMze9RlN}QLVSWS7or+oE21hgF_%fgsk^Y zoL|;ZQ$36nW$sG*RyS)Ypj$}2RS8qwtDHP}GRL+(lznAkO2C}qRt}gr{9eWCglslh zF&5d(>j^5Zf^CFjD^Qu$l1{-(PM(z1qOWSu{fV^kmQ>5zI&8O6w<)}3V3BIML$9}z zf$!YR33dbiFoI28pfRgKP}lmBAT{OI1t`}wX9La}Oj(6#yH#LjL4in1QY?>u1G{rg zc7V(}j$gwll;6xsZ5|jVJ9{=S|873+KiYgkeeK^oa3XeZYooDON!Bi<6tWJ4kY!vy z$(<&_>Fa^7F-GT@lg64YchCG$A;*OyR&*>+VU|ixVlw1^1q?_QbKgB+o?FW;OC9HLZB{jlB}*n!v=?&@d<$s>4FOh9WQX z`wkyEba?#eKn}8-4KfcMG?2QM##!e=z&p3#fv-~&CGt;(swwUwk-Ob2kw}1_&JFPE>tU*iI6N6S0DGAcjjk-AZ~$gM zvt?hYQKujS=4n8%3Jl{$(}jvu4LOUMs%48wZVrN~=d%li+FwgVZ5Oj*Qxa;P zdz4~=AAjsoHqHVqKp%h1&(`}WGvB#xk`w#!$KaM}Bhp8I$^9&k=j^k)t=mV-w-={w z+cq@0Woqlt_8nVFL&Y7XokO>kN6Wj)+qUc)o!tHy6T7OTDADEzv)hzC1Oyk2F=y)T_6iqZWhqWF;k>3)28Jb^ttCVQcmHRgN zz*`k)hW6zvDpLEVG;m11Nmp3Sxo;RrWRBJTnqODi_cuW>eN>Lh`8vJl>>L=N>iuv1 z7UCRq`N}6Mzh>(uwTOqTd<6Uv+q;sc&R5WOas**)NPB1<(W!hEr1~5i2f3Rmgiu%< zHvxcG1n?NMA%yT%9M(4TbtUOGr>b4FxOKJAAz(0`Wwk9p1Q8bH^ZE5RGzpedhm-CSGc(? zH7xqRV3tr04xqj0C*bPV zJZ-Z{Mv*d0O{X|6qvJ$!5-7?-1_Z0+oiTvm^%YxK+`%trV;k&d(6t}`u)uKcfSZpM z;rnc-P?+ztv2T%mHYQg$a(U6??$kN&zC(K-F6=uzF6HjT*lQmgJ9_MBb}ey78tI(S z+dMSJ)rn1BNbT{Y;4R57L8)Zc9#8mnrBJ;!pgsNtz318^aj;4Tyv=VdyC#W+MDeim zDB4ccBo0Xep(qICkfOL1bL4RWn^{rZJ5xMcooUZl>MGE(?Lv8!;oq*8+D$kcTZjUF zLmP%7JietSGOy(P9ljB9ORUr?3)P%L@z052#1mVe(jfsyDZoCYaIjD+=+l|tArA+0YVoQL`Ap?TDC!|AolJ2 zsGxDSaa~Aot_)+_Pr>fZF8s^v#{Hs3Map35=&3?{@L(&g2#63ep zTX*ibee|{+w{N+9cg1|CjEC|n5q=pCDqDUcn_pCq=3Y+5^>S42B`B11faF2HJ9+VI{hquJUL-+H z!=~vik3L@@r^T3$o_J&LgOv{jmKf4)@D9*hq1M??&G1ky-)Z4pXC5avNX>;5#~kef zsL8((3#fBWmUlu&tB?}L7J{)4_5BwtMK%p(^y2d05~pvO2n^-V2_+N} z(>L@~&EV@d201R7`ZOAmkYNKV#c(e@UJ&lx9%{%8l;Ga245;LyI`=x?1wGQH8QF=3 z&D`tbBfz~8bi{CPOqpv9^j35WSM1KM*L1;8MsA%*@I2C{acjUD8e-wx(SQ=Q%c=#E zP|UYoj$`Mm6S|SwKk>an)u~L}Bv^c!VJjk_>2U@Yr+5i51DDWu1=JIvhLZV~=ptDB zaRyX!(VkiSU!Y+#i~INpuy_O=F)SWaW-GCHHr7y>3%A#u^UGb(mXY%h<@Y1I{G&V~ z9~q-?R@%z@vRexhV6%YY0}8DMKRZhf>&J2H%><6Ki}O5jOpl!Xf@=cV`#+J1X9Oev zG8??}vSw9z>mmb?{l&adn18V80ydDtZ2BQ|%8K+LDX* zJk|af4V$MLrx-96m}(J(#Z0xBGAtjbk^dB;!qvOatY7ScrHnJ{4u2K}eK^V%VlgB( z&al&Yp+M=lc?9K9uTCLWk>zzO_yH)A+Y{d_oUGdv?3-dp669S z`g$Jwt$?~E)Q}k{p*(J6KqVLLnWOV)*v!#BJ^~yaK}QTn$CSC&zyk_J;fmdPIoAb0 z8F_hY$SJ3In0T8az1UHCUdlp1Q*1WONOE%_^CHjH$WLTq4#BaHu)#;9G(BDrj%|h- zN@hb%1~(W`$whnS*cKW#bF7b#0LMnq5yP=DWv)r2xT0FPT6cbZs0(%?{Az4cW>~8%nr1Gm9UqcsB*K zeF{Hw;wN^s@N0FeQ7TLpOQ+~9x?6_x2Fq%8gl3$|1f$K75oR6B8Lr9eiUlRL{;k? zyu`~@kTggBT;{E_&sJLnjHcCg)zf8Vd$K)^_ST#!HtA?HO5nQL89eE0HIV{|;O?9w zIwFZ|0XbV5xP5lIop(t<;tW4z>cz`(bb|Dvn$=siH^6PS*%EjXE*7%J19V{ zl|k}V&EgsVCs=eH%_?wCeHyn$)v7bqR_D-V{oa~cdsZd%p}|~APbQ0iohFBOO{LYE zb$5@9;IWIGfRs0HxY3**>3COBNd^E)7FtL|O!riEyp?!9bn}+&z~`FgR4LRvJyFfy zBAdr#EfUL~vYW$IyEVo7z_cH!v}S7Ptgls^#4IYeDxHHXy^Y|>nSwt({ftBf7FXSQ z%DW6P*DXZXSE|#M8vcQQm)07@`j@&hxHzEjhBoH43q)PPe)FG&S_Ah7;4x6Uu~b3s zxDp7@=Nm}LP>9;6+Oz0l4WQ!*k+>Xq3f$8u(S_VfFkDWe!fj86%Hc*0FmJ6<)Wb3Kc3dM4{$&wlZ>~+*Kk=(UwQ(UY)(S&!?=1@vUS4jTsS_Ffgr2FgW=3kUD01XL9U^s#CEUNNJmVas!=Xp$<7@Qs zP5St;OYrd|eT*X1#o0w4481QBwkhALvlpWa?qm6gVFgm*=FJO%8)j8xLrk!Wz=}hI zv9V9*;mz@#HG3PNBai3lu}W^0H{2jnZHJ4LYKw4j&8BR?}^=6Y)F zQlWW_`66xi{65koWT75h z=Nq-`952b162YW0c&LMUSKy=#wd+taHRt{GQI5{kA1FSb%#6=Bh4D$_isJL#^fZD` z=bxjtMCFDIsJsrSq$VB8g5*3$A4XI@AXt-`VlV(H9W0&9vXK38w$g;9gDoME(J(dN zE^MQUso$5G2=56KfiMy!!bj-o!V-a+bSNtn%Q(W)lCTrw4jn6JAwKNPQQKRs8*0pQ zSY4{Z+#}NisOL|}9+%~~iK0K@RpGY8n?+s@tA$ddO>2P;T@F*LaT5$H#ufX-^JicSIV(YugUj7FcP3x~vkez1 zLaF1tnO(1bu(p>GtLrENW*1g6BCCqK7U<* zQqJYgnjrizY!%@mIEe#iH(=@-=jz@2u|BI;X}~NwEvXEi(wFo{(VE1{?-btDkzT#6 z@YKfImoVicY2NK9WPT?zGXEkiGA|Lx42Z%TeUv)uaMiGe%&{v;eVGxM$Q{CioA_Q0 z_)<&KEbfe9*xN>WwGTCPz1o#~oIeAKg5#9jb92T4-*FGtY^N-?e(RN6=GBHmTz_W7 z-INw_v7C|*VlX4(<~>CON6ot(g}{3z*0~frrLd{?C-7pDqU> zHy}30ry9BAIScy^8hz68e%H+z^4hvhR0HTfjkfpbS&vYK_dtyzL_ zCc9O%Z!u3IOVdkM5UpWY_snD(&LI;rtVJxjaX~AtNJSnBc#kOoAFX#L?NYIg)lRjA zi%;B!c{*eoXRX0f4nRfZH z5;amSKcrA_eh(;@3yy^%%*i8CL|3uRioGy6ns7l4zm=LvZB0B=Br09b!en?xK|Ogs zI!ct$w`3;Ajq@T$R;McYbj>qn%EuSioo%=Z7~%&hs)1`kaixw>uNtAU>(R>j>n@Q< zdovU1u6YsZIwi~~EwE-Cs@%^qwU!Ww5b%=~wu)OvX5i7`S;; z^ipuQM#VhigUM_0!HloU+{N46IiT`Jchc&G2~qd6E3T+ZsPn0FD{JXCu>x9$B{l$T z}?%yqn>W`1@F1 zk?o-VH&&;UjmlnWWW#T83H;4yBTTdLwFI-D|I{lDew7j*3KU_QIZdLCkL{fX{=6|i z5gDKE$Vu%6{M-6 z9PVk0f{Xm}l^#%xW~P|Tq}6wChMz7I$k7jw$&ZzKs2Zz==d&Ju6dx_!uzb)wbc65U z0nlP}!$#=_Or#t5ijOnk6(hV>6TIwKyM?#W=!JtuFHnxb3#W``PMFN3o$20;@B#uS zFKpy-S50U1fL>VNwHNF|&Y>5698$$x{(R=ZT)j0!`imAC$s4atMvl-4EJq6H1o|7> zLVBKmcWnVRVrzv+zOp;eP-lPV1LJ|Iv}6Bs~%-X{nazR5XIlD zI?j9oR8I`#hp+&8MOOGAC@s77{HS7J5$1ezygiCPwzHOv3g9VqiF{IYLh1;DAStxF=|lnKqsH357_K>`nJ$%&~%%_3G~#MM+sBA#;IR^3B=WB|s) zIcBsD%$>!by5%~yEPx!EZ(B;>u=Hxh!LOX)VCw>SSX>;9k=PRf9F|t|LuuhoWhRQ5 zl|el_2D>ono|$Jux7E-(G2lL5EM<=;|%z=Y;HSCj8GHc?{swbe4&khiZ3ZlF3jx9s%+{i8x+DYK6C0|Yw7K? zg!HQ6y+YebNk9l5o?M^7l5J+XD93FRbRkBhE90+L-t_uH(lyK`hQY(I9+I!6bSL;) zidpS^JuzAGmCK8!G{BQQxh{!%$-oWd08=kXGf}pY@-@oFl;1qmK-pGQG9cAbffuE+ z*2Y&>C!`xFBb6N}OT@}QW)lORGj%txx6QoKEaXke+vgf@M+uhbKOXo-@b-OIynQQq z!-RPAu}j`Ab-^2o5pS57c%vE4Il%5ili32Cf4@k9?_2N-3cOu9SwRa#W8>@Lmpde`9UFDF2n%#WKEe`z!os0RIfnw%9 zSmfbk!ZwglN|IPrAWxi`jq@ien7??OMW`DcC;}rU*uh|`lsp~_HN0$|RcJ&(>SCCf z$m)eqMg|J91_lyY-l$1g#XP?;hapzt>Iy4AdVM3gszGJALQsRUlB-R0C%D>#S?!_m z)_Ziae!HguUPt^gH16(Xq|ijx9?I83;|zw(fqp@PKujn?CIyKI z$y`Cy*Q~{fKNL6dSAZZONbvVl2mUDQyxD_#2B^ z?fhMR?+h(Qp1OAyn}Jz!1eh`v<;^j2fQi6qeA|8TY#|jWNwpOALQ*CNbtG#Vs_#Hn zKdfk7kmzm?-#?P^AX7Xn!rYZXA|5^)B;(;`f~b+STavWbnxs9FBut2;BN|B`c104( z5lNVsNGd@HFJpxcM?}hM2@(+zK@v-KR{rz4M6!ekh@}rvR`#;MV4bDFU;|5@ zWpg!_jxM{4rD2xFQWDCWSt>KJl)|4~p2R#)p?vkmM5q?apLT7PxGaRP>f2LaCNAZ7uWu2{#QD=Fvxy;kla4HH*QrdP zTU;wXykQ`#Cy5eQ=UjBnGG6_75v<_rAMb%nmTx{j815zW=4H}FB6#EDF=&7O6N6!QXZx*2`|ozP zujNboM>^SW7544z_Q{uSZN=2mDUYa0kuWW3I+|^wrgr;`+nSXPw62IvO?biNq86`a-nuIU5l7EF7gWI>E zrr>7K^tF(4>A_8djxB&>u)$=6)p-A-nu|ts)%J8(Mws4+GU-k5(jiSFx(n?X0)`Y6)Rs{NG#-Os7uWH?E zYbH--V(VD4D-m1Al3i}TcUK&n9L8azTZ?o0URMo2{c`(m&P3Eo%}Sja21!g=L+Jpv z$g13YDi^NB7rmShKmSp@XvgP2Dqw4^%B{At$B)0_rrk1Z{cM}Dl)h>8f&?a_G21I8 z%<)*05F1GBLn&d}E_;E)Yn>{}7rxqq3@`Y!h<#;c_>|G`1uMgvL>qr#PZs;b!tg0e z!~I{&C&L4dRv8k!dzobLe{uIN|@e3j&SPk`p%@z5s%z^6n*NH-X(@VY%Gea@ziZ*c>PAuVwdI8D3;Gywb|BCeg;Hzmdb9 zurRzx7}oa*Cz9ve-+I(zWc>AZ9xdEmhk0FwyV5Wj?ux?N!yU=%;Z7=(Z@n-Icdd`S zJs8-ba8<0@Uw&sZ`y?EPxG{Y1yTjPIa5>C9i*>~)QpNXOighUm@jYvfgPGc9-h=OD z;0_6I+?61@@D&lpO`PAu#g-l>hAlnj6f*i|Vym_%3mC$A* zCbZdz$&~jq#1rl>{T6QA!TCkfBsUwwKIn`1)X`y(sICly1UAxyuslK_#KefO#)R-z zM3}>rY~J`;PWtWL0!3W}6cgG9E9aL#?1NX&M;=@se(U}AEm0H7ogbCpF4*@U6|!|E zcxxm)OuU;n_fcL^xG%i%C?$V!+eO)!re zV4m(4=DPwW!-N{*yL|7l0pekJJ|FX0*AVai%PfjF)%$P9rP0w}w4WY`z&%GiJ%EYU zQ;=w6gCsPbGorK&V@Y*xRCiRPF6t_n5W)z4`1pA7fB`2oN{r65J=tHv#pukg?Z{pX z7nAj~;W+y5$xemyD=!U!83-kp@3`b=t4G6HWc{4=>C1baPUCz2^*Hot9sBznfIj@= z|N8;=pI*QGHS3$t$Nk>0CJM6F4224~U+7rk@QqPUQg}|RaNdJ!NE*U`}}aoVU<(-e=I)}bbSRI1Kr@CR(uEr#kAX+v#`sJ%^_c(3E| zeVRV)HfUQbeWZ;{S4Z(fKWD;0U15l>(2WXL3l;JZnf`yYs2WX`?#6WnavoOPq36;j zkzR5B)}eH^5NB=mJ@I@Ne4iRncN(*W5e4*6DNj&|RtseApQl*KvZ9#FRG z34lS_o!>hyEP`uLt|rJdEb6)(*v?Y;j}L^ie4~aO{-zR{_n&A%grxe;8g=v#h*B5Z zAe;>|sZxKoL8QY3S3`oQx?V>x}u`<*l)hrItMCCo!!O+ua$3*zuAPLoZ8{O^#L zB>twyrVjyk>woCOKuc$7!@w;Fpvz(4T8A74u5z>w14&*V21?J1VIX(VFi;&H1?O-U z2fya4lN_)osl?eHNGwB0krR$#2#IjPCol$!d1tm2R5G!GPHy4DjLqi?I`LA z(M0GpTeZ_TwXJfRrnUxEBZOS67C>}#7&@g)C2#3B4wj>KamLjCAc1fz&pGheTTB;2 zR&~@wxXmzLg{P?=fr>U*XmQd@M0GJdSSv>~@(|i~_+NWL)}QG-w>N7Spro zfE?<>H;B}S?_zPI&YuLu+F!#{*%P9Y`rCMe^qv^Hs@oFaM$_08em0@~L7-)r7{;y; zpf(2Md0#xvr@#1oUE;;(qqN~0vox#MnhP_o5I@E4>aGT;oZf+$;5!f#_3cC$D<1JJ z_+6LSJB%b?kN{;ofmq@a?`uqq;Ky_VKgt9?JN<@kA)`uyj0r);WZ$t8@q~!`yNvJc z4YKL!@9oE&;=TQ#Q@pqDrzaUUOR)ABHaYetLm1P-W}8!n%{F3Rgw4$aQ7oryc2U@j zm1}Zx-P^kspQ&6>SERu_XqA;dJ;K3uxYU8^uoKhWKc+(*gF`Y8&wHu^GGHYM(D|y} zr!(MTfKxJ;cK=SIQS5@$zcd+jUlzvc^PNQKAQkF=IU7{Q{^e3D^PryjMT>cxPc&-5 z#V40~ArBfb7efl|p=;Xdq?N9{wHN$}rBSgMwV^j;*;8a$ceJ{xH_T)1XeyiAUN%CM zl^(ZD7}>k9|qE|X>&`{>mlRsd6@?x!k?656IlYP9-J z0i?60cE9+l{)NyZTyqW;KUZ(hJ9sYr>nxVM!nC!*ew0Iwh({h0^asy7w zreh-kF=7KQF-DBx?C~+^bSlq5i4q6qdd0LKnClyZdr{hfIe!#1$K!mnays{s8zVY> ze2liUrrD*em>99MhURH!?WC1ky!DhjYh|bnkA#$wWf2Re(4B|{Q`G7-aFXNU-XUt* zU|6G*@QN!-Z7YTeYzdZ@1F7HzR7ugYnl|&DBd=DICqQkOX)kn94Brr)%T`dKl2mU2 zJ9?&%M5HgQU%3k^?Mjrb7 zjdUVud`U)>nxTcuy>5Fg}(RI-|5N zN}{nyM{aM!A@khfps=eDuxta7UOAL5`4w<88$}`|uFlzrW7+O6E8ydQU$2gX z>&X(b++NfN*EO-m!SzI0%Z}^rRt4u<7sSs#@?eel`a^xC3bNQ*tHP_T3y&TJBd{|gJLX=Ns;=-I6TTa$g*^aWoh33wO$CB67`)MAqU^bR;I7BEUZ@F1V!;y z-B9#G^aKfnbr4YhbrTdPclc9uUc(%Hx+M%nz|eObCyJh_&%G?Wl$d+BTT0$Pyu2J$-Qh!tbjJU4s*5*sg& zVq!qb`Un|)@1VDO;d=ar?5V>c>{1-gZL-q~;=99(3JEVJgf})`&AttL96jPkOE~T& zg@*M}6XvtG!OgffieIa!36;2^VECe{R>H+Z!WCbvEHa_JrxV&G-J(T(gccJ*TN|&2 zOomGFh-hoNM613z8D_!>wa*ktV=oI7VcHybC)z|3PN=J=z!3Jf$kSWLPFV>|uo7X) zMZ>O7lS92Q8JA~nufs)>W2Sn2)~Q}!bXzYpLG{9f>a{aoz55PajH5@a*S0R}McH zK@Cb!hu33+p+{`swuCMlIGctsRet9--UM@;ggMR(v%v&&S_hc3x`jDT!bGhEb6kS@ z`*bM8RKUDmz_e@Y)$hfb)~nx+6GPya;>5gnJ3YyHFGeDo_d00sAxB&^4$9Q3kKFSMp`H(UWB&aQOA*v^dE)!zQgvc_Hy=+ch3VxjctD4{KXTac%fsZcq$PubaW9< zDdC0AI^jVTywuXA2$yCRI!2+aa$FIE`f<$xtBx0Prt%40G`K$aq^8V+WE)kp&fWB& zm?$jCfQk@(DvPN5Mytc`!KwOWxBAutkRNp$3eTyj_I}KS0;na*N6Cv;uU!D1el!Kb zca~C3YH3>8PQNxeibAz{I2}^b=<+ySYTW$Hk$83fJ#Z(xSF^OZqov2Cr8s3R7O8IX ztFOJQw!XQ7HTlk-*HGK6EO4va7lN~U00{_ybSO=9*=hjbTm)O$Mh(FFjsUjm0G|D~ z0ETz#0Rliel#O&bK^K}f<17m=G!?@^0A8YFRlXSh&ivi#vL!f_)4VioDMsES5+pn1 zrht^BE_xJf>QndOMQMcO1kL#`w11N?KCVweyGA8HYD&KEpv0c>E!Mrs|IQh6X5EIK zrEQre-}*bI*EUx~8@O##YnQ<{q4(2X*lN0*#S2ey#;LQHgCj?r6_h={!-f;iM8*Hw zx`&48;Bq(vPBmgWekOSOkROXoG}J9=CD{5j`Ic7>t7>k?VuolyMrcH3)rbdR8+g1* zdwG>c^j<*K)GFrgUYTg5Pd$QbXCu4{%MA*PjS3UHR2Yz`_X!IJO!2C|-K*NBq66&3 zIapE${9ox;t5?F$aIaVQ;*Pq97U9hnZknJw4AHqE7<6@wEo{(O874vMZ0}Da%WFhzcueSRP^|RV;N&9Bd;Fy+$Fb#x+9A+BdPeX2Muo;^6UCs>f)%0Oz@b!gz zG}zpo(ZpFK)I@t(r0;5UzXqF*_??W!`M#L7Mu$zMC7bKqEpD?j8BED#e3}OG!b>9` z@Sq@ff?MNGlx6QGU*lE{+%*>JQr#xOtbrpD4ZMhYvb7&$Pd+S7&E{1asE;(l>#52sEf?-22EO!O-d<|UfwZdCz(|N829>!&IbUrr2p8U-- z44yWZJ86eE-ED35x|5r|>B1_=vCWQMr3nfWEDZm4(vwwsg2=u^s9#s&`_Pud!%GV0 z6_waa<`m`QuMob;xWV3rgmj+rp)AS?K8^Czh z2fV6i(FWN_8w`2&w8&?y zG%!?U(FnJxUBIm>c8Q|hq|x;G3G6nc<`?i16{8|`qx1PWXmmb58&V1~c!P>zt-9ff zf<`nvQLqx$7dG(qDuym~!{MSfT9o0UQ+$_-)ed#5({poixUc7~=7&^_-c&dG{k#g} z(}6W-V|Rzm>keu5A_9t^-C%cdrA5u6-@D68k!=#jRE8f_AHK9C6PZg(GGKp68vj_u z@Qk`)O=$`(QB7$Tzp7&OH_^&45jS)MjMt>tQw#L@Wh3lUxLjs6JPH;M5@6JK&Eoqt za3|UX9bGxIKBbU#XSqG@#EAoflO4uv(VYU7Le zSuiA36dGOB`|V!$ePJd&J*XqFYoe2+#W8$|79y)>Q?qFMVrs@_WW%xEVD8Z3aWY4t zwooBCUVsfA#7bzWY~)TY?6sG&!~R$!BGw3ESy&q^ci1qy_<@Z+0eibf&wI3R%9CmQ zRUp0*AifcikBz|U#l`fZ;CZLQOMsbGz03)NRSVfa{Ryv&gxCEDANdnLP$m3dAj0b+ z;dP1dI#e#*&hbSdyfQUm$+CJR99WjY3Si8cW01EtR|jl$49CXqNWxXLJeS9oi3;-e zR_P|T_sJ@ns&xT&868;`N3&drs7}WJg6b9ITVc%BO|i)dpmR1MW2>{Cz39)_Coy6p zF`8>^%K}U z7_D=#&;04nO7z%B^lR&%W4HY2|D{TQClEb4BKor;{aF}TzJOzwLjTd!^vfC?6sHaK zEEP7dm^k28n6V<3S>fVJ=X$*{Rnsa6TYHKxHk}Cr%2c-5q84E#|a&Ij{75yi-_YgV)5z>cF7;{6IH~^fe^<<#Bm9692`xL**&OOlNXjk>A~!b z!jwAh+qvd_#)4t2MNIDDf-H zye7t4CZfd#4K1RS05Vj?j#gP>k#41@St)n2X(>7Bsb|MTS{!PL^m21>unJhjP;!QExG>c4a zlT9#K?8nIk0yb`DwjUhQ*UM%EdBFSxyX?Gf>z40qa4w9I$U1;~v9A z^)-Z@d4_#xC++~)7skg5`12gAIPnIbx zGyo-fB1&wC@-8ggUPUho<*g|xwLfU5Rs7S&bY3At$V*rrDlQ>5BIkh~2Y=yd%;(iG zR|UdEM|4$}1M5x3|J2@Qj$O(%QyNMMI?OKz9fd2s$$B{j9Ts;>{)}h)P&8X7CZIhN z0?I!aO_+adXXJD4cakUPpGyXKF*f*jpCnY(9qS|>Dt!2$+eX}rUcR%5ak0Nx0QOxz#S%xLh#E@mIBLPJ{h?m54b>I zHNt5G6wdi9uk2vFVH)oJ9F0k+gRwp7@X3JwK)(e)IjsG&SS{?@odDnIe~ou4T7sxm zzB^M?iPqL(z>(TxKA@=VMwNOLv%QLkrdJ*OT}Av8c^m`lfWPlGiGE@rav)e9j+9R- z%EuLDOUE=i{#&~}TiRV-@%qG^v%bsab;i)H)%flYgfrbeyuyVbs2|G9{3{yBw}AgO zjS8MNslU!`R`3&mhW%0*_8-cyw!p(0#bId>lkgcd4BpqZ(6V;X;Bk`&7q3hh8EXDN D0j#mq delta 4777 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 delta 1637 zcmV-r2AcWG4#N(R@qgXW1g#08Q749VoFK_?!yoFSlMN?iy$~gcA+XlCN=X+WNN@mI zj5FGeLf9$iV~sZ%3c;b7&%%p5!7#k2>v0yMH;KFxPjw5)ra0T2MtG3!vH%1GK|W}L z0!+e&(oQsD;O;mmSQDIrAVR?lEmAj>I0HG{AUm>c%py)hV1G)@iM|(z?1Xn%a1?oH zH*b34R|(8sEbtlHf>%T+j};3R^I_Z?8vl&EQqWP<9`MZWGI6dwBt!m9k|Ts)Q-g# z@2op03v(Q2%xa>nyiSC9b2QYBtSx7BB6%l&bmEXJk~#eHAjGR@6flXN%Ex*h(v4>j zrBC4sUny-RkYkhhFXbppg{tYKxVIrNkG?11*hH70%}@kxfiNE5qHZ&B%0A0Li&Yv^ z;YgBZUVr_p54R?CA-YT_JVA0hG|#qHY)4aPz^45m!y$4=MICWDGTENZp~+hIezs)R zWzYOIYC8ge7HHE!$ z_47hPn@eGX;%CvE7fI5Y%Ny&53C!R|?f=WgvW?n=(+eOENDyJlDA+PxQD}OXGhMCw z1!wFcI#hAwxGLgI3FpVjYq`Da$xa1DL|1s+DwtPa4xIUsq7+9Tz~U4g9(`Q#QwI5( z*?+SJZ5yZTaMi52IU)4Kl2WDw=iT*maZ&kQKPK^lC{9A6!n6l=xs~t9C8dUba+#!- zRnrXi)pJQt-qvdSoKPLA@e(XE8kgCd6?{zvj={A?CQbiY6KGS6Lu1EJ)_C2IqEzYlPvE$RwxN1Jw}|*oC>-I85u6-v;EXtzGpCNIKhcZ3 zU)60LC-J9$_7&b1T+h&#x>VM+S!Tlpcm9L1z>z%WdazN)QXb)+7SRD>ks2r}} zT2FCR3FZP~22a?#Su}39_j`2SXnMb#Jb=X%EayJBo}b7b?-ZxcC=h&L@z|y%Qx57?-Wu`*;Rryv+o%SpnMf+=Z>V~%T(togvnk`lL zt)A$dVWMwpmRVjjo)PB<@w{2Kxdhbu;j0Vq=q~>y;DgJEmqCuN^IU=>sR6`HmHLx{ zA?&mr#m%uHW#LD0kNB$gzmTEe8p=Pqd_qZ%$Uv6dYNFL&B$TN9*T_h?mFSOjQz@Om z6-tDB`Bq`%HO|3aOq13mo_|mh;1qG^Rto0hKmPmYUpnNHMT#;e|1I*vpiJ9GEM+QJ zX!V~B)jxUPuqIwzH&mkXhNzM(L#i&_2s4GK?jvdx4qL{b@2<)Q1)ZpMLs>$fd24!V z_kffZeb-3osIi?<^SI*^pEb3qQfy7x{yL7*rEVE1RTM!IL`^N~on8XWRr@3Nxxv12 zT4z6~r|S9Kiz+>;xLSklYpV*e5Wfe_WBQSN^8h~_&*sDO3uuF&&2L&Z0?J@Qt`2VV ji - + Indexing Tools — Gen3 SDK documentation @@ -245,7 +245,7 @@

      Indexing Tools
      -gen3.tools.indexing.index_manifest.index_object_manifest(commons_url, manifest_file, thread_num, auth=None, replace_urls=True, manifest_file_delimiter=None, output_filename='indexing-output-manifest.csv', submit_additional_metadata_columns=False)[source]
      +gen3.tools.indexing.index_manifest.index_object_manifest(commons_url, manifest_file, thread_num, auth=None, replace_urls=True, manifest_file_delimiter=None, output_filename='indexing-output-manifest.csv', submit_additional_metadata_columns=False, force_metadata_columns_even_if_empty=True)[source]

      Loop through all the files in the manifest, update/create records in indexd update indexd if the url is not in the record url list or acl has changed

      @@ -259,6 +259,45 @@

      Indexing Tools +
      guid, …, columnA, columnB, ColumnC

      1, …, dataA, , +2, …, , dataB,

      +
      +

      +
      +
      Resulting metadata if force_metadata_columns_even_if_empty=True :
      +
      ”1”: {

      “columnA”: “dataA”, +“columnB”: “”, +“ColumnC”: “”,

      +
      +
      +

      }, +“2”: {

      +
      +

      ”columnA”: “”, +“columnB”: “dataB”, +“ColumnC”: “”,

      +
      +

      },

      +
      +
      Resulting metadata if force_metadata_columns_even_if_empty=False :
      +
      ”1”: {

      “columnA”: “dataA”,

      +
      +
      +

      }, +“2”: {

      +
      +

      ”columnB”: “dataB”,

      +
      +

      },

      +
      +

      +

      Returns:
      @@ -361,7 +400,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1655136811.5685084.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1659375909.1640186.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index 7a2e696e3..0a9fddc65 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -4,7 +4,7 @@ - + Metadata Tools — Gen3 SDK documentation @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1655136811.982317.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1659375909.522224.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From 3bc1788918b7930ba395b26ab8fce311bcd3c7c1 Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Wed, 10 Aug 2022 20:58:42 +0000 Subject: [PATCH 07/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 319666 -> 320151 bytes docs/_build/doctrees/indexing.doctree | Bin 144585 -> 142975 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 103405 -> 103400 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35851 -> 35856 bytes docs/_build/html/_modules/gen3/index.html | 11 +++----- docs/_build/html/indexing.html | 27 ++++++++------------ docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 2 +- docs/_build/html/tools/metadata.html | 2 +- 9 files changed, 17 insertions(+), 27 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 7c88452f678ed740bdb41f29ebfec64330ad11af..020ac893952866c3579a6fa3f15f8139e3ec2ca7 100644 GIT binary patch delta 22515 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 HnwkE;sahMM delta 22079 zcmch9d3+Sb^0+;_IoKqSkdxdAA%t8cT*@6F2)GQVfTFnMSdxsnljRfxav5AC*ek6l zr%y!$!kOTK$SHE8+=77myzzLScldlBzv}9l>;wp3Hu?Pgr+d1px~i+HySln(cG*Gy zZF~LQ=D0l{(`BpMnHVWQgnk~=Uds2RZDIrOH&xiOiwY_#3QCF{cDKrslEMn83yO2C z(;asAl5EAAQ|Yi9rd0sAHKIEgSu3-0vnsP3c2Dh*E{hGNqhs4ecw*0j;yj1lIHjP_ z3RRY^GT%{S%g!IaeP8Th$vuBWz9D}$-PWON)dlIEdxi|S@V0U2_Z|MJoNs9T@VTTM zZ)p8Eu0T1bwT2m%9aKJUXn8F0QBF6seCZzLL_^E}gjqS;&In&S@X8uL_sG&9a+a%>wL(A$@qnvDL6{NmR*T?q`1qti^nn1g{CLQ z(>N(1FSJxmX=1J z?9z(tS> z-K9euKDtBOZpn%*_T$AL5tTBmaw+NMuCFS~nb zR=Ksf(xEWAuIt43=YhhOjjL8!4$qzDV)qx}F@KD*0;)+4WhFh*H#~P8G?Xn+RAgr< zuRzV^yecSO7u6f0dQ()Ju(Bz&P%Ek+9uV#%sJeewA!s*rYKb7eQ12wDXZHvp=tv6% z@g;vJL2q|gO?SS9f_UJ#lb~KbqJ>6Zv``QazIPJzUXMs2=;sy+;&J^>f->$^ee_2Q z1@XXlCqaAfjjh7z?PYA)tmEPG4uU`pyJ-k)Ezu9+9=*W9mz%;xPgX)&D4U1hJIH=+ zY?Sa?hZf4=Vfzkp=-vmzgfY9cP!NyfcM!yl*;-c9n8pSbiuP}zd>-rXAfL9gv=@pF zZidxRF3u5KA;Y6N#1=Ty5O2E zfkEE&PC-YH4WpLvepUHn)Qzc#Ym1B&u5EMnw)_Sbxp&K=3Up|+KV~=Zu-q+=n^{c4 zj$+C@2G6(kNsd4a=9_n8%NI1&rMM{s<^{qDD}cr|Cwx0HunIE+rvn%;X`urguCS=W zxunhmrvsL`!b8tObpYl#O*tSzQ9S?-7}VGU2}*NZ02z~T!9kZ@FtyJuF4)&x-JNS- z53*32GJui?c)JJ0l*)3em9ES%J=S<0-hFE6OlG;s?H-WVmKQ(*JjszTLgA;mg^m%* zc^WYwxQZuFyv1`HUh~w0*E}=eH4lrt<}rVv!)o_d6K{U}MTW>vtSw9}G3~>Y4AUh{ zWiZXa0L$4};bfgPJ=a?hpETFhe42@fB}{E~H5<3wqc~^# zyTV=0S=o3}Hfv6H9~33#WRRPyVPR??Ke}yD$jza_9~iYTH2Av0qKVKTjODVy?@`py zfK#W*m7(*&fW~X0Ie`IAIKl}7U3S8j2W|-r{avx1J}5c^LmyXIG~s}ruJF(gLv;Wy z+rP*GaPkulD00~W#lvrLfYMyeoes!zg+&t%$aRIsZ5)6h^DlA$oQQ=3UU1m~KM%dd z0nayAbEgBIbA?3{4p{06kJ~r^x2wO%0dP|w9I)SI2c(a<#R2a(S97NWcDur&2?xCG z3Xj`308@p($N_MJA{_98%MR$;?-mDq*Idn=4*1#?7EL(d@2>E;jRP=E`->a^H%r0+ z?c80=gve2vJ|y7gJSYg*v@j3ycZEe0F7S1Q$8B7IN%GyepsG?u7tCL%f?7dqu z40!*6+TP84gz4B%_hzISc{$v}iikjA%&uLTTzlk}kX+MT#hnvxi7PCchzE;Z;c=UI zfOpDwWB-9Ij|cpMT6o|+7d?=6b2NUZxoSJDzYAG3x$O1VMaqlZ`p(yK&6s>V7J6ou zOe-!d$;ySdh7GSDlq+{*3r}4nOs1vdyWDJ$OD#9Zc~@98F&)ncqw3Dnjiya=?lidN z+=k&76*{w}D))G}wu+PKuM;}oY_{KB(OJKIob%{cS6CG2c{s0v{y&(F`aSF~7F&Cl z4HY*jkhXcK6QbpLl=OWosBi|)(&67JaXG<60F?*3j=(eQ*F6rTYShB=jtuuTu|eX zMU#P9ca0Ahrd2w#G&j1q4=c{I!pk&Wcu{8F)*81O!;Pn@n^bG~(YQ&sY*o`*Zjnk? zSTwO>%3R^0cZ_qz2*+Vwy8G_-kenLASx6T}v2SW!$nd zYMZOMb7gFFg~cen6P;Vl8?NxsvzSDSCWk-DU+$O*zK(&4zx^>w_+A`Z{E8PUe$faO zzwUyHU%EiWkN!~c(+^ZU>xYUbpJpSz`vxv2>E9<0s^To+HBvL)`XF=ORh*!J4|2BJ z?7sLi$x>NjDYs_Z3JP<@ms&spUzDK|HK-A^s??_XxuM$PnmI|ig3cD#)7j$cI$K<8 zXNxQEZ1I`wZ1FMkRv%7OgO=e<(Ne#w6D^zFC$F$18??dqcohzfPB~7qvonG(0Ry}H z*cnCHC56tH`0MCf*+YqeN;!k2{PA>nPGn&Icr$!s;F(iUnN`WZUxoLgfLV}}(&1k) zN0ckTNBK8AHGE^hw}}zTuK*gM{Lh1)&*^IZ9UFgO$xo*vlt1CQTDiv)KNgU%f@RCU zPn+#PiTP0|$gDdB0|368%gr55qUhG#VQx{-&CdKDH~7=_o%R#_!LytSY5%DzFJWPrCiBby@KU`u^egRB3`#~`0utyp`18%B$OMbW<%*S ztq{tY)A(?|n8w8oonGLL1MQNXRhg4-p)oU3>37r902MxiOP@JomI(=xbFGC|x_5da z9XTVMrKCz8p7~=&RD$!O=z}w70qLokTz0}NZq7Bc@}Ts5f}5xK39jUkCnlNrYEjil zpFISCGiK+Q_@YsPU(Ox`z{DrHu@^td$9?I^JQH6>DuKC*i+H8V24%ZByj(hm`|Zy; zWl)yQ<&dwiob(hC4KNO96D>{3!tKv|u)ruP-PQxC|Ea zxD-sgFXV<=y>Kp+F^jkax~R+xtJ;A;HFBh?i<9H zG!8nW6-?)ZqLN%&p|v+%wj_q`t?mM(|E%UVD_#5sl%dZofpYybFF~1U=jAm!g|c$V z3@CqC@-&pwo~>zxqBE_wa5lE}cXxX$B1d_&8bv<(Jd}%Hn?xGEDx6-s+?vi^ z+YJzPYo|lmd7T2~igk)GUl%#EJ6*Oa8tHn!!W~%r3a7aEiXvu2w*liG96GUq=83;? zUR(cG31$4N+|}z|oeyQl*Pa!_n@BT0?L_Ne?Mj1RA4f81(d$-$=uO{Qn*^t?Hni>f z-q2&j`sbj$zJ8U7?*yvCMX!g@@2|F_Z@{QY82aa$jJRrCE6p{=tIVEnzU)QiSJJ8ircn{uhU;QjfQgg z=7&WrNX>=247znoGW}#TkItU8GL++M`QqG+&%fdGgImS{WW$!cDkB8-*$%shSO@&G zHn9O2i?ZN5joA=IR0^N`tO|>@%!a#?^YgcA+@h;-N3O=GUX2+?H6|R@m~T{Lx>1eU zMm27i)tC)bD<4IGLe-cMRAUlZZ4!Alsq`A8i=&yAF zdf+5FsXl?uENrc5heMqV(0lb{Idn~ZifR_5m?F$F^6da-*+G2tv;{D{1bU;$uMx{a zklx4~C3NGiZu)-Z;Nko902@tvtGgaB9rWz02h0L5gwP(l0%*Td_eSELqyu&%hFNwJ zcm2rcY9o))bD9sbl4)(3M{9>Vi%`u)V8jG!dE1R{Df4Wt$1K*^1W?~{??$qhfMyA_ z@SR3}u0i0&#z2bf=Tvww->t+$Kc402mpK)U{qiEr;SlYe4yU zT2twz4GW>K05p-N?DkaUAn-K+YKs5?Z=gxp?l3*oMr8P{tuez|`rGbwJ=r$e^S#b0 z0Kapnqm}R7s~R5xZ^42+6+o*lyVGei1L;@q`RcLn3T()pL_Ktmu=JEYn!}LOKKjX? zRC;onJ9{=+(o{msLBMD;4FQM2$|3Z``#}LY<<_i9tL9-u9;Ls$pURSwq+tEPPpDlY z^}y3WI#>@lgSK*?6{^`8Ii9Ca@6{GC0xr?>dwc8qU4az>lXG9J9(WCAU8zf)%(ws?eF0sLgiUHX@4;N zZoeiJ3I0O^4rt>=z^|xh-Q0FKQRIDkbXa8#!4M6KB_Gngbt&1M;}r9Az(O-I5t8L z7)dW2%VZ}O8?^a_WMcq2PER(D_B=jX4|s?!Kc1-vJVL)bu2~6rJVxh!6iA~_C(?|i z?(I@5DznNfEtLgD4Qm&vvXH9wgf>|b2q`&q^*WiR7m!DXoHXkJ3Q}!9*+}Ce0A|wu zr%ZavQlwN)X*(_osZfF4+7@TsG^nYFiaxDHWTc;=0z1=9r!{{f;t51tKCQVBfmHy^ zq>q2pXdF)gu#xo_AXU`Iji{cc)#tj=nq@xh@rxl3lcUB8Z2waK4%co=MqArhK>`14r4$)Lc%pMh^g*XK6 zL*VXzgUztllLhNEH(n=ff|5lK&A|5l$Qs@fv(v2bo+$;L*!k4uHVV5xDze zAWgfXZKsI%66Rkcoxeey_g>MKGg5tz!0=B;>b3h3f!D5jv)R3k?ZVZ(4C()YHu8c~ zMkT!6wRfhYR|n8*pK2Q%()9R6+5o8}LohpTZ5n*R*5+ zp%OiPEs)N>rUiEdx&bgt9XSF#kt*^kKLTob7b3h6vF-X`HT6MYYZD!C-k%14Hb@Wk z6VRETwNp9cZG0eI{aI&~3;`h~x@lK1t^2GktG#YC=}}=Odc%qGY-_QV7i#XszLE5? z&r|i>W2oO3iF8%1r#8uvEDp#Leanj)_3a3x+5|_cL^|q=E_(6sJLhF}!SuB+B2&aJ zgk))O*t5ICkMZ+MavkVBo6;R%{A9Qj9IEuEKYtNeCAKhdLH?NhF-WGo#j!tl^RptZ zeZHSLv7-Q?V$r93B|EWsH(~i2b7EKAg#AaW0ebWsPBi+9&y0r7;$&+#l*2nM=eZj0 zc8~o%f*9$yP`XjiFHT`jwPJ!kh*!M$lQ*6HWqg$=K$!o$g$9oy$F6oU17~C&&hWv zp#X$WEpE%wYb+8)kIKrkI-JAt;^P(L38N`rg}5m(z=V$dD!G>%JSe=#AG6S*wB;>- zt;Hp&;sD3HV8JQDg!J97%p`?+eqBx?=&Y}QVs67oZ}!qdQtI}AZ&wAda3e{lKmOZo z`!|2od9k=i(w6;ZBHpa@Y00C$lNSk1AoE#fR}vlTZw>$jy>qQOCAn6(w}0FUe->fL zwN7!EgUvC3@~7!P`9oHj2}3Z)nNt81!TNV35hfLuX70;QbR|(4NReS41{A(|)=JB? zO1LU1&Mhq|;J++K>~OQprD@oL+)_yI5HrgBFiU~UqAF}XYPJHMAOBJ80QkFwREwpc zxS-NvQHhtCZvZ;LiNmPY0M!%t2npNYU$>amM&Px z9z>317rT+TR(wcu9Fgy1?%heGX!atqnWc0m(V{66Sz+V5lc-KeTu9^!F2JW@h&dQc z5NRVa1td%FLE?ua>i}hmt?YU?By@|vMa||*M2Xpw-w9)`CF&{^mCxA6Z?f`>kvOb$hq9@vIq4_2D{#Fuz zH&%dIx|yUw_5NnkqXQBgH-Dx19b-!>%yrek-M4(V|;Pd%)FiC7qzUzLg}1zFiFRAOrL*-9aKB;{%lk8|0Ay zvA5!m772?w*jC+pV*apTu$0E0rL?b6+TWev+NE0If4{RkdqJI$GTo)o9 z;X=JGQalFJ(!vlAypXjA(^G{Z!QvU$rOrR+*zg@B8dw+YfSGZQE!{!d3l0IAch0es zI|v`)k2^>>RNgyD98~E$!NSmeCut{!^!-*6A-V?AwPk^x4k0lJ8o}yF+R=!2!c_J& zt2_{1QnNpIk}%*CRtFRA9P3#}BFVY>hw8{!z6>{>N5@?}4`a+^zn;h08-4+X19S5N z0w-NS7ta^1S4HcXXx$L4fQzIv`Iu#11j>)u;}=P&JHOn5X&=2i5Fl#-0@b@0NtlMX zZVL#mIkt=A;gWH*lzS?DeH+R^Yt>i*SGna%pq*@V^TDmGY>W>SjxWj`@SL15f*-i ztYpbX$yERScci;$*Vo=4_v7OLw(?Ojj?MlXX~jDBmO|=R{z#U2HgGbrE8_tZ7AUo0 zrwr1gZ1QB{Uw`%&GEria=aCI;^)IA-{f+;TEgn3OBs$6KIl18`U;__dcGN@aS0Cjm zT_J4aBcvCrZ7cPu-(r#?k?}E>@d9zLU*;ptmYU|V$yf4V&-q9}?6Y6Up!yzuQZ!+2 zJ_5Tp=f;3r5?gbY{L0J$(kwpSWA*a_r8Q1N-K3sReNM2{!(T)vv$>e9O_U-;tJFM) z9ZHlUMe8ZEoqeAu#f#Rn<`pb7NlFl{m(ABDZIsCP~rAP3}PCOdjU^`2=d=aCEq7?B`4V2 z`=lsxqJHgtQhH=0XKM~L2LaPIoat!(2DZU&?5FWk9PkO8Ao0-NZ-SIg&a%=8QY2JM zCrCj?ey7MHCjiH@^&d`P7Q<0G|{Rj_;TFrtlw8#T<|l zp*8#fj@>3&YYs?!TRL_CDgS*y;+sk6L5XjN=7XRf>|>&}`JmJVTGtOErPm>;A34fO z4oQ*h{e6eSMcK|+q>2n!lFV99_;-r zL#z5#=cOf^$R(D%z`$qE=miFK#f~vgW^>_^=zg3X*=8F|J5M>QxL^wZSWxWF-4PmU zE{3EFZLLpve(8}oPU=t8Y^!~7?^vCt4~cn2Ol7a79Enhqp#7)x1Xh_vFGjv#U*4+^a{ zL1W?LAsftoK1^9sv3__gnO|Pu`)~q&Lcv3Yii8lQuq}%W zp{-F=5s|AoZ48@93^6Gxk)6n^IJ7PAot2Ygt*Eewle?DmtR?bh&L)7p?`<&ps{OV? zsN(%X81XiQc&X5XL_W^So;HMbL6N73{4XRLRy?(!q5!Nss=Oqx9ArS+E#874-S0&H zgRtFC8^Yaw!N*VGQAQMz63m{Ged59!G!0`d_Z(tQxOKy3E zr63pPXu*^MYq>fqS(3}ykZMDFVF;Tf*YGZJ>}q>MoTdIN&b`*`EYC5Dy-!e{5wH0lgY3_e7aO94{BVQZm#3If z)cbgh0QEP>4{}gE{cdqbb#H)Va~gYVu_0cN%rMB$a*_}_`k1<1)EMM&=KG8xR!pr( zquiDCe#Q`16=aaR8u>^p{Hp@|g@hPl52I}52%iQ7x29^Qe535(NE7}Q4u0aNVwh3h z#WCK9Y3zV^jPgYtj!&Vs724dnY?OcJ$WZ>NNob4Hvf)T6H(Y{pO64Y8fjOOLt91<(V}pl!5;1%U=84@?Puu_O#F zDQDPEc0&|7!+e(*;zbom!;kyH<6}z^Ea_Q8L=^VAy=urH6|@pUs$irMNPer`5G;%g8w79J z?EJ&1dhex%LK&j)jLU`;s9wKp;9L2r%LaZD`~9-vKB#(JG4L~+^@@RK>I<(J(%ks< zS_Nyf)R0jB`4z*Lj{y8gPb1$EfA49;(^)Sg-#h#CGI9>KUPjJ#RWBpo>fh^Sj3ytk ztG$fD?KvZRAReAoCtHddB0eHJ!ACnu_z#LUdo2C=Z?W}7y^SCD1U>_7#z?3p+l+BZ z+^^4af6$U;unfQ;nVQ zv}oRA{uT&h*xqr*80|*r2HcbsT``0J;k>Cveq7x!)tIUpqO`X$zTPm+m@)$3=?9J7 zp~^dG`mil}}URm34qn zNNZ|?BuK?Pt{eHKLWk={e$z7ay0NE`U-h!uYsMgQlD!OQcMgD+zV^B?$U}_xB=h^s y=x^do5vj66aIj#IdfnJgJPo*J3=vOZ*NovoyaRkqn+L;7<$w2D>9EHJWl9(SYn^jTUVU!><6jc)`ZhE@q|$ ze&mZ{Bc7(mlZk>iLbIf4V#ci0IyyFKn2qH#I*QXY)tvOK^{#z$>ilu|V}I}Mx9)4b z7yfu5;`*l%%bOtv!uA?r$Rd5<_Sv#;7Yva9S_rW+V-Y+F2V~(ANYNWtq>8RA{fF1I zkOgInVZ5;`D=e&HWJP#IiuT7W8GjPWWJCkx((1yN;qu-FxHYK{*DR>8RQy~m!u6>| zP?4%Qa^NiEXyx818SbNLa(@asOZR)6FZImo{gkBo|3bcdWLXlwsj6WJzxm zSdDu^_0!Xj=O=_`hlOd6M&i!^YE^PemM(;3u{%p1lW=R-x@C|AkRofAvhgB@<5Dt{ z9JLZ2lbeo#Q7&8oGr>bkQuU6E1mVcmy%SUQl36j3Bi&EH128o>IXPR0$}#XO9%-AI zASP$a_8PE31rN>7wBnH7V={{z`ixnB5(XIkY|-$RZ1&Ear(moYo=x5nL$jrGCrlXr z0!rt1kcA{=8zf}Q&IT~c{HI|rv=Sea-nc4SW}ptD1;wpR){9RSK?hH@HAF|Y6Iw9? zCzQyYHcIqC>bBlLKbCc-FmOZQBzu@cO`YXKtO19kp zEMy7%o_iLiL5y^+25V%L37I8pIQsBvn258A+9f|Veal@Y@n*JucCJaZqfHV`VjIn6 z=p{`ClD~An+nC^Uj1rpsJFEz)vVW&iOZj(dSK%6X8DK6kR_OqF#Dm* zM1Dx7Op(jh!y~X$=`Yjn2ZQl};JWQ5j@hzMzDlQeafEg1rIymESE5eI;o1Wxj@e1; zzzc9TprJTzlH1o|v_9Aj_rSM7J--grJ94vbEolwP-)ITufvx-b_rK+H7jO{oP~ zV;mdcLs4tiOU)kX-N>%esAVzEK)BCU^UUn3Z#RNN%rGkz?lQB3T0&HqM-W!wZZjv! zyRA?uerwjj<(3tjpk8b-W0E{9x>161cjP`oq-gWZdiq+l?Mv_<^6xDeJhu)@6o*kP z%#6ckdDm|spSqYC&`Z*d(wBc0E%uo)g3Vyo9b3ofht_0@@0jQ}HxTXJ4AU{Vyqm$Q zr|mTegGGh^H$iYIU}f73p2*RbP-)7xfCGL;GbVk0X^iZ1fn9#R1%`+=iVbhO1MQBNYL6lzN;bvH@GVUMad?N1U@EPBa|B-wU9+>|f{*|N*#Q%kvQzD2L; zyRU24%g_k0nuOpSTPc^l0#{)Rjc}2C$)f7uP9C8;h$H>h95~1$R0eT`%HRfzd~GZI z0!{?c#~J-a5RD^*z8Xa12%`fo@vsQ6fJ;rJMy6AbYd zf^mF2X$dB<+y-mmW|`iBA^t>gNrv=xV2D2%%1ed#&yXbBYdp1-y~gKoh(BTB)GgW$ z69EGpiL&9Q%iea_ZJdq>pXB8^9M$J{fK5!#A*o@SbnJwQ!+#wjbU7hd=#reE(49M> z8dkB;#la;{v(P1>Y?RQOafF3#qm~l7%_nqmjuKk_q7(X|J0Nq+-T;*~6|!?XJS5}x zL!`X43mV`kE#n9{lA|Kv43AI*;0XEfB9Bl6;0XEf4>_`J4@?sSt(fv|fhmD|s2F0^ z`>&`TqC~n?kGD*rIUgcxA50MiR=K4XJU+x^M&#iK5%*Z7w+@N|h(MeK70`Np)-HS< zV`MK|yMwL0)EW$tUQ(H@y-Qi!EMvN1o_H1|#S*fu8*0Q#tAC#rzp<(^(ux$Yj3AGm z{jgbdTlMtGZm}1Y!~(L{DmxE=i@LP6?m{$ftvju{bL`DhdjlR7pY!@Ny#9<;W*vlI z3hdJQKi{zap9i5B_bcxK@CbvA=z~G7e-kT(LDn3^!2vcudD?5YTUD`XMO)%t+d`zc zFrW@p7B~vN=3X~1y`({K{mBVO+Es7VvJojZGm$A*RRKm!#3Is zk}`1Bg4uZVhMCPlu`=xXv66K8z)~12#@l7*cX$u**!7C@5C1G6!D_uuIiwmO}+XkwXQ-WYU5Q3eu*6av@X!WxI{Y zf^FAIEoHk_hw}T|pF$Ogy(kL$z0)D9&cI*95jM~t9BOO$#G$qZ>`|fr%AvLf>{0D_ zN7+!-j+jnTgahSwa?nY5P*zjvh&_!rlL==r6gwU2Sn!&I!z9ibwBqjw%U0asP?bae z<1G9jlAW^M4I|~CbI=Kyvi}qY`sH(ANJ=KK$~9X^x+FW%LeAI}tvyIDscYI7FdCvJ zA%d^QddWtIeq>`5OlE@W#^6H?z^l{kPBf`0qENBWPRPyY@$T}{c{nP{oU-~$ylOnG zfRWXMkYuukqw!yX$><|75QkNfeNkCX#3bO{mwb zNmB`J+!10_3<|tyug5j)Oi3-}OzGrAXm{|@=lu(C2SBHEo`G?q-6>1{isznoA8};) z7D`Ny5_s{li;Rp-mdE z@c2(p0vW2wTUVTmZHMZmy8`M(%YFSYTEw}Oj!`b9V^RsO_3M~UIMy*n#$Up>mn-w* zco96b!n+V+3?a*MId5C8-m`wt5U4QCLTDRaOo@V7)GCCB~wHz zt}b#z3rp;~K{y7#glKJ$2n$=KNxI z%W@5=pVkm99&rWkJ^#&e9lt>?`@V<8dD6ido~)e7Txy0Ja~YXLKk07#+Il5gO}U zyqoGAgvq9F!Hj`GYRkr15KX=)-S3GZUAf+%ALvGf;sy4)4zjU&kSa$JIoitIs^%U4 zABYEdoCM>O)DpK$zXspKi!{XNrzSV1C~ppH-SYA4Fag@ttZdu|i4d5LSjz@z(c?V{ z`o>Wf_$f^fPla&x8b8z`zpg9no~A@ar9cmkn6{cKr^e(+CT`P?;#r;@nP6WIBl z$F-P5&mmb%BIK-|#V#AfRPm}urO_)Ml}7kER$`a0M~HOsCW0`R4#?8$sCyun4k3}y zTv~w3FqaTXxr86erB^)iNF?e-^e~zJQ_+w|=VB~v_NYrhLzH+_e8bGIGIRU{m`CRl za}klNduN-&wU5x0`PRY4+@Iu)K;n%b;(gU47siNRQkQsNzJa$)H;Qg?TP`UL6J$+< zNDvcpiLbtCa*CM2Z1292?R`JV7U4~iViEb;|nV?y0%9Wi1>Ft$-XdxjS@=`9o$91w4J8qO>_fJdF!cw%b6iBAzmZ^#w z@_RAB4=+Zri9JcrIM1Oy6HR!RCf{<7W4O>^W>IK_sw79-2a^0Fa=uD(k>^ixk*AW} zF-+VEA~{bTY!dTi+6)Zt?o1IYb5bE*-jOJ_30I!lP;9bhh~RWG=jo5Xb&r^$Cd8yX zl}-2NsT{-}Wz*a|bpXO19e~Vvk}_8;W5i>OSj!0P5u%k5*z+NdnxRDOVMGTb-ev^$ z2yv7V*z+MSjTFo)&Ij;6 zz$c=!d}YU!$6NJ|OyPn=c{Wpw5QFo$?7TNNSawVV;j%L{kIT;EqeU5B-m zoA^9DYc_CcdQQM=A^y-U yQu~sA=zgWWhR0fsE)3dMIt$X#REu&Y;V&KIv;~;;8f{M6V9M*nt~$542mTlEF}rdA delta 7172 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 AD*ylh diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 04558c4ba81c366193920c3c26dea5ac30f6a004..4bde8a2539fa1786e0ccad8e5858e418434e3803 100644 GIT binary patch delta 218 zcmaF6obAPOwuUK;wv3Cn+A*5CvAkhqV3=;_%_uW@#Rl2!8{8P@G4h)k7@C#Rl2!8{8P@F$$Pk8k?J18d&NX znwc0FT9|E*^w%bp=_Source code for gen3.index

           def get_valid_guids(self, count=None):
               """
               Get a list of valid GUIDs without indexing
      -
               Args:
                   count (int): number of GUIDs to request
      -
               Returns:
                   List[str]: list of valid indexd GUIDs
               """
      -        url = "/mint/guids"
      +        url = "/guid/mint"
               if count:
                   url += f"?count={count}"
       
               response = self.client._get(url)
      -        raise_for_status(response)
      +        response.raise_for_status()
               return response.json().get("guids", [])
      [docs] @backoff.on_exception(backoff.expo, Exception, **DEFAULT_BACKOFF_SETTINGS) def get_guids_prefix(self): """ Get the prefix for GUIDs if there is one - Returns: str: prefix for this instance """ - response = self.client._get("/mint/prefix") - raise_for_status(response) + response = self.client._get("/guid/prefix") + response.raise_for_status() return response.json().get("prefix")
      diff --git a/docs/_build/html/indexing.html b/docs/_build/html/indexing.html index 31318be2e..dbe06dcd6 100644 --- a/docs/_build/html/indexing.html +++ b/docs/_build/html/indexing.html @@ -315,15 +315,9 @@

      Gen3 Index Class
      get_guids_prefix()[source]
      -

      Get the prefix for GUIDs if there is one

      -
      -
      Returns:
      -

      prefix for this instance

      -
      -
      Return type:
      -

      str

      -
      -
      +

      Get the prefix for GUIDs if there is one +:returns: prefix for this instance +:rtype: str

      @@ -406,16 +400,15 @@

      Gen3 Index Class
      get_valid_guids(count=None)[source]
      -

      Get a list of valid GUIDs without indexing

      +

      Get a list of valid GUIDs without indexing +:param count: number of GUIDs to request +:type count: int

      -
      Parameters:
      -

      count (int) – number of GUIDs to request

      -
      -
      Returns:
      -

      list of valid indexd GUIDs

      +
      Returns:
      +

      list of valid indexd GUIDs

      -
      Return type:
      -

      List[str]

      +
      Return type:
      +

      List[str]

      diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index a9d52e303..63ca6841c 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "filenames": ["auth.rst", "file.rst", "index.rst", "indexing.rst", "jobs.rst", "metadata.rst", "object.rst", "query.rst", "submission.rst", "tools.rst", "tools/drs_pull.rst", "tools/indexing.rst", "tools/metadata.rst", "wss.rst"], "titles": ["Gen3 Auth Helper", "Gen3 File Class", "Welcome to Gen3 SDK\u2019s documentation!", "Gen3 Index Class", "Gen3 Jobs Class", "Gen3 Metadata Class", "Gen3 Object Class", "Gen3 Query Class", "Gen3 Submission Class", "Gen3 Tools", "DRS Download Tools", "Indexing Tools", "Metadata Tools", "Gen3 Workspace Storage"], "terms": {"class": [0, 2, 10, 11, 13], "gen3auth": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 3, 4, 5, 7, 8, 13], "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "idp": 0, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "authbas": 0, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "request": [0, 1, 3, 8, 11, 12], "implement": 0, "order": [0, 8], "support": [0, 1, 5, 8, 11], "jwt": 0, "authent": 0, "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "access": [0, 1, 3, 7, 10], "token": [0, 10], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "provid": [0, 1, 3, 5, 7, 8, 12], "refresh": [0, 10], "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "string": [0, 3, 5, 11, 13], "automat": 0, "when": [0, 3, 7, 10, 12], "thei": [0, 10], "expir": [0, 1], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "opt": 0, "The": [0, 1, 2, 3, 5, 8, 10, 11], "contain": [0, 2, 5, 8, 9, 10, 11, 12], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "web": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 10, 11], "workspac": [0, 2], "default": [0, 1, 3, 7, 8, 11, 12], "env": 0, "gen3_api_kei": 0, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "set": [0, 1, 10], "includ": [0, 3], "search": [0, 2, 3], "path": [0, 1, 5, 10, 11, 13], "valu": [0, 1, 3, 5, 7, 10, 11], "doe": [0, 11, 12], "interpret": 0, "wt": [0, 10], "an": [0, 3, 6, 8, 10, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "instal": [0, 2], "crdc": 0, "some": [0, 2], "arbitrari": 0, "kei": [0, 3, 5, 13], "variabl": [0, 7, 8], "rather": 0, "than": [0, 5], "pass": [0, 7, 8, 10], "argument": [0, 13], "constructor": 0, "initi": [0, 10], "follow": [0, 11], "curl": 0, "data": [0, 1, 3, 5, 7, 8, 10, 11], "given": [0, 3, 4, 5, 8, 10, 11, 12, 13], "ex": [0, 11, 12], "user": [0, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 3, 10, 11], "map": [0, 11], "get": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 3, 5, 6, 8, 10, 11], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": 0, "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "refresh_access_token": 0, "new": [0, 3], "gen3fil": 1, "auth_provid": [1, 3, 4, 5, 6, 7, 8, 13], "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "For": [1, 5, 6, 7, 8, 9, 11], "interact": [1, 3, 4, 5, 6, 8, 13], "manag": [1, 5, 10], "featur": [1, 6], "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "presign": 1, "url": [1, 3, 9, 10, 11, 12, 13], "right": 1, "now": [1, 8], "instanc": [1, 3, 6, 7, 8, 9, 10], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "delete_fil": 1, "guid": [1, 3, 5, 6, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 6], "instead": [1, 7, 11], "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "locat": [1, 6], "store": [1, 3, 10], "remov": [1, 6, 11, 13], "its": [1, 3], "record": [1, 3, 5, 7, 8, 11, 12], "indexd": [1, 3, 6, 10, 11, 12], "uuid": [1, 3, 8], "id": [1, 3, 10, 11], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "get_presigned_url": 1, "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": 1, "file_nam": [1, 3, 10, 11], "expires_in": 1, "upload": [1, 3, 8, 13], "list": [1, 3, 4, 5, 7, 8, 10, 11, 13], "author": 1, "scope": 1, "storag": [1, 2, 6], "s3": [1, 10, 11], "az": 1, "isn": 1, "t": [1, 5, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "amount": [1, 9], "second": [1, 4], "sign": 1, "datetim": [1, 10], "utcnow": 1, "Be": 1, "sure": 1, "posit": [1, 7], "integ": [1, 3, 8], "also": 1, "treat": [1, 5], "max_presigned_url_ttl": 1, "configur": 1, "represent": [1, 3], "document": [1, 3], "readm": 2, "python": [2, 9, 11], "github": [2, 7], "repo": 2, "setup": 2, "inform": [2, 3, 10], "along": 2, "quickstart": 2, "script": 2, "more": [2, 5, 7, 9, 10], "detail": [2, 7, 10], "about": [2, 3], "variou": 2, "function": [2, 3, 4, 5, 9, 10, 11, 12], "mostli": 2, "docstr": 2, "code": [2, 8], "helper": 2, "job": 2, "metadata": [2, 3, 6, 9, 11], "submiss": 2, "tool": 2, "dr": [2, 9], "verifi": [2, 9], "ingest": [2, 9], "modul": [2, 10, 11], "gen3index": 3, "service_loc": [3, 4, 5], "public": [3, 5], "read": [3, 5, 11], "onli": [3, 5, 7, 8, 10, 11], "necessari": [3, 5], "basic": [3, 11, 12], "cred": 3, "tupl": [3, 11, 12], "async": [3, 4, 5, 9, 11, 12], "async_create_record": 3, "hash": [3, 11], "size": [3, 10, 11], "did": 3, "baseid": 3, "acl": [3, 11], "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "creat": [3, 4, 5, 6, 8, 10, 11], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "md5": [3, 11], "ab167e49d25b488939b1ede42752458b": 3, "associ": [3, 5], "made": 3, "where": [3, 5, 11, 12], "you": [3, 8, 11], "control": 3, "rbac": 3, "name": [3, 4, 8, 10, 11, 12, 13], "addit": [3, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "async_get_record": 3, "async_get_records_from_checksum": 3, "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "async_get_records_on_pag": 3, "async_get_with_param": 3, "param": [3, 5, 8, 10], "correspond": 3, "suppli": 3, "need": [3, 7, 10, 11], "handl": [3, 10], "hash_typ": 3, "whether": [3, 4, 5, 8, 11, 12], "ssl": [3, 4, 5], "async_query_url": 3, "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "async_update_record": 3, "updat": [3, 5, 10, 11], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "create_blank": 3, "blank": 3, "create_new_vers": 3, "add": [3, 5], "sinc": 3, "content": [3, 13], "immut": 3, "want": [3, 8], "chang": [3, 11], "That": 3, "field": [3, 5, 7, 11, 12], "old": 3, "ad": 3, "least": 3, "one": [3, 5, 10, 11], "suffici": 3, "note": [3, 11, 12], "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "create_record": 3, "delete_record": [3, 8], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": 3, "distribut": 3, "identifi": [3, 9, 11], "boolean": 3, "we": [3, 11], "get_all_record": 3, "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "get_latest_vers": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "get_record": 3, "get_record_doc": 3, "repres": [3, 5, 10], "get_records_on_pag": 3, "get_stat": 3, "info": [3, 11], "get_url": 3, "algorithm": 3, "get_vers": [3, 4, 5], "get_with_param": 3, "file_st": 3, "client": [3, 11], "like": [3, 5, 9, 11, 12], "signpost": 3, "is_healthi": [3, 4, 5], "healthi": [3, 4, 5], "query_url": 3, "update_blank": 3, "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "update_record": 3, "exist": [3, 5, 6, 9, 12], "gen3job": [4, 10], "s": [], "dispatch": 4, "async_run_job_and_wait": 4, "job_nam": 4, "job_input": 4, "kwarg": [4, 5], "wait": 4, "output": [4, 5, 11, 12], "Will": [4, 7, 10], "sleep": 4, "linear": 4, "delai": 4, "until": [4, 10], "done": 4, "1": [4, 5, 8, 10, 11], "global": 4, "input": [4, 10, 11], "create_job": 4, "get_output": 4, "job_id": 4, "previous": 4, "complet": [4, 11], "get_statu": 4, "statu": [4, 10], "bool": [4, 5, 8, 10, 11, 12], "list_job": 4, "gen3metadata": 5, "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "async_cr": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "async_get": 5, "async_upd": 5, "batch_creat": 5, "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "create_index_key_path": 5, "databas": 5, "delete_index_key_path": 5, "get_index_key_path": 5, "return_full_metadata": 5, "10": [5, 7, 11], "offset": [5, 7], "0": [5, 7, 8, 11], "use_agg_md": 5, "off": 5, "logic": [5, 12], "filter": [5, 7], "b": [5, 11], "2": [5, 11], "have": [5, 11], "ar": [5, 7, 8, 9, 10, 11], "alwai": 5, "nest": 5, "c": [5, 11], "3": 5, "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 5, "must": 5, "33": 5, "d": 5, "4": [5, 11], "e": [5, 10], "won": 5, "333": 5, "defin": [5, 8, 10], "api": [5, 8, 11], "just": [5, 11, 12], "max": 5, "num": 5, "OR": 5, "gen3object": 6, "level": 6, "current": [6, 8, 10], "allow": [6, 8, 10, 11, 12], "system": [6, 7, 8, 9], "delete_object": 6, "bucket": 6, "gen3queri": 7, "elasticsearch": 7, "graphql_queri": 7, "query_str": 7, "execut": [7, 8], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "http": [7, 11, 12], "com": 7, "uc": 7, "cdi": 7, "guppi": 7, "master": 7, "doc": [7, 10], "data_typ": 7, "my_index": 7, "my_field": 7, "first": [7, 8], "filter_object": 7, "sort_object": 7, "verbos": [7, 8], "row": [7, 8, 11, 12], "sort": 7, "equal": 7, "respect": 7, "complex": 7, "appli": 7, "One": 7, "unaccess": 7, "valid": [3, 7, 11], "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "raw_data_download": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "gen3submiss": 8, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "create_program": 8, "program": [8, 11], "create_project": 8, "project": [8, 11], "dcf": 8, "delete_nod": 8, "node_nam": 8, "batch_siz": 8, "100": [8, 11], "node": 8, "how": [8, 11], "mani": [8, 11], "print": [8, 10], "progress": [8, 10], "log": [8, 10, 11, 12], "ccle": 8, "demograph": 8, "ordered_node_list": 8, "revers": 8, "graph": 8, "experi": 8, "delete_program": 8, "empti": [8, 11], "delete_project": 8, "uuid1": 8, "uuid2": 8, "export_nod": 8, "node_typ": 8, "fileformat": 8, "singl": [8, 10], "which": [8, 10, 11], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "export_record": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "get_dictionary_al": 8, "entir": 8, "schema": 8, "get_dictionary_nod": 8, "get_graphql_schema": 8, "run": 8, "introspect": 8, "get_program": 8, "regist": 8, "get_project_dictionari": 8, "get_project_manifest": 8, "manifest": [8, 9, 10, 11, 12], "get_project": 8, "open_project": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "submit_fil": 8, "chunk_siz": 8, "30": 8, "row_offset": 8, "spreadsheet": 8, "multipl": [8, 11], "csv": [8, 11, 12], "xlsx": 8, "worksheet": 8, "skip": 8, "data_spreadsheet": 8, "submit_record": 8, "should": [8, 11], "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": 9, "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "downloadmanag": 10, "datafil": 10, "load": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "howto": 10, "drsdownload": 10, "drs_download": 10, "hostnam": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "user_access": 10, "cache_hosts_wts_token": 10, "object_list": 10, "host": 10, "obtain": [10, 11], "It": 10, "possibl": 10, "save_directori": 10, "unpack_packag": 10, "delete_unpacked_packag": 10, "directori": [10, 11], "call": [10, 11, 13], "case": 10, "error": [10, 11, 12], "continu": 10, "downloadstatu": 10, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "get_fresh_token": 10, "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolve_object": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "start_tim": 10, "end_tim": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "object_id": 10, "object_typ": 10, "drsobjecttyp": 10, "unknown": 10, "file_s": [10, 11], "updated_tim": 10, "created_tim": 10, "access_method": 10, "factori": 10, "children": 10, "popul": [10, 11, 12], "server": [10, 11], "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "_manag": 10, "self": 10, "pprint": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": 10, "md5sum": 10, "commons_url": [10, 11, 12], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "create_object_list": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "load_manifest": 10, "download_drs_object": 10, "output_dir": 10, "conveni": 10, "download_files_in_drs_manifest": 10, "infil": 10, "list_access_in_drs_manifest": 10, "list_drs_object": 10, "list_files_in_drs_manifest": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "separ": 11, "header": 11, "space": 11, "download_manifest": 11, "current_dir": 11, "indexd_record_page_s": 11, "per": [11, 12], "max_concurrent_request": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "tmp_folder": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "async_download_object_manifest": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "tab": 11, "session": 11, "column": [11, 12], "shown": 11, "below": 11, "255e396f": 11, "f1f8": 11, "11e9": 11, "9a07": 11, "0a80fada099c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "363455714": 11, "pdcdatastor": 11, "test1": 11, "0a80fada098c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "343434344": 11, "test2": 11, "0a80fada097c": 11, "473d83400bc1bc9dc635e334fadd433c": 11, "543434443": 11, "phs0001": 11, "phs0002": 11, "test3": 11, "0a80fada096c": 11, "test4": 11, "0a80fada010c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "test5": 11, "index_manifest": 11, "prev_guid": 11, "usag": 11, "py": 11, "giangb": 11, "planx": 11, "pla": 11, "net": 11, "manifest_fil": [11, 12], "path_to_manifest": 11, "replace_url": 11, "thread_num": 11, "api_kei": 11, "threadcontrol": 11, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "delete_all_guid": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "index_object_manifest": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "loop": 11, "ha": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 11, "altern": 11, "behavior": 11, "simpli": 11, "manifest_row_pars": [11, 12], "custom": 11, "import": 11, "verify_manifest": 11, "def": 11, "_get_authz_from_row": 11, "strip": 11, "parser": [11, 12], "verify_object_manifest": 11, "verif": 11, "error_nam": 11, "value_from_manifest": 11, "actual": 11, "value_from_indexd": 11, "93d9af72": 11, "b0f1": 11, "450c": 11, "a5c6": 11, "7d3d8d2083b4": 11, "dev": 11, "test": 11, "async_verify_object_manifest": 11, "_get_acl_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "1654627682": [], "4302042": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 12, "column_to_use_as_guid": 12, "guid_type_for_indexed_file_object": 12, "guid_type_for_non_indexed_file_object": 12, "NOT": [11, 12], "guid_from_fil": 12, "_get_guid_for_row": 12, "indexed_file_object_guid": 12, "_query_for_associated_indexd_record_guid": 12, "guid_for_row": 12, "elsewher": 12, "async_ingest_metadata_manifest": 12, "metadata_sourc": 12, "672043": [], "get_guid_from_fil": 12, "metadata_typ": 12, "namespac": [0, 12], "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "async_query_urls_from_indexd": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "gen3wsstorag": 13, "copi": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "download_url": 13, "ws": [], "wskei": 13, "ls": [], "ls_path": 13, "ws_urlstr": 13, "form": 13, "rm": 13, "rm_path": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "upload_url": 13, "1654634067": [], "5923028": [], "8967967": [], "1654789636": [], "6798043": [], "9773014": [], "1654807944": [], "3028057": [], "560571": [], "1654874610": [], "345438": [], "6664228": [], "1654874771": [], "190345": [], "4957037": [], "1654887195": [], "1666398": [], "5790925": [], "get_guids_prefix": 3, "prefix": 3, "get_valid_guid": 3, "count": 3, "populate_object_manifest_with_valid_guid": 11, "minim": 11, "miss": 11, "anyth": 11, "side": 11, "No": 11, "part": 11, "1655136811": [], "5685084": [], "982317": [], "get_access_token_from_wt": 0, "try": 0, "fetch": 0, "": [4, 8, 10, 11], "force_metadata_columns_even_if_empti": 11, "forc": 11, "creation": 11, "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "1659375909": [11, 12], "1640186": 11, "522224": 12, "w": 13, "l": 13}, "objects": {"gen3.auth": [[0, 0, 1, "", "Gen3Auth"]], "gen3.auth.Gen3Auth": [[0, 1, 1, "", "curl"], [0, 1, 1, "", "get_access_token"], [0, 1, 1, "", "get_access_token_from_wts"], [0, 1, 1, "", "refresh_access_token"]], "gen3.file": [[1, 0, 1, "", "Gen3File"]], "gen3.file.Gen3File": [[1, 1, 1, "", "delete_file"], [1, 1, 1, "", "delete_file_locations"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"]], "gen3.index": [[3, 0, 1, "", "Gen3Index"]], "gen3.index.Gen3Index": [[3, 1, 1, "", "async_create_record"], [3, 1, 1, "", "async_get_record"], [3, 1, 1, "", "async_get_records_from_checksum"], [3, 1, 1, "", "async_get_records_on_page"], [3, 1, 1, "", "async_get_with_params"], [3, 1, 1, "", "async_query_urls"], [3, 1, 1, "", "async_update_record"], [3, 1, 1, "", "create_blank"], [3, 1, 1, "", "create_new_version"], [3, 1, 1, "", "create_record"], [3, 1, 1, "", "delete_record"], [3, 1, 1, "", "get"], [3, 1, 1, "", "get_all_records"], [3, 1, 1, "", "get_guids_prefix"], [3, 1, 1, "", "get_latest_version"], [3, 1, 1, "", "get_record"], [3, 1, 1, "", "get_record_doc"], [3, 1, 1, "", "get_records"], [3, 1, 1, "", "get_records_on_page"], [3, 1, 1, "", "get_stats"], [3, 1, 1, "", "get_urls"], [3, 1, 1, "", "get_valid_guids"], [3, 1, 1, "", "get_version"], [3, 1, 1, "", "get_versions"], [3, 1, 1, "", "get_with_params"], [3, 1, 1, "", "is_healthy"], [3, 1, 1, "", "query_urls"], [3, 1, 1, "", "update_blank"], [3, 1, 1, "", "update_record"]], "gen3.jobs": [[4, 0, 1, "", "Gen3Jobs"]], "gen3.jobs.Gen3Jobs": [[4, 1, 1, "", "async_run_job_and_wait"], [4, 1, 1, "", "create_job"], [4, 1, 1, "", "get_output"], [4, 1, 1, "", "get_status"], [4, 1, 1, "", "get_version"], [4, 1, 1, "", "is_healthy"], [4, 1, 1, "", "list_jobs"]], "gen3.metadata": [[5, 0, 1, "", "Gen3Metadata"]], "gen3.metadata.Gen3Metadata": [[5, 1, 1, "", "async_create"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_update"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_index_key_paths"], [5, 1, 1, "", "get_version"], [5, 1, 1, "", "is_healthy"], [5, 1, 1, "", "query"], [5, 1, 1, "", "update"]], "gen3.object": [[6, 0, 1, "", "Gen3Object"]], "gen3.object.Gen3Object": [[6, 1, 1, "", "delete_object"]], "gen3.query": [[7, 0, 1, "", "Gen3Query"]], "gen3.query.Gen3Query": [[7, 1, 1, "", "graphql_query"], [7, 1, 1, "", "query"], [7, 1, 1, "", "raw_data_download"]], "gen3.submission": [[8, 0, 1, "", "Gen3Submission"]], "gen3.submission.Gen3Submission": [[8, 1, 1, "", "create_program"], [8, 1, 1, "", "create_project"], [8, 1, 1, "", "delete_node"], [8, 1, 1, "", "delete_nodes"], [8, 1, 1, "", "delete_program"], [8, 1, 1, "", "delete_project"], [8, 1, 1, "", "delete_record"], [8, 1, 1, "", "delete_records"], [8, 1, 1, "", "export_node"], [8, 1, 1, "", "export_record"], [8, 1, 1, "", "get_dictionary_all"], [8, 1, 1, "", "get_dictionary_node"], [8, 1, 1, "", "get_graphql_schema"], [8, 1, 1, "", "get_programs"], [8, 1, 1, "", "get_project_dictionary"], [8, 1, 1, "", "get_project_manifest"], [8, 1, 1, "", "get_projects"], [8, 1, 1, "", "open_project"], [8, 1, 1, "", "query"], [8, 1, 1, "", "submit_file"], [8, 1, 1, "", "submit_record"]], "gen3": [[9, 3, 0, "-", "tools"]], "gen3.tools.download": [[10, 3, 0, "-", "drs_download"]], "gen3.tools.download.drs_download": [[10, 0, 1, "", "DownloadManager"], [10, 0, 1, "", "DownloadStatus"], [10, 0, 1, "", "Downloadable"], [10, 0, 1, "", "Manifest"], [10, 4, 1, "", "download_drs_object"], [10, 4, 1, "", "download_files_in_drs_manifest"], [10, 4, 1, "", "list_access_in_drs_manifest"], [10, 4, 1, "", "list_drs_object"], [10, 4, 1, "", "list_files_in_drs_manifest"]], "gen3.tools.download.drs_download.DownloadManager": [[10, 1, 1, "", "cache_hosts_wts_tokens"], [10, 1, 1, "", "download"], [10, 1, 1, "", "get_fresh_token"], [10, 1, 1, "", "resolve_objects"], [10, 1, 1, "", "user_access"]], "gen3.tools.download.drs_download.DownloadStatus": [[10, 2, 1, "", "end_time"], [10, 2, 1, "", "start_time"], [10, 2, 1, "", "status"]], "gen3.tools.download.drs_download.Downloadable": [[10, 2, 1, "", "_manager"], [10, 2, 1, "", "access_methods"], [10, 2, 1, "", "children"], [10, 2, 1, "", "created_time"], [10, 1, 1, "", "download"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 2, 1, "", "hostname"], [10, 2, 1, "", "object_id"], [10, 2, 1, "", "object_type"], [10, 1, 1, "", "pprint"], [10, 2, 1, "", "updated_time"]], "gen3.tools.download.drs_download.Manifest": [[10, 2, 1, "", "commons_url"], [10, 1, 1, "", "create_object_list"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 1, 1, "", "load"], [10, 1, 1, "", "load_manifest"], [10, 2, 1, "", "md5sum"], [10, 2, 1, "", "object_id"]], "gen3.tools.indexing": [[11, 3, 0, "-", "download_manifest"], [11, 3, 0, "-", "index_manifest"], [11, 3, 0, "-", "verify_manifest"]], "gen3.tools.indexing.download_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "INDEXD_RECORD_PAGE_SIZE"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 2, 1, "", "TMP_FOLDER"], [11, 4, 1, "", "async_download_object_manifest"]], "gen3.tools.indexing.index_manifest": [[11, 2, 1, "", "ACLS"], [11, 2, 1, "", "AUTHZ"], [11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "GUID"], [11, 2, 1, "", "MD5"], [11, 2, 1, "", "PREV_GUID"], [11, 2, 1, "", "SIZE"], [11, 0, 1, "", "ThreadControl"], [11, 2, 1, "", "URLS"], [11, 4, 1, "", "delete_all_guids"], [11, 4, 1, "", "index_object_manifest"], [11, 4, 1, "", "populate_object_manifest_with_valid_guids"]], "gen3.tools.indexing.verify_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 4, 1, "", "async_verify_object_manifest"]], "gen3.tools.metadata": [[12, 3, 0, "-", "ingest_manifest"]], "gen3.tools.metadata.ingest_manifest": [[12, 2, 1, "", "COLUMN_TO_USE_AS_GUID"], [12, 2, 1, "", "GUID_TYPE_FOR_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [12, 4, 1, "", "async_ingest_metadata_manifest"], [12, 4, 1, "", "async_query_urls_from_indexd"]], "gen3.wss": [[13, 0, 1, "", "Gen3WsStorage"]], "gen3.wss.Gen3WsStorage": [[13, 1, 1, "", "copy"], [13, 1, 1, "", "download"], [13, 1, 1, "", "download_url"], [13, 1, 1, "", "ls"], [13, 1, 1, "", "ls_path"], [13, 1, 1, "", "rm"], [13, 1, 1, "", "rm_path"], [13, 1, 1, "", "upload"], [13, 1, 1, "", "upload_url"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "auth": 0, "helper": 0, "file": 1, "class": [1, 3, 4, 5, 6, 7, 8], "welcom": 2, "sdk": 2, "s": [], "document": 2, "indic": 2, "tabl": 2, "index": [3, 11], "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "submiss": 8, "tool": [9, 10, 11, 12], "dr": 10, "download": [10, 11], "verifi": 11, "ingest": 12, "workspac": 13, "storag": 13, "": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "filenames": ["auth.rst", "file.rst", "index.rst", "indexing.rst", "jobs.rst", "metadata.rst", "object.rst", "query.rst", "submission.rst", "tools.rst", "tools/drs_pull.rst", "tools/indexing.rst", "tools/metadata.rst", "wss.rst"], "titles": ["Gen3 Auth Helper", "Gen3 File Class", "Welcome to Gen3 SDK\u2019s documentation!", "Gen3 Index Class", "Gen3 Jobs Class", "Gen3 Metadata Class", "Gen3 Object Class", "Gen3 Query Class", "Gen3 Submission Class", "Gen3 Tools", "DRS Download Tools", "Indexing Tools", "Metadata Tools", "Gen3 Workspace Storage"], "terms": {"class": [0, 2, 10, 11, 13], "gen3auth": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 3, 4, 5, 7, 8, 13], "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "idp": 0, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "authbas": 0, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "request": [0, 1, 3, 8, 11, 12], "implement": 0, "order": [0, 8], "support": [0, 1, 5, 8, 11], "jwt": 0, "authent": 0, "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "access": [0, 1, 3, 7, 10], "token": [0, 10], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "provid": [0, 1, 3, 5, 7, 8, 12], "refresh": [0, 10], "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "string": [0, 3, 5, 11, 13], "automat": 0, "when": [0, 3, 7, 10, 12], "thei": [0, 10], "expir": [0, 1], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "opt": 0, "The": [0, 1, 2, 3, 5, 8, 10, 11], "contain": [0, 2, 5, 8, 9, 10, 11, 12], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "web": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 10, 11], "workspac": [0, 2], "default": [0, 1, 3, 7, 8, 11, 12], "env": 0, "gen3_api_kei": 0, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "set": [0, 1, 10], "includ": [0, 3], "search": [0, 2, 3], "path": [0, 1, 5, 10, 11, 13], "valu": [0, 1, 3, 5, 7, 10, 11], "doe": [0, 11, 12], "interpret": 0, "wt": [0, 10], "an": [0, 3, 6, 8, 10, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "instal": [0, 2], "crdc": 0, "some": [0, 2], "arbitrari": 0, "kei": [0, 3, 5, 13], "variabl": [0, 7, 8], "rather": 0, "than": [0, 5], "pass": [0, 7, 8, 10], "argument": [0, 13], "constructor": 0, "initi": [0, 10], "follow": [0, 11], "curl": 0, "data": [0, 1, 3, 5, 7, 8, 10, 11], "given": [0, 3, 4, 5, 8, 10, 11, 12, 13], "ex": [0, 11, 12], "user": [0, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 3, 10, 11], "map": [0, 11], "get": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 3, 5, 6, 8, 10, 11], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": 0, "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "refresh_access_token": 0, "new": [0, 3], "gen3fil": 1, "auth_provid": [1, 3, 4, 5, 6, 7, 8, 13], "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "For": [1, 5, 6, 7, 8, 9, 11], "interact": [1, 3, 4, 5, 6, 8, 13], "manag": [1, 5, 10], "featur": [1, 6], "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "presign": 1, "url": [1, 3, 9, 10, 11, 12, 13], "right": 1, "now": [1, 8], "instanc": [1, 3, 6, 7, 8, 9, 10], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "delete_fil": 1, "guid": [1, 3, 5, 6, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 6], "instead": [1, 7, 11], "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "locat": [1, 6], "store": [1, 3, 10], "remov": [1, 6, 11, 13], "its": [1, 3], "record": [1, 3, 5, 7, 8, 11, 12], "indexd": [1, 3, 6, 10, 11, 12], "uuid": [1, 3, 8], "id": [1, 3, 10, 11], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "get_presigned_url": 1, "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": 1, "file_nam": [1, 3, 10, 11], "expires_in": 1, "upload": [1, 3, 8, 13], "list": [1, 3, 4, 5, 7, 8, 10, 11, 13], "author": 1, "scope": 1, "storag": [1, 2, 6], "s3": [1, 10, 11], "az": 1, "isn": 1, "t": [1, 5, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "amount": [1, 9], "second": [1, 4], "sign": 1, "datetim": [1, 10], "utcnow": 1, "Be": 1, "sure": 1, "posit": [1, 7], "integ": [1, 3, 8], "also": 1, "treat": [1, 5], "max_presigned_url_ttl": 1, "configur": 1, "represent": [1, 3], "document": [1, 3], "readm": 2, "python": [2, 9, 11], "github": [2, 7], "repo": 2, "setup": 2, "inform": [2, 3, 10], "along": 2, "quickstart": 2, "script": 2, "more": [2, 5, 7, 9, 10], "detail": [2, 7, 10], "about": [2, 3], "variou": 2, "function": [2, 3, 4, 5, 9, 10, 11, 12], "mostli": 2, "docstr": 2, "code": [2, 8], "helper": 2, "job": 2, "metadata": [2, 3, 6, 9, 11], "submiss": 2, "tool": 2, "dr": [2, 9], "verifi": [2, 9], "ingest": [2, 9], "modul": [2, 10, 11], "gen3index": 3, "service_loc": [3, 4, 5], "public": [3, 5], "read": [3, 5, 11], "onli": [3, 5, 7, 8, 10, 11], "necessari": [3, 5], "basic": [3, 11, 12], "cred": 3, "tupl": [3, 11, 12], "async": [3, 4, 5, 9, 11, 12], "async_create_record": 3, "hash": [3, 11], "size": [3, 10, 11], "did": 3, "baseid": 3, "acl": [3, 11], "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "creat": [3, 4, 5, 6, 8, 10, 11], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "md5": [3, 11], "ab167e49d25b488939b1ede42752458b": 3, "associ": [3, 5], "made": 3, "where": [3, 5, 11, 12], "you": [3, 8, 11], "control": 3, "rbac": 3, "name": [3, 4, 8, 10, 11, 12, 13], "addit": [3, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "async_get_record": 3, "async_get_records_from_checksum": 3, "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "async_get_records_on_pag": 3, "async_get_with_param": 3, "param": [3, 5, 8, 10], "correspond": 3, "suppli": 3, "need": [3, 7, 10, 11], "handl": [3, 10], "hash_typ": 3, "whether": [3, 4, 5, 8, 11, 12], "ssl": [3, 4, 5], "async_query_url": 3, "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "async_update_record": 3, "updat": [3, 5, 10, 11], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "create_blank": 3, "blank": 3, "create_new_vers": 3, "add": [3, 5], "sinc": 3, "content": [3, 13], "immut": 3, "want": [3, 8], "chang": [3, 11], "That": 3, "field": [3, 5, 7, 11, 12], "old": 3, "ad": 3, "least": 3, "one": [3, 5, 10, 11], "suffici": 3, "note": [3, 11, 12], "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "create_record": 3, "delete_record": [3, 8], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": 3, "distribut": 3, "identifi": [3, 9, 11], "boolean": 3, "we": [3, 11], "get_all_record": 3, "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "get_latest_vers": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "get_record": 3, "get_record_doc": 3, "repres": [3, 5, 10], "get_records_on_pag": 3, "get_stat": 3, "info": [3, 11], "get_url": 3, "algorithm": 3, "get_vers": [3, 4, 5], "get_with_param": 3, "file_st": 3, "client": [3, 11], "like": [3, 5, 9, 11, 12], "signpost": 3, "is_healthi": [3, 4, 5], "healthi": [3, 4, 5], "query_url": 3, "update_blank": 3, "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "update_record": 3, "exist": [3, 5, 6, 9, 12], "gen3job": [4, 10], "s": [], "dispatch": 4, "async_run_job_and_wait": 4, "job_nam": 4, "job_input": 4, "kwarg": [4, 5], "wait": 4, "output": [4, 5, 11, 12], "Will": [4, 7, 10], "sleep": 4, "linear": 4, "delai": 4, "until": [4, 10], "done": 4, "1": [4, 5, 8, 10, 11], "global": 4, "input": [4, 10, 11], "create_job": 4, "get_output": 4, "job_id": 4, "previous": 4, "complet": [4, 11], "get_statu": 4, "statu": [4, 10], "bool": [4, 5, 8, 10, 11, 12], "list_job": 4, "gen3metadata": 5, "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "async_cr": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "async_get": 5, "async_upd": 5, "batch_creat": 5, "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "create_index_key_path": 5, "databas": 5, "delete_index_key_path": 5, "get_index_key_path": 5, "return_full_metadata": 5, "10": [5, 7, 11], "offset": [5, 7], "0": [5, 7, 8, 11], "use_agg_md": 5, "off": 5, "logic": [5, 12], "filter": [5, 7], "b": [5, 11], "2": [5, 11], "have": [5, 11], "ar": [5, 7, 8, 9, 10, 11], "alwai": 5, "nest": 5, "c": [5, 11], "3": 5, "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 5, "must": 5, "33": 5, "d": 5, "4": [5, 11], "e": [5, 10], "won": 5, "333": 5, "defin": [5, 8, 10], "api": [5, 8, 11], "just": [5, 11, 12], "max": 5, "num": 5, "OR": 5, "gen3object": 6, "level": 6, "current": [6, 8, 10], "allow": [6, 8, 10, 11, 12], "system": [6, 7, 8, 9], "delete_object": 6, "bucket": 6, "gen3queri": 7, "elasticsearch": 7, "graphql_queri": 7, "query_str": 7, "execut": [7, 8], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "http": [7, 11, 12], "com": 7, "uc": 7, "cdi": 7, "guppi": 7, "master": 7, "doc": [7, 10], "data_typ": 7, "my_index": 7, "my_field": 7, "first": [7, 8], "filter_object": 7, "sort_object": 7, "verbos": [7, 8], "row": [7, 8, 11, 12], "sort": 7, "equal": 7, "respect": 7, "complex": 7, "appli": 7, "One": 7, "unaccess": 7, "valid": [3, 7, 11], "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "raw_data_download": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "gen3submiss": 8, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "create_program": 8, "program": [8, 11], "create_project": 8, "project": [8, 11], "dcf": 8, "delete_nod": 8, "node_nam": 8, "batch_siz": 8, "100": [8, 11], "node": 8, "how": [8, 11], "mani": [8, 11], "print": [8, 10], "progress": [8, 10], "log": [8, 10, 11, 12], "ccle": 8, "demograph": 8, "ordered_node_list": 8, "revers": 8, "graph": 8, "experi": 8, "delete_program": 8, "empti": [8, 11], "delete_project": 8, "uuid1": 8, "uuid2": 8, "export_nod": 8, "node_typ": 8, "fileformat": 8, "singl": [8, 10], "which": [8, 10, 11], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "export_record": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "get_dictionary_al": 8, "entir": 8, "schema": 8, "get_dictionary_nod": 8, "get_graphql_schema": 8, "run": 8, "introspect": 8, "get_program": 8, "regist": 8, "get_project_dictionari": 8, "get_project_manifest": 8, "manifest": [8, 9, 10, 11, 12], "get_project": 8, "open_project": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "submit_fil": 8, "chunk_siz": 8, "30": 8, "row_offset": 8, "spreadsheet": 8, "multipl": [8, 11], "csv": [8, 11, 12], "xlsx": 8, "worksheet": 8, "skip": 8, "data_spreadsheet": 8, "submit_record": 8, "should": [8, 11], "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": 9, "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "downloadmanag": 10, "datafil": 10, "load": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "howto": 10, "drsdownload": 10, "drs_download": 10, "hostnam": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "user_access": 10, "cache_hosts_wts_token": 10, "object_list": 10, "host": 10, "obtain": [10, 11], "It": 10, "possibl": 10, "save_directori": 10, "unpack_packag": 10, "delete_unpacked_packag": 10, "directori": [10, 11], "call": [10, 11, 13], "case": 10, "error": [10, 11, 12], "continu": 10, "downloadstatu": 10, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "get_fresh_token": 10, "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolve_object": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "start_tim": 10, "end_tim": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "object_id": 10, "object_typ": 10, "drsobjecttyp": 10, "unknown": 10, "file_s": [10, 11], "updated_tim": 10, "created_tim": 10, "access_method": 10, "factori": 10, "children": 10, "popul": [10, 11, 12], "server": [10, 11], "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "_manag": 10, "self": 10, "pprint": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": 10, "md5sum": 10, "commons_url": [10, 11, 12], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "create_object_list": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "load_manifest": 10, "download_drs_object": 10, "output_dir": 10, "conveni": 10, "download_files_in_drs_manifest": 10, "infil": 10, "list_access_in_drs_manifest": 10, "list_drs_object": 10, "list_files_in_drs_manifest": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "separ": 11, "header": 11, "space": 11, "download_manifest": 11, "current_dir": 11, "indexd_record_page_s": 11, "per": [11, 12], "max_concurrent_request": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "tmp_folder": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "async_download_object_manifest": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "tab": 11, "session": 11, "column": [11, 12], "shown": 11, "below": 11, "255e396f": 11, "f1f8": 11, "11e9": 11, "9a07": 11, "0a80fada099c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "363455714": 11, "pdcdatastor": 11, "test1": 11, "0a80fada098c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "343434344": 11, "test2": 11, "0a80fada097c": 11, "473d83400bc1bc9dc635e334fadd433c": 11, "543434443": 11, "phs0001": 11, "phs0002": 11, "test3": 11, "0a80fada096c": 11, "test4": 11, "0a80fada010c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "test5": 11, "index_manifest": 11, "prev_guid": 11, "usag": 11, "py": 11, "giangb": 11, "planx": 11, "pla": 11, "net": 11, "manifest_fil": [11, 12], "path_to_manifest": 11, "replace_url": 11, "thread_num": 11, "api_kei": 11, "threadcontrol": 11, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "delete_all_guid": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "index_object_manifest": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "loop": 11, "ha": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 11, "altern": 11, "behavior": 11, "simpli": 11, "manifest_row_pars": [11, 12], "custom": 11, "import": 11, "verify_manifest": 11, "def": 11, "_get_authz_from_row": 11, "strip": 11, "parser": [11, 12], "verify_object_manifest": 11, "verif": 11, "error_nam": 11, "value_from_manifest": 11, "actual": 11, "value_from_indexd": 11, "93d9af72": 11, "b0f1": 11, "450c": 11, "a5c6": 11, "7d3d8d2083b4": 11, "dev": 11, "test": 11, "async_verify_object_manifest": 11, "_get_acl_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "1654627682": [], "4302042": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 12, "column_to_use_as_guid": 12, "guid_type_for_indexed_file_object": 12, "guid_type_for_non_indexed_file_object": 12, "NOT": [11, 12], "guid_from_fil": 12, "_get_guid_for_row": 12, "indexed_file_object_guid": 12, "_query_for_associated_indexd_record_guid": 12, "guid_for_row": 12, "elsewher": 12, "async_ingest_metadata_manifest": 12, "metadata_sourc": 12, "672043": [], "get_guid_from_fil": 12, "metadata_typ": 12, "namespac": [0, 12], "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "async_query_urls_from_indexd": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "gen3wsstorag": 13, "copi": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "download_url": 13, "ws": [], "wskei": 13, "ls": [], "ls_path": 13, "ws_urlstr": 13, "form": 13, "rm": 13, "rm_path": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "upload_url": 13, "1654634067": [], "5923028": [], "8967967": [], "1654789636": [], "6798043": [], "9773014": [], "1654807944": [], "3028057": [], "560571": [], "1654874610": [], "345438": [], "6664228": [], "1654874771": [], "190345": [], "4957037": [], "1654887195": [], "1666398": [], "5790925": [], "get_guids_prefix": 3, "prefix": 3, "get_valid_guid": 3, "count": 3, "populate_object_manifest_with_valid_guid": 11, "minim": 11, "miss": 11, "anyth": 11, "side": 11, "No": 11, "part": 11, "1655136811": [], "5685084": [], "982317": [], "get_access_token_from_wt": 0, "try": 0, "fetch": 0, "": [4, 8, 10, 11], "force_metadata_columns_even_if_empti": 11, "forc": 11, "creation": 11, "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "1659375909": [], "1640186": [], "522224": [], "w": 13, "l": 13, "rtype": 3, "alias": 5, "merg": 5, "1660165119": [11, 12], "312618": 11, "6884966": 12}, "objects": {"gen3.auth": [[0, 0, 1, "", "Gen3Auth"]], "gen3.auth.Gen3Auth": [[0, 1, 1, "", "curl"], [0, 1, 1, "", "get_access_token"], [0, 1, 1, "", "get_access_token_from_wts"], [0, 1, 1, "", "refresh_access_token"]], "gen3.file": [[1, 0, 1, "", "Gen3File"]], "gen3.file.Gen3File": [[1, 1, 1, "", "delete_file"], [1, 1, 1, "", "delete_file_locations"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"]], "gen3.index": [[3, 0, 1, "", "Gen3Index"]], "gen3.index.Gen3Index": [[3, 1, 1, "", "async_create_record"], [3, 1, 1, "", "async_get_record"], [3, 1, 1, "", "async_get_records_from_checksum"], [3, 1, 1, "", "async_get_records_on_page"], [3, 1, 1, "", "async_get_with_params"], [3, 1, 1, "", "async_query_urls"], [3, 1, 1, "", "async_update_record"], [3, 1, 1, "", "create_blank"], [3, 1, 1, "", "create_new_version"], [3, 1, 1, "", "create_record"], [3, 1, 1, "", "delete_record"], [3, 1, 1, "", "get"], [3, 1, 1, "", "get_all_records"], [3, 1, 1, "", "get_guids_prefix"], [3, 1, 1, "", "get_latest_version"], [3, 1, 1, "", "get_record"], [3, 1, 1, "", "get_record_doc"], [3, 1, 1, "", "get_records"], [3, 1, 1, "", "get_records_on_page"], [3, 1, 1, "", "get_stats"], [3, 1, 1, "", "get_urls"], [3, 1, 1, "", "get_valid_guids"], [3, 1, 1, "", "get_version"], [3, 1, 1, "", "get_versions"], [3, 1, 1, "", "get_with_params"], [3, 1, 1, "", "is_healthy"], [3, 1, 1, "", "query_urls"], [3, 1, 1, "", "update_blank"], [3, 1, 1, "", "update_record"]], "gen3.jobs": [[4, 0, 1, "", "Gen3Jobs"]], "gen3.jobs.Gen3Jobs": [[4, 1, 1, "", "async_run_job_and_wait"], [4, 1, 1, "", "create_job"], [4, 1, 1, "", "get_output"], [4, 1, 1, "", "get_status"], [4, 1, 1, "", "get_version"], [4, 1, 1, "", "is_healthy"], [4, 1, 1, "", "list_jobs"]], "gen3.metadata": [[5, 0, 1, "", "Gen3Metadata"]], "gen3.metadata.Gen3Metadata": [[5, 1, 1, "", "async_create"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_update"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_index_key_paths"], [5, 1, 1, "", "get_version"], [5, 1, 1, "", "is_healthy"], [5, 1, 1, "", "query"], [5, 1, 1, "", "update"]], "gen3.object": [[6, 0, 1, "", "Gen3Object"]], "gen3.object.Gen3Object": [[6, 1, 1, "", "delete_object"]], "gen3.query": [[7, 0, 1, "", "Gen3Query"]], "gen3.query.Gen3Query": [[7, 1, 1, "", "graphql_query"], [7, 1, 1, "", "query"], [7, 1, 1, "", "raw_data_download"]], "gen3.submission": [[8, 0, 1, "", "Gen3Submission"]], "gen3.submission.Gen3Submission": [[8, 1, 1, "", "create_program"], [8, 1, 1, "", "create_project"], [8, 1, 1, "", "delete_node"], [8, 1, 1, "", "delete_nodes"], [8, 1, 1, "", "delete_program"], [8, 1, 1, "", "delete_project"], [8, 1, 1, "", "delete_record"], [8, 1, 1, "", "delete_records"], [8, 1, 1, "", "export_node"], [8, 1, 1, "", "export_record"], [8, 1, 1, "", "get_dictionary_all"], [8, 1, 1, "", "get_dictionary_node"], [8, 1, 1, "", "get_graphql_schema"], [8, 1, 1, "", "get_programs"], [8, 1, 1, "", "get_project_dictionary"], [8, 1, 1, "", "get_project_manifest"], [8, 1, 1, "", "get_projects"], [8, 1, 1, "", "open_project"], [8, 1, 1, "", "query"], [8, 1, 1, "", "submit_file"], [8, 1, 1, "", "submit_record"]], "gen3": [[9, 3, 0, "-", "tools"]], "gen3.tools.download": [[10, 3, 0, "-", "drs_download"]], "gen3.tools.download.drs_download": [[10, 0, 1, "", "DownloadManager"], [10, 0, 1, "", "DownloadStatus"], [10, 0, 1, "", "Downloadable"], [10, 0, 1, "", "Manifest"], [10, 4, 1, "", "download_drs_object"], [10, 4, 1, "", "download_files_in_drs_manifest"], [10, 4, 1, "", "list_access_in_drs_manifest"], [10, 4, 1, "", "list_drs_object"], [10, 4, 1, "", "list_files_in_drs_manifest"]], "gen3.tools.download.drs_download.DownloadManager": [[10, 1, 1, "", "cache_hosts_wts_tokens"], [10, 1, 1, "", "download"], [10, 1, 1, "", "get_fresh_token"], [10, 1, 1, "", "resolve_objects"], [10, 1, 1, "", "user_access"]], "gen3.tools.download.drs_download.DownloadStatus": [[10, 2, 1, "", "end_time"], [10, 2, 1, "", "start_time"], [10, 2, 1, "", "status"]], "gen3.tools.download.drs_download.Downloadable": [[10, 2, 1, "", "_manager"], [10, 2, 1, "", "access_methods"], [10, 2, 1, "", "children"], [10, 2, 1, "", "created_time"], [10, 1, 1, "", "download"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 2, 1, "", "hostname"], [10, 2, 1, "", "object_id"], [10, 2, 1, "", "object_type"], [10, 1, 1, "", "pprint"], [10, 2, 1, "", "updated_time"]], "gen3.tools.download.drs_download.Manifest": [[10, 2, 1, "", "commons_url"], [10, 1, 1, "", "create_object_list"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 1, 1, "", "load"], [10, 1, 1, "", "load_manifest"], [10, 2, 1, "", "md5sum"], [10, 2, 1, "", "object_id"]], "gen3.tools.indexing": [[11, 3, 0, "-", "download_manifest"], [11, 3, 0, "-", "index_manifest"], [11, 3, 0, "-", "verify_manifest"]], "gen3.tools.indexing.download_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "INDEXD_RECORD_PAGE_SIZE"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 2, 1, "", "TMP_FOLDER"], [11, 4, 1, "", "async_download_object_manifest"]], "gen3.tools.indexing.index_manifest": [[11, 2, 1, "", "ACLS"], [11, 2, 1, "", "AUTHZ"], [11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "GUID"], [11, 2, 1, "", "MD5"], [11, 2, 1, "", "PREV_GUID"], [11, 2, 1, "", "SIZE"], [11, 0, 1, "", "ThreadControl"], [11, 2, 1, "", "URLS"], [11, 4, 1, "", "delete_all_guids"], [11, 4, 1, "", "index_object_manifest"], [11, 4, 1, "", "populate_object_manifest_with_valid_guids"]], "gen3.tools.indexing.verify_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 4, 1, "", "async_verify_object_manifest"]], "gen3.tools.metadata": [[12, 3, 0, "-", "ingest_manifest"]], "gen3.tools.metadata.ingest_manifest": [[12, 2, 1, "", "COLUMN_TO_USE_AS_GUID"], [12, 2, 1, "", "GUID_TYPE_FOR_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [12, 4, 1, "", "async_ingest_metadata_manifest"], [12, 4, 1, "", "async_query_urls_from_indexd"]], "gen3.wss": [[13, 0, 1, "", "Gen3WsStorage"]], "gen3.wss.Gen3WsStorage": [[13, 1, 1, "", "copy"], [13, 1, 1, "", "download"], [13, 1, 1, "", "download_url"], [13, 1, 1, "", "ls"], [13, 1, 1, "", "ls_path"], [13, 1, 1, "", "rm"], [13, 1, 1, "", "rm_path"], [13, 1, 1, "", "upload"], [13, 1, 1, "", "upload_url"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "auth": 0, "helper": 0, "file": 1, "class": [1, 3, 4, 5, 6, 7, 8], "welcom": 2, "sdk": 2, "s": [], "document": 2, "indic": 2, "tabl": 2, "index": [3, 11], "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "submiss": 8, "tool": [9, 10, 11, 12], "dr": 10, "download": [10, 11], "verifi": 11, "ingest": 12, "workspac": 13, "storag": 13, "": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index 58232f5b0..49677aa35 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -400,7 +400,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1659375909.1640186.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1660165119.312618.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index 0a9fddc65..ae77f0258 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1659375909.522224.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1660165119.6884966.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From ec67e361ea41c3614176b8463e39a06a7e2a6b07 Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Mon, 15 Aug 2022 15:12:42 +0000 Subject: [PATCH 08/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 320151 -> 320151 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 103400 -> 103400 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35856 -> 35856 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 2 +- docs/_build/html/tools/metadata.html | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 020ac893952866c3579a6fa3f15f8139e3ec2ca7..2c57e3efc39fbefc597c6acf5e68b74ba48b9d9d 100644 GIT binary patch delta 5680 zcmbU_X;hR~mcFlwDnJ&IeJK#Cf+a`+1__EFC2%vkrst%4W^&Bj_g+z$oSZ&$=Ffe1 zfA`*Z-|~G@m$%gA-J*#|@~E$_HrB{}-_9ZY!1gAJvRFxTCv|8*=W|f_pprWcA{fX73=t*8;s^4R^ zxYn6UD=X^iDypk&Z4vRZ#&KcJoXqsG^FRORu&kS6pMz366^XZJsW&{tQ3sV=_e30X zP%FPF76%+uc4D(Q=%8|4|1J(Ws15gZ;)H{$Kk--`&Tx?XWvybbgZgQDk9f;LeemvC zal}D=IPpmAcTm4O;|{-xOpc(59IvB(?RqP)ofd>a`Epw&7!gAUF!@jlR`rFt<; zV}|yM=C%_|QxhHVLsIC|2EmLhaY+b#-@5lZ*5B7?kI4W9#^16y(C)<#_94#@Js+s< z{x@W|B6dR_PiehxDh*1=y+eCbhVswj$8S+4cwB+J?WST7U`s!VE)&{Fq z9JduEM-Yh1dfGA!UL@NB9EV$#m~(9kVP zLsflkg`v*6!>Y{}#~~)&zmdj&$ePchrz4G>jx=&Q(zxkJqoyMb>X6l7ajU4>Wi*u; z=t;*MigfexVzKJ5!mygKaDTdDr zG$5_%hRsEZP?(j3%dUdY)@FfzvllexdP7lWH#G08!Zrwp6Ioec#)b1;*9}2gRoD{c z@Ku%uZe@4FI~%H4`*`FQgK?t(Ocem5^$RTV+aG(v4Be2FriY^Wg zba`-~3xoq*A{^)<;Xs!O2bvlVG`So(D*<}xheyS$8>vg|r2oglGw0OwsluT%gUK?F z^^?B7T3>4@HB}hPc+;a04Qc;RSADGkx5i{!r05e;E zGh2Q$%f`%>$ILP`v!yrV%D>-A5A1JR6BTU3N5h{_2SDMeNF^h6&d_?@9}*3raKYf} zEUt5%GY2~auAIt5D>vH`(g!PTDF_>ESxWj;5mTKZ98G>wzFsj4fcJch3bxAWWL#vjYJg)Sb33U|o zr!&#`!_zAf{^9g$gwY?RAvAuJ#RGX2=CuVt;%Og9tx>q!E5asv9n#M+iKK5Q3iqex z`RPmu3%QRsA?~Ba(7aCx&1alB>n%8nq3F*zLCZd8kEh+fJ!9+x^J?8@BVGA1jj@rz z3m?;pkh80}vt!_83xJ+F52!w?Bx7*kY!z(wqe0qoGb3OMkxFZ|)WA4;E`&*su@9`Ei8 z3z7TQg-nDa42E7zN4)rAA;MOM|Mg;_f_c2dqEP%OXePY@cd%HudIdGVJCsOfLEJ8bQ}x> z%N1ub0snL*SHZ3?XSmt5L^`GyT&0zl1%=NcV=KJjG1~f>% zwjSZ(YjoD}Ynu?p_H5)fOQET22{av=>smKEO@9y748ER$u=qNS__x<{5&r#p6rLvP z8)@oe4!ppb zFEbr+AOZesz>TvS7;C}cYECxU$yhi!=)+mBG1lF|HJm(zWCrXVqK;n~vL|O@%&=j~ zj2kXO`1)&gmxKJXtSS;$Nt-N~69jCtTj1l%6=N5SLK9SC#AGRZA~u{?y+ zW5o*g+URD}Y#(3C$sR_Y8(+rBn~e0DpeFi>41~X)$VT|ZL^f9#V+t;JH1OgbH_p1l zSnuD7MZNwzcD-qb-qyQzy@!m|csCyPTJIJhB=zLq6Ta z$*&nXHR&cbB+CP#Cvnz%#yT~fgL+Sxy+ffXTzQi=6dTv ztGLw-FQBgxX!+;D#qUU~pOQk!BNf)O5#fmKmycd345W9n#XS>0snh8f^)6Gb(aPR! zQruFaBIA-Skt~u^E$MCo2`A&74T&VdOF=Jaiw}gC`^caF6a zl-ouYpzF#u%xhFS(ni$WgOB9ZPH0}EQhytv5q{A|LU3?vCmI~$+er`(x$Pv7hxF%G zqT;5$aD1PyGg{K}_#xqMk0cOO9|zmrLrJYKKDecC+X=owq~H!L^r*C~gM^aN&aEBf zPZ4BH$`~h+IP4uKLF_)Yc*BBozQ{R_930M$li(S_w8%d=Y!UqA^ldJMZbA7_XU`U)sftWU z)!jmMtY@rhh>p`@P&|GFGP19mPO!j@UYC+m!1(8w~XooRdnl>l;ST( zH2v*iS%{p9q~1d^e;=mgoL5p+vD;9G`+-SbcwH9e$0Y7E5*_tH?W5n4slu4dyUgxd zPycM%e_e71I*TlVPtu5ys+hVb>&5S@T7snNmt;X$II3i_z}ttzJKc`R{ypD`p5}Fu z=MkB<^T9pY|7<6>q{-!Se>LS>eA(Ym`>gs(NBm5<2+}@{X19UK5&>WRI-;{OS-v;f z?y)9W9@!~7AirKfMx?%Ox!Q@|5GI(MjO+}#DmMhl>Cr4TPs#mAzx0b~xr&|O80qn8 zxt~(c4#$4U>%QFE)riYSwJpAIwAl~8d@0+XJJ3zb138vHB@f_O@RU5nj~bXP&gHnT Obo3W+z13tY)%`D+KpGAJ delta 5623 zcmb7Id013emiN9Yi+w4J9ST`0SOOMkkf1Drq9B{Npe8{JkaBsJfI!78&7eug8PY{G zeQNT0l1|ioy-X%w2C!I6B5G7hQ7QISji6>GleA-;^kjNwGG@-bwv z4C1g8om%E1+MVdU^n*B_?SvQq^ols-L_;Gsal(nd{?$j~h!cIg`a5yJiT-#b0sb*2 zmGr@nF+sB9;wbcMgW+wR68Zio_$dd!0OGX^P&ets?XgO@9It|6Z5Z_6m>jEx_E;4> zS`q>l?II_Z$5O0@199$8+7Ua8G^_cSxS&7Njytq|5E&N+m2oQg3k$GoY22UImn1BP zlW{5+x)#SQS{O*!32PTA0krfoWy2htP6;OtU&P%oLw)h|99 zc)U;;OxW?0aUSa8|H@b@7upM&TULS}%;rM#=w9lE^Q+*5&JAd8w8rGv05&&W^Gi$O z;Y{KJM^0`~w8#}A;?$r^^nu4ZHTtW-FMbV-EGxzCE`53kUQ3Dwd%7CdBxQnTWi&Le zN`fimKX@h@eA5)LX8Cq92`7`I;N0>Za3VPxGLp;Tw=1GyecnQtNzMdq3b*tw2!e`d zGC_tBZH3YB74jj=qai*Nev*p1^>C%fEQD`#D>#KLwSsE-_vCq0CHHv_7vj*Ntvw?b* z8XD3&!7Wn*+cIp>vQrH$B_UwmvH};p=J7^N9;p@T{f~^57pHgAsGhp--oX^XyBIxHYiK4!nW^+r!zEA zQe=Y@*~x4@@>7D~gAKV*w^jq*#jUwCJF|2OViQetHR5?^xSL zz?^l++ORR0z&rUkb4mngHs?ZBfd-Cmw!w~dboTckF-K!9ELlL1QCe%ZzQmdT*>;FA zpxNOMKHJ@_C!ak)VC$9|+?2aOzf}p11uCn&)Q2EgV0~)G8w5gft8kkd;Zd#zKGxqV zrQOIUtRFbgO`0#T79*mq!GSgh2ihJSXoGN|Ey95=0}iwx9B4`Ta#lD-8GtX#)-=+P ze|_80$-shB*C&>X%1vfpwwv_z)%sdPg=wF$lJ9O*;%&ovXxa=JB(VVF+jT#+iD?=eibZ0n`$?UbqSY3hD?5eLd;AWZ) zDUMq!Du_V(td*5xgp68KcV8v0d_Bb}tH<6qJjkT=?Yd6|Sk&Nc-T6YVf{cN-p`8p{ zZ#PsDVz;htbayA?P}r1ChOED6dex6iSiRpr=mB2uds~}743(1s>xUozUbca5gC@3S zO{{<>wg;Nn7HDESpowjOCf5HZ*8V0|O%rQR6RWU^wY~{Ef1-`v%s;dxE7)<5gFl=J zg5uLLE)42iq3v2ABpbrvyusa7T<<<_9$pM^`E(9?d0Ll|QCMY7N7`V`b)lUUGh87O zU4FhNV%B^VJlZqRB(FV*OhIFN4z$?jlL8=}I%)be@q`a;9-!r6*wUuOF=hExc^>hT<+4W>DId!NwC^NiNL)0MBT{ zr+$*Yop^cjBABWMlhDG01IpQ4r$B!u2jl<#%qkY-n=`8r#eI^A)c8p*pYv7lZ4ZLv zGk%a!qwsPp3XAtTWOXx*r0*aKuP0{uyV)cb@fg2=#82X(qHW%rI zv*}15Gn&?&u3%SsE2~E8j^xmaCB(qjCJ%VnO+EjsI}K^lxs_xPs?V)IHXc)g?jU!n6M;BZtRD~X;A#?{Mo*<5P{HoZ5brK=H+H_^vw>fwnB7#Y|G=05zOT9 z6@Lz+A@gdo^j?qP>zwbaE1S?E_3B2X%~$EHlUGZSCiHIRKFi^7&oVfC)Wf}QZkqmH zY8iSh8)?}!n(;^13XuNkS}a~D(bqG{5L8|-K-zYFH`1UR&nnnGy%i>IWJ~rpWJ*T{ zLoj@!3@wuSN|Cy(;h!~88%wq~TVpnnTUM6m_XQAyQdoj}0{ad-} zAX8cUS94g8FdJ44_@Yhmz;j&qGP4l}lHk7wJh`ZWi6REqaCq1O6X4@PKQ4NWiEa(9 zah{$nf`g{k8^xv-N74_%Lf z(eXf3JQ&}BG=Cz8OaM$2BAuBiQ?Q>IHa1P^*2BhTnW~3#z zH}OE^bBqGAjKsheWEmiiTW={{eKS8e?^NrJj9-5J$U~<&rv)Jyd2joN8Z4 zrlcAx@n$7cBvwwJLaD8VM01-+F34*mk=#E3{<$-VvtjUUXEY%?XdeRjNKoICiCK%M8g*w7R zd96SG?3RA)AfXs1v=i5QN?OrL!pT(E_D=Fm6q%H=CrJzr`zJ{VdsEFSi0Jl5$tjfJ zaCVY}&MIb1eqrp#n|T3U`8@oq1S*A&UwET?azv?N|ov$qh_t3DsZ z*04N8xe2#d*}6si+Kc+7%0AqE9y zIw6n?{ykREpx~rVSct;~oe+-09i0&TQ-Mu2_*IJr?($0zjBaF1I+B8ZV_m0G1ba9c zmTI=4|FCpyn-CzU&#)A}4fVraz1xJtRm3h;+k|lG!bL&Bc@2B$%pvgkkpQW+QIIPv z>=&$b_%gcLrN?OQvZuBjPagvsIemWLzAQv=WvG<-g5ZMfw@bz=LL>^`ydp&NpplaD z9U&4MOkK=T6opHN-xlPvqDVM+R0YRh_Yu%tcU6c&_l;MDcpU!bst}6<3PWA#*EoEC z?a~cy@(_in^XO&sE$J1aiM?xMuTXP|-Tvkn_~wm8f;c37YnCk}Ly~W^EQSyM5Z0$e zc4xCJ3Wp=jGJk)1O_)8is}EJt(^p=Bp8(PIqh?u{oT{Y0qq0ChX5?B}UbSzxp$?A( z(>(XOY+(S?c+F~bGzRsLdsC)f$aJboM`(Q|euCuR799a}W?2-Uq!BY!Gjkud7yr`K z93oY}Bn!cXqedn(ywx1p<#|l@Pet?TD^@4@9Fu9g?%kICZz-9O?yQstMpL=jpMAJ= z%&I@&%%3S2L*^H8>_IS@qu|kRqPh;G%J-)_BG#nJW4dIAFq4FOv?kvfb{Dbxtd+#nCYn*d4P+a-H!v3@~&LvZp8LcYqLKbZwbKv qzf>H^1L$Vt!JNyQmIrYzbXp!3KpjkG*FAWybo8Tcy~Sjz(EUH(4Hpgo diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 4bde8a2539fa1786e0ccad8e5858e418434e3803..a5f8f619abd9b700845defa2da6e18b0742d5e61 100644 GIT binary patch delta 130 zcmaE{obAPOwuUW?0Uo@j=4QsG7J7!J21Z6E+haW#eOQH2#Po9V)73SnH}EmWZI|+6 ktm78Kl%C$`&nP^7ZzQ8Gs(I7DM>1NW3T?NGVq9ej00o>PHvj+t delta 130 zcmaE{obAPOwuUW?0Uo@DW~PRQmU_m9MrMW<+haW#eOQH2#Po9V)73SnH}EmWZI|+6 ktm78Kl%C$`&nP^7ZzQ8Gs(I7DM>1NW3T?NGVq9ej0RJE&BLDyZ diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 0641e5a453de1e00c75248fb72011e8501cec611..aedb10bf3aad9a822f682ff1a06225fe9e212eb1 100644 GIT binary patch delta 132 zcmbO*gK5GHrVTcle5U4R#-MGhK81UW)>DEmS$#?=jz#PZqwvsMHAmVS8q3mFsfR;ocwh4 h$q!A0C)b&qNnw$jlEEH3B|~hoqPaP`al#gVg8@R>Bgp^& diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 63ca6841c..3a6ad9dbe 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "filenames": ["auth.rst", "file.rst", "index.rst", "indexing.rst", "jobs.rst", "metadata.rst", "object.rst", "query.rst", "submission.rst", "tools.rst", "tools/drs_pull.rst", "tools/indexing.rst", "tools/metadata.rst", "wss.rst"], "titles": ["Gen3 Auth Helper", "Gen3 File Class", "Welcome to Gen3 SDK\u2019s documentation!", "Gen3 Index Class", "Gen3 Jobs Class", "Gen3 Metadata Class", "Gen3 Object Class", "Gen3 Query Class", "Gen3 Submission Class", "Gen3 Tools", "DRS Download Tools", "Indexing Tools", "Metadata Tools", "Gen3 Workspace Storage"], "terms": {"class": [0, 2, 10, 11, 13], "gen3auth": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 3, 4, 5, 7, 8, 13], "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "idp": 0, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "authbas": 0, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "request": [0, 1, 3, 8, 11, 12], "implement": 0, "order": [0, 8], "support": [0, 1, 5, 8, 11], "jwt": 0, "authent": 0, "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "access": [0, 1, 3, 7, 10], "token": [0, 10], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "provid": [0, 1, 3, 5, 7, 8, 12], "refresh": [0, 10], "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "string": [0, 3, 5, 11, 13], "automat": 0, "when": [0, 3, 7, 10, 12], "thei": [0, 10], "expir": [0, 1], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "opt": 0, "The": [0, 1, 2, 3, 5, 8, 10, 11], "contain": [0, 2, 5, 8, 9, 10, 11, 12], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "web": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 10, 11], "workspac": [0, 2], "default": [0, 1, 3, 7, 8, 11, 12], "env": 0, "gen3_api_kei": 0, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "set": [0, 1, 10], "includ": [0, 3], "search": [0, 2, 3], "path": [0, 1, 5, 10, 11, 13], "valu": [0, 1, 3, 5, 7, 10, 11], "doe": [0, 11, 12], "interpret": 0, "wt": [0, 10], "an": [0, 3, 6, 8, 10, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "instal": [0, 2], "crdc": 0, "some": [0, 2], "arbitrari": 0, "kei": [0, 3, 5, 13], "variabl": [0, 7, 8], "rather": 0, "than": [0, 5], "pass": [0, 7, 8, 10], "argument": [0, 13], "constructor": 0, "initi": [0, 10], "follow": [0, 11], "curl": 0, "data": [0, 1, 3, 5, 7, 8, 10, 11], "given": [0, 3, 4, 5, 8, 10, 11, 12, 13], "ex": [0, 11, 12], "user": [0, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 3, 10, 11], "map": [0, 11], "get": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 3, 5, 6, 8, 10, 11], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": 0, "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "refresh_access_token": 0, "new": [0, 3], "gen3fil": 1, "auth_provid": [1, 3, 4, 5, 6, 7, 8, 13], "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "For": [1, 5, 6, 7, 8, 9, 11], "interact": [1, 3, 4, 5, 6, 8, 13], "manag": [1, 5, 10], "featur": [1, 6], "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "presign": 1, "url": [1, 3, 9, 10, 11, 12, 13], "right": 1, "now": [1, 8], "instanc": [1, 3, 6, 7, 8, 9, 10], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "delete_fil": 1, "guid": [1, 3, 5, 6, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 6], "instead": [1, 7, 11], "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "locat": [1, 6], "store": [1, 3, 10], "remov": [1, 6, 11, 13], "its": [1, 3], "record": [1, 3, 5, 7, 8, 11, 12], "indexd": [1, 3, 6, 10, 11, 12], "uuid": [1, 3, 8], "id": [1, 3, 10, 11], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "get_presigned_url": 1, "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": 1, "file_nam": [1, 3, 10, 11], "expires_in": 1, "upload": [1, 3, 8, 13], "list": [1, 3, 4, 5, 7, 8, 10, 11, 13], "author": 1, "scope": 1, "storag": [1, 2, 6], "s3": [1, 10, 11], "az": 1, "isn": 1, "t": [1, 5, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "amount": [1, 9], "second": [1, 4], "sign": 1, "datetim": [1, 10], "utcnow": 1, "Be": 1, "sure": 1, "posit": [1, 7], "integ": [1, 3, 8], "also": 1, "treat": [1, 5], "max_presigned_url_ttl": 1, "configur": 1, "represent": [1, 3], "document": [1, 3], "readm": 2, "python": [2, 9, 11], "github": [2, 7], "repo": 2, "setup": 2, "inform": [2, 3, 10], "along": 2, "quickstart": 2, "script": 2, "more": [2, 5, 7, 9, 10], "detail": [2, 7, 10], "about": [2, 3], "variou": 2, "function": [2, 3, 4, 5, 9, 10, 11, 12], "mostli": 2, "docstr": 2, "code": [2, 8], "helper": 2, "job": 2, "metadata": [2, 3, 6, 9, 11], "submiss": 2, "tool": 2, "dr": [2, 9], "verifi": [2, 9], "ingest": [2, 9], "modul": [2, 10, 11], "gen3index": 3, "service_loc": [3, 4, 5], "public": [3, 5], "read": [3, 5, 11], "onli": [3, 5, 7, 8, 10, 11], "necessari": [3, 5], "basic": [3, 11, 12], "cred": 3, "tupl": [3, 11, 12], "async": [3, 4, 5, 9, 11, 12], "async_create_record": 3, "hash": [3, 11], "size": [3, 10, 11], "did": 3, "baseid": 3, "acl": [3, 11], "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "creat": [3, 4, 5, 6, 8, 10, 11], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "md5": [3, 11], "ab167e49d25b488939b1ede42752458b": 3, "associ": [3, 5], "made": 3, "where": [3, 5, 11, 12], "you": [3, 8, 11], "control": 3, "rbac": 3, "name": [3, 4, 8, 10, 11, 12, 13], "addit": [3, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "async_get_record": 3, "async_get_records_from_checksum": 3, "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "async_get_records_on_pag": 3, "async_get_with_param": 3, "param": [3, 5, 8, 10], "correspond": 3, "suppli": 3, "need": [3, 7, 10, 11], "handl": [3, 10], "hash_typ": 3, "whether": [3, 4, 5, 8, 11, 12], "ssl": [3, 4, 5], "async_query_url": 3, "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "async_update_record": 3, "updat": [3, 5, 10, 11], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "create_blank": 3, "blank": 3, "create_new_vers": 3, "add": [3, 5], "sinc": 3, "content": [3, 13], "immut": 3, "want": [3, 8], "chang": [3, 11], "That": 3, "field": [3, 5, 7, 11, 12], "old": 3, "ad": 3, "least": 3, "one": [3, 5, 10, 11], "suffici": 3, "note": [3, 11, 12], "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "create_record": 3, "delete_record": [3, 8], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": 3, "distribut": 3, "identifi": [3, 9, 11], "boolean": 3, "we": [3, 11], "get_all_record": 3, "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "get_latest_vers": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "get_record": 3, "get_record_doc": 3, "repres": [3, 5, 10], "get_records_on_pag": 3, "get_stat": 3, "info": [3, 11], "get_url": 3, "algorithm": 3, "get_vers": [3, 4, 5], "get_with_param": 3, "file_st": 3, "client": [3, 11], "like": [3, 5, 9, 11, 12], "signpost": 3, "is_healthi": [3, 4, 5], "healthi": [3, 4, 5], "query_url": 3, "update_blank": 3, "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "update_record": 3, "exist": [3, 5, 6, 9, 12], "gen3job": [4, 10], "s": [], "dispatch": 4, "async_run_job_and_wait": 4, "job_nam": 4, "job_input": 4, "kwarg": [4, 5], "wait": 4, "output": [4, 5, 11, 12], "Will": [4, 7, 10], "sleep": 4, "linear": 4, "delai": 4, "until": [4, 10], "done": 4, "1": [4, 5, 8, 10, 11], "global": 4, "input": [4, 10, 11], "create_job": 4, "get_output": 4, "job_id": 4, "previous": 4, "complet": [4, 11], "get_statu": 4, "statu": [4, 10], "bool": [4, 5, 8, 10, 11, 12], "list_job": 4, "gen3metadata": 5, "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "async_cr": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "async_get": 5, "async_upd": 5, "batch_creat": 5, "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "create_index_key_path": 5, "databas": 5, "delete_index_key_path": 5, "get_index_key_path": 5, "return_full_metadata": 5, "10": [5, 7, 11], "offset": [5, 7], "0": [5, 7, 8, 11], "use_agg_md": 5, "off": 5, "logic": [5, 12], "filter": [5, 7], "b": [5, 11], "2": [5, 11], "have": [5, 11], "ar": [5, 7, 8, 9, 10, 11], "alwai": 5, "nest": 5, "c": [5, 11], "3": 5, "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 5, "must": 5, "33": 5, "d": 5, "4": [5, 11], "e": [5, 10], "won": 5, "333": 5, "defin": [5, 8, 10], "api": [5, 8, 11], "just": [5, 11, 12], "max": 5, "num": 5, "OR": 5, "gen3object": 6, "level": 6, "current": [6, 8, 10], "allow": [6, 8, 10, 11, 12], "system": [6, 7, 8, 9], "delete_object": 6, "bucket": 6, "gen3queri": 7, "elasticsearch": 7, "graphql_queri": 7, "query_str": 7, "execut": [7, 8], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "http": [7, 11, 12], "com": 7, "uc": 7, "cdi": 7, "guppi": 7, "master": 7, "doc": [7, 10], "data_typ": 7, "my_index": 7, "my_field": 7, "first": [7, 8], "filter_object": 7, "sort_object": 7, "verbos": [7, 8], "row": [7, 8, 11, 12], "sort": 7, "equal": 7, "respect": 7, "complex": 7, "appli": 7, "One": 7, "unaccess": 7, "valid": [3, 7, 11], "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "raw_data_download": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "gen3submiss": 8, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "create_program": 8, "program": [8, 11], "create_project": 8, "project": [8, 11], "dcf": 8, "delete_nod": 8, "node_nam": 8, "batch_siz": 8, "100": [8, 11], "node": 8, "how": [8, 11], "mani": [8, 11], "print": [8, 10], "progress": [8, 10], "log": [8, 10, 11, 12], "ccle": 8, "demograph": 8, "ordered_node_list": 8, "revers": 8, "graph": 8, "experi": 8, "delete_program": 8, "empti": [8, 11], "delete_project": 8, "uuid1": 8, "uuid2": 8, "export_nod": 8, "node_typ": 8, "fileformat": 8, "singl": [8, 10], "which": [8, 10, 11], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "export_record": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "get_dictionary_al": 8, "entir": 8, "schema": 8, "get_dictionary_nod": 8, "get_graphql_schema": 8, "run": 8, "introspect": 8, "get_program": 8, "regist": 8, "get_project_dictionari": 8, "get_project_manifest": 8, "manifest": [8, 9, 10, 11, 12], "get_project": 8, "open_project": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "submit_fil": 8, "chunk_siz": 8, "30": 8, "row_offset": 8, "spreadsheet": 8, "multipl": [8, 11], "csv": [8, 11, 12], "xlsx": 8, "worksheet": 8, "skip": 8, "data_spreadsheet": 8, "submit_record": 8, "should": [8, 11], "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": 9, "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "downloadmanag": 10, "datafil": 10, "load": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "howto": 10, "drsdownload": 10, "drs_download": 10, "hostnam": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "user_access": 10, "cache_hosts_wts_token": 10, "object_list": 10, "host": 10, "obtain": [10, 11], "It": 10, "possibl": 10, "save_directori": 10, "unpack_packag": 10, "delete_unpacked_packag": 10, "directori": [10, 11], "call": [10, 11, 13], "case": 10, "error": [10, 11, 12], "continu": 10, "downloadstatu": 10, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "get_fresh_token": 10, "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolve_object": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "start_tim": 10, "end_tim": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "object_id": 10, "object_typ": 10, "drsobjecttyp": 10, "unknown": 10, "file_s": [10, 11], "updated_tim": 10, "created_tim": 10, "access_method": 10, "factori": 10, "children": 10, "popul": [10, 11, 12], "server": [10, 11], "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "_manag": 10, "self": 10, "pprint": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": 10, "md5sum": 10, "commons_url": [10, 11, 12], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "create_object_list": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "load_manifest": 10, "download_drs_object": 10, "output_dir": 10, "conveni": 10, "download_files_in_drs_manifest": 10, "infil": 10, "list_access_in_drs_manifest": 10, "list_drs_object": 10, "list_files_in_drs_manifest": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "separ": 11, "header": 11, "space": 11, "download_manifest": 11, "current_dir": 11, "indexd_record_page_s": 11, "per": [11, 12], "max_concurrent_request": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "tmp_folder": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "async_download_object_manifest": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "tab": 11, "session": 11, "column": [11, 12], "shown": 11, "below": 11, "255e396f": 11, "f1f8": 11, "11e9": 11, "9a07": 11, "0a80fada099c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "363455714": 11, "pdcdatastor": 11, "test1": 11, "0a80fada098c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "343434344": 11, "test2": 11, "0a80fada097c": 11, "473d83400bc1bc9dc635e334fadd433c": 11, "543434443": 11, "phs0001": 11, "phs0002": 11, "test3": 11, "0a80fada096c": 11, "test4": 11, "0a80fada010c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "test5": 11, "index_manifest": 11, "prev_guid": 11, "usag": 11, "py": 11, "giangb": 11, "planx": 11, "pla": 11, "net": 11, "manifest_fil": [11, 12], "path_to_manifest": 11, "replace_url": 11, "thread_num": 11, "api_kei": 11, "threadcontrol": 11, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "delete_all_guid": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "index_object_manifest": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "loop": 11, "ha": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 11, "altern": 11, "behavior": 11, "simpli": 11, "manifest_row_pars": [11, 12], "custom": 11, "import": 11, "verify_manifest": 11, "def": 11, "_get_authz_from_row": 11, "strip": 11, "parser": [11, 12], "verify_object_manifest": 11, "verif": 11, "error_nam": 11, "value_from_manifest": 11, "actual": 11, "value_from_indexd": 11, "93d9af72": 11, "b0f1": 11, "450c": 11, "a5c6": 11, "7d3d8d2083b4": 11, "dev": 11, "test": 11, "async_verify_object_manifest": 11, "_get_acl_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "1654627682": [], "4302042": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 12, "column_to_use_as_guid": 12, "guid_type_for_indexed_file_object": 12, "guid_type_for_non_indexed_file_object": 12, "NOT": [11, 12], "guid_from_fil": 12, "_get_guid_for_row": 12, "indexed_file_object_guid": 12, "_query_for_associated_indexd_record_guid": 12, "guid_for_row": 12, "elsewher": 12, "async_ingest_metadata_manifest": 12, "metadata_sourc": 12, "672043": [], "get_guid_from_fil": 12, "metadata_typ": 12, "namespac": [0, 12], "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "async_query_urls_from_indexd": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "gen3wsstorag": 13, "copi": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "download_url": 13, "ws": [], "wskei": 13, "ls": [], "ls_path": 13, "ws_urlstr": 13, "form": 13, "rm": 13, "rm_path": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "upload_url": 13, "1654634067": [], "5923028": [], "8967967": [], "1654789636": [], "6798043": [], "9773014": [], "1654807944": [], "3028057": [], "560571": [], "1654874610": [], "345438": [], "6664228": [], "1654874771": [], "190345": [], "4957037": [], "1654887195": [], "1666398": [], "5790925": [], "get_guids_prefix": 3, "prefix": 3, "get_valid_guid": 3, "count": 3, "populate_object_manifest_with_valid_guid": 11, "minim": 11, "miss": 11, "anyth": 11, "side": 11, "No": 11, "part": 11, "1655136811": [], "5685084": [], "982317": [], "get_access_token_from_wt": 0, "try": 0, "fetch": 0, "": [4, 8, 10, 11], "force_metadata_columns_even_if_empti": 11, "forc": 11, "creation": 11, "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "1659375909": [], "1640186": [], "522224": [], "w": 13, "l": 13, "rtype": 3, "alias": 5, "merg": 5, "1660165119": [11, 12], "312618": 11, "6884966": 12}, "objects": {"gen3.auth": [[0, 0, 1, "", "Gen3Auth"]], "gen3.auth.Gen3Auth": [[0, 1, 1, "", "curl"], [0, 1, 1, "", "get_access_token"], [0, 1, 1, "", "get_access_token_from_wts"], [0, 1, 1, "", "refresh_access_token"]], "gen3.file": [[1, 0, 1, "", "Gen3File"]], "gen3.file.Gen3File": [[1, 1, 1, "", "delete_file"], [1, 1, 1, "", "delete_file_locations"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"]], "gen3.index": [[3, 0, 1, "", "Gen3Index"]], "gen3.index.Gen3Index": [[3, 1, 1, "", "async_create_record"], [3, 1, 1, "", "async_get_record"], [3, 1, 1, "", "async_get_records_from_checksum"], [3, 1, 1, "", "async_get_records_on_page"], [3, 1, 1, "", "async_get_with_params"], [3, 1, 1, "", "async_query_urls"], [3, 1, 1, "", "async_update_record"], [3, 1, 1, "", "create_blank"], [3, 1, 1, "", "create_new_version"], [3, 1, 1, "", "create_record"], [3, 1, 1, "", "delete_record"], [3, 1, 1, "", "get"], [3, 1, 1, "", "get_all_records"], [3, 1, 1, "", "get_guids_prefix"], [3, 1, 1, "", "get_latest_version"], [3, 1, 1, "", "get_record"], [3, 1, 1, "", "get_record_doc"], [3, 1, 1, "", "get_records"], [3, 1, 1, "", "get_records_on_page"], [3, 1, 1, "", "get_stats"], [3, 1, 1, "", "get_urls"], [3, 1, 1, "", "get_valid_guids"], [3, 1, 1, "", "get_version"], [3, 1, 1, "", "get_versions"], [3, 1, 1, "", "get_with_params"], [3, 1, 1, "", "is_healthy"], [3, 1, 1, "", "query_urls"], [3, 1, 1, "", "update_blank"], [3, 1, 1, "", "update_record"]], "gen3.jobs": [[4, 0, 1, "", "Gen3Jobs"]], "gen3.jobs.Gen3Jobs": [[4, 1, 1, "", "async_run_job_and_wait"], [4, 1, 1, "", "create_job"], [4, 1, 1, "", "get_output"], [4, 1, 1, "", "get_status"], [4, 1, 1, "", "get_version"], [4, 1, 1, "", "is_healthy"], [4, 1, 1, "", "list_jobs"]], "gen3.metadata": [[5, 0, 1, "", "Gen3Metadata"]], "gen3.metadata.Gen3Metadata": [[5, 1, 1, "", "async_create"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_update"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_index_key_paths"], [5, 1, 1, "", "get_version"], [5, 1, 1, "", "is_healthy"], [5, 1, 1, "", "query"], [5, 1, 1, "", "update"]], "gen3.object": [[6, 0, 1, "", "Gen3Object"]], "gen3.object.Gen3Object": [[6, 1, 1, "", "delete_object"]], "gen3.query": [[7, 0, 1, "", "Gen3Query"]], "gen3.query.Gen3Query": [[7, 1, 1, "", "graphql_query"], [7, 1, 1, "", "query"], [7, 1, 1, "", "raw_data_download"]], "gen3.submission": [[8, 0, 1, "", "Gen3Submission"]], "gen3.submission.Gen3Submission": [[8, 1, 1, "", "create_program"], [8, 1, 1, "", "create_project"], [8, 1, 1, "", "delete_node"], [8, 1, 1, "", "delete_nodes"], [8, 1, 1, "", "delete_program"], [8, 1, 1, "", "delete_project"], [8, 1, 1, "", "delete_record"], [8, 1, 1, "", "delete_records"], [8, 1, 1, "", "export_node"], [8, 1, 1, "", "export_record"], [8, 1, 1, "", "get_dictionary_all"], [8, 1, 1, "", "get_dictionary_node"], [8, 1, 1, "", "get_graphql_schema"], [8, 1, 1, "", "get_programs"], [8, 1, 1, "", "get_project_dictionary"], [8, 1, 1, "", "get_project_manifest"], [8, 1, 1, "", "get_projects"], [8, 1, 1, "", "open_project"], [8, 1, 1, "", "query"], [8, 1, 1, "", "submit_file"], [8, 1, 1, "", "submit_record"]], "gen3": [[9, 3, 0, "-", "tools"]], "gen3.tools.download": [[10, 3, 0, "-", "drs_download"]], "gen3.tools.download.drs_download": [[10, 0, 1, "", "DownloadManager"], [10, 0, 1, "", "DownloadStatus"], [10, 0, 1, "", "Downloadable"], [10, 0, 1, "", "Manifest"], [10, 4, 1, "", "download_drs_object"], [10, 4, 1, "", "download_files_in_drs_manifest"], [10, 4, 1, "", "list_access_in_drs_manifest"], [10, 4, 1, "", "list_drs_object"], [10, 4, 1, "", "list_files_in_drs_manifest"]], "gen3.tools.download.drs_download.DownloadManager": [[10, 1, 1, "", "cache_hosts_wts_tokens"], [10, 1, 1, "", "download"], [10, 1, 1, "", "get_fresh_token"], [10, 1, 1, "", "resolve_objects"], [10, 1, 1, "", "user_access"]], "gen3.tools.download.drs_download.DownloadStatus": [[10, 2, 1, "", "end_time"], [10, 2, 1, "", "start_time"], [10, 2, 1, "", "status"]], "gen3.tools.download.drs_download.Downloadable": [[10, 2, 1, "", "_manager"], [10, 2, 1, "", "access_methods"], [10, 2, 1, "", "children"], [10, 2, 1, "", "created_time"], [10, 1, 1, "", "download"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 2, 1, "", "hostname"], [10, 2, 1, "", "object_id"], [10, 2, 1, "", "object_type"], [10, 1, 1, "", "pprint"], [10, 2, 1, "", "updated_time"]], "gen3.tools.download.drs_download.Manifest": [[10, 2, 1, "", "commons_url"], [10, 1, 1, "", "create_object_list"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 1, 1, "", "load"], [10, 1, 1, "", "load_manifest"], [10, 2, 1, "", "md5sum"], [10, 2, 1, "", "object_id"]], "gen3.tools.indexing": [[11, 3, 0, "-", "download_manifest"], [11, 3, 0, "-", "index_manifest"], [11, 3, 0, "-", "verify_manifest"]], "gen3.tools.indexing.download_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "INDEXD_RECORD_PAGE_SIZE"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 2, 1, "", "TMP_FOLDER"], [11, 4, 1, "", "async_download_object_manifest"]], "gen3.tools.indexing.index_manifest": [[11, 2, 1, "", "ACLS"], [11, 2, 1, "", "AUTHZ"], [11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "GUID"], [11, 2, 1, "", "MD5"], [11, 2, 1, "", "PREV_GUID"], [11, 2, 1, "", "SIZE"], [11, 0, 1, "", "ThreadControl"], [11, 2, 1, "", "URLS"], [11, 4, 1, "", "delete_all_guids"], [11, 4, 1, "", "index_object_manifest"], [11, 4, 1, "", "populate_object_manifest_with_valid_guids"]], "gen3.tools.indexing.verify_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 4, 1, "", "async_verify_object_manifest"]], "gen3.tools.metadata": [[12, 3, 0, "-", "ingest_manifest"]], "gen3.tools.metadata.ingest_manifest": [[12, 2, 1, "", "COLUMN_TO_USE_AS_GUID"], [12, 2, 1, "", "GUID_TYPE_FOR_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [12, 4, 1, "", "async_ingest_metadata_manifest"], [12, 4, 1, "", "async_query_urls_from_indexd"]], "gen3.wss": [[13, 0, 1, "", "Gen3WsStorage"]], "gen3.wss.Gen3WsStorage": [[13, 1, 1, "", "copy"], [13, 1, 1, "", "download"], [13, 1, 1, "", "download_url"], [13, 1, 1, "", "ls"], [13, 1, 1, "", "ls_path"], [13, 1, 1, "", "rm"], [13, 1, 1, "", "rm_path"], [13, 1, 1, "", "upload"], [13, 1, 1, "", "upload_url"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "auth": 0, "helper": 0, "file": 1, "class": [1, 3, 4, 5, 6, 7, 8], "welcom": 2, "sdk": 2, "s": [], "document": 2, "indic": 2, "tabl": 2, "index": [3, 11], "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "submiss": 8, "tool": [9, 10, 11, 12], "dr": 10, "download": [10, 11], "verifi": 11, "ingest": 12, "workspac": 13, "storag": 13, "": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "filenames": ["auth.rst", "file.rst", "index.rst", "indexing.rst", "jobs.rst", "metadata.rst", "object.rst", "query.rst", "submission.rst", "tools.rst", "tools/drs_pull.rst", "tools/indexing.rst", "tools/metadata.rst", "wss.rst"], "titles": ["Gen3 Auth Helper", "Gen3 File Class", "Welcome to Gen3 SDK\u2019s documentation!", "Gen3 Index Class", "Gen3 Jobs Class", "Gen3 Metadata Class", "Gen3 Object Class", "Gen3 Query Class", "Gen3 Submission Class", "Gen3 Tools", "DRS Download Tools", "Indexing Tools", "Metadata Tools", "Gen3 Workspace Storage"], "terms": {"class": [0, 2, 10, 11, 13], "gen3auth": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 3, 4, 5, 7, 8, 13], "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "idp": 0, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "authbas": 0, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "request": [0, 1, 3, 8, 11, 12], "implement": 0, "order": [0, 8], "support": [0, 1, 5, 8, 11], "jwt": 0, "authent": 0, "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "access": [0, 1, 3, 7, 10], "token": [0, 10], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "provid": [0, 1, 3, 5, 7, 8, 12], "refresh": [0, 10], "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "string": [0, 3, 5, 11, 13], "automat": 0, "when": [0, 3, 7, 10, 12], "thei": [0, 10], "expir": [0, 1], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "opt": 0, "The": [0, 1, 2, 3, 5, 8, 10, 11], "contain": [0, 2, 5, 8, 9, 10, 11, 12], "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "web": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "work": [0, 10, 11], "workspac": [0, 2], "default": [0, 1, 3, 7, 8, 11, 12], "env": 0, "gen3_api_kei": 0, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "set": [0, 1, 10], "includ": [0, 3], "search": [0, 2, 3], "path": [0, 1, 5, 10, 11, 13], "valu": [0, 1, 3, 5, 7, 10, 11], "doe": [0, 11, 12], "interpret": 0, "wt": [0, 10], "an": [0, 3, 6, 8, 10, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "instal": [0, 2], "crdc": 0, "some": [0, 2], "arbitrari": 0, "kei": [0, 3, 5, 13], "variabl": [0, 7, 8], "rather": 0, "than": [0, 5], "pass": [0, 7, 8, 10], "argument": [0, 13], "constructor": 0, "initi": [0, 10], "follow": [0, 11], "curl": 0, "data": [0, 1, 3, 5, 7, 8, 10, 11], "given": [0, 3, 4, 5, 8, 10, 11, 12, 13], "ex": [0, 11, 12], "user": [0, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 3, 10, 11], "map": [0, 11], "get": [0, 1, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 3, 5, 6, 8, 10, 11], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": 0, "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "refresh_access_token": 0, "new": [0, 3], "gen3fil": 1, "auth_provid": [1, 3, 4, 5, 6, 7, 8, 13], "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "For": [1, 5, 6, 7, 8, 9, 11], "interact": [1, 3, 4, 5, 6, 8, 13], "manag": [1, 5, 10], "featur": [1, 6], "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "presign": 1, "url": [1, 3, 9, 10, 11, 12, 13], "right": 1, "now": [1, 8], "instanc": [1, 3, 6, 7, 8, 9, 10], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "delete_fil": 1, "guid": [1, 3, 5, 6, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 6], "instead": [1, 7, 11], "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "locat": [1, 6], "store": [1, 3, 10], "remov": [1, 6, 11, 13], "its": [1, 3], "record": [1, 3, 5, 7, 8, 11, 12], "indexd": [1, 3, 6, 10, 11, 12], "uuid": [1, 3, 8], "id": [1, 3, 10, 11], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "get_presigned_url": 1, "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": 1, "file_nam": [1, 3, 10, 11], "expires_in": 1, "upload": [1, 3, 8, 13], "list": [1, 3, 4, 5, 7, 8, 10, 11, 13], "author": 1, "scope": 1, "storag": [1, 2, 6], "s3": [1, 10, 11], "az": 1, "isn": 1, "t": [1, 5, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "amount": [1, 9], "second": [1, 4], "sign": 1, "datetim": [1, 10], "utcnow": 1, "Be": 1, "sure": 1, "posit": [1, 7], "integ": [1, 3, 8], "also": 1, "treat": [1, 5], "max_presigned_url_ttl": 1, "configur": 1, "represent": [1, 3], "document": [1, 3], "readm": 2, "python": [2, 9, 11], "github": [2, 7], "repo": 2, "setup": 2, "inform": [2, 3, 10], "along": 2, "quickstart": 2, "script": 2, "more": [2, 5, 7, 9, 10], "detail": [2, 7, 10], "about": [2, 3], "variou": 2, "function": [2, 3, 4, 5, 9, 10, 11, 12], "mostli": 2, "docstr": 2, "code": [2, 8], "helper": 2, "job": 2, "metadata": [2, 3, 6, 9, 11], "submiss": 2, "tool": 2, "dr": [2, 9], "verifi": [2, 9], "ingest": [2, 9], "modul": [2, 10, 11], "gen3index": 3, "service_loc": [3, 4, 5], "public": [3, 5], "read": [3, 5, 11], "onli": [3, 5, 7, 8, 10, 11], "necessari": [3, 5], "basic": [3, 11, 12], "cred": 3, "tupl": [3, 11, 12], "async": [3, 4, 5, 9, 11, 12], "async_create_record": 3, "hash": [3, 11], "size": [3, 10, 11], "did": 3, "baseid": 3, "acl": [3, 11], "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "creat": [3, 4, 5, 6, 8, 10, 11], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "md5": [3, 11], "ab167e49d25b488939b1ede42752458b": 3, "associ": [3, 5], "made": 3, "where": [3, 5, 11, 12], "you": [3, 8, 11], "control": 3, "rbac": 3, "name": [3, 4, 8, 10, 11, 12, 13], "addit": [3, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "async_get_record": 3, "async_get_records_from_checksum": 3, "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "async_get_records_on_pag": 3, "async_get_with_param": 3, "param": [3, 5, 8, 10], "correspond": 3, "suppli": 3, "need": [3, 7, 10, 11], "handl": [3, 10], "hash_typ": 3, "whether": [3, 4, 5, 8, 11, 12], "ssl": [3, 4, 5], "async_query_url": 3, "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "async_update_record": 3, "updat": [3, 5, 10, 11], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "create_blank": 3, "blank": 3, "create_new_vers": 3, "add": [3, 5], "sinc": 3, "content": [3, 13], "immut": 3, "want": [3, 8], "chang": [3, 11], "That": 3, "field": [3, 5, 7, 11, 12], "old": 3, "ad": 3, "least": 3, "one": [3, 5, 10, 11], "suffici": 3, "note": [3, 11, 12], "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "create_record": 3, "delete_record": [3, 8], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": 3, "distribut": 3, "identifi": [3, 9, 11], "boolean": 3, "we": [3, 11], "get_all_record": 3, "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "get_latest_vers": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "get_record": 3, "get_record_doc": 3, "repres": [3, 5, 10], "get_records_on_pag": 3, "get_stat": 3, "info": [3, 11], "get_url": 3, "algorithm": 3, "get_vers": [3, 4, 5], "get_with_param": 3, "file_st": 3, "client": [3, 11], "like": [3, 5, 9, 11, 12], "signpost": 3, "is_healthi": [3, 4, 5], "healthi": [3, 4, 5], "query_url": 3, "update_blank": 3, "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "update_record": 3, "exist": [3, 5, 6, 9, 12], "gen3job": [4, 10], "s": [], "dispatch": 4, "async_run_job_and_wait": 4, "job_nam": 4, "job_input": 4, "kwarg": [4, 5], "wait": 4, "output": [4, 5, 11, 12], "Will": [4, 7, 10], "sleep": 4, "linear": 4, "delai": 4, "until": [4, 10], "done": 4, "1": [4, 5, 8, 10, 11], "global": 4, "input": [4, 10, 11], "create_job": 4, "get_output": 4, "job_id": 4, "previous": 4, "complet": [4, 11], "get_statu": 4, "statu": [4, 10], "bool": [4, 5, 8, 10, 11, 12], "list_job": 4, "gen3metadata": 5, "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "async_cr": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "async_get": 5, "async_upd": 5, "batch_creat": 5, "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "create_index_key_path": 5, "databas": 5, "delete_index_key_path": 5, "get_index_key_path": 5, "return_full_metadata": 5, "10": [5, 7, 11], "offset": [5, 7], "0": [5, 7, 8, 11], "use_agg_md": 5, "off": 5, "logic": [5, 12], "filter": [5, 7], "b": [5, 11], "2": [5, 11], "have": [5, 11], "ar": [5, 7, 8, 9, 10, 11], "alwai": 5, "nest": 5, "c": [5, 11], "3": 5, "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 5, "must": 5, "33": 5, "d": 5, "4": [5, 11], "e": [5, 10], "won": 5, "333": 5, "defin": [5, 8, 10], "api": [5, 8, 11], "just": [5, 11, 12], "max": 5, "num": 5, "OR": 5, "gen3object": 6, "level": 6, "current": [6, 8, 10], "allow": [6, 8, 10, 11, 12], "system": [6, 7, 8, 9], "delete_object": 6, "bucket": 6, "gen3queri": 7, "elasticsearch": 7, "graphql_queri": 7, "query_str": 7, "execut": [7, 8], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "http": [7, 11, 12], "com": 7, "uc": 7, "cdi": 7, "guppi": 7, "master": 7, "doc": [7, 10], "data_typ": 7, "my_index": 7, "my_field": 7, "first": [7, 8], "filter_object": 7, "sort_object": 7, "verbos": [7, 8], "row": [7, 8, 11, 12], "sort": 7, "equal": 7, "respect": 7, "complex": 7, "appli": 7, "One": 7, "unaccess": 7, "valid": [3, 7, 11], "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "raw_data_download": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "gen3submiss": 8, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "create_program": 8, "program": [8, 11], "create_project": 8, "project": [8, 11], "dcf": 8, "delete_nod": 8, "node_nam": 8, "batch_siz": 8, "100": [8, 11], "node": 8, "how": [8, 11], "mani": [8, 11], "print": [8, 10], "progress": [8, 10], "log": [8, 10, 11, 12], "ccle": 8, "demograph": 8, "ordered_node_list": 8, "revers": 8, "graph": 8, "experi": 8, "delete_program": 8, "empti": [8, 11], "delete_project": 8, "uuid1": 8, "uuid2": 8, "export_nod": 8, "node_typ": 8, "fileformat": 8, "singl": [8, 10], "which": [8, 10, 11], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "export_record": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "get_dictionary_al": 8, "entir": 8, "schema": 8, "get_dictionary_nod": 8, "get_graphql_schema": 8, "run": 8, "introspect": 8, "get_program": 8, "regist": 8, "get_project_dictionari": 8, "get_project_manifest": 8, "manifest": [8, 9, 10, 11, 12], "get_project": 8, "open_project": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "submit_fil": 8, "chunk_siz": 8, "30": 8, "row_offset": 8, "spreadsheet": 8, "multipl": [8, 11], "csv": [8, 11, 12], "xlsx": 8, "worksheet": 8, "skip": 8, "data_spreadsheet": 8, "submit_record": 8, "should": [8, 11], "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": 9, "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "downloadmanag": 10, "datafil": 10, "load": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "howto": 10, "drsdownload": 10, "drs_download": 10, "hostnam": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "user_access": 10, "cache_hosts_wts_token": 10, "object_list": 10, "host": 10, "obtain": [10, 11], "It": 10, "possibl": 10, "save_directori": 10, "unpack_packag": 10, "delete_unpacked_packag": 10, "directori": [10, 11], "call": [10, 11, 13], "case": 10, "error": [10, 11, 12], "continu": 10, "downloadstatu": 10, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "get_fresh_token": 10, "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolve_object": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "start_tim": 10, "end_tim": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "object_id": 10, "object_typ": 10, "drsobjecttyp": 10, "unknown": 10, "file_s": [10, 11], "updated_tim": 10, "created_tim": 10, "access_method": 10, "factori": 10, "children": 10, "popul": [10, 11, 12], "server": [10, 11], "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "_manag": 10, "self": 10, "pprint": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": 10, "md5sum": 10, "commons_url": [10, 11, 12], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "create_object_list": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "load_manifest": 10, "download_drs_object": 10, "output_dir": 10, "conveni": 10, "download_files_in_drs_manifest": 10, "infil": 10, "list_access_in_drs_manifest": 10, "list_drs_object": 10, "list_files_in_drs_manifest": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "separ": 11, "header": 11, "space": 11, "download_manifest": 11, "current_dir": 11, "indexd_record_page_s": 11, "per": [11, 12], "max_concurrent_request": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "tmp_folder": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "async_download_object_manifest": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "tab": 11, "session": 11, "column": [11, 12], "shown": 11, "below": 11, "255e396f": 11, "f1f8": 11, "11e9": 11, "9a07": 11, "0a80fada099c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "363455714": 11, "pdcdatastor": 11, "test1": 11, "0a80fada098c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "343434344": 11, "test2": 11, "0a80fada097c": 11, "473d83400bc1bc9dc635e334fadd433c": 11, "543434443": 11, "phs0001": 11, "phs0002": 11, "test3": 11, "0a80fada096c": 11, "test4": 11, "0a80fada010c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "test5": 11, "index_manifest": 11, "prev_guid": 11, "usag": 11, "py": 11, "giangb": 11, "planx": 11, "pla": 11, "net": 11, "manifest_fil": [11, 12], "path_to_manifest": 11, "replace_url": 11, "thread_num": 11, "api_kei": 11, "threadcontrol": 11, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "delete_all_guid": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "index_object_manifest": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "loop": 11, "ha": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 11, "altern": 11, "behavior": 11, "simpli": 11, "manifest_row_pars": [11, 12], "custom": 11, "import": 11, "verify_manifest": 11, "def": 11, "_get_authz_from_row": 11, "strip": 11, "parser": [11, 12], "verify_object_manifest": 11, "verif": 11, "error_nam": 11, "value_from_manifest": 11, "actual": 11, "value_from_indexd": 11, "93d9af72": 11, "b0f1": 11, "450c": 11, "a5c6": 11, "7d3d8d2083b4": 11, "dev": 11, "test": 11, "async_verify_object_manifest": 11, "_get_acl_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "1654627682": [], "4302042": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 12, "column_to_use_as_guid": 12, "guid_type_for_indexed_file_object": 12, "guid_type_for_non_indexed_file_object": 12, "NOT": [11, 12], "guid_from_fil": 12, "_get_guid_for_row": 12, "indexed_file_object_guid": 12, "_query_for_associated_indexd_record_guid": 12, "guid_for_row": 12, "elsewher": 12, "async_ingest_metadata_manifest": 12, "metadata_sourc": 12, "672043": [], "get_guid_from_fil": 12, "metadata_typ": 12, "namespac": [0, 12], "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "async_query_urls_from_indexd": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "gen3wsstorag": 13, "copi": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "download_url": 13, "ws": [], "wskei": 13, "ls": [], "ls_path": 13, "ws_urlstr": 13, "form": 13, "rm": 13, "rm_path": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "upload_url": 13, "1654634067": [], "5923028": [], "8967967": [], "1654789636": [], "6798043": [], "9773014": [], "1654807944": [], "3028057": [], "560571": [], "1654874610": [], "345438": [], "6664228": [], "1654874771": [], "190345": [], "4957037": [], "1654887195": [], "1666398": [], "5790925": [], "get_guids_prefix": 3, "prefix": 3, "get_valid_guid": 3, "count": 3, "populate_object_manifest_with_valid_guid": 11, "minim": 11, "miss": 11, "anyth": 11, "side": 11, "No": 11, "part": 11, "1655136811": [], "5685084": [], "982317": [], "get_access_token_from_wt": 0, "try": 0, "fetch": 0, "": [4, 8, 10, 11], "force_metadata_columns_even_if_empti": 11, "forc": 11, "creation": 11, "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "1659375909": [], "1640186": [], "522224": [], "w": 13, "l": 13, "rtype": 3, "alias": 5, "merg": 5, "1660165119": [], "312618": [], "6884966": [], "1660576358": [11, 12], "150224": 11, "5508597": 12}, "objects": {"gen3.auth": [[0, 0, 1, "", "Gen3Auth"]], "gen3.auth.Gen3Auth": [[0, 1, 1, "", "curl"], [0, 1, 1, "", "get_access_token"], [0, 1, 1, "", "get_access_token_from_wts"], [0, 1, 1, "", "refresh_access_token"]], "gen3.file": [[1, 0, 1, "", "Gen3File"]], "gen3.file.Gen3File": [[1, 1, 1, "", "delete_file"], [1, 1, 1, "", "delete_file_locations"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"]], "gen3.index": [[3, 0, 1, "", "Gen3Index"]], "gen3.index.Gen3Index": [[3, 1, 1, "", "async_create_record"], [3, 1, 1, "", "async_get_record"], [3, 1, 1, "", "async_get_records_from_checksum"], [3, 1, 1, "", "async_get_records_on_page"], [3, 1, 1, "", "async_get_with_params"], [3, 1, 1, "", "async_query_urls"], [3, 1, 1, "", "async_update_record"], [3, 1, 1, "", "create_blank"], [3, 1, 1, "", "create_new_version"], [3, 1, 1, "", "create_record"], [3, 1, 1, "", "delete_record"], [3, 1, 1, "", "get"], [3, 1, 1, "", "get_all_records"], [3, 1, 1, "", "get_guids_prefix"], [3, 1, 1, "", "get_latest_version"], [3, 1, 1, "", "get_record"], [3, 1, 1, "", "get_record_doc"], [3, 1, 1, "", "get_records"], [3, 1, 1, "", "get_records_on_page"], [3, 1, 1, "", "get_stats"], [3, 1, 1, "", "get_urls"], [3, 1, 1, "", "get_valid_guids"], [3, 1, 1, "", "get_version"], [3, 1, 1, "", "get_versions"], [3, 1, 1, "", "get_with_params"], [3, 1, 1, "", "is_healthy"], [3, 1, 1, "", "query_urls"], [3, 1, 1, "", "update_blank"], [3, 1, 1, "", "update_record"]], "gen3.jobs": [[4, 0, 1, "", "Gen3Jobs"]], "gen3.jobs.Gen3Jobs": [[4, 1, 1, "", "async_run_job_and_wait"], [4, 1, 1, "", "create_job"], [4, 1, 1, "", "get_output"], [4, 1, 1, "", "get_status"], [4, 1, 1, "", "get_version"], [4, 1, 1, "", "is_healthy"], [4, 1, 1, "", "list_jobs"]], "gen3.metadata": [[5, 0, 1, "", "Gen3Metadata"]], "gen3.metadata.Gen3Metadata": [[5, 1, 1, "", "async_create"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_update"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_index_key_paths"], [5, 1, 1, "", "get_version"], [5, 1, 1, "", "is_healthy"], [5, 1, 1, "", "query"], [5, 1, 1, "", "update"]], "gen3.object": [[6, 0, 1, "", "Gen3Object"]], "gen3.object.Gen3Object": [[6, 1, 1, "", "delete_object"]], "gen3.query": [[7, 0, 1, "", "Gen3Query"]], "gen3.query.Gen3Query": [[7, 1, 1, "", "graphql_query"], [7, 1, 1, "", "query"], [7, 1, 1, "", "raw_data_download"]], "gen3.submission": [[8, 0, 1, "", "Gen3Submission"]], "gen3.submission.Gen3Submission": [[8, 1, 1, "", "create_program"], [8, 1, 1, "", "create_project"], [8, 1, 1, "", "delete_node"], [8, 1, 1, "", "delete_nodes"], [8, 1, 1, "", "delete_program"], [8, 1, 1, "", "delete_project"], [8, 1, 1, "", "delete_record"], [8, 1, 1, "", "delete_records"], [8, 1, 1, "", "export_node"], [8, 1, 1, "", "export_record"], [8, 1, 1, "", "get_dictionary_all"], [8, 1, 1, "", "get_dictionary_node"], [8, 1, 1, "", "get_graphql_schema"], [8, 1, 1, "", "get_programs"], [8, 1, 1, "", "get_project_dictionary"], [8, 1, 1, "", "get_project_manifest"], [8, 1, 1, "", "get_projects"], [8, 1, 1, "", "open_project"], [8, 1, 1, "", "query"], [8, 1, 1, "", "submit_file"], [8, 1, 1, "", "submit_record"]], "gen3": [[9, 3, 0, "-", "tools"]], "gen3.tools.download": [[10, 3, 0, "-", "drs_download"]], "gen3.tools.download.drs_download": [[10, 0, 1, "", "DownloadManager"], [10, 0, 1, "", "DownloadStatus"], [10, 0, 1, "", "Downloadable"], [10, 0, 1, "", "Manifest"], [10, 4, 1, "", "download_drs_object"], [10, 4, 1, "", "download_files_in_drs_manifest"], [10, 4, 1, "", "list_access_in_drs_manifest"], [10, 4, 1, "", "list_drs_object"], [10, 4, 1, "", "list_files_in_drs_manifest"]], "gen3.tools.download.drs_download.DownloadManager": [[10, 1, 1, "", "cache_hosts_wts_tokens"], [10, 1, 1, "", "download"], [10, 1, 1, "", "get_fresh_token"], [10, 1, 1, "", "resolve_objects"], [10, 1, 1, "", "user_access"]], "gen3.tools.download.drs_download.DownloadStatus": [[10, 2, 1, "", "end_time"], [10, 2, 1, "", "start_time"], [10, 2, 1, "", "status"]], "gen3.tools.download.drs_download.Downloadable": [[10, 2, 1, "", "_manager"], [10, 2, 1, "", "access_methods"], [10, 2, 1, "", "children"], [10, 2, 1, "", "created_time"], [10, 1, 1, "", "download"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 2, 1, "", "hostname"], [10, 2, 1, "", "object_id"], [10, 2, 1, "", "object_type"], [10, 1, 1, "", "pprint"], [10, 2, 1, "", "updated_time"]], "gen3.tools.download.drs_download.Manifest": [[10, 2, 1, "", "commons_url"], [10, 1, 1, "", "create_object_list"], [10, 2, 1, "", "file_name"], [10, 2, 1, "", "file_size"], [10, 1, 1, "", "load"], [10, 1, 1, "", "load_manifest"], [10, 2, 1, "", "md5sum"], [10, 2, 1, "", "object_id"]], "gen3.tools.indexing": [[11, 3, 0, "-", "download_manifest"], [11, 3, 0, "-", "index_manifest"], [11, 3, 0, "-", "verify_manifest"]], "gen3.tools.indexing.download_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "INDEXD_RECORD_PAGE_SIZE"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 2, 1, "", "TMP_FOLDER"], [11, 4, 1, "", "async_download_object_manifest"]], "gen3.tools.indexing.index_manifest": [[11, 2, 1, "", "ACLS"], [11, 2, 1, "", "AUTHZ"], [11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "GUID"], [11, 2, 1, "", "MD5"], [11, 2, 1, "", "PREV_GUID"], [11, 2, 1, "", "SIZE"], [11, 0, 1, "", "ThreadControl"], [11, 2, 1, "", "URLS"], [11, 4, 1, "", "delete_all_guids"], [11, 4, 1, "", "index_object_manifest"], [11, 4, 1, "", "populate_object_manifest_with_valid_guids"]], "gen3.tools.indexing.verify_manifest": [[11, 2, 1, "", "CURRENT_DIR"], [11, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [11, 4, 1, "", "async_verify_object_manifest"]], "gen3.tools.metadata": [[12, 3, 0, "-", "ingest_manifest"]], "gen3.tools.metadata.ingest_manifest": [[12, 2, 1, "", "COLUMN_TO_USE_AS_GUID"], [12, 2, 1, "", "GUID_TYPE_FOR_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"], [12, 2, 1, "", "MAX_CONCURRENT_REQUESTS"], [12, 4, 1, "", "async_ingest_metadata_manifest"], [12, 4, 1, "", "async_query_urls_from_indexd"]], "gen3.wss": [[13, 0, 1, "", "Gen3WsStorage"]], "gen3.wss.Gen3WsStorage": [[13, 1, 1, "", "copy"], [13, 1, 1, "", "download"], [13, 1, 1, "", "download_url"], [13, 1, 1, "", "ls"], [13, 1, 1, "", "ls_path"], [13, 1, 1, "", "rm"], [13, 1, 1, "", "rm_path"], [13, 1, 1, "", "upload"], [13, 1, 1, "", "upload_url"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "attribute", "Python attribute"], "3": ["py", "module", "Python module"], "4": ["py", "function", "Python function"]}, "titleterms": {"gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "auth": 0, "helper": 0, "file": 1, "class": [1, 3, 4, 5, 6, 7, 8], "welcom": 2, "sdk": 2, "s": [], "document": 2, "indic": 2, "tabl": 2, "index": [3, 11], "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "submiss": 8, "tool": [9, 10, 11, 12], "dr": 10, "download": [10, 11], "verifi": 11, "ingest": 12, "workspac": 13, "storag": 13, "": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 56}}) \ No newline at end of file diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index 49677aa35..de70a1f79 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -400,7 +400,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1660165119.312618.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1660576358.150224.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index ae77f0258..b03e8dd5b 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1660165119.6884966.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1660576358.5508597.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From d565981236396149fb8e645cb247389ed6d946f4 Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Tue, 16 Aug 2022 19:15:55 +0000 Subject: [PATCH 09/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 320151 -> 320151 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 103400 -> 103405 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35856 -> 35851 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools/indexing.html | 2 +- docs/_build/html/tools/metadata.html | 2 +- 6 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 2c57e3efc39fbefc597c6acf5e68b74ba48b9d9d..710573656e250c982d65c78f5a6d0af6d747b9dc 100644 GIT binary patch delta 4987 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 B55xcf delta 4992 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 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index a5f8f619abd9b700845defa2da6e18b0742d5e61..b73838368ab19af25764d83511e1347f53435125 100644 GIT binary patch delta 200 zcmaE{obBy$wuUK;wu~#b+A*5CvAktuV3-~s%P2E>#Rl2!8{8NdF!Gt1n;V-N>RB3_ z8yFgzZjbd~>}F=Y2vn#sdE#anh$0bGMS3~;>FS!(8~7OGwoCaj268jnPu~~Gs3VL; h+4M$#Mq#MD3>Nt*8SJrBGQ@fyCZM~?P_H}L=f delta 208 zcmaF6obAPOwuUK;wv3Cn+A*5CvAkhqV3=;_%_uW@#Rl2!8{8NdF!Gw3n;Dy0=oy+C z7#W#tkMm&cW@fzrRHrd{;$|6$8etSQdO7*&>YCFV_!#51%lI({ax>aZKN!iVqlT$! oN(OuEl&mSt3=Eo$Q);JZWU%%?)Jo$}n;`~OfaWacD8^Nm00(wEssI20 diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index aedb10bf3aad9a822f682ff1a06225fe9e212eb1..24f8e699b13844ed4933ceef3aa92315cda32802 100644 GIT binary patch delta 164 zcmbO*gQrMc1Mxq3F6 z+cb|eGuCbP({)6X-8@&Xm4nfJ@&$8KArx(TIr-`8lOLK0LnNg!C8uPt$4j7&< LwR5wu#ou56K%*}+ delta 176 zcmeC4!8Bn86H5c@RMw3wH`E#DZoaD?&&X$LZf0z1p=WApU}0)$K6$pD&E{6kIndexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1660576358.150224.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1660677351.9370115.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index b03e8dd5b..28c8be9f8 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -104,7 +104,7 @@

      Metadata Tools
      -async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1660576358.5508597.log', get_guid_from_file=True, metadata_type=None)[source]
      +async gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest(commons_url, manifest_file, metadata_source, auth=None, max_concurrent_requests=24, manifest_row_parsers={'guid_for_row': <function _get_guid_for_row>, 'indexed_file_object_guid': <function _query_for_associated_indexd_record_guid>}, manifest_file_delimiter=None, output_filename='ingest-metadata-manifest-errors-1660677352.260972.log', get_guid_from_file=True, metadata_type=None)[source]

      Ingest all metadata records into a manifest csv

      Parameters:
      From d9c2b0c4a432e008075082103e0061d2e2d573b0 Mon Sep 17 00:00:00 2001 From: Avantol13 Date: Wed, 6 Dec 2023 20:48:33 +0000 Subject: [PATCH 10/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 1553136 -> 1564684 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100101 -> 106609 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35914 -> 35919 bytes .../gen3/tools/indexing/index_manifest.html | 49 +++++++++++------- docs/_build/html/index.html | 1 + docs/_build/html/objects.inv | Bin 1894 -> 1912 bytes docs/_build/html/searchindex.js | 2 +- docs/_build/html/tools.html | 1 + docs/_build/html/tools/indexing.html | 24 ++++++++- docs/_build/html/tools/metadata.html | 2 +- 10 files changed, 56 insertions(+), 23 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index fd6a32ce442154ea34b40a4f524cd458549097fc..dfe83b371d7f7103701cc88192ce8a3f6a32ca4b 100644 GIT binary patch delta 53626 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 FzX85KX378n delta 50119 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 CGA8o? diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 1984d47cea8ed2a999883ef6168ca97590f87cae..85a03912d8a0451307612810a9940572bbba3571 100644 GIT binary patch delta 6972 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 delta 4429 zcmb_fdr(x@8Rt8@fT+C1-OJs(z=|S7S$wlZ1&q-u4ppOKv|2HOH#Z<6V${?CsbENm z0%!5WB-PSbr{ZX^v0}#zsAIG?Ce_rbwv%*1tq)o!4Q*;CZA|-}bMM~WMKWn;`p-Fc z@AvrqzQ_H}+5R(O^}EAry)c~gH~cILZY8j#ZfGDyHaa0^Tv)U!YfEe_Itz}ICAO|} zSMQawaNJADO zWL;lP0Y+G;3^DA-*|3`Y#70{R#zh?B4rFb=jpcY?qma{{4bHu@!Rm7`OsCc7fs^Ed zjkV`Me#Cj*?2L{5IS00pGd6mB!?-}BSYbpD{7q)vkHW9XT>-~>rbD>T??_bnqm8aP zMVg)E&jVLr5@a22bUu7Uih_tZg`_KQ7PJB>2@<8~MzOP@8@qsAoec-c zi*{PM)kzoBI8t|-v@u3e{M72T>XGz1?+))+HB@UrIrR)xEZSafl;axIphQjL>M5(d zT8*78ngid;zFXGQdI$D$$+=0Y0z&`#eU^$59cr}^cRX-)HZx-vD!g19v0@py7A$lF-- zcEwI(=cI(I|G?)Sk>fGGa&qxI7-ee)9AQ_}U_9&0-PANx0;SCl=!d52l*FwdFB(WInX<=a%O)=w~C-S-~<`MN%bS`d!IrXZjZT$OuZm zOJWNbz&J9Io8%0x9*}%lqEPGb@T9Bns$uE{&BXzXGVo_n2L3Rh3>g@^B8f6wwzrdc zQedBtL*X1rufi&cS7F!+?w3~q+oL6ZG%1&`3<}+v7)3ToW-0m-{iUb~a_L5w&q)4K ztdMxSo2B65B8<5;gUpd|7-U5%9MG)7frVIwT1ix)7A1NW4)G^Zg+oDAC|?BadKJ>U zJd5FD7?Cw~TDHgI$@EN{IAzk537KUT>(l6gHxpRy64=f^ zp)6LE!0d-!o+|-Q%7A=}Ch*pK_0cD5aWd^a>mgCHNIMYLp9e`axx-2yT#g-3#LA9* z7QP;)k^9)KCuDLOxA!G-QWC>3>OSvcd_hps3zxhylx#2H;#ARz`G{!GA!Bwnf0baM%-@)2Szgvj2j2; zmf7SAmtaK}O zF8=fZ9}NO_Zo@2uC?fq|>cF^h-~>faf1ENP{WfLL^rIOE#*G7i>0r+1U<&`~1OCDX z%=)d^@+xlwZXVd#pNZNw{0w`;uk25+cgTCMxoy*bQ`PH6fWJYu;n|U%6b>IXuEYk zE3b!Pq|nB;*W)#z53^bd68mdCj2gmKRHdn&_TQ_gGnU7(6Ah3woMYl0AD7?QSYHFY zNkX0M_-l|APn>)v7W?mIsBm=`j38HR?9MKjFqNO&cn8ozP!UH^&|MebI1A$Of_jC! zzQC7Ue$@ddZJ!}CX%|$H6a&aP5GdC!fYy1?qPQuvtYk|`nYVy6S$S5xnvD8Q*0QHJ zlz0o|rm(7t>P=7K>u;pvKswx|=H|=706Hfc;V7AI(D4kUvrwl~Gynfjhr87B_)^0c zelyl&Y(adA$>B9nvyEMB|3UL;E$&(Y$x_3e(xvQ{^FGE|LFZUSXNp5*sVzwsu zoOCKI@)d9rBkghk1I*n)p-wl>2{Wj~VIGKh(2 zAi?cVhQ%Gf#o<=JMcc#NLX$*q6Ov@c?&D@pa0fKAX&XQ=*)Udwah5x<53~Gzcr7;Q zvoJjg-l77J8ji9DVG%w>XVG=D4Hkp16zgAyUQ%qBtv1YdzX}`xK2JW9K09cU^Y7Nf9$dTB!A<_&SwvwV7`g7Z$I25eFntsuZ3{@4-kBw@Y$t# KoNUw&q3}ODi~$4y diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 3b74e55ada6a5d7b3b7301ff01b6fae18dac7ecd..129c8c02eac5d5678a3eab2df1b991926917c8f6 100644 GIT binary patch delta 169 zcmX>#gX#PXCYA=)sV*B?mT0idWn^HOJTY8u^C=BmMt(yJOH*@013eQXb29@YwdZuHVYR=rQ@Nxe10=eG3VQj4Ya=dO7*&>QgeN`0UQT|x`s9N-!Vp;*EV5HF*kh+;i1mQA MquIOpzC}SW0NSH3?f?J) diff --git a/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html b/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html index 788fedb12..8b9050049 100644 --- a/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html +++ b/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html @@ -1,18 +1,15 @@ - - + gen3.tools.indexing.index_manifest — Gen3 SDK documentation - - - - - - - + + + + + @@ -102,8 +99,10 @@

      Source code for gen3.tools.indexing.index_manifest

      logging = get_logger("__name__") -
      [docs]class ThreadControl(object): - """ +
      +[docs] +class ThreadControl(object): + """ Class for thread synchronization """ @@ -113,8 +112,9 @@

      Source code for gen3.tools.indexing.index_manifest

      self.num_total_files = num_total_files
      + def _write_csv(filename, files, fieldnames=None): - """ + """ write to csv file Args: @@ -157,7 +157,7 @@

      Source code for gen3.tools.indexing.index_manifest

      force_metadata_columns_even_if_empty, fi, ): - """ + """ Index a single file, and submit additional metadata to the metadata service if provided Args: @@ -384,7 +384,9 @@

      Source code for gen3.tools.indexing.index_manifest

      thread_control.mutexLock.release() -
      [docs]def index_object_manifest( +
      +[docs] +def index_object_manifest( commons_url, manifest_file, thread_num, @@ -395,7 +397,7 @@

      Source code for gen3.tools.indexing.index_manifest

      submit_additional_metadata_columns=False, force_metadata_columns_even_if_empty=True, ): - """ + """ Loop through all the files in the manifest, update/create records in indexd update indexd if the url is not in the record url list or acl has changed @@ -529,10 +531,13 @@

      Source code for gen3.tools.indexing.index_manifest

      return files, headers
      -
      [docs]def populate_object_manifest_with_valid_guids( + +
      +[docs] +def populate_object_manifest_with_valid_guids( commons_url, manifest_file, output_filename=None ): - """ + """ Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs for the given commons. @@ -592,6 +597,7 @@

      Source code for gen3.tools.indexing.index_manifest

      _write_csv(os.path.join(CURRENT_DIR, output_filename), new_records, headers)
      + @click.command() @click.option( "--commons-url", @@ -642,7 +648,7 @@

      Source code for gen3.tools.indexing.index_manifest

      manifest_file_delimiter, out_manifest_file, ): - """ + """ Commandline interface for indexing a given manifest to indexd Args: @@ -681,8 +687,10 @@

      Source code for gen3.tools.indexing.index_manifest

      index_object_manifest_cli() -
      [docs]def delete_all_guids(auth, file): - """ +
      +[docs] +def delete_all_guids(auth, file): + """ Delete all GUIDs specified in the object manifest. WARNING: THIS COMPLETELY REMOVES INDEX RECORDS. USE THIS ONLY IF YOU KNOW @@ -724,6 +732,7 @@

      Source code for gen3.tools.indexing.index_manifest

      if guid: logging.debug(f"deleting GUID record:{guid}") logging.debug(index.delete_record(guid=guid))
      +
      diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index bf4d4bba6..d5fedd197 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -250,6 +250,7 @@

      Welcome to Gen3 SDK’s documentation!ThreadControl
    • delete_all_guids()
    • index_object_manifest()
    • +
    • populate_object_manifest_with_valid_guids()
    • Verify
        diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 8f2fb369e10a277a49c29de1f9aeb6fd64436a33..194f72c5f2b14896686623a8103d7c6e29fd0523 100644 GIT binary patch delta 498 zcmVQEA6owP zIFTFY9O*}a$r!!6yPu%h?;j_lWq-;ZW)FQUY~@$oR2aW1u3CSo^Pc6R=+N(JJ{8bj z8njWfa~??K#gyw+5k_!O1TDn)D?Rjk`}f409V1`Kp+_6=hR zd*-d^sWj^tEw&-Z=%}z=Q1iH#3!m1tnR;nO*`a5~=rU@pKt>fOnE7E{i@9b13p4&G zeQt0lZ&ullik@~o528koseo2shXSZUEY<%({g{3tUq8SP$MeOocuiR&X!4te2LWR+ oC07ME`9(t#J~)N}%h0PLibynf_nERMo?)L1Z2%Ac2Z7wMZfn%^r~m)} delta 480 zcmV<60U!SO4(1N9kp+L@!uy%9XtM{4?;|>>2s)eA@q#B z>t)tvd%s5Kjb`_&=>uBM&}uP3w~I5O{7O0Zf&#^dmVZ4? zaWY!=r|e<&(6_=?e$`Ed@vGvhl{)WPE{YD#m!@xDduh-{&5nPYF1*itAtUEIQZk%gyEa?F0rpkQ6(h+vvj;ft)$VKp0 zb(h~%zEv73uA%;h>jQ~1!UnoXRS_*eoH3&MOQw->D>WbOrdm42YZ5E@;;O;u=H9_U z%#v0lK9ks|36X!!Z4@lVfBg5)zkDbq^Ms^Af5G&_ph(*%EJZ3eX!9kHnV;@Lt%#RR zs76%x4I9ZKq^i=jFf)jGen3 ToolsThreadControl
      • delete_all_guids()
      • index_object_manifest()
      • +
      • populate_object_manifest_with_valid_guids()
    • Verify
        diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index e93f4ffa9..3b49c9208 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -325,6 +325,27 @@

        Indexing Tools +
        +gen3.tools.indexing.index_manifest.populate_object_manifest_with_valid_guids(commons_url, manifest_file, output_filename=None)[source]
        +

        Given a minimal file object manifest, populate any missing GUIDs with valid GUIDs +for the given commons.

        +
        +
        NOTE: This DOES NOT index anything, it only works client side to populate the manifest

        with valid GUIDs (which are obtained from the server). No records are created +as part of this function call.

        +
        +
        +
        +
        Parameters:
        +
          +
        • commons_url (str) – root domain for commons where indexd lives

        • +
        • manifest_file (str) – file path for input manifest file to populate empty GUIDs

        • +
        • output_filename (str) – output file name for manifest

        • +
        +
        +
        +

    • +

      Verify

      @@ -380,7 +401,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1700678999.9725351.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1701895710.1259124.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      @@ -455,6 +476,7 @@

      Navigation

    • ThreadControl
    • delete_all_guids()
    • index_object_manifest()
    • +
    • populate_object_manifest_with_valid_guids()
    • Verify
    • Verify

      @@ -380,7 +401,7 @@

      Indexing Tools
      -async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1701900364.6706986.log')[source]
      +async gen3.tools.indexing.verify_manifest.async_verify_object_manifest(commons_url, manifest_file, max_concurrent_requests=24, manifest_row_parsers={'acl': <function _get_acl_from_row>, 'authz': <function _get_authz_from_row>, 'file_name': <function _get_file_name_from_row>, 'file_size': <function _get_file_size_from_row>, 'guid': <function _get_guid_from_row>, 'md5': <function _get_md5_from_row>, 'urls': <function _get_urls_from_row>}, manifest_file_delimiter=None, output_filename='verify-manifest-errors-1701965244.9268556.log')[source]

      Verify all file object records into a manifest csv

      Parameters:
      @@ -455,6 +476,7 @@

      Navigation

    • ThreadControl
    • delete_all_guids()
    • index_object_manifest()
    • +
    • populate_object_manifest_with_valid_guids()
    • Verify