diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 4c11f8289..bfd025c75 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 2fcc8400b..e045369c9 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 cb8c138a1..e80dc15a7 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 83e9f70ba..883ee6d52 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": 11, "013444": [], "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, "1329331": [], "1468077": [], "165499": [], "1724170637": [], "1726237606": [], "1726237962": [], "1728059996": [], "1728059997": [], "1728061593": [], "1728061594": [], "1729113765": [], "1729629354": [], "1729629627": [11, 12], "2": [5, 11], "24": [11, 12], "244287": [], "2511687": [], "255e396f": 11, "256328": 12, "3": [5, 11], "30": 8, "33": 5, "333": 5, "3410327": [], "343434344": 11, "363455714": 11, "3697538": [], "3759608": [], "4": [5, 11], "450c": 11, "4714": 8, "473d83400bc1bc9dc635e334fadd433c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "5": [0, 5], "50": 7, "5117643": [], "543434443": 11, "5833347": [], "653854": [], "6f90": 8, "7d3d8d2083b4": 11, "8420": 8, "848236": [], "9082778": [], "93d9af72": 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], "0718453": [], "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, "131172": [], "1329331": [], "146578": [], "1468077": [], "165499": [], "1724170637": [], "1726237606": [], "1726237962": [], "1728059996": [], "1728059997": [], "1728061593": [], "1728061594": [], "1729705745": [], "1730406946": [], "1730474120": [], "1730474121": [], "1730474334": [], "1730480538": [11, 12], "2": [5, 11], "24": [11, 12], "255e396f": 11, "3": [5, 11], "30": 8, "33": 5, "333": 5, "3410327": [], "343434344": 11, "3628798": [], "363455714": 11, "3697538": [], "3759608": [], "391207": 11, "4": [5, 11], "417489": [], "450c": 11, "4714": 8, "473d83400bc1bc9dc635e334fadd433c": 11, "473d83400bc1bc9dc635e334faddd33c": 11, "473d83400bc1bc9dc635e334fadde33c": 11, "473d83400bc1bc9dc635e334faddf33c": 11, "5": [0, 5], "50": 7, "543434443": 11, "5833347": [], "6368155": [], "6421762": 12, "653854": [], "6f90": 8, "7d3d8d2083b4": 11, "8420": 8, "848236": [], "877882": [], "8912847": [], "9082778": [], "93d9af72": 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 diff --git a/docs/_build/html/tools/indexing.html b/docs/_build/html/tools/indexing.html index 2b6b00af4..add013c7c 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-1729629627.0084667.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-1730480538.391207.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 66a1f3105..ea6eb1537 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-1729629627.256328.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-1730480538.6421762.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..702a75fdc --- /dev/null +++ b/gen3/tools/indexing/post_indexing_validation.py @@ -0,0 +1,337 @@ +""" +Module for running post-indexing validation. +validate_manifest takes as input a manifest, an api credentials file, and an output path +then runs an async coroutine attempting to obtain a pre-signed url, download a file from each bucket +to verify it has been indexed, and generate a report in csv format. + +The output format is as follows: +| ACL | Bucket | Protocol | Presigned URL Status | Download Status | GUID | +""" + + +import csv +import aiohttp +import asyncio +from gen3.auth import Gen3Auth +from cdislogging import get_logger, get_stream_handler + + +logger = get_logger(__name__) +logger.addHandler(get_stream_handler()) +logger.setLevel("INFO") + + +class GuidError(Exception): + pass + + +class Record: + def __init__(self, guid, bucket, protocol, acl, access_token, commons, size): + self.guid = guid + self.bucket = bucket + self.protocol = protocol + self.acl = acl + self.commons = commons + self.size = size + self.download_status = -1 + self.headers = { + "accept": "application/json", + "authorization": f"bearer {access_token}", + } + + async def get_presigned_url(self, semaphore, session): + """ + Generates a presigned_url for the given guid and protocol at the specified commons. + + Runs concurrently as many as the provided semaphore will allow. + + Args: + semaphore: an asyncio semaphore + session: an aiohttp client session connected to the commons + + """ + async with semaphore: + try: + url = ( + self.commons + + f"/user/data/download/{self.guid}?protocol={self.protocol}" + ) + async with session.get(url, headers=self.headers) as response: + if response.ok: + self.response, self.response_status = ( + await response.json(), + response.status, + ) + else: + logger.info( + f"Response unsuccessful; returned with status {response.status}" + ) + self.response, self.response_status = {}, response.status + except Exception as e: + logger.error(f"Error fetching presigned URL {url}: {e}") + self.response, self.response_status = {}, -1 + + self.presigned_url = None + if self.response: + logger.info(f"presigned-url response: {self.response}") + self.presigned_url = self.response.get("url") + else: + logger.warning( + f"FAILED TO GET PRESIGNED-URL: status_code = {self.response_status}" + ) + + async def download_file(self, semaphore, session): + """ + Downloads a file from the provided url, which is a generated presigned_url. + + Runs concurrently as many as the provided semaphore will allow. + + Args: + semaphore: an asyncio semaphore + session: an aiohttp client session connected to the commons + + """ + async with semaphore: + try: + async with session.get( + self.presigned_url, headers={"Range": "bytes=0-1023"} + ) as response: + if response.ok: + await response.read() + self.download_status = response.status + else: + self.download_status = response.status + except Exception as e: + logger.error(f"Error downloading file from {self.presigned_url}: {e}") + self.download_status = -1 + + +class Records: + def __init__(self, semaphore, session, auth): + self.access_token = auth.get_access_token() + self.commons = auth.endpoint + self.semaphore = semaphore + self.session = session + self.record_dict = {} + self.record_sizes = {} + self.headers = { + "accept": "application/json", + "authorization": f"bearer {self.access_token}", + } + + 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 + """ + if manifest[-3:] == "tsv": + sep = "\t" + else: + sep = "," + 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'" + ) + + for row in rows: + url_parsed = False + size = row["size"] + guid = row[guid_col] + for acl in row["acl"].split(" "): + if acl != "admin": + for url in row["url"].split(" "): + if "://" not in url: + continue + else: + protocol, bucket = ( + url.split("://")[0].replace("[", ""), + url.split("/")[2], + ) + key = (bucket, protocol, acl) + if key not in self.record_dict or int( + self.record_dict[key].size + ) >= int(size): + record = Record( + guid, + bucket, + protocol, + acl, + self.access_token, + self.commons, + size, + ) + self.record_dict[key] = record + url_parsed = True + + if url_parsed == False: + logger.warning(f"No url parsed for record {guid}") + + async def get_presigned_url_list(self): + """ + Attempts to obtain a presigned url for every record. + Runs concurrently according to defined semaphore. + """ + tasks = [] + for (bucket, protocol, acl), record in self.record_dict.items(): + logger.info( + f"picking one indexd record with GUID {record.guid} from acl {acl}" + ) + logger.info(f"checking guid {record.guid} with protocol {protocol}...") + tasks.append( + ( + record.get_presigned_url(self.semaphore, self.session), + protocol, + acl, + bucket, + record.guid, + ) + ) + + self.presigned_results = await asyncio.gather(*[task[0] for task in tasks]) + + async def download_files(self): + """ + Attempts to download a file for every record where a presigned url was able to be obtained. + Runs concurrently according to defined semaphore. + """ + download_tasks = [] + for (bucket, protocol, acl), record in self.record_dict.items(): + if record.presigned_url: + logger.info( + f"Attempting to download from presigned URL: {record.presigned_url}" + ) + download_tasks.append( + ( + record.download_file(self.semaphore, self.session), + record.protocol, + record.acl, + record.response_status, + record.bucket, + record.guid, + ) + ) + else: + logger.warning( + f"No presigned url associated with record {record.guid} from acl {acl}" + ) + download_tasks.append( + ( + None, + record.protocol, + record.acl, + record.response_status, + record.bucket, + record.guid, + ) + ) + + self.download_responses = await asyncio.gather( + *[task[0] for task in download_tasks if task[0] is not None] + ) + + 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 + """ + download_results = [] + for record in self.record_dict.values(): + 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 = download_results + + # Check if the results list is empty + if not 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 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}") + + +async def _validate_manifest_coro(MANIFEST, auth, output_file): + """ + Manifest validation coroutine. + Takes as input a manifest location, the location of an api credentials file, 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 + output_file (str): the relative path of the output csv + """ + logger.info("STARTING...") + concurrent_limit = 5 + + semaphore = asyncio.Semaphore(concurrent_limit) + + async with aiohttp.ClientSession() as session: + records = Records(semaphore, session, auth) + + records.read_records_from_manifest(MANIFEST) + await records.get_presigned_url_list() + await records.download_files() + records.save_download_check_results_to_csv(output_file) + return records + + +def validate_manifest(MANIFEST, auth, output_file="results.csv"): + """ + The driver for _validate_manifest_coro + + Args: + MANIFEST (str): the location of a manifest file + api_key (str): the location of an api credentials file + output_file (str): the relative path of the output csv + """ + return asyncio.run(_validate_manifest_coro(MANIFEST, auth, output_file)) diff --git a/poetry.lock b/poetry.lock index 74d0eaed5..08a6bcc6a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "aiofiles" @@ -213,16 +213,6 @@ files = [ {file = "asyncio-3.4.3.tar.gz", hash = "sha256:83360ff8bc97980e4ff25c964c7bd3923d333d177aa4f7fb736b019f26c7cb41"}, ] -[[package]] -name = "atomicwrites" -version = "1.4.1" -description = "Atomic file writes." -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -files = [ - {file = "atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11"}, -] - [[package]] name = "attrs" version = "24.2.0" @@ -900,88 +890,103 @@ dotenv = ["python-dotenv"] [[package]] name = "frozenlist" -version = "1.4.1" +version = "1.5.0" description = "A list-like structure which implements collections.abc.MutableSequence" optional = false python-versions = ">=3.8" files = [ - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, - {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, - {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, - {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, - {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, - {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, - {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, - {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, - {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, - {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, - {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, - {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, - {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, - {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, - {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, - {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, - {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, - {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, - {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, - {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, - {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, - {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, - {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, - {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, - {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, - {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, - {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, - {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"}, + {file = "frozenlist-1.5.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:15538c0cbf0e4fa11d1e3a71f823524b0c46299aed6e10ebb4c2089abd8c3bec"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e79225373c317ff1e35f210dd5f1344ff31066ba8067c307ab60254cd3a78ad5"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9272fa73ca71266702c4c3e2d4a28553ea03418e591e377a03b8e3659d94fa76"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:498524025a5b8ba81695761d78c8dd7382ac0b052f34e66939c42df860b8ff17"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92b5278ed9d50fe610185ecd23c55d8b307d75ca18e94c0e7de328089ac5dcba"}, + {file = "frozenlist-1.5.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f3c8c1dacd037df16e85227bac13cca58c30da836c6f936ba1df0c05d046d8d"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f2ac49a9bedb996086057b75bf93538240538c6d9b38e57c82d51f75a73409d2"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e66cc454f97053b79c2ab09c17fbe3c825ea6b4de20baf1be28919460dd7877f"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:5a3ba5f9a0dfed20337d3e966dc359784c9f96503674c2faf015f7fe8e96798c"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:6321899477db90bdeb9299ac3627a6a53c7399c8cd58d25da094007402b039ab"}, + {file = "frozenlist-1.5.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76e4753701248476e6286f2ef492af900ea67d9706a0155335a40ea21bf3b2f5"}, + {file = "frozenlist-1.5.0-cp310-cp310-win32.whl", hash = "sha256:977701c081c0241d0955c9586ffdd9ce44f7a7795df39b9151cd9a6fd0ce4cfb"}, + {file = "frozenlist-1.5.0-cp310-cp310-win_amd64.whl", hash = "sha256:189f03b53e64144f90990d29a27ec4f7997d91ed3d01b51fa39d2dbe77540fd4"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fd74520371c3c4175142d02a976aee0b4cb4a7cc912a60586ffd8d5929979b30"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2f3f7a0fbc219fb4455264cae4d9f01ad41ae6ee8524500f381de64ffaa077d5"}, + {file = "frozenlist-1.5.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f47c9c9028f55a04ac254346e92977bf0f166c483c74b4232bee19a6697e4778"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0996c66760924da6e88922756d99b47512a71cfd45215f3570bf1e0b694c206a"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2fe128eb4edeabe11896cb6af88fca5346059f6c8d807e3b910069f39157869"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8ea951bbb6cacd492e3948b8da8c502a3f814f5d20935aae74b5df2b19cf3d"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:de537c11e4aa01d37db0d403b57bd6f0546e71a82347a97c6a9f0dcc532b3a45"}, + {file = "frozenlist-1.5.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c2623347b933fcb9095841f1cc5d4ff0b278addd743e0e966cb3d460278840d"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cee6798eaf8b1416ef6909b06f7dc04b60755206bddc599f52232606e18179d3"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f5f9da7f5dbc00a604fe74aa02ae7c98bcede8a3b8b9666f9f86fc13993bc71a"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:90646abbc7a5d5c7c19461d2e3eeb76eb0b204919e6ece342feb6032c9325ae9"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:bdac3c7d9b705d253b2ce370fde941836a5f8b3c5c2b8fd70940a3ea3af7f4f2"}, + {file = "frozenlist-1.5.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03d33c2ddbc1816237a67f66336616416e2bbb6beb306e5f890f2eb22b959cdf"}, + {file = "frozenlist-1.5.0-cp311-cp311-win32.whl", hash = "sha256:237f6b23ee0f44066219dae14c70ae38a63f0440ce6750f868ee08775073f942"}, + {file = "frozenlist-1.5.0-cp311-cp311-win_amd64.whl", hash = "sha256:0cc974cc93d32c42e7b0f6cf242a6bd941c57c61b618e78b6c0a96cb72788c1d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:31115ba75889723431aa9a4e77d5f398f5cf976eea3bdf61749731f62d4a4a21"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7437601c4d89d070eac8323f121fcf25f88674627505334654fd027b091db09d"}, + {file = "frozenlist-1.5.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7948140d9f8ece1745be806f2bfdf390127cf1a763b925c4a805c603df5e697e"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:feeb64bc9bcc6b45c6311c9e9b99406660a9c05ca8a5b30d14a78555088b0b3a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:683173d371daad49cffb8309779e886e59c2f369430ad28fe715f66d08d4ab1a"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7d57d8f702221405a9d9b40f9da8ac2e4a1a8b5285aac6100f3393675f0a85ee"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c72000fbcc35b129cb09956836c7d7abf78ab5416595e4857d1cae8d6251a6"}, + {file = "frozenlist-1.5.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:000a77d6034fbad9b6bb880f7ec073027908f1b40254b5d6f26210d2dab1240e"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5d7f5a50342475962eb18b740f3beecc685a15b52c91f7d975257e13e029eca9"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:87f724d055eb4785d9be84e9ebf0f24e392ddfad00b3fe036e43f489fafc9039"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6e9080bb2fb195a046e5177f10d9d82b8a204c0736a97a153c2466127de87784"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9b93d7aaa36c966fa42efcaf716e6b3900438632a626fb09c049f6a2f09fc631"}, + {file = "frozenlist-1.5.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:52ef692a4bc60a6dd57f507429636c2af8b6046db8b31b18dac02cbc8f507f7f"}, + {file = "frozenlist-1.5.0-cp312-cp312-win32.whl", hash = "sha256:29d94c256679247b33a3dc96cce0f93cbc69c23bf75ff715919332fdbb6a32b8"}, + {file = "frozenlist-1.5.0-cp312-cp312-win_amd64.whl", hash = "sha256:8969190d709e7c48ea386db202d708eb94bdb29207a1f269bab1196ce0dcca1f"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a1a048f9215c90973402e26c01d1cff8a209e1f1b53f72b95c13db61b00f953"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dd47a5181ce5fcb463b5d9e17ecfdb02b678cca31280639255ce9d0e5aa67af0"}, + {file = "frozenlist-1.5.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1431d60b36d15cda188ea222033eec8e0eab488f39a272461f2e6d9e1a8e63c2"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6482a5851f5d72767fbd0e507e80737f9c8646ae7fd303def99bfe813f76cf7f"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:44c49271a937625619e862baacbd037a7ef86dd1ee215afc298a417ff3270608"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:12f78f98c2f1c2429d42e6a485f433722b0061d5c0b0139efa64f396efb5886b"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ce3aa154c452d2467487765e3adc730a8c153af77ad84096bc19ce19a2400840"}, + {file = "frozenlist-1.5.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9b7dc0c4338e6b8b091e8faf0db3168a37101943e687f373dce00959583f7439"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45e0896250900b5aa25180f9aec243e84e92ac84bd4a74d9ad4138ef3f5c97de"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:561eb1c9579d495fddb6da8959fd2a1fca2c6d060d4113f5844b433fc02f2641"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:df6e2f325bfee1f49f81aaac97d2aa757c7646534a06f8f577ce184afe2f0a9e"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:140228863501b44b809fb39ec56b5d4071f4d0aa6d216c19cbb08b8c5a7eadb9"}, + {file = "frozenlist-1.5.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7707a25d6a77f5d27ea7dc7d1fc608aa0a478193823f88511ef5e6b8a48f9d03"}, + {file = "frozenlist-1.5.0-cp313-cp313-win32.whl", hash = "sha256:31a9ac2b38ab9b5a8933b693db4939764ad3f299fcaa931a3e605bc3460e693c"}, + {file = "frozenlist-1.5.0-cp313-cp313-win_amd64.whl", hash = "sha256:11aabdd62b8b9c4b84081a3c246506d1cddd2dd93ff0ad53ede5defec7886b28"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:dd94994fc91a6177bfaafd7d9fd951bc8689b0a98168aa26b5f543868548d3ca"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2d0da8bbec082bf6bf18345b180958775363588678f64998c2b7609e34719b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:73f2e31ea8dd7df61a359b731716018c2be196e5bb3b74ddba107f694fbd7604"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:828afae9f17e6de596825cf4228ff28fbdf6065974e5ac1410cecc22f699d2b3"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1577515d35ed5649d52ab4319db757bb881ce3b2b796d7283e6634d99ace307"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2150cc6305a2c2ab33299453e2968611dacb970d2283a14955923062c8d00b10"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a72b7a6e3cd2725eff67cd64c8f13335ee18fc3c7befc05aed043d24c7b9ccb9"}, + {file = "frozenlist-1.5.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c16d2fa63e0800723139137d667e1056bee1a1cf7965153d2d104b62855e9b99"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:17dcc32fc7bda7ce5875435003220a457bcfa34ab7924a49a1c19f55b6ee185c"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:97160e245ea33d8609cd2b8fd997c850b56db147a304a262abc2b3be021a9171"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1e6540b7fa044eee0bb5111ada694cf3dc15f2b0347ca125ee9ca984d5e9e6e"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:91d6c171862df0a6c61479d9724f22efb6109111017c87567cfeb7b5d1449fdf"}, + {file = "frozenlist-1.5.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c1fac3e2ace2eb1052e9f7c7db480818371134410e1f5c55d65e8f3ac6d1407e"}, + {file = "frozenlist-1.5.0-cp38-cp38-win32.whl", hash = "sha256:b97f7b575ab4a8af9b7bc1d2ef7f29d3afee2226bd03ca3875c16451ad5a7723"}, + {file = "frozenlist-1.5.0-cp38-cp38-win_amd64.whl", hash = "sha256:374ca2dabdccad8e2a76d40b1d037f5bd16824933bf7bcea3e59c891fd4a0923"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9bbcdfaf4af7ce002694a4e10a0159d5a8d20056a12b05b45cea944a4953f972"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1893f948bf6681733aaccf36c5232c231e3b5166d607c5fa77773611df6dc336"}, + {file = "frozenlist-1.5.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2b5e23253bb709ef57a8e95e6ae48daa9ac5f265637529e4ce6b003a37b2621f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0f253985bb515ecd89629db13cb58d702035ecd8cfbca7d7a7e29a0e6d39af5f"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:04a5c6babd5e8fb7d3c871dc8b321166b80e41b637c31a995ed844a6139942b6"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9fe0f1c29ba24ba6ff6abf688cb0b7cf1efab6b6aa6adc55441773c252f7411"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:226d72559fa19babe2ccd920273e767c96a49b9d3d38badd7c91a0fdeda8ea08"}, + {file = "frozenlist-1.5.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b731db116ab3aedec558573c1a5eec78822b32292fe4f2f0345b7f697745c2"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:366d8f93e3edfe5a918c874702f78faac300209a4d5bf38352b2c1bdc07a766d"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1b96af8c582b94d381a1c1f51ffaedeb77c821c690ea5f01da3d70a487dd0a9b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:c03eff4a41bd4e38415cbed054bbaff4a075b093e2394b6915dca34a40d1e38b"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:50cf5e7ee9b98f22bdecbabf3800ae78ddcc26e4a435515fc72d97903e8488e0"}, + {file = "frozenlist-1.5.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1e76bfbc72353269c44e0bc2cfe171900fbf7f722ad74c9a7b638052afe6a00c"}, + {file = "frozenlist-1.5.0-cp39-cp39-win32.whl", hash = "sha256:666534d15ba8f0fda3f53969117383d5dc021266b3c1a42c9ec4855e4b58b9d3"}, + {file = "frozenlist-1.5.0-cp39-cp39-win_amd64.whl", hash = "sha256:5c28f4b5dbef8a0d8aad0d4de24d1e9e981728628afaf4ea0792f5d0939372f0"}, + {file = "frozenlist-1.5.0-py3-none-any.whl", hash = "sha256:d994863bba198a4a518b467bb971c56e1db3f180a25c6cf7bb1949c267f748c3"}, + {file = "frozenlist-1.5.0.tar.gz", hash = "sha256:81d5af29e61b9c8348e876d442253723928dce6433e0e76cd925cd83f1b4b817"}, ] [[package]] @@ -1854,17 +1859,6 @@ files = [ {file = "psycopg2-2.9.10.tar.gz", hash = "sha256:12ec0b40b0273f95296233e8750441339298e6a572f7039da5b260e3c8b60e11"}, ] -[[package]] -name = "py" -version = "1.11.0" -description = "library with cross-python path, ini-parsing, io, code, log facilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" -files = [ - {file = "py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378"}, - {file = "py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719"}, -] - [[package]] name = "pycparser" version = "2.22" @@ -1975,41 +1969,57 @@ files = [ [[package]] name = "pytest" -version = "6.2.5" +version = "8.3.3" description = "pytest: simple powerful testing with Python" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"}, - {file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"}, + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, ] [package.dependencies] -atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""} -attrs = ">=19.2.0" colorama = {version = "*", markers = "sys_platform == \"win32\""} +exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -py = ">=1.8.2" -toml = "*" +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] + +[[package]] +name = "pytest-asyncio" +version = "0.24.0" +description = "Pytest support for asyncio" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pytest_asyncio-0.24.0-py3-none-any.whl", hash = "sha256:a811296ed596b69bf0b6f3dc40f83bcaf341b155a269052d82efa2b25ac7037b"}, + {file = "pytest_asyncio-0.24.0.tar.gz", hash = "sha256:d081d828e576d85f875399194281e92bf8a68d60d72d1a2faf2feddb6c46b276"}, +] + +[package.dependencies] +pytest = ">=8.2,<9" + +[package.extras] +docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] +testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] [[package]] name = "pytest-cov" -version = "5.0.0" +version = "6.0.0" description = "Pytest plugin for measuring coverage." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, - {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, + {file = "pytest-cov-6.0.0.tar.gz", hash = "sha256:fde0b595ca248bb8e2d76f020b465f3b107c9632e6a1d1705f17834c89dcadc0"}, + {file = "pytest_cov-6.0.0-py3-none-any.whl", hash = "sha256:eee6f1b9e61008bd34975a4d5bab25801eb31898b032dd55addc93e96fcaaa35"}, ] [package.dependencies] -coverage = {version = ">=5.2.1", extras = ["toml"]} +coverage = {version = ">=7.5", extras = ["toml"]} pytest = ">=4.6" [package.extras] @@ -2153,23 +2163,23 @@ fixture = ["fixtures"] [[package]] name = "setuptools" -version = "75.2.0" +version = "75.3.0" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false python-versions = ">=3.8" files = [ - {file = "setuptools-75.2.0-py3-none-any.whl", hash = "sha256:a7fcb66f68b4d9e8e66b42f9876150a3371558f98fa32222ffaa5bced76406f8"}, - {file = "setuptools-75.2.0.tar.gz", hash = "sha256:753bb6ebf1f465a1912e19ed1d41f403a79173a9acf66a42e7e6aec45c3c16ec"}, + {file = "setuptools-75.3.0-py3-none-any.whl", hash = "sha256:f2504966861356aa38616760c0f66568e535562374995367b4e69c7143cf6bcd"}, + {file = "setuptools-75.3.0.tar.gz", hash = "sha256:fba5dd4d766e97be1b1681d98712680ae8f2f26d7881245f2ce9e40714f1a686"}, ] [package.extras] check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"] -core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] cover = ["pytest-cov"] doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] enabler = ["pytest-enabler (>=2.2)"] -test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] -type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.12.*)", "pytest-mypy"] [[package]] name = "six" @@ -2277,17 +2287,6 @@ test-all = ["Babel (>=1.3)", "Jinja2 (>=2.3)", "Pygments (>=1.2)", "arrow (>=0.3 timezone = ["python-dateutil"] url = ["furl (>=0.4.1)"] -[[package]] -name = "toml" -version = "0.10.2" -description = "Python Library for Tom's Obvious, Minimal Language" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, - {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, -] - [[package]] name = "tomli" version = "2.0.2" @@ -2301,13 +2300,13 @@ files = [ [[package]] name = "tqdm" -version = "4.66.5" +version = "4.66.6" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"}, - {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"}, + {file = "tqdm-4.66.6-py3-none-any.whl", hash = "sha256:223e8b5359c2efc4b30555531f09e9f2f3589bcd7fdd389271191031b49b7a63"}, + {file = "tqdm-4.66.6.tar.gz", hash = "sha256:4bdd694238bef1485ce839d67967ab50af8f9272aab687c0d7702a01da0be090"}, ] [package.dependencies] @@ -2375,13 +2374,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "werkzeug" -version = "3.0.4" +version = "3.1.0" description = "The comprehensive WSGI web application library." optional = false -python-versions = ">=3.8" +python-versions = ">=3.9" files = [ - {file = "werkzeug-3.0.4-py3-none-any.whl", hash = "sha256:02c9eb92b7d6c06f31a782811505d2157837cea66aaede3e217c7c27c039476c"}, - {file = "werkzeug-3.0.4.tar.gz", hash = "sha256:34f2371506b250df4d4f84bfe7b0921e4762525762bbd936614909fe25cd7306"}, + {file = "werkzeug-3.1.0-py3-none-any.whl", hash = "sha256:208a2e31a4a54c8b3d2244f2079ca1d3851629a7a7d546646059c64fb746023a"}, + {file = "werkzeug-3.1.0.tar.gz", hash = "sha256:6f2a0d38f25ba5a75c36c45b4ae350c7a23b57e3b974e9eb2d6851f2c648c00d"}, ] [package.dependencies] @@ -2403,93 +2402,93 @@ files = [ [[package]] name = "yarl" -version = "1.16.0" +version = "1.17.1" description = "Yet another URL library" optional = false python-versions = ">=3.9" files = [ - {file = "yarl-1.16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32468f41242d72b87ab793a86d92f885355bcf35b3355aa650bfa846a5c60058"}, - {file = "yarl-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:234f3a3032b505b90e65b5bc6652c2329ea7ea8855d8de61e1642b74b4ee65d2"}, - {file = "yarl-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a0296040e5cddf074c7f5af4a60f3fc42c0237440df7bcf5183be5f6c802ed5"}, - {file = "yarl-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de6c14dd7c7c0badba48157474ea1f03ebee991530ba742d381b28d4f314d6f3"}, - {file = "yarl-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b140e532fe0266003c936d017c1ac301e72ee4a3fd51784574c05f53718a55d8"}, - {file = "yarl-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:019f5d58093402aa8f6661e60fd82a28746ad6d156f6c5336a70a39bd7b162b9"}, - {file = "yarl-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c42998fd1cbeb53cd985bff0e4bc25fbe55fd6eb3a545a724c1012d69d5ec84"}, - {file = "yarl-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7c7c30fb38c300fe8140df30a046a01769105e4cf4282567a29b5cdb635b66c4"}, - {file = "yarl-1.16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e49e0fd86c295e743fd5be69b8b0712f70a686bc79a16e5268386c2defacaade"}, - {file = "yarl-1.16.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:b9ca7b9147eb1365c8bab03c003baa1300599575effad765e0b07dd3501ea9af"}, - {file = "yarl-1.16.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:27e11db3f1e6a51081a981509f75617b09810529de508a181319193d320bc5c7"}, - {file = "yarl-1.16.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8994c42f4ca25df5380ddf59f315c518c81df6a68fed5bb0c159c6cb6b92f120"}, - {file = "yarl-1.16.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:542fa8e09a581bcdcbb30607c7224beff3fdfb598c798ccd28a8184ffc18b7eb"}, - {file = "yarl-1.16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:2bd6a51010c7284d191b79d3b56e51a87d8e1c03b0902362945f15c3d50ed46b"}, - {file = "yarl-1.16.0-cp310-cp310-win32.whl", hash = "sha256:178ccb856e265174a79f59721031060f885aca428983e75c06f78aa24b91d929"}, - {file = "yarl-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:fe8bba2545427418efc1929c5c42852bdb4143eb8d0a46b09de88d1fe99258e7"}, - {file = "yarl-1.16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d8643975a0080f361639787415a038bfc32d29208a4bf6b783ab3075a20b1ef3"}, - {file = "yarl-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:676d96bafc8c2d0039cea0cd3fd44cee7aa88b8185551a2bb93354668e8315c2"}, - {file = "yarl-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d9525f03269e64310416dbe6c68d3b23e5d34aaa8f47193a1c45ac568cecbc49"}, - {file = "yarl-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b37d5ec034e668b22cf0ce1074d6c21fd2a08b90d11b1b73139b750a8b0dd97"}, - {file = "yarl-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f32c4cb7386b41936894685f6e093c8dfaf0960124d91fe0ec29fe439e201d0"}, - {file = "yarl-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b8e265a0545637492a7e12fd7038370d66c9375a61d88c5567d0e044ded9202"}, - {file = "yarl-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:789a3423f28a5fff46fbd04e339863c169ece97c827b44de16e1a7a42bc915d2"}, - {file = "yarl-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1d1f45e3e8d37c804dca99ab3cf4ab3ed2e7a62cd82542924b14c0a4f46d243"}, - {file = "yarl-1.16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:621280719c4c5dad4c1391160a9b88925bb8b0ff6a7d5af3224643024871675f"}, - {file = "yarl-1.16.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ed097b26f18a1f5ff05f661dc36528c5f6735ba4ce8c9645e83b064665131349"}, - {file = "yarl-1.16.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2f1fe2b2e3ee418862f5ebc0c0083c97f6f6625781382f828f6d4e9b614eba9b"}, - {file = "yarl-1.16.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:87dd10bc0618991c66cee0cc65fa74a45f4ecb13bceec3c62d78ad2e42b27a16"}, - {file = "yarl-1.16.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:4199db024b58a8abb2cfcedac7b1292c3ad421684571aeb622a02f242280e8d6"}, - {file = "yarl-1.16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:99a9dcd4b71dd5f5f949737ab3f356cfc058c709b4f49833aeffedc2652dac56"}, - {file = "yarl-1.16.0-cp311-cp311-win32.whl", hash = "sha256:a9394c65ae0ed95679717d391c862dece9afacd8fa311683fc8b4362ce8a410c"}, - {file = "yarl-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:5b9101f528ae0f8f65ac9d64dda2bb0627de8a50344b2f582779f32fda747c1d"}, - {file = "yarl-1.16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:4ffb7c129707dd76ced0a4a4128ff452cecf0b0e929f2668ea05a371d9e5c104"}, - {file = "yarl-1.16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:1a5e9d8ce1185723419c487758d81ac2bde693711947032cce600ca7c9cda7d6"}, - {file = "yarl-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d743e3118b2640cef7768ea955378c3536482d95550222f908f392167fe62059"}, - {file = "yarl-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26768342f256e6e3c37533bf9433f5f15f3e59e3c14b2409098291b3efaceacb"}, - {file = "yarl-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1b0796168b953bca6600c5f97f5ed407479889a36ad7d17183366260f29a6b9"}, - {file = "yarl-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:858728086914f3a407aa7979cab743bbda1fe2bdf39ffcd991469a370dd7414d"}, - {file = "yarl-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5570e6d47bcb03215baf4c9ad7bf7c013e56285d9d35013541f9ac2b372593e7"}, - {file = "yarl-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66ea8311422a7ba1fc79b4c42c2baa10566469fe5a78500d4e7754d6e6db8724"}, - {file = "yarl-1.16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:649bddcedee692ee8a9b7b6e38582cb4062dc4253de9711568e5620d8707c2a3"}, - {file = "yarl-1.16.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3a91654adb7643cb21b46f04244c5a315a440dcad63213033826549fa2435f71"}, - {file = "yarl-1.16.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b439cae82034ade094526a8f692b9a2b5ee936452de5e4c5f0f6c48df23f8604"}, - {file = "yarl-1.16.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:571f781ae8ac463ce30bacebfaef2c6581543776d5970b2372fbe31d7bf31a07"}, - {file = "yarl-1.16.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:aa7943f04f36d6cafc0cf53ea89824ac2c37acbdb4b316a654176ab8ffd0f968"}, - {file = "yarl-1.16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1a5cf32539373ff39d97723e39a9283a7277cbf1224f7aef0c56c9598b6486c3"}, - {file = "yarl-1.16.0-cp312-cp312-win32.whl", hash = "sha256:a5b6c09b9b4253d6a208b0f4a2f9206e511ec68dce9198e0fbec4f160137aa67"}, - {file = "yarl-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:1208ca14eed2fda324042adf8d6c0adf4a31522fa95e0929027cd487875f0240"}, - {file = "yarl-1.16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5ace0177520bd4caa99295a9b6fb831d0e9a57d8e0501a22ffaa61b4c024283"}, - {file = "yarl-1.16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7118bdb5e3ed81acaa2095cba7ec02a0fe74b52a16ab9f9ac8e28e53ee299732"}, - {file = "yarl-1.16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:38fec8a2a94c58bd47c9a50a45d321ab2285ad133adefbbadf3012c054b7e656"}, - {file = "yarl-1.16.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8791d66d81ee45866a7bb15a517b01a2bcf583a18ebf5d72a84e6064c417e64b"}, - {file = "yarl-1.16.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1cf936ba67bc6c734f3aa1c01391da74ab7fc046a9f8bbfa230b8393b90cf472"}, - {file = "yarl-1.16.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d1aab176dd55b59f77a63b27cffaca67d29987d91a5b615cbead41331e6b7428"}, - {file = "yarl-1.16.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:995d0759004c08abd5d1b81300a91d18c8577c6389300bed1c7c11675105a44d"}, - {file = "yarl-1.16.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1bc22e00edeb068f71967ab99081e9406cd56dbed864fc3a8259442999d71552"}, - {file = "yarl-1.16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:35b4f7842154176523e0a63c9b871168c69b98065d05a4f637fce342a6a2693a"}, - {file = "yarl-1.16.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:7ace71c4b7a0c41f317ae24be62bb61e9d80838d38acb20e70697c625e71f120"}, - {file = "yarl-1.16.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8f639e3f5795a6568aa4f7d2ac6057c757dcd187593679f035adbf12b892bb00"}, - {file = "yarl-1.16.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e8be3aff14f0120ad049121322b107f8a759be76a6a62138322d4c8a337a9e2c"}, - {file = "yarl-1.16.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:122d8e7986043d0549e9eb23c7fd23be078be4b70c9eb42a20052b3d3149c6f2"}, - {file = "yarl-1.16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0fd9c227990f609c165f56b46107d0bc34553fe0387818c42c02f77974402c36"}, - {file = "yarl-1.16.0-cp313-cp313-win32.whl", hash = "sha256:595ca5e943baed31d56b33b34736461a371c6ea0038d3baec399949dd628560b"}, - {file = "yarl-1.16.0-cp313-cp313-win_amd64.whl", hash = "sha256:921b81b8d78f0e60242fb3db615ea3f368827a76af095d5a69f1c3366db3f596"}, - {file = "yarl-1.16.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab2b2ac232110a1fdb0d3ffcd087783edd3d4a6ced432a1bf75caf7b7be70916"}, - {file = "yarl-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7f8713717a09acbfee7c47bfc5777e685539fefdd34fa72faf504c8be2f3df4e"}, - {file = "yarl-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cdcffe1dbcb4477d2b4202f63cd972d5baa155ff5a3d9e35801c46a415b7f71a"}, - {file = "yarl-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9a91217208306d82357c67daeef5162a41a28c8352dab7e16daa82e3718852a7"}, - {file = "yarl-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3ab3ed42c78275477ea8e917491365e9a9b69bb615cb46169020bd0aa5e2d6d3"}, - {file = "yarl-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:707ae579ccb3262dfaef093e202b4c3fb23c3810e8df544b1111bd2401fd7b09"}, - {file = "yarl-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad7a852d1cd0b8d8b37fc9d7f8581152add917a98cfe2ea6e241878795f917ae"}, - {file = "yarl-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3f1cc3d3d4dc574bebc9b387f6875e228ace5748a7c24f49d8f01ac1bc6c31b"}, - {file = "yarl-1.16.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5ff96da263740779b0893d02b718293cc03400c3a208fc8d8cd79d9b0993e532"}, - {file = "yarl-1.16.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:3d375a19ba2bfe320b6d873f3fb165313b002cef8b7cc0a368ad8b8a57453837"}, - {file = "yarl-1.16.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:62c7da0ad93a07da048b500514ca47b759459ec41924143e2ddb5d7e20fd3db5"}, - {file = "yarl-1.16.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:147b0fcd0ee33b4b5f6edfea80452d80e419e51b9a3f7a96ce98eaee145c1581"}, - {file = "yarl-1.16.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:504e1fe1cc4f170195320eb033d2b0ccf5c6114ce5bf2f617535c01699479bca"}, - {file = "yarl-1.16.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:bdcf667a5dec12a48f669e485d70c54189f0639c2157b538a4cffd24a853624f"}, - {file = "yarl-1.16.0-cp39-cp39-win32.whl", hash = "sha256:e9951afe6557c75a71045148890052cb942689ee4c9ec29f5436240e1fcc73b7"}, - {file = "yarl-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:7d7aaa8ff95d0840e289423e7dc35696c2b058d635f945bf05b5cd633146b027"}, - {file = "yarl-1.16.0-py3-none-any.whl", hash = "sha256:e6980a558d8461230c457218bd6c92dfc1d10205548215c2c21d79dc8d0a96f3"}, - {file = "yarl-1.16.0.tar.gz", hash = "sha256:b6f687ced5510a9a2474bbae96a4352e5ace5fa34dc44a217b0537fec1db00b4"}, + {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1794853124e2f663f0ea54efb0340b457f08d40a1cef78edfa086576179c91"}, + {file = "yarl-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:fbea1751729afe607d84acfd01efd95e3b31db148a181a441984ce9b3d3469da"}, + {file = "yarl-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8ee427208c675f1b6e344a1f89376a9613fc30b52646a04ac0c1f6587c7e46ec"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3b74ff4767d3ef47ffe0cd1d89379dc4d828d4873e5528976ced3b44fe5b0a21"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:62a91aefff3d11bf60e5956d340eb507a983a7ec802b19072bb989ce120cd948"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:846dd2e1243407133d3195d2d7e4ceefcaa5f5bf7278f0a9bda00967e6326b04"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3e844be8d536afa129366d9af76ed7cb8dfefec99f5f1c9e4f8ae542279a6dc3"}, + {file = "yarl-1.17.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cc7c92c1baa629cb03ecb0c3d12564f172218fb1739f54bf5f3881844daadc6d"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ae3476e934b9d714aa8000d2e4c01eb2590eee10b9d8cd03e7983ad65dfbfcba"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:c7e177c619342e407415d4f35dec63d2d134d951e24b5166afcdfd1362828e17"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:64cc6e97f14cf8a275d79c5002281f3040c12e2e4220623b5759ea7f9868d6a5"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:84c063af19ef5130084db70ada40ce63a84f6c1ef4d3dbc34e5e8c4febb20822"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:482c122b72e3c5ec98f11457aeb436ae4aecca75de19b3d1de7cf88bc40db82f"}, + {file = "yarl-1.17.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:380e6c38ef692b8fd5a0f6d1fa8774d81ebc08cfbd624b1bca62a4d4af2f9931"}, + {file = "yarl-1.17.1-cp310-cp310-win32.whl", hash = "sha256:16bca6678a83657dd48df84b51bd56a6c6bd401853aef6d09dc2506a78484c7b"}, + {file = "yarl-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:561c87fea99545ef7d692403c110b2f99dced6dff93056d6e04384ad3bc46243"}, + {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:cbad927ea8ed814622305d842c93412cb47bd39a496ed0f96bfd42b922b4a217"}, + {file = "yarl-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fca4b4307ebe9c3ec77a084da3a9d1999d164693d16492ca2b64594340999988"}, + {file = "yarl-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff5c6771c7e3511a06555afa317879b7db8d640137ba55d6ab0d0c50425cab75"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b29beab10211a746f9846baa39275e80034e065460d99eb51e45c9a9495bcca"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a52a1ffdd824fb1835272e125385c32fd8b17fbdefeedcb4d543cc23b332d74"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:58c8e9620eb82a189c6c40cb6b59b4e35b2ee68b1f2afa6597732a2b467d7e8f"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d216e5d9b8749563c7f2c6f7a0831057ec844c68b4c11cb10fc62d4fd373c26d"}, + {file = "yarl-1.17.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:881764d610e3269964fc4bb3c19bb6fce55422828e152b885609ec176b41cf11"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8c79e9d7e3d8a32d4824250a9c6401194fb4c2ad9a0cec8f6a96e09a582c2cc0"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:299f11b44d8d3a588234adbe01112126010bd96d9139c3ba7b3badd9829261c3"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:cc7d768260f4ba4ea01741c1b5fe3d3a6c70eb91c87f4c8761bbcce5181beafe"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:de599af166970d6a61accde358ec9ded821234cbbc8c6413acfec06056b8e860"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2b24ec55fad43e476905eceaf14f41f6478780b870eda5d08b4d6de9a60b65b4"}, + {file = "yarl-1.17.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9fb815155aac6bfa8d86184079652c9715c812d506b22cfa369196ef4e99d1b4"}, + {file = "yarl-1.17.1-cp311-cp311-win32.whl", hash = "sha256:7615058aabad54416ddac99ade09a5510cf77039a3b903e94e8922f25ed203d7"}, + {file = "yarl-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:14bc88baa44e1f84164a392827b5defb4fa8e56b93fecac3d15315e7c8e5d8b3"}, + {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:327828786da2006085a4d1feb2594de6f6d26f8af48b81eb1ae950c788d97f61"}, + {file = "yarl-1.17.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cc353841428d56b683a123a813e6a686e07026d6b1c5757970a877195f880c2d"}, + {file = "yarl-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c73df5b6e8fabe2ddb74876fb82d9dd44cbace0ca12e8861ce9155ad3c886139"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bdff5e0995522706c53078f531fb586f56de9c4c81c243865dd5c66c132c3b5"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:06157fb3c58f2736a5e47c8fcbe1afc8b5de6fb28b14d25574af9e62150fcaac"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1654ec814b18be1af2c857aa9000de7a601400bd4c9ca24629b18486c2e35463"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f6595c852ca544aaeeb32d357e62c9c780eac69dcd34e40cae7b55bc4fb1147"}, + {file = "yarl-1.17.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:459e81c2fb920b5f5df744262d1498ec2c8081acdcfe18181da44c50f51312f7"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7e48cdb8226644e2fbd0bdb0a0f87906a3db07087f4de77a1b1b1ccfd9e93685"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d9b6b28a57feb51605d6ae5e61a9044a31742db557a3b851a74c13bc61de5172"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e594b22688d5747b06e957f1ef822060cb5cb35b493066e33ceac0cf882188b7"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5f236cb5999ccd23a0ab1bd219cfe0ee3e1c1b65aaf6dd3320e972f7ec3a39da"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a2a64e62c7a0edd07c1c917b0586655f3362d2c2d37d474db1a509efb96fea1c"}, + {file = "yarl-1.17.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d0eea830b591dbc68e030c86a9569826145df485b2b4554874b07fea1275a199"}, + {file = "yarl-1.17.1-cp312-cp312-win32.whl", hash = "sha256:46ddf6e0b975cd680eb83318aa1d321cb2bf8d288d50f1754526230fcf59ba96"}, + {file = "yarl-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:117ed8b3732528a1e41af3aa6d4e08483c2f0f2e3d3d7dca7cf538b3516d93df"}, + {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5d1d42556b063d579cae59e37a38c61f4402b47d70c29f0ef15cee1acaa64488"}, + {file = "yarl-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c0167540094838ee9093ef6cc2c69d0074bbf84a432b4995835e8e5a0d984374"}, + {file = "yarl-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2f0a6423295a0d282d00e8701fe763eeefba8037e984ad5de44aa349002562ac"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e5b078134f48552c4d9527db2f7da0b5359abd49393cdf9794017baec7506170"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d401f07261dc5aa36c2e4efc308548f6ae943bfff20fcadb0a07517a26b196d8"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5f1ac7359e17efe0b6e5fec21de34145caef22b260e978336f325d5c84e6938"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f63d176a81555984e91f2c84c2a574a61cab7111cc907e176f0f01538e9ff6e"}, + {file = "yarl-1.17.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e275792097c9f7e80741c36de3b61917aebecc08a67ae62899b074566ff8556"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:81713b70bea5c1386dc2f32a8f0dab4148a2928c7495c808c541ee0aae614d67"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:aa46dce75078fceaf7cecac5817422febb4355fbdda440db55206e3bd288cfb8"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1ce36ded585f45b1e9bb36d0ae94765c6608b43bd2e7f5f88079f7a85c61a4d3"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:2d374d70fdc36f5863b84e54775452f68639bc862918602d028f89310a034ab0"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:2d9f0606baaec5dd54cb99667fcf85183a7477f3766fbddbe3f385e7fc253299"}, + {file = "yarl-1.17.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b0341e6d9a0c0e3cdc65857ef518bb05b410dbd70d749a0d33ac0f39e81a4258"}, + {file = "yarl-1.17.1-cp313-cp313-win32.whl", hash = "sha256:2e7ba4c9377e48fb7b20dedbd473cbcbc13e72e1826917c185157a137dac9df2"}, + {file = "yarl-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:949681f68e0e3c25377462be4b658500e85ca24323d9619fdc41f68d46a1ffda"}, + {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:8994b29c462de9a8fce2d591028b986dbbe1b32f3ad600b2d3e1c482c93abad6"}, + {file = "yarl-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f9cbfbc5faca235fbdf531b93aa0f9f005ec7d267d9d738761a4d42b744ea159"}, + {file = "yarl-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b40d1bf6e6f74f7c0a567a9e5e778bbd4699d1d3d2c0fe46f4b717eef9e96b95"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5efe0661b9fcd6246f27957f6ae1c0eb29bc60552820f01e970b4996e016004"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b5c4804e4039f487e942c13381e6c27b4b4e66066d94ef1fae3f6ba8b953f383"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b5d6a6c9602fd4598fa07e0389e19fe199ae96449008d8304bf5d47cb745462e"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f4c9156c4d1eb490fe374fb294deeb7bc7eaccda50e23775b2354b6a6739934"}, + {file = "yarl-1.17.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6324274b4e0e2fa1b3eccb25997b1c9ed134ff61d296448ab8269f5ac068c4c"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d8a8b74d843c2638f3864a17d97a4acda58e40d3e44b6303b8cc3d3c44ae2d29"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7fac95714b09da9278a0b52e492466f773cfe37651cf467a83a1b659be24bf71"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:c180ac742a083e109c1a18151f4dd8675f32679985a1c750d2ff806796165b55"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578d00c9b7fccfa1745a44f4eddfdc99d723d157dad26764538fbdda37209857"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1a3b91c44efa29e6c8ef8a9a2b583347998e2ba52c5d8280dbd5919c02dfc3b5"}, + {file = "yarl-1.17.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a7ac5b4984c468ce4f4a553df281450df0a34aefae02e58d77a0847be8d1e11f"}, + {file = "yarl-1.17.1-cp39-cp39-win32.whl", hash = "sha256:7294e38f9aa2e9f05f765b28ffdc5d81378508ce6dadbe93f6d464a8c9594473"}, + {file = "yarl-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:eb6dce402734575e1a8cc0bb1509afca508a400a57ce13d306ea2c663bad1138"}, + {file = "yarl-1.17.1-py3-none-any.whl", hash = "sha256:f1790a4b1e8e8e028c391175433b9c8122c39b46e1663228158e61e6f915bf06"}, + {file = "yarl-1.17.1.tar.gz", hash = "sha256:067a63fcfda82da6b198fa73079b1ca40b7c9b7994995b6ee38acda728b64d47"}, ] [package.dependencies] @@ -2522,4 +2521,4 @@ fhir = ["fhirclient"] [metadata] lock-version = "2.0" python-versions = ">=3.9, <4" -content-hash = "51f345002a00cd70528824026933f1bdbc8302a59375cf1b3dde39fcde925f1d" +content-hash = "411ab09f8936af57b3b0b442f9d2c710e289c4ccf25470cfdb854ed4ebd9b268" diff --git a/pyproject.toml b/pyproject.toml index b55b80377..d78f50207 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -44,12 +44,13 @@ gen3users = "*" # A list of all of the optional dependencies, some of which are included in the # below `extras`. They can be opted into by apps. fhirclient = { version = "*", optional = true } +pytest-asyncio = "^0.24.0" [tool.poetry.extras] fhir = ["fhirclient"] [tool.poetry.dev-dependencies] -pytest = "^6.0.0" +pytest = "^8.2" pytest-cov = "*" requests-mock = "*" cdisutilstest = { git = "https://github.com/uc-cdis/cdisutils-test.git", tag = "1.0.0" } @@ -67,6 +68,7 @@ build-backend = "poetry.masonry.api" [tool.pytest.ini_options] minversion = "6.0" addopts = "-vv" +asyncio_mode = "auto" testpaths = [ "tests", ] diff --git a/tests/test_post_indexing_validation.py b/tests/test_post_indexing_validation.py new file mode 100644 index 000000000..30738728c --- /dev/null +++ b/tests/test_post_indexing_validation.py @@ -0,0 +1,170 @@ +import pytest +import os +from gen3.tools.indexing.post_indexing_validation import ( + Record, + Records, + _validate_manifest_coro, +) +from unittest import mock +from unittest.mock import MagicMock, AsyncMock, mock_open +from aiohttp import ClientResponse +import gen3 +import time +import base64 + +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']" + + +class MockResponse: + def __init__(self, status, ok=True, json={"url": "my_presigned_url"}): + self.status = status + self.ok = ok + self.json_data = json + + async def text(self): + return self._text + + async def __aexit__(self, exc_type, exc, tb): + pass + + async def __aenter__(self): + return self + + async def read(self): + pass + + async def json(self): + return self.json_data + + +@pytest.mark.asyncio +async 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( + "aiohttp.ClientSession.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) + auth.get_access_token() + records = await _validate_manifest_coro(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} + + +@pytest.mark.asyncio +async 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" + } + get_mock = MockResponse(401, False, {}) + 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( + "aiohttp.ClientSession.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) + auth.get_access_token() + records = await _validate_manifest_coro(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}