diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 8d2a91031..e11c610d3 100644 Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/tools/indexing.doctree b/docs/_build/doctrees/tools/indexing.doctree index 86e454c06..843a881b3 100644 Binary files a/docs/_build/doctrees/tools/indexing.doctree and b/docs/_build/doctrees/tools/indexing.doctree differ diff --git a/docs/_build/doctrees/tools/metadata.doctree b/docs/_build/doctrees/tools/metadata.doctree index 82870e4ad..a52e3dbc4 100644 Binary files a/docs/_build/doctrees/tools/metadata.doctree and b/docs/_build/doctrees/tools/metadata.doctree differ diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index cbcf4d741..101e7571b 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"DRS Download Tools": [[10, null]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Gen3 Auth Helper": [[0, null]], "Gen3 File Class": [[1, null]], "Gen3 Index Class": [[3, null]], "Gen3 Jobs Class": [[4, null]], "Gen3 Metadata Class": [[5, null]], "Gen3 Object Class": [[6, null]], "Gen3 Query Class": [[7, null]], "Gen3 Submission Class": [[8, null]], "Gen3 Tools": [[9, null]], "Gen3 Workspace Storage": [[13, null]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Indexing Tools": [[11, null]], "Indices and tables": [[2, "indices-and-tables"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Metadata Tools": [[12, null]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, null]]}, "docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "envversion": {"sphinx": 62, "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], "0084667": [], "013444": [], "0248635": [], "0791543": [], "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, "120715": [], "1329331": [], "1468077": [], "165499": [], "1724170637": [], "1726237606": [], "1726237962": [], "1728059996": [], "1728059997": [], "1728061593": [], "1728061594": [], "1729113765": [], "1729629354": [], "1729629627": [], "1732401632": [], "1732401820": [], "1732401821": [], "1733254905": [], "1733263055": [], "1733431971": [], "1733932163": [], "1734031012": [], "1734031066": 11, "1734031067": 12, "2": [5, 11], "2023835": [], "2310405": 12, "24": [11, 12], "244287": [], "2511687": [], "255e396f": 11, "256328": [], "284675": [], "3": [5, 11], "30": 8, "313695": [], "33": 5, "333": 5, "3410327": [], "343434344": 11, "363455714": 11, "3686683": [], "3697538": [], "3759608": [], "4": [5, 11], "4401503": [], "450c": 11, "4714": 8, "473d83400bc1bc9dc635e334fadd433c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "5": [0, 5], "50": 7, "5117643": [], "518752": [], "543434443": 11, "5833347": [], "6129959": [], "6138082": [], "653854": [], "6f90": 8, "7d3d8d2083b4": 11, "8420": 8, "848236": [], "8493605": [], "8535511": [], "8712757": [], "9082778": [], "93d9af72": 11, "998105": 11, "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], "access_token": 0, "accesstoken": 0, "acl": [2, 3, 9, 11], "across": 11, "act": 0, "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": [0, 5, 10, 11], "anoth": 5, "api": [0, 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, "behalf": 0, "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": [0, 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, "direct": 0, "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, 10, 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], "intend": 0, "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, "issu": 0, "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": [0, 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": [0, 11, 12], "overwrit": 5, "own": 0, "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], "particular": 0, "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": [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, "wa": 0, "wai": 10, "wait": 4, "want": [0, 3, 8], "warn": 11, "we": [3, 11], "web": 0, "what": 5, "when": [0, 3, 7, 10, 12], "where": [0, 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": [0, 3, 8, 11], "your": 0}, "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 +Search.setIndex({"alltitles": {"DRS Download Tools": [[10, null]], "Download": [[11, "module-gen3.tools.indexing.download_manifest"]], "Gen3 Auth Helper": [[0, null]], "Gen3 File Class": [[1, null]], "Gen3 Index Class": [[3, null]], "Gen3 Jobs Class": [[4, null]], "Gen3 Metadata Class": [[5, null]], "Gen3 Object Class": [[6, null]], "Gen3 Query Class": [[7, null]], "Gen3 Submission Class": [[8, null]], "Gen3 Tools": [[9, null]], "Gen3 Workspace Storage": [[13, null]], "Index": [[11, "module-gen3.tools.indexing.index_manifest"]], "Indexing Tools": [[11, null]], "Indices and tables": [[2, "indices-and-tables"]], "Ingest": [[12, "module-gen3.tools.metadata.ingest_manifest"]], "Metadata Tools": [[12, null]], "Verify": [[11, "module-gen3.tools.indexing.verify_manifest"]], "Welcome to Gen3 SDK\u2019s documentation!": [[2, null]]}, "docnames": ["auth", "file", "index", "indexing", "jobs", "metadata", "object", "query", "submission", "tools", "tools/drs_pull", "tools/indexing", "tools/metadata", "wss"], "envversion": {"sphinx": 62, "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], "0084667": [], "013444": [], "0248635": [], "0791543": [], "0a80fada010c": 11, "0a80fada096c": 11, "0a80fada097c": 11, "0a80fada098c": 11, "0a80fada099c": 11, "1": [4, 5, 8, 10, 11], "10": [5, 7, 11], "100": [8, 11], "1125998": [], "11e9": 11, "120715": [], "1329331": [], "1468077": [], "165499": [], "1724170637": [], "1726237606": [], "1726237962": [], "1728059996": [], "1728059997": [], "1728061593": [], "1728061594": [], "1729113765": [], "1729629354": [], "1729629627": [], "1732401632": [], "1732401820": [], "1732401821": [], "1733254905": [], "1733263055": [], "1733431971": [], "1733932163": [], "1734031012": [], "1734031066": [], "1734031067": [], "1734474422": [], "1734474533": [], "1734474534": [], "1734644651": [], "1734644883": [11, 12], "2": [5, 11], "2023835": [], "2310405": [], "24": [11, 12], "244287": [], "2511687": [], "255e396f": 11, "256328": [], "284675": [], "3": [5, 11], "30": 8, "313695": [], "33": 5, "333": 5, "3410327": [], "343434344": 11, "363455714": 11, "3686683": [], "3697538": [], "3759608": [], "4": [5, 11], "4401503": [], "450c": 11, "4714": 8, "473d83400bc1bc9dc635e334fadd433c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "5": [0, 5], "50": 7, "5117643": [], "518752": [], "543434443": 11, "5574236": 11, "561932": [], "5833347": [], "6129959": [], "6138082": [], "6146133": [], "653854": [], "6f90": 8, "7789228": [], "7d3d8d2083b4": 11, "8167365": 12, "8366766": [], "8420": 8, "848236": [], "8493605": [], "8535511": [], "863009": [], "8712757": [], "9082778": [], "93d9af72": 11, "998105": [], "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], "access_token": 0, "accesstoken": 0, "acl": [2, 3, 9, 11], "across": 11, "act": 0, "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": [0, 5, 10, 11], "anoth": 5, "api": [0, 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, "behalf": 0, "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": [0, 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, "direct": 0, "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, 10, 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], "intend": 0, "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, "issu": 0, "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": [0, 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": [0, 11, 12], "overwrit": 5, "own": 0, "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], "particular": 0, "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": [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, "wa": 0, "wai": 10, "wait": 4, "want": [0, 3, 8], "warn": 11, "we": [3, 11], "web": 0, "what": 5, "when": [0, 3, 7, 10, 12], "where": [0, 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": [0, 3, 8, 11], "your": 0}, "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/tools/indexing.html b/docs/_build/html/tools/indexing.html index 2967a7e81..241cfc031 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-1734031066.998105.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-1734644883.5574236.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 98305b101..527771b39 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-1734031067.2310405.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-1734644883.8167365.log', get_guid_from_file=True, metadata_type=None)[source]

Ingest all metadata records into a manifest csv

Parameters:
diff --git a/gen3/tools/indexing/post_indexing_validation.py b/gen3/tools/indexing/post_indexing_validation.py new file mode 100644 index 000000000..4f7626560 --- /dev/null +++ b/gen3/tools/indexing/post_indexing_validation.py @@ -0,0 +1,260 @@ +""" +Module for running post-indexing validation. +validate_manifest takes as input a manifest, an api credentials file, and an output path +then attemps to obtain a pre-signed url and download a file from each bucket +to verify it has been indexed, and then generate a report in csv format. + +The output format is as follows: +| ACL | Bucket | Protocol | Presigned URL Status | Download Status | GUID | +""" + + +import csv +from cdislogging import get_logger, get_stream_handler +from gen3.file import Gen3File +import requests +import re + + +logger = get_logger(__name__) +logger.addHandler(get_stream_handler()) +logger.setLevel("INFO") + + +class GuidError(Exception): + pass + + +class ManifestError(Exception): + pass + + +class Record: + def __init__(self, guid, bucket, protocol, acl, size): + self.guid = guid + self.bucket = bucket + self.protocol = protocol + self.acl = acl + self.size = size + self.response_status = -1 + self.download_status = -1 + + def check_record(self, gen3file): + """ + Checks the status of a record by generating a pre-signed URL and attempting to download the file. + + This method performs the following actions: + 1. Attempts to generate a pre-signed URL for the record identified by `self.guid` using the provided `gen3file` object. + 2. Logs the result of the pre-signed URL generation, including the response status code. + 3. If the URL is successfully generated (status code 200), it attempts to download the file from the generated URL. + 4. Logs the result of the download attempt, including the status code. + 5. Sets the `response_status` attribute to indicate the success or failure of the pre-signed URL generation. + 6. Sets the `download_status` attribute to indicate the success or failure of the download attempt (if applicable). + + Args: + gen3file (object): An object that provides the `get_presigned_url` method to generate a pre-signed URL for the record. + + Returns: + None: This function does not return any value. It modifies the `response_status` and `download_status` attributes. + """ + logger.info(f"Checking record {self.guid}") + try: + resp = gen3file.get_presigned_url(self.guid) + url = resp.get("url") + response_status = 200 + logger.info( + f"Pre-signed url successfully generated for record {self.guid} with status code {response_status}" + ) + except requests.HTTPError as err: + response_status = err.response.status_code + logger.info(f"Pre-signed url generation failed for record {self.guid}") + self.response_status = response_status + + if response_status == 200: + try: + self.download_status = requests.get(url).status_code + logger.info( + f"Download process complete with status code {self.download_status}" + ) + except Exception as err: + self.download_status = -1 + logger.info( + f"Download process failed due to {err}" + ) # maybe should be logger.error + return + + +class RecordParser: + def __init__(self, auth): + self.auth = auth + self.record_dict = {} + self.record_sizes = {} + + def read_records_from_manifest(self, manifest): + """ + Parses a manifest and creates a dictionary of Record objects. + + Args: + manifest (str): the location of a manifest file + """ + tsv_pattern = "^.*\.tsv$" + csv_pattern = "^.*\.csv$" + if re.match(tsv_pattern, manifest): + sep = "\t" + elif re.match(csv_pattern, manifest): + sep = "," + else: + raise ManifestError( + "Please enter the path to a valid manifest in .csv or .tsv format" + ) + + with open(manifest, mode="r") as f: + csv_reader = csv.DictReader(f, delimiter=sep) + rows = [row for row in csv_reader] + + try: + guid_cols = {"GUID", "guid", "id"} + guid_col = list(guid_cols.intersection(set(csv_reader.fieldnames)))[0] + except IndexError: + raise GuidError( + "Manifest file has no column named 'GUID', 'guid', or 'id'" + ) + + url_pattern = r"^[a-zA-Z][a-zA-Z0-9+.-]*://[^\s/]+(?:/[^\s]*)*$" + for row in rows: + size = row["size"] + guid = row[guid_col] + for acl in row["acl"].split(" "): + if acl != "admin": + for url in row["url"].split(" "): + url = url.replace("[", "").replace("]", "") + if re.match(url_pattern, url) == None: + raise ManifestError( + f"Manifest contains guid {guid} with invalid url format: {url}" + ) + else: + protocol, bucket = ( + url.split("://")[0].replace("[", ""), + url.split("/")[2], + ) + key = ( + bucket, + protocol, + acl, + ) # Check a record for each unique (bucket, protocol, acl) combination + if ( + key not in self.record_dict + or ( # Add record to the list of records if no matching (bucket,protocol,acl) found + int(self.record_dict[key].size) + >= int( + size + ) # Update to download smallest non-zero sized record + and int(size) + != 0 # Make sure record has non-zero size + ) + ): # If it passes these we temporarily choose this record to check for the bucket, protocol, and acl + record = Record( + guid, + bucket, + protocol, + acl, + size, + ) + self.record_dict[key] = record + + def check_records(self): + """ + Iterates through all records in `self.record_dict` and checks each record's status. + + This method performs the following actions: + 1. Initializes a `Gen3File` object using the authentication information from `self.auth`. + 2. Iterates over the items in `self.record_dict`, where each item consists of a tuple `(bucket, protocol, acl)` and a `record` object. + 3. For each record, the `check_record` method is called, which attempts to generate a pre-signed URL and check the download status. + + Args: + None: This method does not take any arguments beyond `self`. + + Returns: + None: This function does not return any value. It triggers the `check_record` method for each record in `self.record_dict`. + """ + gen3file = Gen3File(self.auth) + for (bucket, protocol, acl), record in self.record_dict.items(): + record.check_record(gen3file) + + def save_download_check_results_to_csv(self, csv_filename): + """ + Generates results from presigned url generation and file downloads. + Output format is: | ACL | Bucket | Protocol | Presigned URL Status | Download Status | GUID | + + Args: + csv_filename (str): the relative file path of the output csv + """ + self.download_results = [] + for record in self.record_dict.values(): + self.download_results.append( + { + "acl": record.acl, + "bucket": record.bucket, + "protocol": record.protocol, + "presigned_url_status": record.response_status, + "download_status": record.download_status, + "guid": record.guid, + } + ) + + self.download_results = self.download_results + + # Check if the results list is empty + if not self.download_results: + logger.warning("No results to save.") + return + + # Define the CSV file header + fieldnames = [ + "acl", + "bucket", + "protocol", + "presigned_url_status", + "download_status", + "guid", + ] + + with open(csv_filename, mode="w", newline="") as csv_file: + writer = csv.DictWriter(csv_file, fieldnames=fieldnames) + + # Write the header row + writer.writeheader() + + # Iterate through the DownloadCheckResult instances and write each row + for result in self.download_results: + writer.writerow( + { + "acl": result["acl"], + "bucket": result["bucket"], + "protocol": result["protocol"], + "presigned_url_status": result["presigned_url_status"], + "download_status": result["download_status"], + "guid": result["guid"], + } + ) + + logger.info(f"Results saved to {csv_filename}") + + +def validate_manifest(MANIFEST, auth, output_file="results.csv"): + """ + Takes as input a manifest location, a Gen3Auth instance, and an output file + Attempts to obtain a presigned url from a record from each bucket then download the file. + Outputs report in csv format. + + Args: + MANIFEST (str): the location of a manifest file + api_key (str): the location of an api credentials file + auth (str): a Gen3Auth instance + """ + logger.info("Starting...") + records = RecordParser(auth) + records.read_records_from_manifest(MANIFEST) + records.check_records() + records.save_download_check_results_to_csv(output_file) + return records diff --git a/tests/test_post_indexing_validation.py b/tests/test_post_indexing_validation.py new file mode 100644 index 000000000..e3de4d540 --- /dev/null +++ b/tests/test_post_indexing_validation.py @@ -0,0 +1,215 @@ +import pytest +import os +from gen3.tools.indexing.post_indexing_validation import ( + validate_manifest, + ManifestError, +) +from unittest import mock +from unittest.mock import MagicMock, mock_open +import gen3 +import time +import base64 +from requests import HTTPError + +cwd = os.path.dirname(os.path.realpath(__file__)) + + +read_data = "guid,md5,size,acl,url\n255e396f-f1f8-11e9-9a07-0a80fada099c,473d83400bc1bc9dc635e334faddf33d,363455714,[Open],[s3://pdcdatastore/test1.raw]\n255e396f-f1f8-11e9-9a07-0a80fada098d,473d83400bc1bc9dc635e334faddd33c,343434344,[Open],[s3://pdcdatastore/test2.raw]\n255e396f-f1f8-11e9-9a07-0a80fada097c,473d83400bc1bc9dc635e334fadd433c,543434443,[phs0001],[s3://pdcdatastore/test3.raw]" +read_data2 = "guid,md5,size,acl,url\n255e396f-f1f8-11e9-9a07-0a80fada099c,473d83400bc1bc9dc635e334faddf33d,363455714,[Open],[s3://pdcdatastore/test1.raw]\n255e396f-f1f8-11e9-9a07-0a80fada098d,473d83400bc1bc9dc635e334faddd33c,343434344,[Open],[s3://pdcdatastore/test2.raw]\n255e396f-f1f8-11e9-9a07-0a80fada097c,473d83400bc1bc9dc635e334fadd433c,543434443,[phs0001],[invalid_format]" + + +class MockResponse: + def __init__(self, status, ok=True, json={"url": "my_presigned_url"}): + self.status_code = status + self.ok = ok + self.json_data = json + + def raise_for_status(response): + pass + + def text(self): + return self._text + + def read(self): + pass + + def json(self): + return self.json_data + + +def test_validate_manifest_coro_with_200(): + hostname = "test.datacommons.io" + exp = time.time() + 300 + decoded_info = {"aud": "123", "exp": exp, "iss": f"http://{hostname}"} + test_key = { + "api_key": "whatever." # pragma: allowlist secret + + base64.urlsafe_b64encode( + ('{"iss": "http://%s", "exp": %d }' % (hostname, exp)).encode("utf-8") + ).decode("utf-8") + + ".whatever" + } + get_mock = MockResponse(200) + with mock.patch( + "gen3.auth.get_access_token_with_key" + ) as mock_access_token, mock.patch( + "gen3.auth.Gen3Auth._write_to_file" + ) as mock_write_to_file, mock.patch( + "gen3.auth.decode_token" + ) as mock_decode_token, mock.patch( + "requests.get" + ) as mock_request, mock.patch( + "csv.DictWriter.writerow" + ) as mock_writerow, mock.patch( + "csv.DictWriter.writeheader" + ) as mock_writeheader, mock.patch( + "builtins.open", mock_open(read_data=read_data) + ) as mock_file_open: + mock_access_token.return_value = "new_access_token" + mock_write_to_file().return_value = True + mock_decode_token.return_value = decoded_info + mock_request.return_value = get_mock + mock_writerow.return_value = None + mock_writeheader.return_value = None + + input = f"{cwd}/test_data/manifest3.csv" + output = f"{cwd}/test_data/post_indexing_output.csv" + + auth = gen3.auth.Gen3Auth(refresh_token=test_key) + records = validate_manifest(input, auth, output) + + mock_file_open.assert_called_with( + f"{cwd}/test_data/post_indexing_output.csv", mode="w", newline="" + ) + mock_writeheader.assert_called_once() + mock_writerow.assert_called_with( + { + "acl": "[phs0001]", + "bucket": "pdcdatastore", + "protocol": "s3", + "presigned_url_status": 200, + "download_status": 200, + "guid": "255e396f-f1f8-11e9-9a07-0a80fada097c", + } + ) + + presigned_statuses = [] + download_statuses = [] + for record in records.download_results: + presigned_statuses.append(record["presigned_url_status"]) + download_statuses.append(record["download_status"]) + assert set(presigned_statuses) == {200} and set(download_statuses) == {200} + + +def test_validate_manifest_coro_with_401(): + hostname = "test.datacommons.io" + exp = time.time() + 300 + decoded_info = {"aud": "123", "exp": exp, "iss": f"http://{hostname}"} + test_key = { + "api_key": "whatever." # pragma: allowlist secret + + base64.urlsafe_b64encode( + ('{"iss": "http://%s", "exp": %d }' % (hostname, exp)).encode("utf-8") + ).decode("utf-8") + + ".whatever" + } + mock_response = MagicMock() + mock_response.status_code = 401 # The status code you want to return + mock_response.url = "https://exampleurl.com" + get_mock = MockResponse(401) + with mock.patch( + "gen3.auth.get_access_token_with_key" + ) as mock_access_token, mock.patch( + "gen3.auth.Gen3Auth._write_to_file" + ) as mock_write_to_file, mock.patch( + "gen3.auth.decode_token" + ) as mock_decode_token, mock.patch( + "requests.get" + ) as mock_request, mock.patch( + "csv.DictWriter.writerow" + ) as mock_writerow, mock.patch( + "csv.DictWriter.writeheader" + ) as mock_writeheader, mock.patch( + "builtins.open", mock_open(read_data=read_data) + ) as mock_file_open, mock.patch( + "gen3.file.Gen3File.get_presigned_url" + ) as mock_gen3file_get_presigned_url: + mock_access_token.return_value = "new_access_token" + mock_write_to_file().return_value = True + mock_decode_token.return_value = decoded_info + mock_request.return_value = get_mock + mock_writerow.return_value = None + mock_writeheader.return_value = None + mock_gen3file_get_presigned_url.side_effect = HTTPError( + "An error occurred", response=mock_response + ) + + input = f"{cwd}/test_data/manifest3.csv" + output = f"{cwd}/test_data/post_indexing_output.csv" + + auth = gen3.auth.Gen3Auth(refresh_token=test_key) + records = validate_manifest(input, auth, output) + + mock_file_open.assert_called_with( + f"{cwd}/test_data/post_indexing_output.csv", mode="w", newline="" + ) + mock_writeheader.assert_called_once() + mock_writerow.assert_called_with( + { + "acl": "[phs0001]", + "bucket": "pdcdatastore", + "protocol": "s3", + "presigned_url_status": 401, + "download_status": -1, + "guid": "255e396f-f1f8-11e9-9a07-0a80fada097c", + } + ) + + presigned_statuses = [] + download_statuses = [] + for record in records.download_results: + presigned_statuses.append(record["presigned_url_status"]) + download_statuses.append(record["download_status"]) + assert set(presigned_statuses) == {401} and set(download_statuses) == {-1} + + +def test_validate_manifest_coro_with_invalid_url(): + hostname = "test.datacommons.io" + exp = time.time() + 300 + decoded_info = {"aud": "123", "exp": exp, "iss": f"http://{hostname}"} + test_key = { + "api_key": "whatever." # pragma: allowlist secret + + base64.urlsafe_b64encode( + ('{"iss": "http://%s", "exp": %d }' % (hostname, exp)).encode("utf-8") + ).decode("utf-8") + + ".whatever" + } + get_mock = MockResponse(200) + with mock.patch( + "gen3.auth.get_access_token_with_key" + ) as mock_access_token, mock.patch( + "gen3.auth.Gen3Auth._write_to_file" + ) as mock_write_to_file, mock.patch( + "gen3.auth.decode_token" + ) as mock_decode_token, mock.patch( + "requests.get" + ) as mock_request, mock.patch( + "csv.DictWriter.writerow" + ) as mock_writerow, mock.patch( + "csv.DictWriter.writeheader" + ) as mock_writeheader, mock.patch( + "builtins.open", mock_open(read_data=read_data2) + ) as mock_file_open: + mock_access_token.return_value = "new_access_token" + mock_write_to_file().return_value = True + mock_decode_token.return_value = decoded_info + mock_request.return_value = get_mock + mock_writerow.return_value = None + mock_writeheader.return_value = None + + input = f"{cwd}/test_data/manifest3.csv" + output = f"{cwd}/test_data/post_indexing_output.csv" + + auth = gen3.auth.Gen3Auth(refresh_token=test_key) + try: + records = validate_manifest(input, auth, output) + except ManifestError: + assert True