From 5661863071912383c6eb31f924421b0dcd2ce24b Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 12:14:14 -0500 Subject: [PATCH 01/11] add check for missing tags --- gen3/tools/metadata/discovery.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gen3/tools/metadata/discovery.py b/gen3/tools/metadata/discovery.py index 8fcc4bfc5..0dbf759fa 100644 --- a/gen3/tools/metadata/discovery.py +++ b/gen3/tools/metadata/discovery.py @@ -191,7 +191,12 @@ def read_mds_into_cache( json.dump(guid_discovery_metadata, cached_guid_file) all_fields |= set(guid_discovery_metadata.keys()) num_tags = max( - num_tags, len(guid_discovery_metadata.get("tags", [])) + num_tags, + len( + [] + if guid_discovery_metadata["tags"] is None + else guid_discovery_metadata.get("tags", []) + ), ) else: break From f487dd2ee2cc1553372b4293f6f12e7eef4e46a4 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 17:15:33 +0000 Subject: [PATCH 02/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 1575701 -> 1575706 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100096 -> 100101 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35919 -> 35919 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 c9a3049f3b2e6008bc44ebb4c4202bb4c114fd61..b3b0bff9a070ec366148e2d36381da99ccc66d88 100644 GIT binary patch delta 11061 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 XZ2puC_Sh*IVm;WkZ(rfV7;6Op47f3` diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 1fbaf51b0b0cd2703286af8d1c05840ad4f52750..ad4a3c46e52aaf91cbf84ada40a72621c6a778ab 100644 GIT binary patch delta 130 zcmX>aCihu5VhC=&Z&45o0I$*^_y7O^ delta 130 zcmX>aCihu5VhC=&Z&45o0GJ0MnE(I) diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 4a3f953f0..9504ee24d 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [11, 12], "153123": 11, "5054574": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [], "153123": [], "5054574": [], "1712855728": [11, 12], "6403887": 11, "9809217": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ No newline at end of file diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index 458a819ff..d8ff8c65c 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -381,7 +381,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-1709222307.153123.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-1712855728.6403887.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 b35d74eb1..04faf2cfb 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -102,7 +102,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-1709222307.5054574.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-1712855728.9809217.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
From d1c4cd7027b4aa3c74699a32d943d6e2c5f7c354 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 17:18:33 +0000 Subject: [PATCH 03/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 1575706 -> 1575696 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100101 -> 100096 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35919 -> 35914 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 b3b0bff9a070ec366148e2d36381da99ccc66d88..710a14952805e409c8b4c962dbe4072123a49874 100644 GIT binary patch delta 10536 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

^Kt9*`1)E4TE7-_8fa@9Z*lb~n zJ9HC#k7akT!>^O`x_;+YV$}6$+N5N&%MJz4+D+`%8+?TcN3MX=qWchi^g3rdTKz(Zpea>M~+tC*LRE>rFUvfcWY5KYu{%f3^=#aCotpgAJ)&hsbZjD~Po` z!XGO4PMjs~!lse}6 zoWv-wE)T85DeCJl(CX`Ta;NO_C7Gpgo*#*ZD;o zb30*c5st^+^Q51a74~#(h+BlumH2PTcD=Mam-tADDsA8K9ZG;?=a@ND!!_PT691K&=9tx z=D*Z&sGqlu9jyB=nvug$bLJj@B>%1Un6chgcJn@eXo<4Fd_WfHWs8U4nBVykKsarV z$4;JRpp9AbBYtA|i!gHk9Qv%{v!K|WiNe8H#Ez&GSDDabPP4B6=y`0*AxeW;wTrfjgYIA8)W;jccu21!>Ve)g0vA>t&iCt` zsUK`EcLqW5hd3A+edv5mbD%HfOBQWdvwk#Eha(5jMj8Z>!n-dGV(%vMW((7OgBtW= zEpR=*+nOQOqz16CArwz63ooc0A#o_(4i#7Aei<-~X5jJq3htL%SK#4qHeL_d`@<>D zb1r15BPbpog&q%07M3=O-qBTQV|aRDm7YXz>Q>@(GI=6iDwdC<_~;U@s1IU`QyO@& zHKP%p5`-QPE*3U9RR&=bC)1}5Bl(N^1np~5f>qq15)9%3mC#t+o)T>0>XZ;7?oA1v z;?k605;vxV0C8PPP{ds+p{ckip^)E_Fjzg@pGvzA;P*0o`SYh2_Wz&v_2`r$qH|Yq z71Le|!OCegMBM-Ii;k$bKzs#w!tv-&IDP|s!tq<+6OP{mpK$tjBt0g-5kArJTj3L~ z{-wXLygIJrMg^h|o^ZS?8o11S?}<~=lE>h6apsH^{Ei_*y6f1?G^*gIADA_rHc@WF zhUqlgs`Z@v4xE@yw1ckf|oV2S|gt?rkx-* zo0=^1$6@(B$HVBw_<{s)Ar7lMcC_Nr!hH*#TY@8e3o@6`XK<3dy#x!cg4;{5(kf`P z6dO|onM-K`lA}xMi%1;H1UGaUmRJQFmf<*6!PRBLvgvZ6o4%ZO_Y$v8E-%8wjQ*=R*MMdR%1ukKR?_W4O1#%VpI z4YVWh^AL31AiR5Tpo7rR07*1N^xwaBaoZ8S?J0)3kUDl=}@JTrMylTn{ltazMUo^d2t6#L9%ZL zDyzY=6Z^Otn(d^c;mBq@7v}E75Y_PGPMmY~;MzqyAnCsg7koYB?!r}A4`1%0?U6j* zg>$?fI_(x*`fkDfV>d4NdiZ%aPT+co*n{qMFk%l4#p>qnp|h20RtOQPv2K zSn@u>iD0!v zd)7!)zE+}+g%Xi<65Vb<-xf>RyBj5PZ_-hw+cnX{1OH0qVCRxu-E9u>u0CKJs_(L= zrnnA=H5Tve&u>SGK>c@1bnb1A*yB9cnrYc$N4J!rM4&GkkYm4;ee{7urw&SFKP1sX zzK;vv@5?1R{;5Q-9hd0R7ZMeGDbc2{_@oieolZz}x&c|gk+S9|C2Dg@qOU6?YJ66r zSI=|A#y)iIK9((Z%5N{DM4%~GBzo(rL?J&(6nRaeZyQkLO(`p=k!VS+M2{L!*+VIN z_jifH9>q(T{Yau<{350m6QxL$VbD>gdpg#NL)sLYEb?iZbFJK;T`Lb59qSO^QkF%d zT{Y`p9Wbtu_DQ8U7A4~2$_sH4Rke{Qv7JO4pOz@{8HuKKkSMgHL}e0Xx<8Ilu#(Ko HROq delta 10257 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 MFS2Eed>G@b0BSTW?EnA( diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index ad4a3c46e52aaf91cbf84ada40a72621c6a778ab..60abb35dbbde962088a49bdff0142dc6d33a981b 100644 GIT binary patch delta 140 zcmX>A4`uY|hYc<6v~3{NCIGNx7kgBt%RCZiKmBPJX)jlnnORDH&otXc{)(vnUJ( E04>KTsQ>@~ delta 145 zcmX>#gX#PXCYA=)sV*B?mT0idWn^HOJTY8u^C=BSMlN$B3q4B<14|>r$!Yqwn*+6u zGc(q2meg}WmfD=A-^Rh{G5M{z1+oS`3rUEeB*GMPy`21X^(h(bu~Ra{deF6OzG+by F3;-EsDo+3a diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 9504ee24d..483b4ffba 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [], "153123": [], "5054574": [], "1712855728": [11, 12], "6403887": 11, "9809217": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [], "153123": [], "5054574": [], "1712855728": [], "6403887": [], "9809217": [], "1712855909": 11, "277997": 11, "1712855910": 12, "009207": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ No newline at end of file diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index d8ff8c65c..8e85819bc 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -381,7 +381,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-1712855728.6403887.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-1712855909.277997.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 04faf2cfb..4870e4c85 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -102,7 +102,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-1712855728.9809217.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-1712855910.009207.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
From b7943f4341e99333e6a642aba3efe61c7bccd66a Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 12:53:23 -0500 Subject: [PATCH 04/11] add additional fix --- gen3/tools/metadata/discovery.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gen3/tools/metadata/discovery.py b/gen3/tools/metadata/discovery.py index 0dbf759fa..d29d14216 100644 --- a/gen3/tools/metadata/discovery.py +++ b/gen3/tools/metadata/discovery.py @@ -106,6 +106,8 @@ async def output_expanded_discovery_metadata( for guid in sorted(os.listdir(metadata_cache_dir)): with open(f"{metadata_cache_dir}/{guid}", encoding="utf-8") as f: fetched_metadata = json.load(f) + if fetched_metadata["tags"] is None: + fetched_metadata["tags"] = [] flattened_tags = { f"_tag_{tag_num}": f"{tag['category']}: {tag['name']}" for tag_num, tag in enumerate( From 31354d00b1148df5b194272b3be0f37fbef227bf Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 17:56:01 +0000 Subject: [PATCH 05/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 1575696 -> 1575701 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100096 -> 100096 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35914 -> 35919 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 710a14952805e409c8b4c962dbe4072123a49874..2fb4c876796a47a4d0e440e7af65d4bbd53384bf 100644 GIT binary patch delta 10969 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 delta 118 zcmZqZV`~7SEsWc(1WYXrEcJ}c%`Gj>^>Xsl)hEwiEV})U6{86&HD*&+@A5s7S diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 60abb35dbbde962088a49bdff0142dc6d33a981b..dc6bdb731cf1675604c1896ec45f8721d7f095e2 100644 GIT binary patch delta 154 zcmX>#gX#PXCYA=)sV*B?mT0idWn^HOJTY8u^C=AnMji`8Q*%8dLrW7=3yaC=`Zk*b zwT?40)^C>7b4HcioUY%>!RRsht+_d>CVdMDh_Dp0S$aA7>FQH5*kh+;i1lFV+I-8R GAQ%8}G%Pp( delta 154 zcmX>SrNpz_x8SJrBGQ@ho8jIndexing 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-1712855909.277997.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-1712858156.918798.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 4870e4c85..587c6c7e2 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -102,7 +102,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-1712855910.009207.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-1712858157.2194588.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
From 5bd0befdd443ddd57c3df9424148f0a7b7b487b3 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 13:09:07 -0500 Subject: [PATCH 06/11] refine num_tags --- gen3/tools/metadata/discovery.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/gen3/tools/metadata/discovery.py b/gen3/tools/metadata/discovery.py index d29d14216..95aaa12d3 100644 --- a/gen3/tools/metadata/discovery.py +++ b/gen3/tools/metadata/discovery.py @@ -192,14 +192,8 @@ def read_mds_into_cache( guid_discovery_metadata = guid_metadata["gen3_discovery"] json.dump(guid_discovery_metadata, cached_guid_file) all_fields |= set(guid_discovery_metadata.keys()) - num_tags = max( - num_tags, - len( - [] - if guid_discovery_metadata["tags"] is None - else guid_discovery_metadata.get("tags", []) - ), - ) + tgs = guid_discovery_metadata.get("tags", []) + num_tags = max(num_tags, 0 if tgs is None else len(tgs)) else: break return (partial_metadata, all_fields, num_tags) From 5db131b7653e0fbf659db67ffe3ce94e4a5d9065 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 18:10:47 +0000 Subject: [PATCH 07/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 1575701 -> 1575696 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100096 -> 100096 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35919 -> 35914 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 2fb4c876796a47a4d0e440e7af65d4bbd53384bf..f7865c7666c79a83b7dee06f2a917c9dc50d9811 100644 GIT binary patch delta 10830 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 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index e72c73a6ce1bf31004f3cbd20e451faaaf5d4d60..8efb623c20c9b7debf4f04dec168670fdabb6d77 100644 GIT binary patch delta 118 zcmZqZV`~7SEsWc(1S}0qjP;Dn3=K_;^m6jk)hEwiEV})U6{86&HD*%vX9D*&$SA4mWI diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index dc6bdb731cf1675604c1896ec45f8721d7f095e2..9f16d275485ffc530eb94e38a161e63fb5f08998 100644 GIT binary patch delta 154 zcmX>o6SL5 z$C(-HHcRO_qsVQ})Nkcrbf5g*+*|-ji(XECy87gUIl>SrNpz_x8SJrBGQ@ho8j#gX#PXCYA=)sV*B?mT0idWn^HOJTY8u^C=AnMji`8Q*%8dLrW7=3yaC=`Zk*b zwT?40)^C>7b4HcioUY%>!RRsht+_d>CVdMDh_Dp0S$aA7>FQH5*kh+;i1lFV+I-8R GAQ%8}G%Pp( diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 84fd4684c..1b522e501 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [], "153123": [], "5054574": [], "1712855728": [], "6403887": [], "9809217": [], "1712855909": [], "277997": [], "1712855910": [], "009207": [], "1712858156": 11, "918798": 11, "1712858157": 12, "2194588": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [], "153123": [], "5054574": [], "1712855728": [], "6403887": [], "9809217": [], "1712855909": [], "277997": [], "1712855910": [], "009207": [], "1712858156": [], "918798": [], "1712858157": [], "2194588": [], "1712859043": [11, 12], "261142": 11, "577593": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ No newline at end of file diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index f6fed0d7f..75a038edd 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -381,7 +381,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-1712858156.918798.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-1712859043.261142.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 587c6c7e2..d482db29e 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -102,7 +102,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-1712858157.2194588.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-1712859043.577593.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
From 9ad6010e3cd8546ae6c79d3ed55979b13cb59558 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 13:29:18 -0500 Subject: [PATCH 08/11] fix test error --- gen3/tools/metadata/discovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen3/tools/metadata/discovery.py b/gen3/tools/metadata/discovery.py index 95aaa12d3..b54f7d0d1 100644 --- a/gen3/tools/metadata/discovery.py +++ b/gen3/tools/metadata/discovery.py @@ -106,7 +106,7 @@ async def output_expanded_discovery_metadata( for guid in sorted(os.listdir(metadata_cache_dir)): with open(f"{metadata_cache_dir}/{guid}", encoding="utf-8") as f: fetched_metadata = json.load(f) - if fetched_metadata["tags"] is None: + if fetched_metadata.get("tags", []) is None: fetched_metadata["tags"] = [] flattened_tags = { f"_tag_{tag_num}": f"{tag['category']}: {tag['name']}" From 6ab68cffb2002501ee24110094fcae3ac1d8669a Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Thu, 11 Apr 2024 18:30:38 +0000 Subject: [PATCH 09/11] Apply automatic documentation changes --- docs/_build/doctrees/environment.pickle | Bin 1575696 -> 1575706 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100096 -> 100101 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35914 -> 35919 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 f7865c7666c79a83b7dee06f2a917c9dc50d9811..9a029895c93358f58c0739ce2a0b6a6ec124271f 100644 GIT binary patch delta 10757 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 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 8efb623c20c9b7debf4f04dec168670fdabb6d77..5165e78054bd13519d149408bcac1952a2a529a9 100644 GIT binary patch delta 181 zcmZqZV{7eWYnZ~w!}xJ4FXL$ombZ)y4AUDe7-hEquwdNBC}d_}WNfTwVrpn?YHp~P zlb^0WdH!P2?RTsg3z-=&ZuhfeJjlq4qG-Fc1LIb1M*Ha(y%}|}=%4QBz$grrmPXMD YHhxM5d+d}9u^xziG@}>$FveN|0Iqd1x&QzG delta 171 zcmZqeV`~7SDU3XfZ?^I>p0;3l!^prez0rbEX8R8d#(j)}rj`aK#(G9(hK43adO7*& z>XYX$7Ttc=im{NH@xpe0JH~^IJjiOc%Q`S_-p6A1;iy||f*N0I8Dj|ie1#Ik; U4EES58Dc$HG;Uwv!x(D?0DrSC&;S4c diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 9f16d275485ffc530eb94e38a161e63fb5f08998..a3ddecb4014a2d8597a94aebc856f4249659f926 100644 GIT binary patch delta 159 zcmX>#gX#PXCYA=)sV*B?mT0idWn^HOJTY8u^C=B`MqV=mBV%Jd3sVCVBSZ7a>H0RC z1GSDbGuCgG)N?|U-JGu9%E9O{`K`Gbnl^n435d8fig9{5`RVFYGT39MWQg@((YN`Q HML{qC7@I89 delta 159 zcmX>o!a2IiX5!&eU(^V054S-rP(OS(9E)e!BYPgE_(wIVlXeDH-gsQ!>PQz*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-1712859043.261142.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-1712860233.4513571.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 d482db29e..7c33fd332 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -102,7 +102,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-1712859043.577593.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-1712860233.8504217.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
From 98b5f93938fc8f74defaa0885dc6d8b0ea8caa43 Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Tue, 23 Apr 2024 16:27:43 -0500 Subject: [PATCH 10/11] Update gen3/tools/metadata/discovery.py Co-authored-by: burtonk <117617405+k-burt-uch@users.noreply.github.com> --- gen3/tools/metadata/discovery.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen3/tools/metadata/discovery.py b/gen3/tools/metadata/discovery.py index b54f7d0d1..54c311465 100644 --- a/gen3/tools/metadata/discovery.py +++ b/gen3/tools/metadata/discovery.py @@ -106,7 +106,7 @@ async def output_expanded_discovery_metadata( for guid in sorted(os.listdir(metadata_cache_dir)): with open(f"{metadata_cache_dir}/{guid}", encoding="utf-8") as f: fetched_metadata = json.load(f) - if fetched_metadata.get("tags", []) is None: + if fetched_metadata.get("tags") is None: fetched_metadata["tags"] = [] flattened_tags = { f"_tag_{tag_num}": f"{tag['category']}: {tag['name']}" From e369b6771396958bb8d87b88f3a2752af901572f Mon Sep 17 00:00:00 2001 From: craigrbarnes Date: Tue, 23 Apr 2024 21:28:50 +0000 Subject: [PATCH 11/11] Apply automatic documentation changes --- docs/_build/doctrees/auth.doctree | Bin 30139 -> 30167 bytes docs/_build/doctrees/environment.pickle | Bin 1575706 -> 1576383 bytes docs/_build/doctrees/file.doctree | Bin 41145 -> 41173 bytes docs/_build/doctrees/index.doctree | Bin 5418 -> 5436 bytes docs/_build/doctrees/indexing.doctree | Bin 161346 -> 161277 bytes docs/_build/doctrees/jobs.doctree | Bin 27660 -> 27688 bytes docs/_build/doctrees/metadata.doctree | Bin 145433 -> 145533 bytes docs/_build/doctrees/object.doctree | Bin 13146 -> 13054 bytes docs/_build/doctrees/query.doctree | Bin 41145 -> 41173 bytes docs/_build/doctrees/submission.doctree | Bin 108387 -> 108415 bytes docs/_build/doctrees/tools.doctree | Bin 5236 -> 5251 bytes docs/_build/doctrees/tools/drs_pull.doctree | Bin 130169 -> 130160 bytes docs/_build/doctrees/tools/indexing.doctree | Bin 100101 -> 100286 bytes docs/_build/doctrees/tools/metadata.doctree | Bin 35919 -> 35934 bytes docs/_build/doctrees/wss.doctree | Bin 33778 -> 33818 bytes docs/_build/html/.buildinfo | 2 +- docs/_build/html/_modules/gen3/auth.html | 6 +- docs/_build/html/_modules/gen3/file.html | 6 +- docs/_build/html/_modules/gen3/index.html | 6 +- docs/_build/html/_modules/gen3/jobs.html | 6 +- docs/_build/html/_modules/gen3/metadata.html | 6 +- docs/_build/html/_modules/gen3/object.html | 6 +- docs/_build/html/_modules/gen3/query.html | 6 +- .../_build/html/_modules/gen3/submission.html | 6 +- .../gen3/tools/download/drs_download.html | 6 +- .../tools/indexing/download_manifest.html | 6 +- .../gen3/tools/indexing/index_manifest.html | 6 +- .../gen3/tools/indexing/verify_manifest.html | 6 +- .../gen3/tools/metadata/ingest_manifest.html | 6 +- docs/_build/html/_modules/gen3/wss.html | 6 +- docs/_build/html/_modules/index.html | 6 +- docs/_build/html/_static/basic.css | 2 +- docs/_build/html/_static/doctools.js | 2 +- docs/_build/html/_static/language_data.js | 4 +- docs/_build/html/_static/searchtools.js | 165 +++++++++++------- docs/_build/html/auth.html | 6 +- docs/_build/html/file.html | 6 +- docs/_build/html/genindex.html | 6 +- docs/_build/html/index.html | 6 +- docs/_build/html/indexing.html | 12 +- docs/_build/html/jobs.html | 6 +- docs/_build/html/metadata.html | 6 +- docs/_build/html/object.html | 12 +- docs/_build/html/py-modindex.html | 6 +- docs/_build/html/query.html | 6 +- docs/_build/html/search.html | 12 +- docs/_build/html/searchindex.js | 2 +- docs/_build/html/submission.html | 6 +- docs/_build/html/tools.html | 6 +- docs/_build/html/tools/drs_pull.html | 8 +- docs/_build/html/tools/indexing.html | 8 +- docs/_build/html/tools/metadata.html | 8 +- docs/_build/html/wss.html | 6 +- 53 files changed, 218 insertions(+), 175 deletions(-) diff --git a/docs/_build/doctrees/auth.doctree b/docs/_build/doctrees/auth.doctree index 20f592f881c46ce1a594cccb900c2a51a61397ca..b5114105d55a1aed385b1003555e0184ebdf91ff 100644 GIT binary patch delta 3186 zcmbtWeN0nV6!+e?v>mPB2k2J7mMR5=ik1(D1u+b9peQKBfrwNK$;9+r&nTp+_-KHF05^?ce}m7;wQl+ zgN1zu!-mc5C$yRTHixc^>exHDRl0&^k93uW1eLD&Ud27)T&IAI%WX^pMq@16GbtJH zXt{x#6yUeoc!GimEM~>O5g?0eSBGn+6iXw6q=8&h8h=|Ll^TS=IqP)D$assF$ZW+j z+u|_UCZxr1jRJ;B649~2#A>wnEty=UfLoP`V4P-!v*z=>OAf#z0`LR__*j+%S@LjL zk{%JjX*mE-XaJXGwy$NjD`B!x03JC250qFAF^>pf+gJb%$$#+|asVSDfDsH}DT{=s z)=UhyGo!|$SB8`O5ptcG38x$h@tkD}s@Z}nJ4`C_dqnno1WMDsWFx}wCu4rUpMICG zS5oEhMkSbxG4wc_GK*@5bqYxjNha?MOA^8JOf%VG;eI1RMk|M%6kNvy*Qs#1CRiqu zKU6r4V4wXdO@=KtzD^ma96i|Q_}Me$PG^4KD%&x}7#QvIAU~^#O@I?wb66Dg&YcR+ zvQ{#qc(Xe@ibcaG*=?~_)wpqPN4;yB$D8aj)p}j#TCWrb@i|iipt77*%q~C=atQPy zXM1ePYe2r&)RWR!lHfa?Tc9K&ew1VZ(rseWIY0VJwHkr zjoV>OR&nf+*Wi5R^DT^DQNgXqILNO{U;}Wz;2ytA3-QpciBU*Ds;~znz!yzAHUuvg zl=G({FCVF(T%W{W(UOhh?6f|O>mmfYK%2&;N5G2A@R3%{r6K4nT*PO{F9o$JLZEH5 zWaBs^^nxH-A>q=Ms1$;-qS?9u48#@ZQn=!!LC7!K%?DI?u2Z>m5r&KMBV7@AQwpKvjr_w1>~d*Q&2sA~Z_zz| zB0^MmA40IY@e!zQK0p{7?~lN&q{0eAM)GCS4Qa1!G{5%G?uZmvm#hy4OU!7Wl{BL* zuS$oEES16_^}X|4pdAkBIEI?i<)!POlBOdP{7WYD(omg& zr3PLj>#Pjbsr~;t?lGNWzDw5V4ADsbAWRK$JbrOJen_pT#1xGk&*PBexnHrL^+Vh8 zOnyNvsskUR)iEeLa5L0_TVXkXB-FR?L4E52{JEl(Ce*il>OkL8^CNU25};s;Qqv_@ z?Pus&D&H4ehqH6kY&W^9amYJ5Fpf-Jf9T~oQ1vF3&Z#Q1@iv}ex4P9KwQp_1zY3#< z{wmfv-D?AL-{Y!e&fWo2-8^2P0mI5|@WXp{eF5$ZT*V3v%r9CE9o3n%LEOh&=yc>q zHsK!mK5m5ZHD&q=!pQeAPXjFr4Nx#`JRGd~oNYz=cra#7nPeZ^vpFCE%wU8aRcc*c zU;*!F1^Cxx#!trusfWxAG6%>cjgFwqnP8OCaJpAYCyRe7u6*IMLDEuY;w3wDIv4o1 z*Y+`XiXvpkp|42{Cc%u!#b^LxgNwb+@(hk+MrVOGNqJp3qlTIb-a z=}q7ZQLPniyqT749B0(Vx5*pCN1z(Inr8AUZ7@ZJfe7#nDz&0~-j(K(1eT9N%EOJ0 zyvSbiTIA>?JdmpNl?0M=RGc$2v(TlxqmkE2Zc<<7=?5-l|BHn$8zMfJpR*FQISL!80rHbiBQ|NQH HSFyhVnG~95 delta 3136 zcmbtWYiyHc6z06^m9^^(cg8MlhwR2+v>VIH1|1n2E8qrLk#X4uh3;b)uv~_Vz$6BU zg8^q?H0Wee2?oWb1{QIF`9q8boEOj#h#LPGZk@sSM+2VoerqXaCQbbF_MGoK=Q+Xn|4|m|g9nkF29{Z?QgGm;pNQ@e#03R+oFql*%J`;E(&4IQlrQ$m&ia~)^+sg6R z*ld7~{n2j0_~g3+M&ss8r_jaWz@l-W!;9%2NX5fxPMCsewwh_yxRG25%D;D;KU*2k zQj(&>a%&FEW6`b3hy7#oyIo(M7d zHhgZ{F+ob0d}|c>TnuFV4S&c4hSUUxD1n)HH!~HC_{$6@CGXCvnHH~!2xdm@RB=|4gPg_w?Sr|X4JBiqP_y}2IP zB_p@V$a`XnOzsudY&b5n@R3WTk4{OfcVt0M$A*QLym3s3lknlfyf;`0Cs9vG;Wjek z!dbt=@0^4PX>h1`La^O&2;dPv!A@5Kdh#2!q#?zZQQk$i^E5MUX?zW3`j%RUKBZ9U~Npfi<&NK@o!_ zPyKI@j$G_5uwg@?8Rr(xqlp>`D)@O}0)UsXf{8`d0P9)AH(j0Zf|UGoERYavol^m@ zXC#F8;gGbuR$|d`3fPoi4kt#koEY3b*8<|A7Qcy~f}XW0rVC`x+53|_>d>NDg_-VF zab1gbwGQ#EmNrld?wN0bs~A^WE$*w&Z)>sI{IvL+Q5=G_56wAZv<|Ixm2eyD=4X@n z!TA-!u9GmSI%%G#ljfwc`CMr(NE@(Z3gs%f+3{9GLKGq83VO=+i3?h~`AKjN@0XRt zZ_v>|Y3Rn3W}LmCz;uP_r+9#_pbvL0xFNRd@TvS+xUYN@1n@!mM)9hS7Hf{BQC)WX z$={z$$gfrWB;M2EmP`lq;H5?5MUM_IrB{jzZ0-KA8%0rM6+L5l-R za>SqxYiCTKHd-GGg%JL>I1AF)T@xabG=O$&UXl!X5-~Rl(dCE@kx*zXPEoSqu~2N- zTQva|Mn_4v<^(`l054E0V*P(Hy>xi39obhmn4GqkW9JXFaThH(DDqmB>qDy=oo^r#BXd8g*u+FEZoQ_-}b9 z!65c|?P-H_yB+$LdS&a*&Au)r#XzcIy)UqCSP%Z?%@Cs05Z)C~g0;_|H6CgD?(K05hGk4RHVI-oqwCqCm#LFei*w4D$7+`$8@ z-vMztl7x8IfUssS-e0=~E@5r0Q+#TW>**?+I9Q|g1UE6Q&ch0Ar#Pk0FuVxqi`0-{ zewV@wSKz!_0cU+N19Jts)e6KJiJx3l@p!$y)_k6Q)C%-ODiCa3HvwP_4s3FoPChnB zL}<)4^+ZK^T!Adcl@-WlNmf8gBURvJ@SyK9Kp6!{=4}sdJhE{JR*{~9m)zsU3M1zZ zihM9wDj#tAt@1%_!*sTgC0K5Jq6BUVK3sxjM%e^jrI6q|mC3?ols(WLslX|Gpm@#8 z*hQ^Ci80axyEnPvEJbsgiXXo}!v!#xJQ3s3dWYHrpEItkz-5+X1*9}W1vCtbZo8cZ zVV>&VPcx#re;;v|(!bn;JDSP?2b(L#dZ5D`@U7e0ysc?%>xPyWnz}p?%xXykFa$lD z{}jRlSQ@yq{1)Tgpd-*>Y_4na@fZc@&xFD+4g~yG`d=a6`%V5i{xanpjitihU!{<) VTH(1;y7}P#Qe2GY4z_Rg!asGCYoq`G diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 9a029895c93358f58c0739ce2a0b6a6ec124271f..09a6889a2e8da2a8269479b782288572ece7f58a 100644 GIT binary patch literal 1576383 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 z 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�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

?>>{__dkTXHeM@2_2Cw- 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 S?eN>=@LM!8KAB8*v%dkcqimS~ literal 1575706 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

&|OAq}X2VKu^#%kGA3q8HddAN+7f% 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 K!`q)5+r diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 8179ccf0ba5f704a7db2486246125be8c8415585..b97c09ddb910dfc711f202b945d144b12f15c8d8 100644 GIT binary patch delta 142 zcmZ3bwMUDkfpx0kMwaQE{IVH38FJnN8PXZ^Gh{NDH?QQZWP}O|!UYYuyBUQbDurNz zrAeui{W&E!Kjn#H6e!BiFNrTGN=?hGn9{?jKV`BlpO;Wa4{vd5a!FokZhS>reo^j} Zj?J_A6c`z+Ht*s8#>CjMd5cgP69752F4+J8 delta 118 zcmdm^wMvVnfpx0DvS?#2*1!&AmMIfTzc t#GA2)w>UMqB(F3#z9KEZD0hlCrD&q) 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 delta 23936 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 delta 3158 zcma)8Yf#ix6z3lH_0L_&CSSZ?5i8IlpiU&PET96WfD%4f1Pt8%1wMc%O-jqcTFT~Z zj~RQQmWiVj?O67u(s68@rfHh^fITS7shM8d^qQ$=>YRJ`!2%!ra_8(l_nz}RzjJ=~ zzsJUecT5-_GCm_l40oo)=m$kql>QOW@&Z}-NJ^n7M`vmQ{+6;*)UyS3(KstB5g*Dk zV$u>b4yNYLZHT4|Wwi811n_^Kx>pD<-O91dBCjV-@5h(Z=Rkin?pjgt_@*?@aC%9#=tpNp0qo-psrY=x zi(+gdm{AF4l)*Ug-dhvI&l1oNQvqGMCP1Up0vbgEBu4Q}W)ZE7=aV2F8=jh(h%4$c(u`tU)eKpAS(-+!g=39mZ ze8@TD@#E!*@PPrZEZ>4T4l6#I+XdgSCjq}+F-MG3;3Q0*XBD5}#)Y-;ci8o3&;_4y z-b5TU8}Q56nYIropC{fE?Mcut8nC6(gFAC);Cp%VIZtWEylDNb0Z+yi%}6%Vu(k1= zW@1sk%XX13CRPjT{W$|3s*1zc^0z^*Q4)H!(1=w9J0Qo1hiZ!P-vT>SC=XGsxhRy% z=d6v#2Nw-Pvvg{KX>By(VESy)h&vZoLl3+1VTWFFclXc+baD^A=rrT|W%GfeNu3Osq)tW|kJQN*SX}P1y~-DrP7atzCw6?RyaO&P zW=SWr6ZEITM=k}@;Gwi+$-{xb2I+LTnE^ViH<&|oq+@gC0NuT`Di*9} z$-x@(Dh@VcU6sq4&ZiXzF*sO-u$gmY(@b#rGsE8IK-ggU)|kKs!A{3LYv*BqYrJA$ zCwUYDyV#NpNb4FH;Ec=w_N}}Kz7PS{1EFkQ4?f-G#&=iRP+L_r!J!|fayQ|~Du*~A zOMXI?{0@VVZ9jt*tIMs2Ig~1SfJ%VI9SsP<7$(XYWbWm zCQzD^+IqMWJZy%axB+(f+#D1seN>a{>cDD|RPt5L61e($-8x9IkUR@8u`w4r)>xH5 z&oIa-uVjKHB+ytk?VwqLNnlLovjhZs9!u92SO*xQ(!ybC%6xEG!pd|I2-TN*wq#$V zHK{MGOuW5*6gs&8DNLbb(;Xu=oy$<+AF#+zQsKJm@X3Z)(CH|DlG-eC%#agE&JUt( zoy+zBUsRlLvB*zS@45|eL=mJuNzLf3x8k<-CK#j>H7#&DM4xtwuP5k~(^+dr=Z1W^ z5WH%J^NN{MVP@X6Ait5{g#&yW5#aR3T=*y0gd){|gN%4e1O5s(;CGeg+lVw1UPwY6 zd?B}Rwh&G9LV~X0Zg;Gbho%MF;9yI(L0XgA;2(GQ3#inBJ%9=gA8YEuxy?&$6?8L@ zp+TcYG~v6=Ieb7ip+u8S=;ZLS3HM@6i__M?msAs6ntbohw>Y4W69ffc8a}cskRl{_ zS73u0(SX}p3sg1F(5@P)XW5d~NNZ9xH%{~1mEwP`?JCTXP?%RjVWc%FjQ_;u3W3pW zD{ib7URzh&=I+j(j!pNqZ{5-1s}_EDTe1*i{=W7<0jdS|-1XywCpq46TDrViXG=#L z|9R`8zs5Q{_IG(w=wGt*d#s+No(lac|B?EGm$Uro;(uZK0Keq?ozbnVQ+{IgCwSp! eiDsS_mWE!!xwtnyUR(Rtt=*klyZvA3mEwPCb#xK{ diff --git a/docs/_build/doctrees/metadata.doctree b/docs/_build/doctrees/metadata.doctree index 75b1f469430ccb9ad6f5ac123654d9ebdc9945e7..17fa5e908c6faf1cc759ecc6435bb0a23e533024 100644 GIT binary patch literal 145533 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 diff --git a/docs/_build/doctrees/object.doctree b/docs/_build/doctrees/object.doctree index 8b3d30b62179b4375cdb185a4e900c70f4839629..45456f19fe497007482dedf0139a6dbcc2331993 100644 GIT binary patch delta 1160 zcma)4T}V@581DV1Zl-g`<#C&Ho1Urr@oz3O#DXY;G9r?+=pu1CIew%wr(o7f=^{lh zjCX|)hS!3B?J^1_$jFO~h@h^-EW(Q{F_0+wzB5mH(SObzyDR5D^Kk7nlhZa4V}!H^ke&D5Bqb zI@QG!`x%g})QESjtME|aUNQ*iNK3-;>|Pi}t4)R(wQgtvHe#ide3C27*;>JcUb_qH z?1$j>_J1Z=#5sE=StK|wm7>;B3ZGO8EGf{E<@oVOoT<1V6uUk%Iy%Lu2k10Iiaej; zQg^!LLaL98F5;TQ2fud{F`e@{b&!ToP!1`0%~=Fn_{dr47BqWeB>3H#!ELS=93(Hf zDar7HpUq02vrl(`F5ta92S}JLNqAf;gQJ+6Urs7DIByrB66d5FP^+k)+fjF2*pqrC zt~)u$H|D*9O*?QzNcgY3A7}IY_$99r`W5*|Tt33&eK?li1P>GoxXZ%mo-9NZ3lYUa zuWCW3-T>P#XYzdfI-V()gJUi&O!B(!O8ikKaLH8zZ<(!Pbvc%p^!9ROqh3nGez%jo zKl_8NRieg9msKTBN0u~L=8<;zd>$_u z4Fzb|^^Rba>JwP1YYv8+wsYL{d_9rQs&s;Hm61nz91i@8GFUW7MFlezG%09S(4t^g zEVuA12%Vu&S3^fTdOE$G}Ox=Je=I#*cRmW!qG^S^2T6T&W%LfN?%TukH{yfz|KX*Sc1PE{sO)g BOauS` delta 1196 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 Bk7)n^ delta 6431 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 delta 17397 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 delta 83 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 Xp_v7P1^!U%K|jNv@S4Qmp+Ec&B3)OW delta 17306 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 XaHAbUpVcV#XrW|sw))6lVJQ3`_n~F8 diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 5165e78054bd13519d149408bcac1952a2a529a9..cc81eadcca176a574966982349c2cba02901023a 100644 GIT binary patch delta 8389 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 MHC_534R^YW0TJGhy#N3J delta 453 zcmcaNgX#PXCYA=)sV*B?n6>zgEX)jyjE(gyObtwo49zEJ>f3A%(&Au6m)M-Czl%cz zO|@Q5e!BYPgE_*Jy(~=8bxiKFa6%W`eBYwld2&vThln?04{vd5a!FokZhS>reo^ie zZ^q5XY7`h5KW~0s`;CbS$i3Gvosq+mn}H!iwx@kEUwHfE02cnu!p(h*jA@e%y9^nV zCku8MOlE0SkWK`tlFn*l0#Y&=%o(y7@fmX7Ql&{*Ns}*j%1n-K?PhEO>!}Co(U|Pm zrp1^zIj2p65hNeaI1em08z^VUSTotPT^fgp3Q!Z{8FzwpYy;^~r~%sE!&aPMT9lkR zCCi8v$YaUL%uAi(En1qPot3ybsl%0#@#5qaof=U49)fk>1L;=Bty>DL8{)M~n|F8V KgA94yT?_!mkB-U! diff --git a/docs/_build/doctrees/wss.doctree b/docs/_build/doctrees/wss.doctree index 81babe9abcf571d7c29b0d8187df1c07e2b9ce2b..4d973cdd25440d97c4fbbbe71725a8cd81d51cde 100644 GIT binary patch delta 3778 zcma)9drXv97Uy2(@y*Ne!GJ8xz|2?%2C$U@>gXslqCv~n<)tNx@^WlO`L*X}jrT+iFv~Sz?3fX5+3Uwz}yit*vE4x=Gord(Qo4#v%N} zKi~Q8z2~0u`_B2DbMN=>U-OrSxO!0i8}l>c>QZ~=u&!%hT}S7>zV_gV{Cl31G%Vpn zYkPA~&q(A6`_CEM09PHw+?x#cYzy;($yv>6aH>#BN=`}&Wyn8+>YRF49S-CSd<@B% z^h%~=D{1_)FO)Bvn9%jYRE~vgo#=OCzQQL>sWh-v zG7L2WU{)9WP#ESNxWVXwS626NSq0mC`}s)~jQc#gbWYJnyL?Ynwu-~F7CuCP^ zIUty_)BJ12{a1>66y*NFJoo<E^Vkuwy0lzNaSOQeU#L+V8O1D`6UZt}Cn#Ozw$x830LzIBRRl_~ zqDqadI0pAhud+56Uu%Uw)!KMa4b!zUZ18EJVQn27#D!vhL=88xZGs{FxIK{}?3~aT ziEHqFb(|qVRF0xKq!tYE?=-`nb*bbAS&}R_sli`ZD7{aLbMgdyyv}PnL<5B;Eo!7m zE_l}WvQN>E4g4lE3>q|WYkfPLgsr{<7^B$yv`;I2L3^$8A-LxoWB-dUedo~fAJu|6 zC@6I+G>Obv3V}^oK+Lgd=I3kz4K8F38o`{ANvgpgA+yXw1I!u!j~c=Q4x$d5h0A4U zc%?=Vw?ZS_qagQ9^W5(d?vXhx7s>+pu9iiCsDS4K7LEoH0|_Dy3L?&CH0b8Dl!-h( zLx}SD7iwY+pH}b@Z6*mZ(ZiOMcri9kBbvr=;jh@j0ly$RZkYeX}#Z@$I< zqM>HOCo~Xlmf`X?16zEi%bP zWXV>^aiIhP+np&Mny@C$+q4)X$BN8(3uGx>Y)D%$pQ05#YOhxGsNKpsehl@f0WGDP z^}&gsrt&_m$n+V3G}fY?L#qnW&f?C*7Gs#|&-xRK?J&kEadzxMp0<=X4P!IwXL^BkG;DZP_u9aKd*kE#Hk; zus_v{2_hQCEZUzwN+19%t4Sv;*qjK(f ziGjTbXZO0<+hXj`HBjuL9cUxPP3b@wJM2INiI|}xNP-!s=}okt(~)rFHO61liMz}g zbT!{*??Y8fF?$DnJK?fdVsGKwYSS3*iJE;A?cp88Tw#W9oA7jNO<`k*`6v85emkB) z|0LBp`5s(rEjPYN110mLux#HsK1+csS|VR~xGS(sFmRh5 z#)E!1((yI>E1DOfFiyn{4a+dItO=HMwz6-;2mUMmfzn;nnpf}12I>g>L0pC3eHep> zHsw1QgWX^b7xJlS943`Gf0RC)%FB|eX7(}&S zUla~BL^!Sp95|q2zmkCCQX&p2_XeDB^GZa6hrm{`iiZG(Zf0PO>3TfP6gR4K1VcAe zATXlNGmSC2WE%0Ru^IA;tS{84;Lb0~QuAm{Xu0EBZqj-@a`5n0wzRvmv$wIUJGj5C ze`J_FIs$JTd1Cp{u&F25+Iz6Cqp^Q~XLrZQP-OYhY{r@*o?}07HU#-6zRB^By~ps; zGpsw<+!5>@=nD3X937Eq;n|*${pd)p{22I7+BQ9)A1nI%!RsqN=$0#ArTYOfd?_@IiEC+RU2dFA9z_J4&D3F80& delta 3775 zcma)9dr+0f70)jB4cCtHFrXJMkILo31uqCxuu&nTQq+K9us*5~RBk?m3KvXbf?}E0 z*iaL4$ivz?(u_0hOfpJuW}2kZUst}jAC+UsPz;6 zG?*EvUJWr-m`(RmZDIwRN};oPCOVXFr7tsHmPaDsJsO+^z<;d4k1Oz#^8)Wt;Jlu} zMGq~`ER@^{V|UNR4!xD>6EQbnHWs^aBZ>ygyXeWRe@Tmp4!4%XND~LNG!PYV_3oux z3+w6LVjB(nOytPkB3&llG8a|vOAv{)CMR3Qo5;QLQCS$#`@{OFSf4Xu%!o6QDA`KF zmnS6oeM#ajt@q{Hw*hY2Xf)ABb+PoCZ>2L1n&c|MyLvB*ge#Mxa@%Ax5DMt$xt$_F zDS1t@8;Tqn4_fVASm6S~)!0Zyhc{u<}?7%0=0q!udxD$3@a@K)~vNW2=w8~@9q|r+?R@r5uiLxwtKxTQ@6a{6`Of8F$Qz87y!>3oVKn3oMEmu@(+`PR5V0kq4Op3mI`Rgp_9iYTV%n zG&TOserIHf+cdQLn5?uYj~G}~(BU-+vcjTpcWB&gz-3}AvnXQJ&kLVT0G|c$S)k;w zm`QtC#zvI`<7MfJ88_jPVurXv<7HlXSt~${(HXyE7b#-YW7{+_cRYa~iahaPrUin9eG#XwK9W%l< zW?(MS`NzJ8#ocv@@&k)vfZ58!(}vTkO2b><$a7x80?mN)7G^+VNUU2XWSSM*YjX2^ zdbwd2gGZYs^Lr`%zOqFYVKje%u^i@-t1wW&CNt7(erPal@SEvzN$9xd&RVQyCC2Mn ziy-u#XiFPuZLnT$SJ)^+wk_HMhf?*Xd|KvlNbgFs{e}O%uutf{4t?^0&9Zjw+*iQR-E+4$Nby^ROE#g%Anrdt1R$G{5qKpe{kIrbBf}vcv}R+1>!gv~h|i>Q*{y(9yhG#q;?}`ugS? z`7>BYlCZ=mz)r#c`dTOrhcQ z80zlyd2aIBx#T#7{sZKIAwD1$r~@px4nc&k|BsZ-nWu*wvni&0)vi2*BdK=f2n#q; z!ab&Ev0YO|+7(q++2`X4EU_mn;0X&4aUCq`zU#v~isy;n&K|#yn>T8cmIp zyvp@3?TlYQHM`p6ZGdsz`AKBPO*_4`*XulaACj+VG5vLKYJ%Mnj>LhMip1gINFFgO z8#Gn^NXW5glMory-C8Q#bi8RwmO5rbD&{6%x&`!kph`Xw(LWy6zwuP9Y>w!glwKA% za2Y$@3_25jzC(rocOy%>9SC0}QCnNCy$@5SjpGg#eS5RdnGcPQ-o=Y%qW`%0IXM8F ze5bKAGUFs2+neol-G>tn{$1AUV|))S75sZM!NUZCr&n99i;q?8V|1={Onw%LJF7>GV-f6YIz~^MPmbvrM^%iO(JIEgXcgnH+6tZ5ut>*v5iw>` zMth4WW(Xg3M_cGZdxu;Rjl>u0l@fPBCCs>tYjh>}rf6dI3fUN~5{(5Xns{DKUB1C8 zpJgb%3J&s$x!InF{sY+#Bb;L_kYg;6?JUAMR?o&b$G#nnG#BqE;IkT-1%O9qfqw&F zF5P|Pem`EPnVwx)mDzAg$z8{2+ZyYmnW%Z^-V8_nix8 zx9FpW11Sl8@JS_iQcRc?Nim!fkJ4Wb)F)&@sfInX!yXJ5hmJhAPSE7@>*A_JuQRy2 zv7@!KW#=<{zSG{)UnN4NU2Y+^hqfR5Ldq&ZPaOXIkRKLu`4jB5w>Grw?s#_J?qGjc zzkz|H!9Z$PzekM+VgjoI6~_1RL)nW@CLYQ;_}s;B6@Gb)9e6V0d24)tcM={tMhVI{ dZXV+V=f8n+V - + @@ -715,7 +715,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/file.html b/docs/_build/html/_modules/gen3/file.html index e7a6c5036..3a7945131 100644 --- a/docs/_build/html/_modules/gen3/file.html +++ b/docs/_build/html/_modules/gen3/file.html @@ -8,7 +8,7 @@ - + @@ -359,7 +359,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/index.html b/docs/_build/html/_modules/gen3/index.html index 2ac12ffd6..55c89c086 100644 --- a/docs/_build/html/_modules/gen3/index.html +++ b/docs/_build/html/_modules/gen3/index.html @@ -8,7 +8,7 @@ - + @@ -1100,7 +1100,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/jobs.html b/docs/_build/html/_modules/gen3/jobs.html index 4584edd42..b3f266ef7 100644 --- a/docs/_build/html/_modules/gen3/jobs.html +++ b/docs/_build/html/_modules/gen3/jobs.html @@ -8,7 +8,7 @@ - + @@ -331,7 +331,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/metadata.html b/docs/_build/html/_modules/gen3/metadata.html index 733e14789..0dc385551 100644 --- a/docs/_build/html/_modules/gen3/metadata.html +++ b/docs/_build/html/_modules/gen3/metadata.html @@ -8,7 +8,7 @@ - + @@ -1118,7 +1118,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/object.html b/docs/_build/html/_modules/gen3/object.html index a531e5a3d..ec15a5180 100644 --- a/docs/_build/html/_modules/gen3/object.html +++ b/docs/_build/html/_modules/gen3/object.html @@ -8,7 +8,7 @@ - + @@ -150,7 +150,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/query.html b/docs/_build/html/_modules/gen3/query.html index 45c3491f8..090d4c48f 100644 --- a/docs/_build/html/_modules/gen3/query.html +++ b/docs/_build/html/_modules/gen3/query.html @@ -8,7 +8,7 @@ - + @@ -306,7 +306,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/submission.html b/docs/_build/html/_modules/gen3/submission.html index 7f760de51..982c67c80 100644 --- a/docs/_build/html/_modules/gen3/submission.html +++ b/docs/_build/html/_modules/gen3/submission.html @@ -8,7 +8,7 @@ - + @@ -857,7 +857,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/tools/download/drs_download.html b/docs/_build/html/_modules/gen3/tools/download/drs_download.html index a38140eb2..7fe0f1c3a 100644 --- a/docs/_build/html/_modules/gen3/tools/download/drs_download.html +++ b/docs/_build/html/_modules/gen3/tools/download/drs_download.html @@ -8,7 +8,7 @@ - + @@ -1527,7 +1527,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/tools/indexing/download_manifest.html b/docs/_build/html/_modules/gen3/tools/indexing/download_manifest.html index 0804272be..5d84308c7 100644 --- a/docs/_build/html/_modules/gen3/tools/indexing/download_manifest.html +++ b/docs/_build/html/_modules/gen3/tools/indexing/download_manifest.html @@ -8,7 +8,7 @@ - + @@ -607,7 +607,7 @@

Related Topics

- + 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 95d5e273a..a43fad6bf 100644 --- a/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html +++ b/docs/_build/html/_modules/gen3/tools/indexing/index_manifest.html @@ -8,7 +8,7 @@ - + @@ -715,7 +715,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/tools/indexing/verify_manifest.html b/docs/_build/html/_modules/gen3/tools/indexing/verify_manifest.html index e18deccb3..04f9b5602 100644 --- a/docs/_build/html/_modules/gen3/tools/indexing/verify_manifest.html +++ b/docs/_build/html/_modules/gen3/tools/indexing/verify_manifest.html @@ -8,7 +8,7 @@ - + @@ -513,7 +513,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/tools/metadata/ingest_manifest.html b/docs/_build/html/_modules/gen3/tools/metadata/ingest_manifest.html index 4cf4e71d9..b4f1bc9fd 100644 --- a/docs/_build/html/_modules/gen3/tools/metadata/ingest_manifest.html +++ b/docs/_build/html/_modules/gen3/tools/metadata/ingest_manifest.html @@ -8,7 +8,7 @@ - + @@ -617,7 +617,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/gen3/wss.html b/docs/_build/html/_modules/gen3/wss.html index deb8d058f..815b18805 100644 --- a/docs/_build/html/_modules/gen3/wss.html +++ b/docs/_build/html/_modules/gen3/wss.html @@ -8,7 +8,7 @@ - + @@ -289,7 +289,7 @@

Related Topics

- + diff --git a/docs/_build/html/_modules/index.html b/docs/_build/html/_modules/index.html index 233fbb291..6ddccd2a7 100644 --- a/docs/_build/html/_modules/index.html +++ b/docs/_build/html/_modules/index.html @@ -8,7 +8,7 @@ - + @@ -89,7 +89,7 @@

Related Topics

- + diff --git a/docs/_build/html/_static/basic.css b/docs/_build/html/_static/basic.css index 4157edf27..e5179b7a9 100644 --- a/docs/_build/html/_static/basic.css +++ b/docs/_build/html/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/_build/html/_static/doctools.js b/docs/_build/html/_static/doctools.js index d06a71d75..4d67807d1 100644 --- a/docs/_build/html/_static/doctools.js +++ b/docs/_build/html/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/docs/_build/html/_static/language_data.js b/docs/_build/html/_static/language_data.js index 250f5665f..367b8ed81 100644 --- a/docs/_build/html/_static/language_data.js +++ b/docs/_build/html/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/docs/_build/html/_static/searchtools.js b/docs/_build/html/_static/searchtools.js index 7918c3fab..92da3f8b2 100644 --- a/docs/_build/html/_static/searchtools.js +++ b/docs/_build/html/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -99,7 +99,7 @@ const _displayItem = (item, searchTerms, highlightTerms) => { .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js @@ -116,8 +116,8 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, @@ -137,6 +137,22 @@ const _displayNextItem = ( // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -160,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -239,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -284,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -308,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -361,7 +398,12 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy @@ -466,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -496,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -549,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/docs/_build/html/auth.html b/docs/_build/html/auth.html index 7c780e976..f1f132afd 100644 --- a/docs/_build/html/auth.html +++ b/docs/_build/html/auth.html @@ -9,7 +9,7 @@ - + @@ -184,7 +184,7 @@

Related Topics

- + diff --git a/docs/_build/html/file.html b/docs/_build/html/file.html index f7927b4ae..98b162de3 100644 --- a/docs/_build/html/file.html +++ b/docs/_build/html/file.html @@ -9,7 +9,7 @@ - + @@ -237,7 +237,7 @@

Related Topics

- + diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index 5b481505e..d7372298c 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -8,7 +8,7 @@ - + @@ -678,7 +678,7 @@

Related Topics

- + diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index 016cb7fc6..36787eb40 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -9,7 +9,7 @@ - + @@ -347,7 +347,7 @@

Related Topics

- + diff --git a/docs/_build/html/indexing.html b/docs/_build/html/indexing.html index 0db7bc49a..1df22043b 100644 --- a/docs/_build/html/indexing.html +++ b/docs/_build/html/indexing.html @@ -9,7 +9,7 @@ - + @@ -206,10 +206,10 @@

Gen3 Index Class
Parameters:
    -
  • format (json - json in the) –

  • +
  • format (json - json in the)

  • { – ‘uploader’: type(string) ‘file_name’: type(string) (optional*)

  • -
  • }

  • +
  • }

J(Uyps)L_a|}wVMeV2G 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%0D`uHe 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

@@ -307,7 +307,7 @@

Gen3 Index Class

Parameters:
    -
  • delete (guid -- GUID of the object to) –

  • -
  • True (delete_file_locations -- if) –

  • -
  • location (removes the object from existing bucket) –

  • +
  • delete (guid -- GUID of the object to)

  • +
  • True (delete_file_locations -- if)

  • +
  • location (removes the object from existing bucket)

Returns:
@@ -127,7 +127,7 @@

Related Topics

- + diff --git a/docs/_build/html/py-modindex.html b/docs/_build/html/py-modindex.html index 78808627d..30c6e7322 100644 --- a/docs/_build/html/py-modindex.html +++ b/docs/_build/html/py-modindex.html @@ -8,7 +8,7 @@ - + @@ -125,7 +125,7 @@

Related Topics

- + diff --git a/docs/_build/html/query.html b/docs/_build/html/query.html index 2946ab0c5..9acf1a925 100644 --- a/docs/_build/html/query.html +++ b/docs/_build/html/query.html @@ -9,7 +9,7 @@ - + @@ -212,7 +212,7 @@

Related Topics

- + diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index d78a97984..5b922a554 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -9,14 +9,15 @@ - + - - + + + @@ -60,10 +61,7 @@

Search

- -
- -
+
diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index f5fcc35c0..7f8475b8d 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, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "endpoint": [0, 1, 2, 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, "client_credenti": 0, "client_scop": 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, 5, 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, 5, 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, 11], "accesstoken": 0, "If": [0, 1, 7, 11, 12], "can": [0, 3, 4, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "local": [0, 13], "indic": [0, 11], "environ": 0, "fenc": [0, 1], "tupl": [0, 3, 11, 12], "client_id": 0, "client_secret": 0, "oidc": 0, "client": [0, 3], "ha": [0, 11], "grant": 0, "allow": [0, 6, 8, 10, 11, 12], "obtain": [0, 10], "space": [0, 11], "separ": [0, 11], "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "scope": [0, 1], "user": [0, 10, 12], "data": [0, 1, 3, 5, 7, 8, 10, 11], "openid": 0, "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, 11], "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, "id": [0, 1, 3, 5, 10, 11], "secret": 0, "note": [0, 3, 11, 12], "should": [0, 8, 11], "never": 0, "hardcod": 0, "http": [0, 7, 11, 12], "datacommon": 0, "o": 0, "gen3_oidc_client_creds_secret": 0, "initi": [0, 10], "follow": [0, 11], "curl": [0, 2], "given": [0, 3, 4, 5, 8, 10, 12, 13], "ex": [0, 11, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "respons": [0, 1, 3, 4, 5], "under": [0, 8, 13], "index": [0, 2, 5, 9], "authz": [0, 1, 2, 3, 9, 10, 11], "map": [0, 11], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "post": [0, 11], "put": 0, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "els": [0, 12], "filenam": [0, 8, 10, 11, 12], "get_access_token": [0, 2], "auto": [0, 2], "within": [0, 2, 9], "5": [0, 5], "minut": 0, "get_access_token_from_wt": [0, 2], "try": 0, "fetch": 0, "namespac": [0, 12], "refresh_access_token": [0, 2], "new": [0, 3], "gen3fil": [1, 2], "auth_provid": [1, 2, 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, 2, 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, 2], "guid": [1, 2, 3, 5, 6, 9, 11, 12], "method": [1, 7, 10], "deprec": 1, "delete_file_loc": [1, 2, 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], "text": [1, 7, 8], "result": [1, 8, 10, 11], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "download_singl": [1, 2], "object_id": [1, 2, 9, 10], "singl": [1, 5, 8], "": [1, 4, 8, 10, 11], "uniqu": [1, 5], "get_presigned_url": [1, 2], "protocol": 1, "retriev": [1, 8, 10, 12], "give": 1, "limit": [1, 3, 5, 12], "time": [1, 3, 8, 10, 11], "pick": 1, "avail": [1, 2, 10, 11], "queri": [1, 2, 3, 5, 8, 11, 12], "upload_fil": [1, 2], "file_nam": [1, 2, 3, 9, 10, 11], "expires_in": 1, "bucket": [1, 6], "upload": [1, 2, 3, 8, 13], "author": 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, 3, 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, "must": [1, 5], "allowed_data_upload_bucket": 1, "data_upload_bucket": 1, "represent": [1, 3], "document": [1, 3], "upload_file_to_guid": [1, 2], "exist": [1, 3, 5, 6, 9, 12], "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, "gen3index": [2, 3], "async_create_record": [2, 3], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_query_url": [2, 3], "async_update_record": [2, 3], "create_blank": [2, 3], "create_new_vers": [2, 3], "create_record": [2, 3], "delete_record": [2, 3, 8], "get_all_record": [2, 3], "get_guids_prefix": [2, 3], "get_latest_vers": [2, 3], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "is_healthi": [2, 3, 4, 5], "query_url": [2, 3], "update_blank": [2, 3], "update_record": [2, 3], "job": 2, "gen3job": [2, 4, 10], "async_run_job_and_wait": [2, 4], "create_job": [2, 4], "get_output": [2, 4], "get_statu": [2, 4], "list_job": [2, 4], "metadata": [2, 3, 6, 9, 11], "gen3metadata": [2, 5], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_get": [2, 5], "async_get_alias": [2, 5], "async_upd": [2, 5], "async_update_alias": [2, 5], "batch_creat": [2, 5], "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_index_key_path": [2, 5], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_index_key_path": [2, 5], "get_alias": [2, 5], "get_index_key_path": [2, 5], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "gen3object": [2, 6], "delete_object": [2, 6], "gen3queri": [2, 7], "graphql_queri": [2, 7], "raw_data_download": [2, 7], "submiss": 2, "gen3submiss": [2, 8], "create_program": [2, 8], "create_project": [2, 8], "delete_nod": [2, 8], "delete_program": [2, 8], "delete_project": [2, 8], "export_nod": [2, 8], "export_record": [2, 8], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_graphql_schema": [2, 8], "get_program": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_project": [2, 8], "open_project": [2, 8], "submit_fil": [2, 8], "submit_record": [2, 8], "tool": 2, "dr": [2, 9], "downloadmanag": [2, 9, 10], "cache_hosts_wts_token": [2, 9, 10], "get_fresh_token": [2, 9, 10], "resolve_object": [2, 9, 10], "user_access": [2, 9, 10], "downloadstatu": [2, 9, 10], "statu": [2, 4, 9, 10], "start_tim": [2, 9, 10], "end_tim": [2, 9, 10], "object_typ": [2, 9, 10], "hostnam": [2, 9, 10], "file_s": [2, 9, 10, 11], "updated_tim": [2, 9, 10], "created_tim": [2, 9, 10], "access_method": [2, 9, 10], "children": [2, 9, 10], "_manag": [2, 9, 10], "pprint": [2, 9, 10], "manifest": [2, 8, 9, 10, 11, 12], "md5sum": [2, 9, 10], "commons_url": [2, 9, 10, 11, 12], "create_object_list": [2, 9, 10], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "download_drs_object": [], "download_files_in_drs_manifest": [2, 9, 10], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "current_dir": [2, 9, 11], "indexd_record_page_s": [2, 9, 11], "max_concurrent_request": [2, 9, 11, 12], "tmp_folder": [2, 9, 11], "async_download_object_manifest": [2, 9, 11], "size": [2, 3, 9, 10, 11], "md5": [2, 3, 9, 11], "acl": [2, 3, 9, 11], "prev_guid": [2, 9, 11], "threadcontrol": [2, 9, 11], "delete_all_guid": [2, 9, 11], "index_object_manifest": [2, 9, 11], "verifi": [2, 9], "async_verify_object_manifest": [2, 9, 11], "ingest": [2, 9], "column_to_use_as_guid": [2, 9, 12], "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_urls_from_indexd": [2, 9, 12], "gen3wsstorag": [2, 13], "copi": [2, 13], "download_url": [2, 13], "l": [2, 13], "ls_path": [2, 13], "rm": [2, 13], "rm_path": [2, 13], "upload_url": [2, 13], "modul": [2, 10, 11], "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, "async": [3, 4, 5, 9, 11, 12], "hash": [3, 11], "did": 3, "baseid": 3, "urls_metadata": 3, "version": [3, 4, 5], "_ssl": [3, 4, 5], "asynchron": [3, 4, 5], "dict": [3, 4, 5, 10, 11, 12], "eg": 3, "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, 5, 10, 11], "entri": [3, 11], "attach": [3, 5], "each": [3, 8, 10, 11], "group": 3, "previou": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "match": [3, 5, 12], "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], "pattern": [3, 12], "against": [3, 7, 8, 11, 12], "kwarg": [3, 4, 5], "bodi": 3, "dictionari": [3, 4, 5, 7, 8], "format": [3, 5, 8, 11], "blank": 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, "good": 3, "idea": 3, "number": [3, 7, 8, 11, 12], "noth": [3, 6], "dist_resolut": 3, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "alia": [3, 5], "distribut": 3, "identifi": [3, 5, 9, 11], "boolean": 3, "we": [3, 11], "pagin": 3, "fals": [3, 5, 6, 10, 11], "start": [3, 4, 7, 8, 10], "prefix": 3, "rtype": 3, "has_vers": 3, "latest": 3, "exclud": 3, "without": [3, 5], "repres": [3, 5, 10], "info": [3, 11], "algorithm": 3, "count": 3, "valid": [3, 7], "file_st": 3, "like": [3, 5, 9, 11, 12], "signpost": 3, "healthi": [3, 4, 5], "rev": 3, "revis": 3, "simpl": 3, "consist": 3, "mechan": 3, "dispatch": 4, "job_nam": 4, "job_input": 4, "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, 5], "input": [4, 10, 11], "job_id": 4, "previous": 4, "complet": [4, 11], "bool": [4, 5, 8, 10, 11, 12], "md": [5, 7, 10, 12], "admin_endpoint_suffix": 5, "admin": [5, 11], "alias": 5, "overwrit": 5, "what": 5, "end": [5, 10], "up": [5, 9], "blob": [5, 7], "asyncron": 5, "altern": [5, 11], "merg": 5, "AND": 5, "descript": [3, 5], "metadata_list": 5, "specif": [5, 8, 11, 12], "expect": [5, 9, 11], "anoth": 5, "databas": 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, 11], "same": [5, 11, 13], "whose": 5, "ani": [5, 10, 11], "But": 5, "differ": 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, "level": 6, "current": [6, 8, 10], "system": [6, 7, 8, 9], "elasticsearch": 7, "query_str": 7, "execut": [7, 8, 11], "graphql": [7, 8], "query_txt": [7, 8], "syntax": 7, "see": [7, 10, 11], "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, "regular": 7, "tier": 7, "mode": 7, "subject": [7, 8], "50": 7, "vital_statu": 7, "submitter_id": 7, "aliv": 7, "asc": 7, "sort_field": 7, "raw": [7, 11], "project_id": [7, 8], "my_program": 7, "my_project": 7, "submit": [8, 11], "export": [8, 10], "sheepdog": 8, "through": [8, 11], "peregrin": 8, "sub": 8, "program": [8, 11], "project": [8, 11], "dcf": 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, "empti": [8, 11], "uuid1": 8, "uuid2": 8, "node_typ": 8, "fileformat": 8, "which": [8, 10], "belong": 8, "either": 8, "tsv": [8, 11, 12], "screen": 8, "sampl": [8, 10], "ccle_sample_nod": 8, "d70b41b9": 8, "6f90": 8, "4714": 8, "8420": 8, "e043ab8b77b9": 8, "ccle_one_record": 8, "entir": 8, "schema": 8, "run": [8, 11], "introspect": 8, "regist": 8, "mark": 8, "open": [8, 10, 11], "mean": 8, "etc": 8, "max_tri": 8, "retri": 8, "fail": [8, 10], "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, "arrai": 8, "action": [9, 11], "These": 9, "broken": 9, "broad": 9, "categori": 9, "task": 9, "relat": 9, "persist": 9, "Such": 9, "mai": [9, 11], "involv": 9, "assign": 9, "everi": [9, 11], "alreadi": 9, "larg": 9, "most": 9, "util": 9, "capabl": 9, "make": [9, 11], "effici": 9, "main": 10, "datafil": 10, "manifest_1": 10, "my_common": 10, "org": 10, "gen3": [10, 11, 12], "my_credenti": 10, "howto": 10, "drsdownload": 10, "drs_download": 10, "download_list": 10, "show_progress": 10, "assist": 10, "minimum": 10, "interest": 10, "object_list": 10, "host": 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, "save": 10, "show": 10, "bar": 10, "disabl": 10, "unpack": 10, "packag": 10, "after": 10, "them": [10, 11], "drs_hostnam": 10, "known": 10, "otherwis": 10, "success": 10, "resolv": 10, "permiss": 10, "wai": 10, "determin": [10, 11, 12], "reason": 10, "pend": 10, "objectid": 10, "datamanag": 10, "occur": 10, "attribut": [10, 11], "drsobjecttyp": 10, "unknown": 10, "factori": 10, "popul": [10, 12], "server": 10, "requir": 10, "byte": 10, "timestamp": 10, "last": 10, "g": 10, "child": 10, "bundl": 10, "self": 10, "indent": 10, "pretti": 10, "In": 10, "similar": 10, "linux": 10, "tree": 10, "command": [10, 11], "typic": 10, "discoveri": 10, "cach": 10, "files": 10, "static": 10, "bownload": 10, "successfulli": 10, "pars": [10, 11, 12, 13], "output_dir": 10, "conveni": 10, "infil": 10, "wrapper": 10, "cli": 10, "process": 11, "coroutin": 11, "asyncio": [11, 12], "librari": 11, "comma": 11, "header": 11, "download_manifest": 11, "per": [11, 12], "maximum": [11, 12], "desir": 11, "concurr": [11, 12], "across": 11, "thread": 11, "folder": 11, "place": 11, "temporari": 11, "write": 11, "safe": 11, "so": 11, "To": 11, "workaround": 11, "concat": 11, "output_filenam": [11, 12], "num_process": 11, "24": [11, 12], "input_manifest": 11, "python_subprocess_command": 11, "root": [11, 12], "domain": [11, 12], "live": [11, 12], "parallel": 11, "hit": 11, "total": 11, "help": 11, "everyth": 11, "attempt": 11, "By": 11, "someth": 11, "maco": 11, "x": 11, "python3": 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, "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, "processed_fil": 11, "num_total_fil": 11, "synchron": 11, "warn": 11, "IF": 11, "know": 11, "THE": 11, "implic": 11, "manifest_file_delimit": [11, 12], "submit_additional_metadata_column": 11, "force_metadata_columns_even_if_empti": 11, "loop": 11, "password": [11, 12], "flag": 11, "replac": 11, "delimit": 11, "forc": 11, "creation": [3, 11], "even": 11, "enabl": 11, "illustr": 11, "columna": 11, "columnb": 11, "columnc": 11, "dataa": 11, "datab": 11, "guid_exampl": 11, "md5_hash": 11, "fieldnam": 11, "There": 11, "those": 11, "abov": 11, "overrid": [11, 12], "assum": 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, "_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, "1692675811": [], "9771066": [], "indexd_field": [11, 12], "func_to_parse_row": [11, 12], "delimet": [11, 12], "metdata": 12, "ingest_manifest": 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, "metadata_sourc": 12, "1692675812": [], "3144128": [], "get_guid_from_fil": 12, "metadata_typ": 12, "dbgap": 12, "usual": 12, "fill": 12, "_guid_typ": 12, "is_indexed_file_object": 12, "lock": 12, "semaphor": 12, "semaphon": 12, "ammount": 12, "connect": 12, "wss": 13, "src_urlstr": 13, "dest_urlstr": 13, "appropri": 13, "src_w": 13, "src_wskei": 13, "dest_path": 13, "disk": 13, "w": 13, "wskei": 13, "ws_urlstr": 13, "form": 13, "src_path": 13, "dest_w": 13, "dest_wskei": 13, "1692676927": [], "2291234": [], "6143494": [], "1692716275": [], "1734753": [], "577429": [], "1692716527": [], "4222114": [], "9511294": [], "1692717039": [], "3338752": [], "744264": [], "1692741377": [], "0982177": [], "4559627": [], "1692743380": [], "4060478": [], "7860734": [], "1692743691": [], "983341": [], "1692743692": [], "4543839": [], "1692825679": [], "249731": [], "5510318": [], "1692886743": [], "381985": [], "8074749": [], "1693592991": [], "493957": [], "9576306": [], "1693593902": [], "1950202": [], "507454": [], "1696860505": [], "0205865": [], "4065857": [], "1696863250": [], "490177": [], "780603": [], "1696863654": [], "490772": [], "8764913": [], "1696866574": [], "146243": [], "4969604": [], "1696867172": [], "15485": [], "4488156": [], "1696870997": [], "41439": [], "7891934": [], "1696874363": [], "5903769": [], "1696874364": [], "0760994": [], "1696874786": [], "0779042": [], "4368396": [], "1696875823": [], "7846825": [], "1696875824": [], "2559378": [], "1696877990": [], "9968846": [], "1696877991": [], "3616166": [], "1696878184": [], "6719804": [], "1696878185": [], "1095488": [], "1696878605": [], "0427673": [], "4048421": [], "1696885653": [], "7007155": [], "1696885654": [], "1520922": [], "1697467909": [], "0874708": [], "51657": [], "1697484656": [], "68711": [], "1697484657": [], "1308327": [], "1700001291": [], "6339526": [], "9630976": [], "1700002025": [], "294231": [], "5915642": [], "1700004267": [], "4130003": [], "8317993": [], "1700005111": [], "074543": [], "4001298": [], "1700005642": [], "8724742": [], "1700005643": [], "1597712": [], "1700499325": [], "4715705": [], "7661629": [], "1700591014": [], "4958894": [], "8457959": [], "1700592493": [], "8351357": [], "1700592494": [], "1116993": [], "1700678708": [], "9883742": [], "1700678709": [], "2699912": [], "1700678999": [], "9725351": [], "1700679000": [], "272037": [], "1701839488": [], "6993823": [], "1701839489": [], "0258799": [], "1701900364": [], "6706986": [], "9645383": [], "1701992223": [], "1760724": [], "50045": [], "1703187722": [], "008161": [], "3511112": [], "1707152739": [], "444163": [], "7294014": [], "1707153921": [], "9775102": [], "1707153922": [], "2934358": [], "1707755283": [], "0218701": [], "3274062": [], "1707755397": [], "8761852": [], "1707755398": [], "2227244": [], "1707775436": [], "8775291": [], "1707775437": [], "2080507": [], "1708924717": [], "6038976": [], "9058018": [], "1708924776": [], "1099105": [], "3872406": [], "content_created_d": 3, "content_updated_d": 3, "date": 3, "being": 3, "1708971147": [], "0555665": [], "3980484": [], "1709071889": [], "1303432": [], "4402523": [], "1709222307": [], "153123": [], "5054574": [], "1712855728": [], "6403887": [], "9809217": [], "1712855909": [], "277997": [], "1712855910": [], "009207": [], "1712858156": [], "918798": [], "1712858157": [], "2194588": [], "1712859043": [], "261142": [], "577593": [], "1712860233": [11, 12], "4513571": 11, "8504217": 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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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_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, "": 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": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1, "sphinx": 60}, "alltitles": {"Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]], "Indices and tables": [[2, "indices-and-tables"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Indexing Tools": [[11, "indexing-tools"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]]}, "indexentries": {"gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth"]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl"]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token"]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts"]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token"]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File"]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file"]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations"]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single"]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url"]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file"]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid"]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index"]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record"]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record"]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum"]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page"]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params"]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls"]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record"]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank"]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version"]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record"]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record"]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get"]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records"]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix"]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version"]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record"]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc"]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records"]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page"]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats"]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls"]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids"]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version"]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions"]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params"]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy"]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls"]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank"]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record"]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs"]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait"]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job"]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output"]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status"]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version"]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy"]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs"]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata"]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create"]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases"]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias"]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases"]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get"]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases"]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update"]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases"]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider"]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create"]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create"]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases"]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path"]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete"]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias"]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases"]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path"]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint"]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get"]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases"]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths"]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version"]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy"]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query"]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update"]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases"]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object"]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object"]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query"]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query"]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query"]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download"]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission"]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program"]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project"]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node"]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes"]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program"]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project"]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record"]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records"]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node"]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record"]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all"]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node"]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema"]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs"]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary"]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest"]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects"]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project"]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query"]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file"]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record"]], "gen3.tools": [[9, "module-gen3.tools"]], "module": [[9, "module-gen3.tools"], [10, "module-gen3.tools.download.drs_download"], [11, "module-gen3.tools.indexing.download_manifest"], [11, "module-gen3.tools.indexing.index_manifest"], [11, "module-gen3.tools.indexing.verify_manifest"], [12, "module-gen3.tools.metadata.ingest_manifest"]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager"]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus"]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable"]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest"]], "_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager"]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods"]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens"]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children"]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url"]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list"]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time"]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download"]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download"]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest"]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time"]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name"]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name"]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size"]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size"]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download"]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token"]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname"]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest"]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object"]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest"]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load"]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest"]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum"]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id"]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id"]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type"]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint"]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects"]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time"]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status"]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time"]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access"]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS"]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ"]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR"]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR"]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID"]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE"]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS"]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS"]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5"]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID"]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE"]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER"]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl"]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS"]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest"]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest"]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids"]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest"]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest"]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest"]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest"]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID"]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT"]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT"]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS"]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest"]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd"]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage"]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy"]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download"]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url"]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls"]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path"]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm"]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path"]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload"]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"DRS Download Tools": [[10, "module-gen3.tools.download.drs_download"]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Gen3 Auth Helper": [[0, "gen3-auth-helper"]], "Gen3 File Class": [[1, "gen3-file-class"]], "Gen3 Index Class": [[3, "gen3-index-class"]], "Gen3 Jobs Class": [[4, "gen3-jobs-class"]], "Gen3 Metadata Class": [[5, "gen3-metadata-class"]], "Gen3 Object Class": [[6, "gen3-object-class"]], "Gen3 Query Class": [[7, "gen3-query-class"]], "Gen3 Submission Class": [[8, "gen3-submission-class"]], "Gen3 Tools": [[9, "gen3-tools"]], "Gen3 Workspace Storage": [[13, "gen3-workspace-storage"]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Indexing Tools": [[11, "indexing-tools"]], "Indices and tables": [[2, "indices-and-tables"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Metadata Tools": [[12, "metadata-tools"]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, "welcome-to-gen3-sdk-s-documentation"]]}, "docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "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"], "indexentries": {"_manager (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable._manager", false]], "access_methods (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.access_methods", false]], "acls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ACLS", false]], "async_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create", false]], "async_create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_create_aliases", false]], "async_create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_create_record", false]], "async_delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_alias", false]], "async_delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_delete_aliases", false]], "async_download_object_manifest() (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.async_download_object_manifest", false]], "async_get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get", false]], "async_get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_get_aliases", false]], "async_get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_record", false]], "async_get_records_from_checksum() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_from_checksum", false]], "async_get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_records_on_page", false]], "async_get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_get_with_params", false]], "async_ingest_metadata_manifest() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_ingest_metadata_manifest", false]], "async_query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_query_urls", false]], "async_query_urls_from_indexd() (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.async_query_urls_from_indexd", false]], "async_run_job_and_wait() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.async_run_job_and_wait", false]], "async_update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update", false]], "async_update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.async_update_aliases", false]], "async_update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.async_update_record", false]], "async_verify_object_manifest() (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.async_verify_object_manifest", false]], "auth_provider (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.auth_provider", false]], "authz (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.AUTHZ", false]], "batch_create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.batch_create", false]], "cache_hosts_wts_tokens() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.cache_hosts_wts_tokens", false]], "children (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.children", false]], "column_to_use_as_guid (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.COLUMN_TO_USE_AS_GUID", false]], "commons_url (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.commons_url", false]], "copy() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.copy", false]], "create() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create", false]], "create_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_aliases", false]], "create_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_blank", false]], "create_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.create_index_key_path", false]], "create_job() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.create_job", false]], "create_new_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_new_version", false]], "create_object_list() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.create_object_list", false]], "create_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_program", false]], "create_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.create_project", false]], "create_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.create_record", false]], "created_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.created_time", false]], "curl() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.curl", false]], "current_dir (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.CURRENT_DIR", false]], "current_dir (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.CURRENT_DIR", false]], "current_dir (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.CURRENT_DIR", false]], "delete() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete", false]], "delete_alias() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_alias", false]], "delete_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_aliases", false]], "delete_all_guids() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.delete_all_guids", false]], "delete_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file", false]], "delete_file_locations() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.delete_file_locations", false]], "delete_index_key_path() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.delete_index_key_path", false]], "delete_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_node", false]], "delete_nodes() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_nodes", false]], "delete_object() (gen3.object.gen3object method)": [[6, "gen3.object.Gen3Object.delete_object", false]], "delete_program() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_program", false]], "delete_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_project", false]], "delete_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.delete_record", false]], "delete_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_record", false]], "delete_records() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.delete_records", false]], "download() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.download", false]], "download() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.download", false]], "download() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download", false]], "download_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.download_files_in_drs_manifest", false]], "download_single() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.download_single", false]], "download_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.download_url", false]], "downloadable (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Downloadable", false]], "downloadmanager (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadManager", false]], "downloadstatus (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.DownloadStatus", false]], "end_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.end_time", false]], "endpoint (gen3.metadata.gen3metadata attribute)": [[5, "gen3.metadata.Gen3Metadata.endpoint", false]], "export_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_node", false]], "export_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.export_record", false]], "file_name (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_name", false]], "file_name (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_name", false]], "file_size (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.file_size", false]], "file_size (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.file_size", false]], "gen3.tools": [[9, "module-gen3.tools", false]], "gen3.tools.download.drs_download": [[10, "module-gen3.tools.download.drs_download", false]], "gen3.tools.indexing.download_manifest": [[11, "module-gen3.tools.indexing.download_manifest", false]], "gen3.tools.indexing.index_manifest": [[11, "module-gen3.tools.indexing.index_manifest", false]], "gen3.tools.indexing.verify_manifest": [[11, "module-gen3.tools.indexing.verify_manifest", false]], "gen3.tools.metadata.ingest_manifest": [[12, "module-gen3.tools.metadata.ingest_manifest", false]], "gen3auth (class in gen3.auth)": [[0, "gen3.auth.Gen3Auth", false]], "gen3file (class in gen3.file)": [[1, "gen3.file.Gen3File", false]], "gen3index (class in gen3.index)": [[3, "gen3.index.Gen3Index", false]], "gen3jobs (class in gen3.jobs)": [[4, "gen3.jobs.Gen3Jobs", false]], "gen3metadata (class in gen3.metadata)": [[5, "gen3.metadata.Gen3Metadata", false]], "gen3object (class in gen3.object)": [[6, "gen3.object.Gen3Object", false]], "gen3query (class in gen3.query)": [[7, "gen3.query.Gen3Query", false]], "gen3submission (class in gen3.submission)": [[8, "gen3.submission.Gen3Submission", false]], "gen3wsstorage (class in gen3.wss)": [[13, "gen3.wss.Gen3WsStorage", false]], "get() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get", false]], "get() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get", false]], "get_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token", false]], "get_access_token_from_wts() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.get_access_token_from_wts", false]], "get_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_aliases", false]], "get_all_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_all_records", false]], "get_dictionary_all() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_all", false]], "get_dictionary_node() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_dictionary_node", false]], "get_fresh_token() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.get_fresh_token", false]], "get_graphql_schema() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_graphql_schema", false]], "get_guids_prefix() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_guids_prefix", false]], "get_index_key_paths() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_index_key_paths", false]], "get_latest_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_latest_version", false]], "get_output() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_output", false]], "get_presigned_url() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.get_presigned_url", false]], "get_programs() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_programs", false]], "get_project_dictionary() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_dictionary", false]], "get_project_manifest() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_project_manifest", false]], "get_projects() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.get_projects", false]], "get_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record", false]], "get_record_doc() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_record_doc", false]], "get_records() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records", false]], "get_records_on_page() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_records_on_page", false]], "get_stats() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_stats", false]], "get_status() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_status", false]], "get_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_urls", false]], "get_valid_guids() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_valid_guids", false]], "get_version() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_version", false]], "get_version() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.get_version", false]], "get_version() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.get_version", false]], "get_versions() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_versions", false]], "get_with_params() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.get_with_params", false]], "graphql_query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.graphql_query", false]], "guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.GUID", false]], "guid_type_for_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_INDEXED_FILE_OBJECT", false]], "guid_type_for_non_indexed_file_object (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.GUID_TYPE_FOR_NON_INDEXED_FILE_OBJECT", false]], "hostname (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.hostname", false]], "index_object_manifest() (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.index_object_manifest", false]], "indexd_record_page_size (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.INDEXD_RECORD_PAGE_SIZE", false]], "is_healthy() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.is_healthy", false]], "is_healthy() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.is_healthy", false]], "is_healthy() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.is_healthy", false]], "list_access_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_access_in_drs_manifest", false]], "list_drs_object() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_drs_object", false]], "list_files_in_drs_manifest() (in module gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.list_files_in_drs_manifest", false]], "list_jobs() (gen3.jobs.gen3jobs method)": [[4, "gen3.jobs.Gen3Jobs.list_jobs", false]], "load() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load", false]], "load_manifest() (gen3.tools.download.drs_download.manifest static method)": [[10, "gen3.tools.download.drs_download.Manifest.load_manifest", false]], "ls() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls", false]], "ls_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.ls_path", false]], "manifest (class in gen3.tools.download.drs_download)": [[10, "gen3.tools.download.drs_download.Manifest", false]], "max_concurrent_requests (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.MAX_CONCURRENT_REQUESTS", false]], "max_concurrent_requests (in module gen3.tools.indexing.verify_manifest)": [[11, "gen3.tools.indexing.verify_manifest.MAX_CONCURRENT_REQUESTS", false]], "max_concurrent_requests (in module gen3.tools.metadata.ingest_manifest)": [[12, "gen3.tools.metadata.ingest_manifest.MAX_CONCURRENT_REQUESTS", false]], "md5 (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.MD5", false]], "md5sum (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.md5sum", false]], "module": [[9, "module-gen3.tools", false], [10, "module-gen3.tools.download.drs_download", false], [11, "module-gen3.tools.indexing.download_manifest", false], [11, "module-gen3.tools.indexing.index_manifest", false], [11, "module-gen3.tools.indexing.verify_manifest", false], [12, "module-gen3.tools.metadata.ingest_manifest", false]], "object_id (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_id", false]], "object_id (gen3.tools.download.drs_download.manifest attribute)": [[10, "gen3.tools.download.drs_download.Manifest.object_id", false]], "object_type (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.object_type", false]], "open_project() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.open_project", false]], "pprint() (gen3.tools.download.drs_download.downloadable method)": [[10, "gen3.tools.download.drs_download.Downloadable.pprint", false]], "prev_guid (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.PREV_GUID", false]], "query() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.query", false]], "query() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.query", false]], "query() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.query", false]], "query_urls() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.query_urls", false]], "raw_data_download() (gen3.query.gen3query method)": [[7, "gen3.query.Gen3Query.raw_data_download", false]], "refresh_access_token() (gen3.auth.gen3auth method)": [[0, "gen3.auth.Gen3Auth.refresh_access_token", false]], "resolve_objects() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.resolve_objects", false]], "rm() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm", false]], "rm_path() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.rm_path", false]], "size (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.SIZE", false]], "start_time (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.start_time", false]], "status (gen3.tools.download.drs_download.downloadstatus attribute)": [[10, "gen3.tools.download.drs_download.DownloadStatus.status", false]], "submit_file() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_file", false]], "submit_record() (gen3.submission.gen3submission method)": [[8, "gen3.submission.Gen3Submission.submit_record", false]], "threadcontrol (class in gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.ThreadControl", false]], "tmp_folder (in module gen3.tools.indexing.download_manifest)": [[11, "gen3.tools.indexing.download_manifest.TMP_FOLDER", false]], "update() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update", false]], "update_aliases() (gen3.metadata.gen3metadata method)": [[5, "gen3.metadata.Gen3Metadata.update_aliases", false]], "update_blank() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_blank", false]], "update_record() (gen3.index.gen3index method)": [[3, "gen3.index.Gen3Index.update_record", false]], "updated_time (gen3.tools.download.drs_download.downloadable attribute)": [[10, "gen3.tools.download.drs_download.Downloadable.updated_time", false]], "upload() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload", false]], "upload_file() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file", false]], "upload_file_to_guid() (gen3.file.gen3file method)": [[1, "gen3.file.Gen3File.upload_file_to_guid", false]], "upload_url() (gen3.wss.gen3wsstorage method)": [[13, "gen3.wss.Gen3WsStorage.upload_url", false]], "urls (in module gen3.tools.indexing.index_manifest)": [[11, "gen3.tools.indexing.index_manifest.URLS", false]], "user_access() (gen3.tools.download.drs_download.downloadmanager method)": [[10, "gen3.tools.download.drs_download.DownloadManager.user_access", false]]}, "objects": {"gen3": [[9, 3, 0, "-", "tools"]], "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, "", "download_single"], [1, 1, 1, "", "get_presigned_url"], [1, 1, 1, "", "upload_file"], [1, 1, 1, "", "upload_file_to_guid"]], "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_create_aliases"], [5, 1, 1, "", "async_delete_alias"], [5, 1, 1, "", "async_delete_aliases"], [5, 1, 1, "", "async_get"], [5, 1, 1, "", "async_get_aliases"], [5, 1, 1, "", "async_update"], [5, 1, 1, "", "async_update_aliases"], [5, 2, 1, "", "auth_provider"], [5, 1, 1, "", "batch_create"], [5, 1, 1, "", "create"], [5, 1, 1, "", "create_aliases"], [5, 1, 1, "", "create_index_key_path"], [5, 1, 1, "", "delete"], [5, 1, 1, "", "delete_alias"], [5, 1, 1, "", "delete_aliases"], [5, 1, 1, "", "delete_index_key_path"], [5, 2, 1, "", "endpoint"], [5, 1, 1, "", "get"], [5, 1, 1, "", "get_aliases"], [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"], [5, 1, 1, "", "update_aliases"]], "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.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_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"]]}, "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"]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:attribute", "3": "py:module", "4": "py:function"}, "terms": {"": [1, 4, 8, 10, 11], "0": [5, 7, 8, 11], "0a80fada010c": 11, "0a80fada096c": 11, "0a80fada097c": 11, "0a80fada098c": 11, "0a80fada099c": 11, "1": [4, 5, 8, 10, 11], "10": [5, 7, 11], "100": [8, 11], "11e9": 11, "1713907726": [11, 12], "2": [5, 11], "24": [11, 12], "255e396f": 11, "3": [5, 11], "30": 8, "33": 5, "333": 5, "343434344": 11, "363455714": 11, "4": [5, 11], "450c": 11, "4714": 8, "473d83400bc1bc9dc635e334fadd433c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "5": [0, 5], "50": 7, "543434443": 11, "6f90": 8, "726641": 11, "7d3d8d2083b4": 11, "8420": 8, "93d9af72": 11, "9651651": 12, "9a07": 11, "A": [1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "AND": 5, "Be": 1, "But": 5, "By": 11, "For": [1, 5, 6, 7, 8, 9, 11], "IF": 11, "If": [0, 1, 7, 11, 12], "In": 10, "It": 10, "NOT": 12, "OR": 5, "One": 7, "Such": 9, "THE": 11, "That": 3, "The": [0, 1, 2, 3, 5, 8, 10, 11], "There": 11, "These": 9, "To": 11, "Will": [4, 7, 10], "_get_acl_from_row": 11, "_get_authz_from_row": 11, "_get_file_name_from_row": 11, "_get_file_size_from_row": 11, "_get_guid_for_row": 12, "_get_guid_from_row": 11, "_get_md5_from_row": 11, "_get_urls_from_row": 11, "_guid_typ": 12, "_manag": [2, 9, 10], "_query_for_associated_indexd_record_guid": 12, "_ssl": [3, 4, 5], "a5c6": 11, "ab167e49d25b488939b1ede42752458b": 3, "about": [2, 3], "abov": 11, "access": [0, 1, 3, 7, 10], "access_method": [2, 9, 10], "accesstoken": 0, "acl": [2, 3, 9, 11], "across": 11, "action": [9, 11], "actual": 11, "ad": 3, "add": [3, 5], "addit": [3, 5, 10, 11], "admin": [5, 11], "admin_endpoint_suffix": 5, "after": 10, "against": [3, 7, 8, 11, 12], "algorithm": 3, "alia": [3, 5], "alias": 5, "aliv": 7, "all": [1, 3, 4, 5, 6, 7, 8, 10, 11, 12], "allow": [0, 6, 8, 10, 11, 12], "allowed_data_upload_bucket": 1, "along": 2, "alreadi": 9, "also": 1, "altern": [5, 11], "alwai": 5, "ammount": 12, "amount": [1, 9], "an": [0, 3, 6, 8, 10, 11], "ani": [5, 10, 11], "anoth": 5, "api": [5, 8, 11], "api_kei": 11, "appli": 7, "appropri": 13, "ar": [5, 7, 8, 9, 10, 11], "arbitrari": 0, "argument": [0, 13], "arrai": 8, "asc": 7, "assign": 9, "assist": 10, "associ": [3, 5], "assum": 11, "async": [3, 4, 5, 9, 11, 12], "async_cr": [2, 5], "async_create_alias": [2, 5], "async_create_record": [2, 3], "async_delete_alia": [2, 5], "async_delete_alias": [2, 5], "async_download_object_manifest": [2, 9, 11], "async_get": [2, 5], "async_get_alias": [2, 5], "async_get_record": [2, 3], "async_get_records_from_checksum": [2, 3], "async_get_records_on_pag": [2, 3], "async_get_with_param": [2, 3], "async_ingest_metadata_manifest": [2, 9, 12], "async_query_url": [2, 3], "async_query_urls_from_indexd": [2, 9, 12], "async_run_job_and_wait": [2, 4], "async_upd": [2, 5], "async_update_alias": [2, 5], "async_update_record": [2, 3], "async_verify_object_manifest": [2, 9, 11], "asynchron": [3, 4, 5], "asyncio": [11, 12], "asyncron": 5, "attach": [3, 5], "attempt": 11, "attribut": [10, 11], "auth": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "auth_provid": [1, 2, 3, 4, 5, 6, 7, 8, 13], "authbas": 0, "authent": 0, "author": 1, "authz": [0, 1, 2, 3, 9, 10, 11], "auto": [0, 2], "automat": 0, "avail": [1, 2, 10, 11], "az": 1, "b": [5, 11], "b0f1": 11, "bar": 10, "base": [0, 1, 3, 4, 5, 6, 7, 8, 9, 11, 13], "baseid": 3, "basic": [3, 11, 12], "batch_creat": [2, 5], "batch_siz": 8, "behavior": 11, "being": 3, "belong": 8, "below": 11, "blank": 3, "blob": [5, 7], "bodi": 3, "bool": [4, 5, 8, 10, 11, 12], "boolean": 3, "bownload": 10, "broad": 9, "broken": 9, "bucket": [1, 6], "bundl": 10, "byte": 10, "c": [5, 11], "cach": 10, "cache_hosts_wts_token": [2, 9, 10], "call": [10, 13], "can": [0, 3, 4, 8, 11, 12], "capabl": 9, "case": 10, "categori": 9, "ccle": 8, "ccle_one_record": 8, "ccle_sample_nod": 8, "cdi": 7, "chang": [3, 11], "checksum": [3, 10], "checksum_typ": 3, "child": 10, "children": [2, 9, 10], "chunk_siz": 8, "class": [0, 2, 10, 11, 13], "cli": 10, "client": [0, 3], "client_credenti": 0, "client_id": 0, "client_scop": 0, "client_secret": 0, "code": [2, 8], "column": [11, 12], "column_to_use_as_guid": [2, 9, 12], "columna": 11, "columnb": 11, "columnc": 11, "com": 7, "comma": 11, "command": [10, 11], "common": [0, 1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "commons_url": [2, 9, 10, 11, 12], "complet": [4, 11], "complex": 7, "concat": 11, "concurr": [11, 12], "configur": 1, "connect": 12, "consist": 3, "constructor": 0, "contain": [0, 2, 5, 8, 9, 10, 11, 12], "content": [3, 13], "content_created_d": 3, "content_updated_d": 3, "continu": 10, "control": 3, "conveni": 10, "copi": [2, 13], "coroutin": 11, "correspond": 3, "count": 3, "crdc": 0, "creat": [2, 3, 4, 5, 6, 8, 10, 11], "create_alias": [2, 5], "create_blank": [2, 3], "create_index_key_path": [2, 5], "create_job": [2, 4], "create_new_vers": [2, 3], "create_object_list": [2, 9, 10], "create_program": [2, 8], "create_project": [2, 8], "create_record": [2, 3], "created_tim": [2, 9, 10], "creation": [3, 11], "cred": 3, "credenti": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "csv": [8, 11, 12], "curl": [0, 2], "current": [6, 8, 10], "current_dir": [2, 9, 11], "custom": 11, "d": 5, "d70b41b9": 8, "data": [0, 1, 3, 5, 7, 8, 10, 11], "data_spreadsheet": 8, "data_typ": 7, "data_upload_bucket": 1, "dataa": 11, "datab": 11, "databas": 5, "datacommon": 0, "datafil": 10, "datamanag": 10, "date": 3, "datetim": [1, 3, 10], "dbgap": 12, "dcf": 8, "def": 11, "default": [0, 1, 3, 7, 8, 11, 12], "defin": [5, 8, 10], "delai": 4, "delet": [0, 1, 2, 3, 5, 6, 8, 10, 11], "delete_alia": [2, 5], "delete_alias": [2, 5], "delete_all_guid": [2, 9, 11], "delete_fil": [1, 2], "delete_file_loc": [1, 2, 6], "delete_index_key_path": [2, 5], "delete_nod": [2, 8], "delete_object": [2, 6], "delete_program": [2, 8], "delete_project": [2, 8], "delete_record": [2, 3, 8], "delete_unpacked_packag": 10, "delimet": [11, 12], "delimit": 11, "demograph": 8, "deprec": 1, "descript": [3, 5], "desir": 11, "dest_path": 13, "dest_urlstr": 13, "dest_w": 13, "dest_wskei": 13, "detail": [2, 7, 10], "determin": [10, 11, 12], "dev": 11, "dict": [3, 4, 5, 10, 11, 12], "dictionari": [3, 4, 5, 7, 8], "did": 3, "differ": 5, "directori": [10, 11], "disabl": 10, "discoveri": 10, "disk": 13, "dispatch": 4, "dist_resolut": 3, "distribut": 3, "doc": [7, 10], "docstr": 2, "document": [1, 3], "doe": [0, 12], "domain": [11, 12], "done": 4, "download": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "download_files_in_drs_manifest": [2, 9, 10], "download_list": 10, "download_manifest": 11, "download_singl": [1, 2], "download_url": [2, 13], "downloadmanag": [2, 9, 10], "downloadstatu": [2, 9, 10], "dr": [2, 9], "drs_download": 10, "drs_hostnam": 10, "drsdownload": 10, "drsobjecttyp": 10, "e": [5, 10], "e043ab8b77b9": 8, "each": [3, 8, 10, 11], "effici": 9, "eg": 3, "either": 8, "elasticsearch": 7, "els": [0, 12], "elsewher": 12, "empti": [8, 11], "enabl": 11, "end": [5, 10], "end_tim": [2, 9, 10], "endpoint": [0, 1, 2, 3, 4, 5, 7, 8, 13], "entir": 8, "entri": [3, 11], "env": 0, "environ": 0, "equal": 7, "error": [10, 11, 12], "error_nam": 11, "etc": 8, "even": 11, "everi": [9, 11], "everyth": 11, "ex": [0, 11, 12], "exampl": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "exclud": 3, "execut": [7, 8, 11], "exist": [1, 3, 5, 6, 9, 12], "expect": [5, 9, 11], "experi": 8, "expir": [0, 1], "expires_in": 1, "export": [8, 10], "export_nod": [2, 8], "export_record": [2, 8], "f1f8": 11, "factori": 10, "fail": [8, 10], "fals": [3, 5, 6, 10, 11], "featur": [1, 6], "fenc": [0, 1], "fetch": 0, "field": [3, 5, 7, 11, 12], "fieldnam": 11, "file": [0, 2, 3, 4, 8, 9, 10, 11, 12, 13], "file_nam": [1, 2, 3, 9, 10, 11], "file_s": [2, 9, 10, 11], "file_st": 3, "fileformat": 8, "filenam": [0, 8, 10, 11, 12], "files": 10, "fill": 12, "filter": [5, 7], "filter_object": 7, "first": [7, 8], "flag": 11, "folder": 11, "follow": [0, 11], "forc": 11, "force_metadata_columns_even_if_empti": 11, "form": 13, "format": [3, 5, 8, 11], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], "func_to_parse_row": [11, 12], "function": [2, 3, 4, 5, 9, 10, 11, 12], "g": 10, "gen3": [10, 11, 12], "gen3_api_kei": 0, "gen3_oidc_client_creds_secret": 0, "gen3auth": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "gen3fil": [1, 2], "gen3index": [2, 3], "gen3job": [2, 4, 10], "gen3metadata": [2, 5], "gen3object": [2, 6], "gen3queri": [2, 7], "gen3submiss": [2, 8], "gen3wsstorag": [2, 13], "gener": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 13], "get": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12, 13], "get_access_token": [0, 2], "get_access_token_from_wt": [0, 2], "get_alias": [2, 5], "get_all_record": [2, 3], "get_dictionary_al": [2, 8], "get_dictionary_nod": [2, 8], "get_fresh_token": [2, 9, 10], "get_graphql_schema": [2, 8], "get_guid_from_fil": 12, "get_guids_prefix": [2, 3], "get_index_key_path": [2, 5], "get_latest_vers": [2, 3], "get_output": [2, 4], "get_presigned_url": [1, 2], "get_program": [2, 8], "get_project": [2, 8], "get_project_dictionari": [2, 8], "get_project_manifest": [2, 8], "get_record": [2, 3], "get_record_doc": [2, 3], "get_records_on_pag": [2, 3], "get_stat": [2, 3], "get_statu": [2, 4], "get_url": [2, 3], "get_valid_guid": [2, 3], "get_vers": [2, 3, 4, 5], "get_with_param": [2, 3], "giangb": 11, "github": [2, 7], "give": 1, "given": [0, 3, 4, 5, 8, 10, 12, 13], "global": [4, 5], "good": 3, "grant": 0, "graph": 8, "graphql": [7, 8], "graphql_queri": [2, 7], "group": 3, "guid": [1, 2, 3, 5, 6, 9, 11, 12], "guid_exampl": 11, "guid_for_row": 12, "guid_from_fil": 12, "guid_type_for_indexed_file_object": [2, 9, 12], "guid_type_for_non_indexed_file_object": [2, 9, 12], "guppi": 7, "ha": [0, 11], "handl": [3, 10], "hardcod": 0, "has_vers": 3, "hash": [3, 11], "hash_typ": 3, "have": [5, 11], "header": 11, "healthi": [3, 4, 5], "help": 11, "helper": 2, "hit": 11, "host": 10, "hostnam": [2, 9, 10], "how": [8, 11], "howto": 10, "http": [0, 7, 11, 12], "i": [0, 1, 2, 3, 4, 5, 8, 10, 11, 12], "id": [0, 1, 3, 5, 10, 11], "idea": 3, "identifi": [3, 5, 9, 11], "idp": 0, "illustr": 11, "immut": 3, "implement": 0, "implic": 11, "import": 11, "includ": [0, 3], "indent": 10, "index": [0, 2, 5, 9], "index_manifest": 11, "index_object_manifest": [2, 9, 11], "indexd": [1, 3, 6, 10, 11, 12], "indexd_field": [11, 12], "indexd_record_page_s": [2, 9, 11], "indexed_file_object_guid": 12, "indic": [0, 11], "infil": 10, "info": [3, 11], "inform": [2, 3, 10], "ingest": [2, 9], "ingest_manifest": 12, "initi": [0, 10], "input": [4, 10, 11], "input_manifest": 11, "instal": [0, 2, 11], "instanc": [1, 3, 6, 7, 8, 9, 10], "instead": [1, 7, 11], "int": [1, 3, 5, 7, 8, 10, 11, 12], "integ": [1, 3, 8], "interact": [1, 3, 4, 5, 6, 8, 13], "interest": 10, "interpret": 0, "introspect": 8, "involv": 9, "is_healthi": [2, 3, 4, 5], "is_indexed_file_object": 12, "isn": 1, "its": [1, 3], "job": 2, "job_id": 4, "job_input": 4, "job_nam": 4, "json": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 13], "just": [5, 11, 12], "jwt": 0, "kei": [0, 3, 5, 13], "know": 11, "known": 10, "kwarg": [3, 4, 5], "l": [2, 13], "larg": 9, "last": 10, "latest": 3, "least": 3, "level": 6, "librari": 11, "like": [3, 5, 9, 11, 12], "limit": [1, 3, 5, 12], "linear": 4, "linux": 10, "list": [0, 1, 3, 4, 5, 7, 8, 10, 11, 13], "list_access_in_drs_manifest": [2, 9, 10], "list_drs_object": [2, 9, 10], "list_files_in_drs_manifest": [2, 9, 10], "list_job": [2, 4], "live": [11, 12], "load": [2, 9, 10], "load_manifest": [2, 9, 10], "local": [0, 13], "locat": [1, 6], "lock": 12, "log": [8, 10, 11, 12], "logic": [5, 12], "loop": 11, "ls_path": [2, 13], "maco": 11, "made": 3, "mai": [9, 11], "main": 10, "make": [9, 11], "manag": [1, 5, 10], "mani": [8, 11], "manifest": [2, 8, 9, 10, 11, 12], "manifest_1": 10, "manifest_fil": [11, 12], "manifest_file_delimit": [11, 12], "manifest_row_pars": [11, 12], "map": [0, 11], "mark": 8, "master": 7, "match": [3, 5, 12], "max": 5, "max_concurrent_request": [2, 9, 11, 12], "max_presigned_url_ttl": 1, "max_tri": 8, "maximum": [11, 12], "md": [5, 7, 10, 12], "md5": [2, 3, 9, 11], "md5_hash": 11, "md5sum": [2, 9, 10], "mean": 8, "mechan": 3, "merg": 5, "metadata": [2, 3, 6, 9, 11], "metadata_list": 5, "metadata_sourc": 12, "metadata_typ": 12, "metdata": 12, "method": [1, 7, 10], "minimum": 10, "minut": 0, "mode": 7, "modul": [2, 10, 11], "more": [2, 5, 7, 9, 10], "most": 9, "mostli": 2, "multipl": [8, 11], "must": [1, 5], "my_common": 10, "my_credenti": 10, "my_field": 7, "my_index": 7, "my_program": 7, "my_project": 7, "name": [3, 4, 8, 10, 11, 12, 13], "namespac": [0, 12], "necessari": [3, 5], "need": [3, 7, 10, 11], "nest": 5, "net": 11, "never": 0, "new": [0, 3], "node": 8, "node_nam": 8, "node_typ": 8, "none": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "note": [0, 3, 11, 12], "noth": [3, 6], "now": [1, 8], "num": 5, "num_process": 11, "num_total_fil": 11, "number": [3, 7, 8, 11, 12], "o": 0, "object": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13], "object_id": [1, 2, 9, 10], "object_list": 10, "object_typ": [2, 9, 10], "objectid": 10, "obtain": [0, 10], "occur": 10, "off": 5, "offset": [5, 7], "oidc": 0, "old": 3, "one": [3, 5, 10, 11], "onli": [3, 5, 7, 8, 10, 11], "open": [8, 10, 11], "open_project": [2, 8], "openid": 0, "opt": 0, "option": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "order": [0, 8], "ordered_node_list": 8, "org": 10, "otherwis": 10, "output": [4, 5, 11, 12], "output_dir": 10, "output_filenam": [11, 12], "overrid": [11, 12], "overwrit": 5, "packag": 10, "page": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 13], "pagin": 3, "parallel": 11, "param": [3, 5, 8, 10], "paramet": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "pars": [10, 11, 12, 13], "parser": [11, 12], "pass": [0, 7, 8, 10], "password": [11, 12], "path": [0, 1, 5, 10, 11, 13], "path_to_manifest": 11, "pattern": [3, 12], "pdcdatastor": 11, "pend": 10, "per": [11, 12], "peregrin": 8, "permiss": 10, "persist": 9, "phs0001": 11, "phs0002": 11, "pick": 1, "pla": 11, "place": 11, "planx": 11, "point": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "popul": [10, 12], "posit": [1, 7], "possibl": 10, "post": [0, 11], "pprint": [2, 9, 10], "prefix": 3, "presign": 1, "pretti": 10, "prev_guid": [2, 9, 11], "previou": [3, 11], "previous": 4, "print": [8, 10], "process": 11, "processed_fil": 11, "profil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "program": [8, 11], "progress": [8, 10], "project": [8, 11], "project_id": [7, 8], "protocol": 1, "provid": [0, 1, 3, 5, 7, 8, 12], "public": [3, 5], "put": 0, "py": 11, "python": [2, 9, 11], "python3": 11, "python_subprocess_command": 11, "queri": [1, 2, 3, 5, 8, 11, 12], "query_str": 7, "query_txt": [7, 8], "query_url": [2, 3], "quickstart": 2, "rather": 0, "raw": [7, 11], "raw_data_download": [2, 7], "rbac": 3, "read": [3, 5, 11], "readm": 2, "reason": 10, "record": [1, 3, 5, 7, 8, 11, 12], "refresh": [0, 10], "refresh_access_token": [0, 2], "refresh_fil": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "refresh_token": 0, "regist": 8, "regular": 7, "relat": 9, "remov": [1, 6, 11, 13], "replac": 11, "replace_url": 11, "repo": 2, "repres": [3, 5, 10], "represent": [1, 3], "request": [0, 1, 3, 5, 8, 11, 12], "requir": 10, "resolv": 10, "resolve_object": [2, 9, 10], "respect": 7, "respons": [0, 1, 3, 4, 5], "result": [1, 8, 10, 11], "retri": 8, "retriev": [1, 8, 10, 12], "return": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11], "return_full_metadata": 5, "rev": 3, "revers": 8, "revis": 3, "right": 1, "rm": [2, 13], "rm_path": [2, 13], "root": [11, 12], "row": [7, 8, 11, 12], "row_offset": 8, "rtype": 3, "run": [8, 11], "s3": [1, 10, 11], "safe": 11, "same": [5, 11, 13], "sampl": [8, 10], "sandbox": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "save": 10, "save_directori": 10, "schema": 8, "scope": [0, 1], "screen": 8, "script": 2, "search": [0, 2, 3], "second": [1, 4], "secret": 0, "see": [7, 10, 11], "self": 10, "semaphon": 12, "semaphor": 12, "separ": [0, 11], "server": 10, "servic": [1, 3, 4, 5, 6, 8, 11, 12, 13], "service_loc": [3, 4, 5], "session": 11, "set": [0, 1, 5, 10], "setup": 2, "sheepdog": 8, "should": [0, 8, 11], "show": 10, "show_progress": 10, "shown": 11, "sign": 1, "signpost": 3, "similar": 10, "simpl": 3, "simpli": 11, "sinc": 3, "singl": [1, 5, 8], "size": [2, 3, 9, 10, 11], "skip": 8, "sleep": 4, "so": 11, "some": [0, 2], "someth": 11, "sort": 7, "sort_field": 7, "sort_object": 7, "sourc": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "space": [0, 11], "specif": [5, 8, 11, 12], "specifi": [0, 1, 3, 11, 13], "spreadsheet": 8, "src_path": 13, "src_urlstr": 13, "src_w": 13, "src_wskei": 13, "ssl": [3, 4, 5], "start": [3, 4, 7, 8, 10], "start_tim": [2, 9, 10], "static": 10, "statu": [2, 4, 9, 10], "storag": [1, 2, 6], "store": [1, 3, 10], "str": [0, 1, 3, 4, 5, 7, 8, 10, 11, 12], "string": [0, 3, 5, 11, 13], "strip": 11, "sub": 8, "subject": [7, 8], "submiss": 2, "submit": [8, 11], "submit_additional_metadata_column": 11, "submit_fil": [2, 8], "submit_record": [2, 8], "submitter_id": 7, "success": 10, "successfulli": 10, "suffici": 3, "suppli": 3, "support": [0, 1, 5, 8, 11], "sure": 1, "synchron": 11, "syntax": 7, "system": [6, 7, 8, 9], "t": [1, 5, 11], "tab": 11, "task": 9, "temporari": 11, "test": 11, "test1": 11, "test2": 11, "test3": 11, "test4": 11, "test5": 11, "text": [1, 7, 8], "than": [0, 5], "thei": [0, 10], "them": [10, 11], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "those": 11, "thread": 11, "thread_num": 11, "threadcontrol": [2, 9, 11], "through": [8, 11], "tier": 7, "time": [1, 3, 8, 10, 11], "timestamp": 10, "tmp_folder": [2, 9, 11], "token": [0, 10], "tool": 2, "total": 11, "treat": [1, 5], "tree": 10, "true": [3, 4, 5, 6, 7, 8, 10, 11, 12], "try": 0, "tsv": [8, 11, 12], "tupl": [0, 3, 11, 12], "type": [1, 3, 4, 5, 7, 8, 10, 11, 12], "typic": 10, "uc": 7, "unaccess": 7, "under": [0, 8, 13], "uniqu": [1, 5], "unknown": 10, "unpack": 10, "unpack_packag": 10, "until": [4, 10], "up": [5, 9], "updat": [2, 3, 5, 10, 11], "update_alias": [2, 5], "update_blank": [2, 3], "update_record": [2, 3], "updated_tim": [2, 9, 10], "upload": [1, 2, 3, 8, 13], "upload_fil": [1, 2], "upload_file_to_guid": [1, 2], "upload_url": [2, 13], "url": [1, 2, 3, 9, 10, 11, 12, 13], "urls_metadata": 3, "us": [0, 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13], "usag": 11, "use_agg_md": 5, "user": [0, 10, 12], "user_access": [2, 9, 10], "usual": 12, "utcnow": 1, "util": 9, "uuid": [1, 3, 8], "uuid1": 8, "uuid2": 8, "valid": [3, 7], "valu": [0, 1, 3, 5, 7, 10, 11], "value_from_indexd": 11, "value_from_manifest": 11, "variabl": [0, 7, 8], "variou": 2, "verbos": [7, 8], "verif": 11, "verifi": [2, 9], "verify_manifest": 11, "verify_object_manifest": 11, "version": [3, 4, 5], "vital_statu": 7, "w": 13, "wai": 10, "wait": 4, "want": [3, 8], "warn": 11, "we": [3, 11], "web": 0, "what": 5, "when": [0, 3, 7, 10, 12], "where": [3, 5, 11, 12], "whether": [3, 4, 5, 8, 11, 12], "which": [8, 10], "while": [0, 1, 3, 4, 5, 6, 7, 8, 10, 13], "whose": 5, "within": [0, 2, 9], "without": [3, 5], "won": 5, "work": [0, 10], "workaround": 11, "worksheet": 8, "workspac": [0, 2], "wrapper": 10, "write": 11, "ws_urlstr": 13, "wskei": 13, "wss": 13, "wt": [0, 10], "x": 11, "xlsx": 8, "you": [3, 8, 11]}, "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"], "titleterms": {"": 2, "auth": 0, "class": [1, 3, 4, 5, 6, 7, 8], "document": 2, "download": [10, 11], "dr": 10, "file": 1, "gen3": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13], "helper": 0, "index": [3, 11], "indic": 2, "ingest": 12, "job": 4, "metadata": [5, 12], "object": 6, "queri": 7, "sdk": 2, "storag": 13, "submiss": 8, "tabl": 2, "tool": [9, 10, 11, 12], "verifi": 11, "welcom": 2, "workspac": 13}}) \ No newline at end of file diff --git a/docs/_build/html/submission.html b/docs/_build/html/submission.html index edc7b38db..69a9f5e5d 100644 --- a/docs/_build/html/submission.html +++ b/docs/_build/html/submission.html @@ -9,7 +9,7 @@ - + @@ -514,7 +514,7 @@

Related Topics

- + diff --git a/docs/_build/html/tools.html b/docs/_build/html/tools.html index 49e7af7d0..0dddee8a4 100644 --- a/docs/_build/html/tools.html +++ b/docs/_build/html/tools.html @@ -9,7 +9,7 @@ - + @@ -185,7 +185,7 @@

Related Topics

- + diff --git a/docs/_build/html/tools/drs_pull.html b/docs/_build/html/tools/drs_pull.html index eb16ffd32..8148d1361 100644 --- a/docs/_build/html/tools/drs_pull.html +++ b/docs/_build/html/tools/drs_pull.html @@ -9,7 +9,7 @@ - + @@ -76,7 +76,7 @@
Parameters:
    -
  • object_list (List[Downloadable]) –

  • +
  • object_list (List[Downloadable])

  • save_directory (str) – directory to save to (will be created)

  • show_progress (bool) – show a download progress bar

  • unpack_packages (bool) – set to False to disable the unpacking of downloaded packages

  • @@ -573,7 +573,7 @@

    Related Topics

- + diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index 67806708d..fbc6546c8 100644 --- a/docs/_build/html/tools/indexing.html +++ b/docs/_build/html/tools/indexing.html @@ -9,7 +9,7 @@ - + @@ -381,7 +381,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-1712860233.4513571.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-1713907726.726641.log')[source]

Verify all file object records into a manifest csv

Parameters:
@@ -483,7 +483,7 @@

Related Topics

- + diff --git a/docs/_build/html/tools/metadata.html b/docs/_build/html/tools/metadata.html index 7c33fd332..5e3f01083 100644 --- a/docs/_build/html/tools/metadata.html +++ b/docs/_build/html/tools/metadata.html @@ -9,7 +9,7 @@ - + @@ -102,7 +102,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-1712860233.8504217.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-1713907726.9651651.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
@@ -218,7 +218,7 @@

Related Topics

- + diff --git a/docs/_build/html/wss.html b/docs/_build/html/wss.html index e2d7abfc5..e3daccc57 100644 --- a/docs/_build/html/wss.html +++ b/docs/_build/html/wss.html @@ -9,7 +9,7 @@ - + @@ -215,7 +215,7 @@

Related Topics

- +