From 811f2695ff1138c0057340a2f72a1962840ca4fd Mon Sep 17 00:00:00 2001 From: konstntokas Date: Fri, 24 May 2024 11:00:50 +0200 Subject: [PATCH 1/3] Stac and StacDataOpener added --- ...StacDataOpenerTest.test_describe_data.yaml | 150 ---- .../StacDataOpenerTest.test_open_data.yaml | 150 ---- .../StacTest.test_assert_bbox_intersect.yaml | 150 ---- .../StacTest.test_do_bboxes_intersect.yaml | 150 ---- .../test_stac/StacTest.test_get_data_ids.yaml | 812 ------------------ ...get_data_ids_optional_args_empty_args.yaml | 524 ----------- .../StacTest.test_get_item_collection.yaml | 812 ------------------ ...Test.test_get_open_data_params_schema.yaml | 150 ---- .../StacTest.test_is_datetime_in_range.yaml | 150 ---- .../test_stac/StacTest.test_open_data.yaml | 150 ---- .../StacDataStoreTest.test_describe_data.yaml | 32 +- ...taStoreTest.test_do_bboxes_intersect.yaml} | 24 +- .../StacDataStoreTest.test_get_data_ids.yaml | 142 +-- ...oreTest.test_get_data_ids_from_items.yaml} | 76 +- ...eTest.test_get_data_ids_optional_args.yaml | 84 +- ...et_data_ids_optional_args_empty_args.yaml} | 78 +- ...ataStoreTest.test_get_data_opener_ids.yaml | 28 +- ...est_get_data_opener_ids_optional_args.yaml | 126 +-- ...est.test_get_data_store_params_schema.yaml | 147 +--- ...StacDataStoreTest.test_get_data_types.yaml | 147 +--- ...toreTest.test_get_data_types_for_data.yaml | 147 +--- ...ataStoreTest.test_get_item_collection.yaml | 376 +++++++- ...test_get_item_collection_open_params.yaml} | 84 +- ...t_item_collection_searchable_catalog.yaml} | 392 ++++----- ...Test.test_get_open_data_params_schema.yaml | 28 +- ...oreTest.test_get_search_params_schema.yaml | 28 +- .../StacDataStoreTest.test_has_data.yaml | 126 +-- ...StoreTest.test_has_data_optional_args.yaml | 126 +-- ...aStoreTest.test_is_datetime_in_range.yaml} | 28 +- .../StacDataStoreTest.test_open_data.yaml | 30 +- ...reTest.test_open_data_wrong_opener_id.yaml | 28 +- .../StacDataStoreTest.test_search_data.yaml | 30 +- test/test_opener.py | 68 -- test/test_stac.py | 268 ------ test/test_store.py | 264 +++++- xcube_stac/opener.py | 82 -- xcube_stac/stac.py | 364 -------- xcube_stac/store.py | 318 ++++++- 38 files changed, 1650 insertions(+), 5219 deletions(-) delete mode 100644 test/cassettes/test_opener/StacDataOpenerTest.test_describe_data.yaml delete mode 100644 test/cassettes/test_opener/StacDataOpenerTest.test_open_data.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_assert_bbox_intersect.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_do_bboxes_intersect.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_get_data_ids.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args_empty_args.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_get_item_collection.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_get_open_data_params_schema.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_is_datetime_in_range.yaml delete mode 100644 test/cassettes/test_stac/StacTest.test_open_data.yaml rename test/cassettes/{test_opener/StacDataOpenerTest.test_get_open_data_params_schema.yaml => test_store/StacDataStoreTest.test_do_bboxes_intersect.yaml} (89%) rename test/cassettes/{test_stac/StacTest.test_get_item_collection_open_params.yaml => test_store/StacDataStoreTest.test_get_data_ids_from_items.yaml} (93%) rename test/cassettes/{test_stac/StacTest.test_get_data_ids_optional_args.yaml => test_store/StacDataStoreTest.test_get_data_ids_optional_args_empty_args.yaml} (93%) rename test/cassettes/{test_stac/StacTest.test_get_data_ids_from_items.yaml => test_store/StacDataStoreTest.test_get_item_collection_open_params.yaml} (92%) rename test/cassettes/{test_stac/StacTest.test_get_item_collection_searchable_catalog.yaml => test_store/StacDataStoreTest.test_get_item_collection_searchable_catalog.yaml} (98%) rename test/cassettes/{test_stac/StacTest.test_assert_datetime.yaml => test_store/StacDataStoreTest.test_is_datetime_in_range.yaml} (88%) delete mode 100644 test/test_opener.py delete mode 100644 test/test_stac.py delete mode 100644 xcube_stac/opener.py delete mode 100644 xcube_stac/stac.py diff --git a/test/cassettes/test_opener/StacDataOpenerTest.test_describe_data.yaml b/test/cassettes/test_opener/StacDataOpenerTest.test_describe_data.yaml deleted file mode 100644 index 73de390..0000000 --- a/test/cassettes/test_opener/StacDataOpenerTest.test_describe_data.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:09 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:09 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '12' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 0a4e232284200ad72c67ee912e80a4079534af08 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320050-CPH - X-Timer: - - S1714749909.235819,VS0,VE142 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:09 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:09 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 540d936ced87a52cdd17861b4757844b6bc7b71e - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320056-CPH - X-Timer: - - S1714749909.439882,VS0,VE153 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_opener/StacDataOpenerTest.test_open_data.yaml b/test/cassettes/test_opener/StacDataOpenerTest.test_open_data.yaml deleted file mode 100644 index db22cb7..0000000 --- a/test/cassettes/test_opener/StacDataOpenerTest.test_open_data.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:09 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:09 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 2878eaf625252e8d7fc064a7d0b2c32f823c3811 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320030-CPH - X-Timer: - - S1714749910.785993,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:09 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:09 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 8d0c14f59c09be8cbf0eff7c3439d1c79d0cf539 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320038-CPH - X-Timer: - - S1714749910.826203,VS0,VE2 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_assert_bbox_intersect.yaml b/test/cassettes/test_stac/StacTest.test_assert_bbox_intersect.yaml deleted file mode 100644 index b84614e..0000000 --- a/test/cassettes/test_stac/StacTest.test_assert_bbox_intersect.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:09 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:09 GMT - Source-Age: - - '1' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 2129153a3f83638d96f4d419cc674f369142ae19 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320024-CPH - X-Timer: - - S1714749910.905763,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:09 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:09 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - e968f03199bbeb28663ec7e4d4be1fe4c35bf634 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320041-CPH - X-Timer: - - S1714749910.951570,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_do_bboxes_intersect.yaml b/test/cassettes/test_stac/StacTest.test_do_bboxes_intersect.yaml deleted file mode 100644 index 50ca058..0000000 --- a/test/cassettes/test_stac/StacTest.test_do_bboxes_intersect.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Tue, 14 May 2024 09:08:52 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Tue, 14 May 2024 09:13:52 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 676dd71a8ff122cdec17e94a3ab8a088bd54d819 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - D0EE:148AA2:18A7844:1A1CD48:66432132 - X-Served-By: - - cache-fra-eddf8230108-FRA - X-Timer: - - S1715677732.487448,VS0,VE143 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Tue, 14 May 2024 09:08:52 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Tue, 14 May 2024 09:13:52 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 36989abd8874aadf2e50450fc56334d4fe7c358e - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 6A22:312E01:32FCAB4:35F3692:66432A24 - X-Served-By: - - cache-fra-eddf8230147-FRA - X-Timer: - - S1715677733.682246,VS0,VE177 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_get_data_ids.yaml b/test/cassettes/test_stac/StacTest.test_get_data_ids.yaml deleted file mode 100644 index c42ea8a..0000000 --- a/test/cassettes/test_stac/StacTest.test_get_data_ids.yaml +++ /dev/null @@ -1,812 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:23 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 10 May 2024 07:14:23 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 65665735a43bac624ff191e81552bccc185a67f7 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 - X-Served-By: - - cache-fra-eddf8230025-FRA - X-Timer: - - S1715324963.435151,VS0,VE181 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:23 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 10 May 2024 07:14:23 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - dddea730bb5e787aec54e01185fdecb8e5363797 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 - X-Served-By: - - cache-fra-eddf8230153-FRA - X-Timer: - - S1715324964.693785,VS0,VE98 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/collection.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n ],\n - \ \"type\": \"Collection\",\n \"id\": \"zanzibar-collection\",\n \"title\": - \"zanzibar AoI\",\n \"description\": \"Collection of training labels for - zanzibar\",\n \"extent\": {\n \"spatial\": {\n \"bbox\": [\n [\n - \ 39.28919876472999,\n -5.878778696206506,\n 39.356865475223195,\n - \ -5.722212794937691\n ]\n ]\n },\n \"temporal\": - {\n \"interval\": [\n [\n \"2016-08-28T00:00:00Z\",\n - \ null\n ]\n ]\n }\n },\n \"version\": \"1.0\",\n - \ \"keywords\": [\n \"demo\"\n ],\n \"license\": \"CC-BY-4.0\",\n \"providers\": - [\n {\n \"name\": \"Commission for Lands (COLA) ; Revolutionary Government - of Zanzibar (RGoZ)\",\n \"roles\": [\n \"licensor\"\n ],\n - \ \"url\": \"http://www.zanzibarmapping.com/\"\n },\n {\n \"name\": - \"Zanzibar Mapping Initiative\",\n \"roles\": [\n \"producer\"\n - \ ],\n \"url\": \"http://www.zanzibarmapping.com/\"\n },\n {\n - \ \"name\": \"OpenStreetMap\",\n \"roles\": [\n \"producer\"\n - \ ],\n \"url\": \"https://www.openstreetmap.org\"\n },\n {\n - \ \"name\": \"WeRobotics\",\n \"roles\": [\n \"processor\"\n - \ ],\n \"url\": \"https://werobotics.org/\"\n },\n {\n \"name\": - \"World Bank\",\n \"roles\": [\n \"processor\"\n ],\n \"url\": - \"https://www.worldbank.org\"\n }\n ],\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"item\",\n \"href\": \"znz001.json\"\n },\n {\n \"rel\": - \"item\",\n \"href\": \"znz029.json\"\n }\n ]\n}\n" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '1709' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:24 GMT - ETag: - - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' - Expires: - - Fri, 10 May 2024 07:14:24 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 9c71695bf9404b640f5d04ebfdc63a0400f25379 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 - X-Served-By: - - cache-fra-eddf8230138-FRA - X-Timer: - - S1715324964.864656,VS0,VE171 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/collection.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n ],\n - \ \"type\": \"Collection\",\n \"id\": \"spacenet-buildings-collection\",\n - \ \"title\": \"spacenet-buildings AoI\",\n \"description\": \"Collection - of training labels for spacenet-buildings\",\n \"extent\": {\n \"spatial\": - {\n \"bbox\": [\n [\n -115.23556259985658,\n 31.234725900085653,\n - \ 121.66738919996575,\n 49.00558590002751\n ]\n ]\n - \ },\n \"temporal\": {\n \"interval\": [\n [\n \"2016-08-28T00:00:00Z\",\n - \ null\n ]\n ]\n }\n },\n \"version\": \"1.0\",\n - \ \"keywords\": [\n \"demo\"\n ],\n \"license\": \"CC-BY-SA-4.0\",\n - \ \"providers\": [\n {\n \"name\": \"SpaceNet\",\n \"roles\": - [\n \"licensor\",\n \"host\",\n \"producer\",\n \"processor\"\n - \ ],\n \"url\": \"https://spacenet.ai\"\n }\n ],\n \"links\": - [\n {\n \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n - \ },\n {\n \"rel\": \"parent\",\n \"href\": \"../catalog.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_2_Vegas_img2636.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_3_Paris_img1648.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_4_Shanghai_img3344.json\"\n - \ }\n ]\n}\n" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '1289' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:24 GMT - ETag: - - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' - Expires: - - Fri, 10 May 2024 07:14:24 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 26cdc4ea4b350b27ab81bb68f63018ce6d0dda4e - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 - X-Served-By: - - cache-fra-eddf8230058-FRA - X-Timer: - - S1715324964.107738,VS0,VE221 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/znz001.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"znz001\",\n \"type\": \"Feature\",\n \"bbox\": [\n 39.28919876472999,\n - \ -5.743028283012867,\n 39.31302874892266,\n -5.722212794937691\n - \ ],\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": - [\n [\n [\n 39.28919876472999,\n -5.743028283012867\n - \ ],\n [\n 39.31302874892266,\n -5.743028283012867\n - \ ],\n [\n 39.31302874892266,\n -5.722212794937691\n - \ ],\n [\n 39.28919876472999,\n -5.722212794937691\n - \ ]\n ]\n ]\n },\n \"assets\": {\n \"labels\": {\n \"title\": - \"znz001_label\",\n \"href\": \"https://www.dropbox.com/sh/ct3s1x2a846x3yl/AAARCAOqhcRdoU7ULOb9GJl9a/grid_001.geojson?dl=1\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"znz001_previewcog\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ },\n \"thumbnail\": {\n \"title\": \"znz001_thumbnail\",\n \"href\": - \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.png\",\n - \ \"type\": \"image/png\"\n }\n },\n \"properties\": {\n \"datetime\": - \"2019-04-23T00:00:00Z\",\n \"license\": \"CC-BY-4.0\",\n \"label:properties\": - [\n \"building\",\n \"condition\"\n ],\n \"label:description\": - \"building footprints manually labeled and classified according to building - completion status\",\n \"label:tasks\": [\n \"segmentation\"\n ],\n - \ \"label:type\": \"vector\",\n \"label:methods\": [\n \"manual\"\n - \ ],\n \"version\": \"1\",\n \"label:classes\": [\n {\n \"name\": - \"building\",\n \"classes\": [\n \"yes\"\n ]\n },\n - \ {\n \"name\": \"condition\",\n \"classes\": [\n \"Complete\",\n - \ \"Incomplete\",\n \"Foundation\"\n ]\n }\n - \ ],\n \"label:overviews\": [\n {\n \"property_key\": \"building\",\n - \ \"counts\": [\n {\n \"name\": \"yes\",\n \"count\": - 4440\n }\n ]\n }\n ]\n },\n \"links\": [\n {\n - \ \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n - \ \"rel\": \"parent\",\n \"href\": \"collection.json\"\n },\n - \ {\n \"rel\": \"collection\",\n \"href\": \"collection.json\"\n - \ },\n {\n \"rel\": \"source\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"building\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2776' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:24 GMT - ETag: - - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' - Expires: - - Fri, 10 May 2024 07:14:24 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - aeb31c8e501dd2c409c7f3e303ee0c00d49f20d9 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 - X-Served-By: - - cache-fra-eddf8230026-FRA - X-Timer: - - S1715324964.399748,VS0,VE164 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/znz029.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/file/v1.0.0/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"znz029\",\n \"type\": \"Feature\",\n \"bbox\": [\n 39.3411063109548,\n - \ -5.878778696206506,\n 39.356865475223195,\n -5.851576529338078\n - \ ],\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": - [\n [\n [\n 39.3411063109548,\n -5.878778696206506\n - \ ],\n [\n 39.3411063109548,\n -5.851576529338078\n - \ ],\n [\n 39.356865475223195,\n -5.851576529338078\n - \ ],\n [\n 39.356865475223195,\n -5.878778696206506\n - \ ]\n ]\n ]\n },\n \"assets\": {\n \"labels\": {\n \"title\": - \"znz029_label\",\n \"href\": \"https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADHytc8fSCf3gna0wNAW3lZa/grid_029.geojson?dl=1\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"znz029_previewcog\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ },\n \"thumbnail\": {\n \"title\": \"znz029_thumbnail\",\n \"href\": - \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.png\",\n - \ \"type\": \"image/png\"\n }\n },\n \"properties\": {\n \"datetime\": - \"2019-04-23T00:00:00Z\",\n \"license\": \"CC-BY-4.0\",\n \"label:properties\": - [\n \"building\",\n \"condition\"\n ],\n \"label:description\": - \"building footprints manually labeled and classified according to building - completion status\",\n \"label:tasks\": [\n \"segmentation\"\n ],\n - \ \"label:type\": \"vector\",\n \"label:methods\": [\n \"manual\"\n - \ ],\n \"version\": \"1\",\n \"label:classes\": [\n {\n \"name\": - \"building\",\n \"classes\": [\n \"yes\"\n ]\n },\n - \ {\n \"name\": \"condition\",\n \"classes\": [\n \"Complete\",\n - \ \"Incomplete\",\n \"Foundation\"\n ]\n }\n - \ ],\n \"label:overviews\": [\n {\n \"property_key\": \"building\",\n - \ \"counts\": [\n {\n \"name\": \"yes\",\n \"count\": - 1612\n }\n ]\n }\n ]\n },\n \"links\": [\n {\n - \ \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n - \ \"rel\": \"parent\",\n \"href\": \"collection.json\"\n },\n - \ {\n \"rel\": \"collection\",\n \"href\": \"collection.json\"\n - \ },\n {\n \"rel\": \"source\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"building\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2774' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:24 GMT - ETag: - - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' - Expires: - - Fri, 10 May 2024 07:14:24 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 91d16023fd65a0e0ed71ca77b9e8c71496f7d94f - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 - X-Served-By: - - cache-fra-eddf8230138-FRA - X-Timer: - - S1715324965.635045,VS0,VE170 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_2_Vegas_img2636.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"AOI_2_Vegas_img2636\",\n \"type\": \"Feature\",\n \"bbox\": - [\n -115.23556259985658,\n 36.12654269972625,\n -115.23412932899998,\n - \ 36.12829769972975\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n - \ \"coordinates\": [\n [\n [\n -115.23556259985658,\n - \ 36.12654269972625\n ],\n [\n -115.23556259985658,\n - \ 36.12829769972975\n ],\n [\n -115.23412932899998,\n - \ 36.12829769972975\n ],\n [\n -115.23412932899998,\n - \ 36.12654269972625\n ]\n ]\n ]\n },\n \"assets\": - {\n \"labels\": {\n \"title\": \"AOI_2_Vegas_img2636_label\",\n \"href\": - \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_2_Vegas/geojson_buildings/SN2_buildings_train_AOI_2_Vegas_geojson_buildings_img2636.geojson\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"AOI_2_Vegas_img2636_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_2_Vegas/PS-MS/AOI_2_Vegas_PS-MS_COG.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n - \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n - \ ],\n \"label:description\": \"building footprints manually labeled\",\n - \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": - \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": - \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n - \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": - [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": - [\n {\n \"name\": \"0\",\n \"count\": 27\n - \ }\n ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"collection\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"source\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_2_Vegas/PS-RGB/SN2_buildings_train_AOI_2_Vegas_PS-RGB_img2636.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2533' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:25 GMT - ETag: - - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' - Expires: - - Fri, 10 May 2024 07:14:25 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 966d057f2923ef9d61c29deb0b357837034a22b7 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 464C:31B7DA:494AB4:4E5AED:663DC824 - X-Served-By: - - cache-fra-eddf8230139-FRA - X-Timer: - - S1715324965.876751,VS0,VE151 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_3_Paris_img1648.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"AOI_3_Paris_img1648\",\n \"type\": \"Feature\",\n \"bbox\": - [\n 2.288201399928881,\n 49.00383090002822,\n 2.289956399928177,\n - \ 49.00558590002751\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n - \ \"coordinates\": [\n [\n [\n 2.288201399928881,\n - \ 49.00383090002822\n ],\n [\n 2.289956399928177,\n - \ 49.00383090002822\n ],\n [\n 2.289956399928177,\n - \ 49.00558590002751\n ],\n [\n 2.288201399928881,\n - \ 49.00558590002751\n ]\n ]\n ]\n },\n \"assets\": - {\n \"labels\": {\n \"title\": \"AOI_3_Paris_img1648_label\",\n \"href\": - \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_3_Paris/geojson_buildings/SN2_buildings_train_AOI_3_Paris_geojson_buildings_img1648.geojson\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"AOI_3_Paris_img1648_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_3_Paris/PS-MS/AOI_3_Paris_PS-MS_COG.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n - \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n - \ ],\n \"label:description\": \"building footprints manually labeled\",\n - \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": - \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": - \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n - \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": - [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": - [\n {\n \"name\": \"0\",\n \"count\": 39\n - \ }\n ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"collection\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"source\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_3_Paris/PS-RGB/SN2_buildings_train_AOI_3_Paris_PS-RGB_img1648.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2521' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:25 GMT - ETag: - - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' - Expires: - - Fri, 10 May 2024 07:14:25 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - ec576ed3a15231aa18ed20d952002adfcdb54e54 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 0968:2C39F8:F59BAF:103E592:663DC824 - X-Served-By: - - cache-fra-eddf8230035-FRA - X-Timer: - - S1715324965.099802,VS0,VE158 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_4_Shanghai_img3344.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"AOI_4_Shanghai_img3344\",\n \"type\": \"Feature\",\n \"bbox\": - [\n 121.66563419996653,\n 31.234725900085653,\n 121.66738919996575,\n - \ 31.236480900084874\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n - \ \"coordinates\": [\n [\n [\n 121.66563419996653,\n - \ 31.234725900085653\n ],\n [\n 121.66563419996653,\n - \ 31.236480900084874\n ],\n [\n 121.66738919996575,\n - \ 31.236480900084874\n ],\n [\n 121.66738919996575,\n - \ 31.234725900085653\n ]\n ]\n ]\n },\n \"assets\": - {\n \"labels\": {\n \"title\": \"AOI_4_Shanghai_img3344_label\",\n - \ \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_4_Shanghai/geojson_buildings/SN2_buildings_train_AOI_4_Shanghai_geojson_buildings_img3344.geojson\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"AOI_4_Shanghai_img3344_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_4_Shanghai/PS-MS/AOI_4_Shanghai_PS-MS_COG.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n - \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n - \ ],\n \"label:description\": \"building footprints manually labeled\",\n - \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": - \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": - \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n - \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": - [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": - [\n {\n \"name\": \"0\",\n \"count\": 8\n }\n - \ ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": \"root\",\n - \ \"href\": \"../catalog.json\"\n },\n {\n \"rel\": \"parent\",\n - \ \"href\": \"collection.json\"\n },\n {\n \"rel\": \"collection\",\n - \ \"href\": \"collection.json\"\n },\n {\n \"rel\": \"source\",\n - \ \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_4_Shanghai/PS-RGB/SN2_buildings_train_AOI_4_Shanghai_PS-RGB_img3344.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2559' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:25 GMT - ETag: - - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' - Expires: - - Fri, 10 May 2024 07:14:25 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - MISS - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - fa218b4db7c1b97548b9363043164a22d4e11db9 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A44E:105F8EA:663DC824 - X-Served-By: - - cache-fra-eddf8230025-FRA - X-Timer: - - S1715324965.337690,VS0,VE166 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args_empty_args.yaml b/test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args_empty_args.yaml deleted file mode 100644 index 4cd0c95..0000000 --- a/test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args_empty_args.yaml +++ /dev/null @@ -1,524 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:26:19 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 10 May 2024 07:31:19 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - a9d60e6c9d959d30d790bf2c6118ee60c9fed882 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 - X-Served-By: - - cache-fra-eddf8230132-FRA - X-Timer: - - S1715325980.835170,VS0,VE160 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:26:20 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 10 May 2024 07:31:20 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - add68d93fc4ee1e5942e9ab0447af78fe2e2df21 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 - X-Served-By: - - cache-fra-eddf8230046-FRA - X-Timer: - - S1715325980.069099,VS0,VE96 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/collection.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n ],\n - \ \"type\": \"Collection\",\n \"id\": \"zanzibar-collection\",\n \"title\": - \"zanzibar AoI\",\n \"description\": \"Collection of training labels for - zanzibar\",\n \"extent\": {\n \"spatial\": {\n \"bbox\": [\n [\n - \ 39.28919876472999,\n -5.878778696206506,\n 39.356865475223195,\n - \ -5.722212794937691\n ]\n ]\n },\n \"temporal\": - {\n \"interval\": [\n [\n \"2016-08-28T00:00:00Z\",\n - \ null\n ]\n ]\n }\n },\n \"version\": \"1.0\",\n - \ \"keywords\": [\n \"demo\"\n ],\n \"license\": \"CC-BY-4.0\",\n \"providers\": - [\n {\n \"name\": \"Commission for Lands (COLA) ; Revolutionary Government - of Zanzibar (RGoZ)\",\n \"roles\": [\n \"licensor\"\n ],\n - \ \"url\": \"http://www.zanzibarmapping.com/\"\n },\n {\n \"name\": - \"Zanzibar Mapping Initiative\",\n \"roles\": [\n \"producer\"\n - \ ],\n \"url\": \"http://www.zanzibarmapping.com/\"\n },\n {\n - \ \"name\": \"OpenStreetMap\",\n \"roles\": [\n \"producer\"\n - \ ],\n \"url\": \"https://www.openstreetmap.org\"\n },\n {\n - \ \"name\": \"WeRobotics\",\n \"roles\": [\n \"processor\"\n - \ ],\n \"url\": \"https://werobotics.org/\"\n },\n {\n \"name\": - \"World Bank\",\n \"roles\": [\n \"processor\"\n ],\n \"url\": - \"https://www.worldbank.org\"\n }\n ],\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"item\",\n \"href\": \"znz001.json\"\n },\n {\n \"rel\": - \"item\",\n \"href\": \"znz029.json\"\n }\n ]\n}\n" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '1709' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:26:20 GMT - ETag: - - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' - Expires: - - Fri, 10 May 2024 07:31:20 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - f5742da6134986647fb7cfea551f6a2dfb49344e - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 - X-Served-By: - - cache-fra-eddf8230049-FRA - X-Timer: - - S1715325980.257083,VS0,VE142 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/collection.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n ],\n - \ \"type\": \"Collection\",\n \"id\": \"spacenet-buildings-collection\",\n - \ \"title\": \"spacenet-buildings AoI\",\n \"description\": \"Collection - of training labels for spacenet-buildings\",\n \"extent\": {\n \"spatial\": - {\n \"bbox\": [\n [\n -115.23556259985658,\n 31.234725900085653,\n - \ 121.66738919996575,\n 49.00558590002751\n ]\n ]\n - \ },\n \"temporal\": {\n \"interval\": [\n [\n \"2016-08-28T00:00:00Z\",\n - \ null\n ]\n ]\n }\n },\n \"version\": \"1.0\",\n - \ \"keywords\": [\n \"demo\"\n ],\n \"license\": \"CC-BY-SA-4.0\",\n - \ \"providers\": [\n {\n \"name\": \"SpaceNet\",\n \"roles\": - [\n \"licensor\",\n \"host\",\n \"producer\",\n \"processor\"\n - \ ],\n \"url\": \"https://spacenet.ai\"\n }\n ],\n \"links\": - [\n {\n \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n - \ },\n {\n \"rel\": \"parent\",\n \"href\": \"../catalog.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_2_Vegas_img2636.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_3_Paris_img1648.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_4_Shanghai_img3344.json\"\n - \ }\n ]\n}\n" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '1289' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:26:20 GMT - ETag: - - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' - Expires: - - Fri, 10 May 2024 07:31:20 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 079c3cbe8827c5ff06f44ec402ec96739a61bfe7 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 - X-Served-By: - - cache-fra-eddf8230158-FRA - X-Timer: - - S1715325980.470818,VS0,VE143 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/znz001.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"znz001\",\n \"type\": \"Feature\",\n \"bbox\": [\n 39.28919876472999,\n - \ -5.743028283012867,\n 39.31302874892266,\n -5.722212794937691\n - \ ],\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": - [\n [\n [\n 39.28919876472999,\n -5.743028283012867\n - \ ],\n [\n 39.31302874892266,\n -5.743028283012867\n - \ ],\n [\n 39.31302874892266,\n -5.722212794937691\n - \ ],\n [\n 39.28919876472999,\n -5.722212794937691\n - \ ]\n ]\n ]\n },\n \"assets\": {\n \"labels\": {\n \"title\": - \"znz001_label\",\n \"href\": \"https://www.dropbox.com/sh/ct3s1x2a846x3yl/AAARCAOqhcRdoU7ULOb9GJl9a/grid_001.geojson?dl=1\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"znz001_previewcog\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ },\n \"thumbnail\": {\n \"title\": \"znz001_thumbnail\",\n \"href\": - \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.png\",\n - \ \"type\": \"image/png\"\n }\n },\n \"properties\": {\n \"datetime\": - \"2019-04-23T00:00:00Z\",\n \"license\": \"CC-BY-4.0\",\n \"label:properties\": - [\n \"building\",\n \"condition\"\n ],\n \"label:description\": - \"building footprints manually labeled and classified according to building - completion status\",\n \"label:tasks\": [\n \"segmentation\"\n ],\n - \ \"label:type\": \"vector\",\n \"label:methods\": [\n \"manual\"\n - \ ],\n \"version\": \"1\",\n \"label:classes\": [\n {\n \"name\": - \"building\",\n \"classes\": [\n \"yes\"\n ]\n },\n - \ {\n \"name\": \"condition\",\n \"classes\": [\n \"Complete\",\n - \ \"Incomplete\",\n \"Foundation\"\n ]\n }\n - \ ],\n \"label:overviews\": [\n {\n \"property_key\": \"building\",\n - \ \"counts\": [\n {\n \"name\": \"yes\",\n \"count\": - 4440\n }\n ]\n }\n ]\n },\n \"links\": [\n {\n - \ \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n - \ \"rel\": \"parent\",\n \"href\": \"collection.json\"\n },\n - \ {\n \"rel\": \"collection\",\n \"href\": \"collection.json\"\n - \ },\n {\n \"rel\": \"source\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"building\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2776' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:26:20 GMT - ETag: - - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' - Expires: - - Fri, 10 May 2024 07:31:20 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - b05526f9ee3ca1158cb6f0b081c492ba1c21546e - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 - X-Served-By: - - cache-fra-eddf8230153-FRA - X-Timer: - - S1715325981.686865,VS0,VE163 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/znz029.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/file/v1.0.0/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"znz029\",\n \"type\": \"Feature\",\n \"bbox\": [\n 39.3411063109548,\n - \ -5.878778696206506,\n 39.356865475223195,\n -5.851576529338078\n - \ ],\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": - [\n [\n [\n 39.3411063109548,\n -5.878778696206506\n - \ ],\n [\n 39.3411063109548,\n -5.851576529338078\n - \ ],\n [\n 39.356865475223195,\n -5.851576529338078\n - \ ],\n [\n 39.356865475223195,\n -5.878778696206506\n - \ ]\n ]\n ]\n },\n \"assets\": {\n \"labels\": {\n \"title\": - \"znz029_label\",\n \"href\": \"https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADHytc8fSCf3gna0wNAW3lZa/grid_029.geojson?dl=1\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"znz029_previewcog\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ },\n \"thumbnail\": {\n \"title\": \"znz029_thumbnail\",\n \"href\": - \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.png\",\n - \ \"type\": \"image/png\"\n }\n },\n \"properties\": {\n \"datetime\": - \"2019-04-23T00:00:00Z\",\n \"license\": \"CC-BY-4.0\",\n \"label:properties\": - [\n \"building\",\n \"condition\"\n ],\n \"label:description\": - \"building footprints manually labeled and classified according to building - completion status\",\n \"label:tasks\": [\n \"segmentation\"\n ],\n - \ \"label:type\": \"vector\",\n \"label:methods\": [\n \"manual\"\n - \ ],\n \"version\": \"1\",\n \"label:classes\": [\n {\n \"name\": - \"building\",\n \"classes\": [\n \"yes\"\n ]\n },\n - \ {\n \"name\": \"condition\",\n \"classes\": [\n \"Complete\",\n - \ \"Incomplete\",\n \"Foundation\"\n ]\n }\n - \ ],\n \"label:overviews\": [\n {\n \"property_key\": \"building\",\n - \ \"counts\": [\n {\n \"name\": \"yes\",\n \"count\": - 1612\n }\n ]\n }\n ]\n },\n \"links\": [\n {\n - \ \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n - \ \"rel\": \"parent\",\n \"href\": \"collection.json\"\n },\n - \ {\n \"rel\": \"collection\",\n \"href\": \"collection.json\"\n - \ },\n {\n \"rel\": \"source\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"building\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2774' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:26:21 GMT - ETag: - - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' - Expires: - - Fri, 10 May 2024 07:31:21 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - bc47486156ae4857de917f82ce094980c4c96a09 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 - X-Served-By: - - cache-fra-eddf8230110-FRA - X-Timer: - - S1715325981.927171,VS0,VE132 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_get_item_collection.yaml b/test/cassettes/test_stac/StacTest.test_get_item_collection.yaml deleted file mode 100644 index 7d07d67..0000000 --- a/test/cassettes/test_stac/StacTest.test_get_item_collection.yaml +++ /dev/null @@ -1,812 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:10 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:10 GMT - Source-Age: - - '1' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - af245cd33397a7a635de1beb424737759ed4ee09 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320021-CPH - X-Timer: - - S1714749910.138134,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:10 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:10 GMT - Source-Age: - - '1' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 6a711c62afb006b2616e54011dd2c9a2ba2a5a59 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320032-CPH - X-Timer: - - S1714749910.188491,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/collection.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n ],\n - \ \"type\": \"Collection\",\n \"id\": \"zanzibar-collection\",\n \"title\": - \"zanzibar AoI\",\n \"description\": \"Collection of training labels for - zanzibar\",\n \"extent\": {\n \"spatial\": {\n \"bbox\": [\n [\n - \ 39.28919876472999,\n -5.878778696206506,\n 39.356865475223195,\n - \ -5.722212794937691\n ]\n ]\n },\n \"temporal\": - {\n \"interval\": [\n [\n \"2016-08-28T00:00:00Z\",\n - \ null\n ]\n ]\n }\n },\n \"version\": \"1.0\",\n - \ \"keywords\": [\n \"demo\"\n ],\n \"license\": \"CC-BY-4.0\",\n \"providers\": - [\n {\n \"name\": \"Commission for Lands (COLA) ; Revolutionary Government - of Zanzibar (RGoZ)\",\n \"roles\": [\n \"licensor\"\n ],\n - \ \"url\": \"http://www.zanzibarmapping.com/\"\n },\n {\n \"name\": - \"Zanzibar Mapping Initiative\",\n \"roles\": [\n \"producer\"\n - \ ],\n \"url\": \"http://www.zanzibarmapping.com/\"\n },\n {\n - \ \"name\": \"OpenStreetMap\",\n \"roles\": [\n \"producer\"\n - \ ],\n \"url\": \"https://www.openstreetmap.org\"\n },\n {\n - \ \"name\": \"WeRobotics\",\n \"roles\": [\n \"processor\"\n - \ ],\n \"url\": \"https://werobotics.org/\"\n },\n {\n \"name\": - \"World Bank\",\n \"roles\": [\n \"processor\"\n ],\n \"url\": - \"https://www.worldbank.org\"\n }\n ],\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"item\",\n \"href\": \"znz001.json\"\n },\n {\n \"rel\": - \"item\",\n \"href\": \"znz029.json\"\n }\n ]\n}\n" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '1709' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:10 GMT - ETag: - - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' - Expires: - - Fri, 03 May 2024 15:30:10 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - d14b623440358fdd80f3979e7f34c3a556d57e76 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CEA048:1E6FBF3:6634FE90 - X-Served-By: - - cache-cph2320054-CPH - X-Timer: - - S1714749910.221482,VS0,VE153 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/collection.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n ],\n - \ \"type\": \"Collection\",\n \"id\": \"spacenet-buildings-collection\",\n - \ \"title\": \"spacenet-buildings AoI\",\n \"description\": \"Collection - of training labels for spacenet-buildings\",\n \"extent\": {\n \"spatial\": - {\n \"bbox\": [\n [\n -115.23556259985658,\n 31.234725900085653,\n - \ 121.66738919996575,\n 49.00558590002751\n ]\n ]\n - \ },\n \"temporal\": {\n \"interval\": [\n [\n \"2016-08-28T00:00:00Z\",\n - \ null\n ]\n ]\n }\n },\n \"version\": \"1.0\",\n - \ \"keywords\": [\n \"demo\"\n ],\n \"license\": \"CC-BY-SA-4.0\",\n - \ \"providers\": [\n {\n \"name\": \"SpaceNet\",\n \"roles\": - [\n \"licensor\",\n \"host\",\n \"producer\",\n \"processor\"\n - \ ],\n \"url\": \"https://spacenet.ai\"\n }\n ],\n \"links\": - [\n {\n \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n - \ },\n {\n \"rel\": \"parent\",\n \"href\": \"../catalog.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_2_Vegas_img2636.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_3_Paris_img1648.json\"\n - \ },\n {\n \"rel\": \"item\",\n \"href\": \"AOI_4_Shanghai_img3344.json\"\n - \ }\n ]\n}\n" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '1289' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:10 GMT - ETag: - - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' - Expires: - - Fri, 03 May 2024 15:30:10 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 97465dd0702c2c297fc0465a1111902e3b7471fb - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BD44:35E0B5:82172B:890D03:66349397 - X-Served-By: - - cache-cph2320030-CPH - X-Timer: - - S1714749910.409717,VS0,VE147 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/znz001.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"znz001\",\n \"type\": \"Feature\",\n \"bbox\": [\n 39.28919876472999,\n - \ -5.743028283012867,\n 39.31302874892266,\n -5.722212794937691\n - \ ],\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": - [\n [\n [\n 39.28919876472999,\n -5.743028283012867\n - \ ],\n [\n 39.31302874892266,\n -5.743028283012867\n - \ ],\n [\n 39.31302874892266,\n -5.722212794937691\n - \ ],\n [\n 39.28919876472999,\n -5.722212794937691\n - \ ]\n ]\n ]\n },\n \"assets\": {\n \"labels\": {\n \"title\": - \"znz001_label\",\n \"href\": \"https://www.dropbox.com/sh/ct3s1x2a846x3yl/AAARCAOqhcRdoU7ULOb9GJl9a/grid_001.geojson?dl=1\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"znz001_previewcog\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ },\n \"thumbnail\": {\n \"title\": \"znz001_thumbnail\",\n \"href\": - \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.png\",\n - \ \"type\": \"image/png\"\n }\n },\n \"properties\": {\n \"datetime\": - \"2019-04-23T00:00:00Z\",\n \"license\": \"CC-BY-4.0\",\n \"label:properties\": - [\n \"building\",\n \"condition\"\n ],\n \"label:description\": - \"building footprints manually labeled and classified according to building - completion status\",\n \"label:tasks\": [\n \"segmentation\"\n ],\n - \ \"label:type\": \"vector\",\n \"label:methods\": [\n \"manual\"\n - \ ],\n \"version\": \"1\",\n \"label:classes\": [\n {\n \"name\": - \"building\",\n \"classes\": [\n \"yes\"\n ]\n },\n - \ {\n \"name\": \"condition\",\n \"classes\": [\n \"Complete\",\n - \ \"Incomplete\",\n \"Foundation\"\n ]\n }\n - \ ],\n \"label:overviews\": [\n {\n \"property_key\": \"building\",\n - \ \"counts\": [\n {\n \"name\": \"yes\",\n \"count\": - 4440\n }\n ]\n }\n ]\n },\n \"links\": [\n {\n - \ \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n - \ \"rel\": \"parent\",\n \"href\": \"collection.json\"\n },\n - \ {\n \"rel\": \"collection\",\n \"href\": \"collection.json\"\n - \ },\n {\n \"rel\": \"source\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5afeda152b6a08001185f11a/0/5afeda152b6a08001185f11b.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"building\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2776' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:10 GMT - ETag: - - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' - Expires: - - Fri, 03 May 2024 15:30:10 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 50880485e614fcf90d2ccb2039a8c955a9935670 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 4110:358461:BBEFF9:C5A505:66349629 - X-Served-By: - - cache-cph2320034-CPH - X-Timer: - - S1714749911.596900,VS0,VE143 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/zanzibar/znz029.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/file/v1.0.0/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"znz029\",\n \"type\": \"Feature\",\n \"bbox\": [\n 39.3411063109548,\n - \ -5.878778696206506,\n 39.356865475223195,\n -5.851576529338078\n - \ ],\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": - [\n [\n [\n 39.3411063109548,\n -5.878778696206506\n - \ ],\n [\n 39.3411063109548,\n -5.851576529338078\n - \ ],\n [\n 39.356865475223195,\n -5.851576529338078\n - \ ],\n [\n 39.356865475223195,\n -5.878778696206506\n - \ ]\n ]\n ]\n },\n \"assets\": {\n \"labels\": {\n \"title\": - \"znz029_label\",\n \"href\": \"https://www.dropbox.com/sh/ct3s1x2a846x3yl/AADHytc8fSCf3gna0wNAW3lZa/grid_029.geojson?dl=1\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"znz029_previewcog\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ },\n \"thumbnail\": {\n \"title\": \"znz029_thumbnail\",\n \"href\": - \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.png\",\n - \ \"type\": \"image/png\"\n }\n },\n \"properties\": {\n \"datetime\": - \"2019-04-23T00:00:00Z\",\n \"license\": \"CC-BY-4.0\",\n \"label:properties\": - [\n \"building\",\n \"condition\"\n ],\n \"label:description\": - \"building footprints manually labeled and classified according to building - completion status\",\n \"label:tasks\": [\n \"segmentation\"\n ],\n - \ \"label:type\": \"vector\",\n \"label:methods\": [\n \"manual\"\n - \ ],\n \"version\": \"1\",\n \"label:classes\": [\n {\n \"name\": - \"building\",\n \"classes\": [\n \"yes\"\n ]\n },\n - \ {\n \"name\": \"condition\",\n \"classes\": [\n \"Complete\",\n - \ \"Incomplete\",\n \"Foundation\"\n ]\n }\n - \ ],\n \"label:overviews\": [\n {\n \"property_key\": \"building\",\n - \ \"counts\": [\n {\n \"name\": \"yes\",\n \"count\": - 1612\n }\n ]\n }\n ]\n },\n \"links\": [\n {\n - \ \"rel\": \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n - \ \"rel\": \"parent\",\n \"href\": \"collection.json\"\n },\n - \ {\n \"rel\": \"collection\",\n \"href\": \"collection.json\"\n - \ },\n {\n \"rel\": \"source\",\n \"href\": \"https://oin-hotosm.s3.amazonaws.com/5ae242fd0b093000130afd38/0/5ae242fd0b093000130afd39.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"building\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2774' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:10 GMT - ETag: - - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' - Expires: - - Fri, 03 May 2024 15:30:10 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 7ebfb2eb4299ad07ed1a82a0fa78b02c5ee9c8db - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - B710:26E42A:1C85640:1E0B055:6634FE8F - X-Served-By: - - cache-cph2320047-CPH - X-Timer: - - S1714749911.785684,VS0,VE150 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_2_Vegas_img2636.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"AOI_2_Vegas_img2636\",\n \"type\": \"Feature\",\n \"bbox\": - [\n -115.23556259985658,\n 36.12654269972625,\n -115.23412932899998,\n - \ 36.12829769972975\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n - \ \"coordinates\": [\n [\n [\n -115.23556259985658,\n - \ 36.12654269972625\n ],\n [\n -115.23556259985658,\n - \ 36.12829769972975\n ],\n [\n -115.23412932899998,\n - \ 36.12829769972975\n ],\n [\n -115.23412932899998,\n - \ 36.12654269972625\n ]\n ]\n ]\n },\n \"assets\": - {\n \"labels\": {\n \"title\": \"AOI_2_Vegas_img2636_label\",\n \"href\": - \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_2_Vegas/geojson_buildings/SN2_buildings_train_AOI_2_Vegas_geojson_buildings_img2636.geojson\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"AOI_2_Vegas_img2636_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_2_Vegas/PS-MS/AOI_2_Vegas_PS-MS_COG.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n - \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n - \ ],\n \"label:description\": \"building footprints manually labeled\",\n - \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": - \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": - \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n - \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": - [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": - [\n {\n \"name\": \"0\",\n \"count\": 27\n - \ }\n ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"collection\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"source\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_2_Vegas/PS-RGB/SN2_buildings_train_AOI_2_Vegas_PS-RGB_img2636.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2533' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:11 GMT - ETag: - - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' - Expires: - - Fri, 03 May 2024 15:30:11 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 2553e0ede1840cbfa0a865b340042a956f7cb96f - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5530:3AEF18:AA92B3:B30ACF:6634FE92 - X-Served-By: - - cache-cph2320025-CPH - X-Timer: - - S1714749911.994742,VS0,VE151 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_3_Paris_img1648.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"AOI_3_Paris_img1648\",\n \"type\": \"Feature\",\n \"bbox\": - [\n 2.288201399928881,\n 49.00383090002822,\n 2.289956399928177,\n - \ 49.00558590002751\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n - \ \"coordinates\": [\n [\n [\n 2.288201399928881,\n - \ 49.00383090002822\n ],\n [\n 2.289956399928177,\n - \ 49.00383090002822\n ],\n [\n 2.289956399928177,\n - \ 49.00558590002751\n ],\n [\n 2.288201399928881,\n - \ 49.00558590002751\n ]\n ]\n ]\n },\n \"assets\": - {\n \"labels\": {\n \"title\": \"AOI_3_Paris_img1648_label\",\n \"href\": - \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_3_Paris/geojson_buildings/SN2_buildings_train_AOI_3_Paris_geojson_buildings_img1648.geojson\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"AOI_3_Paris_img1648_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_3_Paris/PS-MS/AOI_3_Paris_PS-MS_COG.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n - \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n - \ ],\n \"label:description\": \"building footprints manually labeled\",\n - \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": - \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": - \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n - \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": - [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": - [\n {\n \"name\": \"0\",\n \"count\": 39\n - \ }\n ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": - \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": - \"parent\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"collection\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": - \"source\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_3_Paris/PS-RGB/SN2_buildings_train_AOI_3_Paris_PS-RGB_img1648.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2521' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:11 GMT - ETag: - - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' - Expires: - - Fri, 03 May 2024 15:30:11 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 01d98d0460592a05152a440537e04fb802489148 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - F56A:38D17E:1B64F19:1CD8517:6634CEEC - X-Served-By: - - cache-cph2320053-CPH - X-Timer: - - S1714749911.200401,VS0,VE145 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_4_Shanghai_img3344.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n - \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n - \ ],\n \"id\": \"AOI_4_Shanghai_img3344\",\n \"type\": \"Feature\",\n \"bbox\": - [\n 121.66563419996653,\n 31.234725900085653,\n 121.66738919996575,\n - \ 31.236480900084874\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n - \ \"coordinates\": [\n [\n [\n 121.66563419996653,\n - \ 31.234725900085653\n ],\n [\n 121.66563419996653,\n - \ 31.236480900084874\n ],\n [\n 121.66738919996575,\n - \ 31.236480900084874\n ],\n [\n 121.66738919996575,\n - \ 31.234725900085653\n ]\n ]\n ]\n },\n \"assets\": - {\n \"labels\": {\n \"title\": \"AOI_4_Shanghai_img3344_label\",\n - \ \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_4_Shanghai/geojson_buildings/SN2_buildings_train_AOI_4_Shanghai_geojson_buildings_img3344.geojson\",\n - \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": - \"AOI_4_Shanghai_img3344_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_4_Shanghai/PS-MS/AOI_4_Shanghai_PS-MS_COG.tif\",\n - \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n - \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n - \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n - \ ],\n \"label:description\": \"building footprints manually labeled\",\n - \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": - \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": - \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n - \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": - [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": - [\n {\n \"name\": \"0\",\n \"count\": 8\n }\n - \ ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": \"root\",\n - \ \"href\": \"../catalog.json\"\n },\n {\n \"rel\": \"parent\",\n - \ \"href\": \"collection.json\"\n },\n {\n \"rel\": \"collection\",\n - \ \"href\": \"collection.json\"\n },\n {\n \"rel\": \"source\",\n - \ \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_4_Shanghai/PS-RGB/SN2_buildings_train_AOI_4_Shanghai_PS-RGB_img3344.tif\",\n - \ \"title\": \"The source imagery these building labels were derived from\",\n - \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '2559' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:11 GMT - ETag: - - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' - Expires: - - Fri, 03 May 2024 15:30:11 GMT - Source-Age: - - '0' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '0' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 0783e06e58e4df777a77e4aadfa00a63ee54831f - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - F11E:2E8F4B:1CEA11C:1E6FCC4:6634FE92 - X-Served-By: - - cache-cph2320055-CPH - X-Timer: - - S1714749911.390596,VS0,VE171 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_get_open_data_params_schema.yaml b/test/cassettes/test_stac/StacTest.test_get_open_data_params_schema.yaml deleted file mode 100644 index 0934121..0000000 --- a/test/cassettes/test_stac/StacTest.test_get_open_data_params_schema.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - c502af8f8686daf09f8bafaf96bd1c77a6730167 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320049-CPH - X-Timer: - - S1714749928.005785,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '18' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 4bb2db2a031b7ea0ab81a24a0aa9a7f03a7e3c63 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320026-CPH - X-Timer: - - S1714749928.037855,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_is_datetime_in_range.yaml b/test/cassettes/test_stac/StacTest.test_is_datetime_in_range.yaml deleted file mode 100644 index c97cf6e..0000000 --- a/test/cassettes/test_stac/StacTest.test_is_datetime_in_range.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Tue, 14 May 2024 09:08:53 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Tue, 14 May 2024 09:13:53 GMT - Source-Age: - - '1' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 2cbca05f9d22f301c772d1262935378fd999b79a - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - D0EE:148AA2:18A7844:1A1CD48:66432132 - X-Served-By: - - cache-fra-eddf8230053-FRA - X-Timer: - - S1715677734.969463,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Tue, 14 May 2024 09:08:54 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Tue, 14 May 2024 09:13:54 GMT - Source-Age: - - '1' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 4d79d1d040b572d5e021147a378a3e58b1c0a14a - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 6A22:312E01:32FCAB4:35F3692:66432A24 - X-Served-By: - - cache-fra-eddf8230034-FRA - X-Timer: - - S1715677734.018500,VS0,VE2 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_stac/StacTest.test_open_data.yaml b/test/cassettes/test_stac/StacTest.test_open_data.yaml deleted file mode 100644 index 8e2f9ec..0000000 --- a/test/cassettes/test_stac/StacTest.test_open_data.yaml +++ /dev/null @@ -1,150 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, br - Connection: - - keep-alive - User-Agent: - - python-requests/2.31.0 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - keep-alive - Content-Encoding: - - gzip - Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:28 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 10 May 2024 07:14:28 GMT - Source-Age: - - '4' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 88cb942b818b4a78d21ae98d9e1a07cc22c6d25d - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 - X-Served-By: - - cache-fra-eddf8230131-FRA - X-Timer: - - S1715324968.006322,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 10 May 2024 07:09:28 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 10 May 2024 07:14:28 GMT - Source-Age: - - '4' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 52a20eaa88a8e3068059761405e307734bf7b4ff - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 - X-Served-By: - - cache-fra-eddf8230070-FRA - X-Timer: - - S1715324968.078720,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -version: 1 diff --git a/test/cassettes/test_store/StacDataStoreTest.test_describe_data.yaml b/test/cassettes/test_store/StacDataStoreTest.test_describe_data.yaml index d7b303f..f65291b 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_describe_data.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_describe_data.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - - '19' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -57,19 +57,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 7f637283b237c2d2b2fb98b7774bf55dae35a1f4 + - cc4e52f5772183c907b165bbe79dac7e1fbdf56b X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320054-CPH + - cache-fra-eddf8230084-FRA X-Timer: - - S1714749928.187199,VS0,VE1 + - S1716541081.218784,VS0,VE148 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - - '19' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -129,19 +129,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - debf3efebab98abdfaadf704dbf43d99a1a559f1 + - 7d9c4406f2cef79e17bf1575729e7383d9404a7f X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320040-CPH + - cache-fra-eddf8230105-FRA X-Timer: - - S1714749928.216734,VS0,VE1 + - S1716541081.427758,VS0,VE90 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_opener/StacDataOpenerTest.test_get_open_data_params_schema.yaml b/test/cassettes/test_store/StacDataStoreTest.test_do_bboxes_intersect.yaml similarity index 89% rename from test/cassettes/test_opener/StacDataOpenerTest.test_get_open_data_params_schema.yaml rename to test/cassettes/test_store/StacDataStoreTest.test_do_bboxes_intersect.yaml index c59bba1..0dd5fe5 100644 --- a/test/cassettes/test_opener/StacDataOpenerTest.test_get_open_data_params_schema.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_do_bboxes_intersect.yaml @@ -41,11 +41,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:09 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:09 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - '0' Strict-Transport-Security: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 946111bff5a656f86ac42d826e730bc3ed27e7a6 + - cfd8240f6de70fcc5e27b454b739228b590024f7 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320055-CPH + - cache-fra-eddf8230022-FRA X-Timer: - - S1714749910.668303,VS0,VE1 + - S1716541082.587935,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -113,11 +113,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:09 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:09 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - '0' Strict-Transport-Security: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - e8716da96d920c901211df1579fabcff085f2dc1 + - ce9ecafb173bb99a11def85f054f61634f062409 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320042-CPH + - cache-fra-eddf8230092-FRA X-Timer: - - S1714749910.704696,VS0,VE1 + - S1716541082.639785,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids.yaml index fc77fe2..72108b1 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - - '19' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -57,19 +57,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '2' + - '1' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 14be5efac40aab90771d9626acd1bc448b6bcded + - fd0a60f34e7a38e3341ba43838d5f61e8ebda6b7 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320049-CPH + - cache-fra-eddf8230110-FRA X-Timer: - - S1714749928.273468,VS0,VE0 + - S1716541082.724441,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - - '19' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - c5e97eecd0dbaf3a5b93be7b51e1a7dcfdd874ee + - eae9e2161525ddf248905b768559bc742882d407 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320039-CPH + - cache-fra-eddf8230125-FRA X-Timer: - - S1714749928.312487,VS0,VE1 + - S1716541082.778933,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:01 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:01 GMT Source-Age: - - '4' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -219,19 +219,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 5d57f86b5a644a0a2c7b1722ed8e096cb5a589be + - eff90285210edad60c7127be81283beb74278707 X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230088-FRA + - cache-fra-eddf8230113-FRA X-Timer: - - S1715324968.340536,VS0,VE1 + - S1716541082.832115,VS0,VE154 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:02 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:02 GMT Source-Age: - - '4' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -303,19 +303,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 4aae9a04a7bc61a4d69787f6f01c189749f93497 + - 48890f1eb225b7674f219c53895b6960c7070e25 X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230147-FRA + - cache-fra-eddf8230137-FRA X-Timer: - - S1715324968.423833,VS0,VE1 + - S1716541082.041981,VS0,VE185 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:02 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:02 GMT Source-Age: - - '4' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -403,19 +403,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - a453c38a1dbf456f72e0bbd0501085fd8d56b425 + - 9b797c830dd7f06feb10850b67d3bc65d745d302 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230055-FRA + - cache-fra-eddf8230028-FRA X-Timer: - - S1715324968.499713,VS0,VE1 + - S1716541082.468583,VS0,VE152 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:02 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:02 GMT Source-Age: - - '4' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -503,19 +503,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - a88643d6bb853e5b46f52ab63dfef0843f14b610 + - a9e03b555bacfc573ed3ffce76b25ed4a8789bdf X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230050-FRA + - cache-fra-eddf8230145-FRA X-Timer: - - S1715324969.574925,VS0,VE1 + - S1716541083.673491,VS0,VE166 X-XSS-Protection: - 1; mode=block status: @@ -583,13 +583,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - - '4' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -599,19 +599,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 62fcb9ed0e517159351504fe2fbd2ad5c076654b + - 3d9db954537352f3d458c2813ac25848471de2d9 X-Frame-Options: - deny X-GitHub-Request-Id: - - 464C:31B7DA:494AB4:4E5AED:663DC824 + - A3B0:2F2389:1860BF0:19B2BED:66505264 X-Served-By: - - cache-fra-eddf8230124-FRA + - cache-fra-eddf8230109-FRA X-Timer: - - S1715324969.655717,VS0,VE1 + - S1716541083.892545,VS0,VE150 X-XSS-Protection: - 1; mode=block status: @@ -679,13 +679,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - - '3' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -695,19 +695,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - ea564bfcb0593b3ed978c4459b043f8ef011d43c + - 09c7d128b3088638f8b11583e3464f520135d26e X-Frame-Options: - deny X-GitHub-Request-Id: - - 0968:2C39F8:F59BAF:103E592:663DC824 + - 89B0:343D51:70A407:76EC44:66505264 X-Served-By: - - cache-fra-eddf8230041-FRA + - cache-fra-eddf8230116-FRA X-Timer: - - S1715324969.729849,VS0,VE1 + - S1716541083.096757,VS0,VE169 X-XSS-Protection: - 1; mode=block status: @@ -775,13 +775,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - - '3' + - '0' Strict-Transport-Security: - max-age=31536000 Vary: @@ -791,19 +791,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '0' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 3edab2c74295949537d80634c40d95d5029d949d + - cca933c42e3cbdefd2c05eda4c27e028835821c8 X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A44E:105F8EA:663DC824 + - 6970:1A1B9A:2254DAB:242883D:66505264 X-Served-By: - - cache-fra-eddf8230157-FRA + - cache-fra-eddf8230049-FRA X-Timer: - - S1715324969.806974,VS0,VE3 + - S1716541083.319772,VS0,VE157 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_stac/StacTest.test_get_item_collection_open_params.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_from_items.yaml similarity index 93% rename from test/cassettes/test_stac/StacTest.test_get_item_collection_open_params.yaml rename to test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_from_items.yaml index d207dc7..fb44940 100644 --- a/test/cassettes/test_stac/StacTest.test_get_item_collection_open_params.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_from_items.yaml @@ -41,11 +41,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:11 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:11 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - '2' Strict-Transport-Security: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 9a3e23a6b95fde8020458d889b8b41771e818d49 + - 69ca7b30da85f93a7e5d5e9d55f68258ac3579dc X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320052-CPH + - cache-fra-eddf8230091-FRA X-Timer: - - S1714749912.652363,VS0,VE1 + - S1716541084.557145,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -113,11 +113,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:11 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:11 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - '2' Strict-Transport-Security: @@ -129,19 +129,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '22' + - '1' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 226340d3ca3eebcad0171670ea5692156bc2d4c6 + - 1e6fea579953d16383f6c763706bf9e974ef2fc7 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320050-CPH + - cache-fra-eddf8230148-FRA X-Timer: - - S1714749912.695775,VS0,VE0 + - S1716541084.609836,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:11 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 03 May 2024 15:30:11 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - - '1' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - cc22ef21e3db14d3e15dddbb6667d36e085b5faf + - ba3f5b1577c1d20d4bc6ca0452da0a49d1ff6f86 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CEA048:1E6FBF3:6634FE90 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-cph2320038-CPH + - cache-fra-eddf8230138-FRA X-Timer: - - S1714749912.736014,VS0,VE1 + - S1716541084.663984,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -287,11 +287,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:11 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 03 May 2024 15:30:11 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - '1' Strict-Transport-Security: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - c3c9df03d3e56569e368c68e3e1861bfc1b46018 + - 9e86008cd624c17473c225974466b7bd1f09e907 X-Frame-Options: - deny X-GitHub-Request-Id: - - BD44:35E0B5:82172B:890D03:66349397 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-cph2320038-CPH + - cache-fra-eddf8230133-FRA X-Timer: - - S1714749912.788174,VS0,VE1 + - S1716541084.719232,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,11 +387,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:11 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 03 May 2024 15:30:11 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - '1' Strict-Transport-Security: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - f64d2eea509a0bc68f45dcc65c4b2d06c818b44b + - b581bd698fbf762a1121f938e7f060da3e2a3929 X-Frame-Options: - deny X-GitHub-Request-Id: - - 4110:358461:BBEFF9:C5A505:66349629 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-cph2320044-CPH + - cache-fra-eddf8230027-FRA X-Timer: - - S1714749912.823200,VS0,VE1 + - S1716541084.776771,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -487,11 +487,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:11 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 03 May 2024 15:30:11 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - '1' Strict-Transport-Security: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 727d385ad20bb0195334f9f83f0d4018b26121e6 + - 17fb7dec59d64385301b57b17d0dc356cf9b39e6 X-Frame-Options: - deny X-GitHub-Request-Id: - - B710:26E42A:1C85640:1E0B055:6634FE8F + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-cph2320029-CPH + - cache-fra-eddf8230151-FRA X-Timer: - - S1714749912.862218,VS0,VE1 + - S1716541084.862698,VS0,VE9 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args.yaml index bfcfddb..5960560 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:03 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:03 GMT Source-Age: - - '5' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - f31a7b7cf924941255a352cd1457a3efdfb976f6 + - 43a03215fe02f20bcac461d8e94994249adbbb5c X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-fra-eddf8230144-FRA + - cache-fra-eddf8230038-FRA X-Timer: - - S1715324969.917206,VS0,VE1 + - S1716541084.948158,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:28 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 10 May 2024 07:14:28 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '5' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 5b8dd2955737a6c17d1d2ca6ed853f70aa005799 + - b57a476146d36aed2a09964947641803a2dfe1b8 X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-fra-eddf8230031-FRA + - cache-fra-eddf8230109-FRA X-Timer: - - S1715324969.988517,VS0,VE1 + - S1716541084.000581,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '5' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 7518c1590b56ad5b652afcb45cd5eeaba2598786 + - 80f4277c664be9f04a70abb4f53faf2a8bf8a49b X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230145-FRA + - cache-fra-eddf8230068-FRA X-Timer: - - S1715324969.068276,VS0,VE1 + - S1716541085.542760,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '5' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 9c331e7565f05fdb7ea8ac388b68aa75a8409dc9 + - 596b40fde50561635b4eabb70cfcac5c7ca50f1b X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230121-FRA + - cache-fra-eddf8230085-FRA X-Timer: - - S1715324969.163934,VS0,VE1 + - S1716541085.595749,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '5' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - e97ab3512577b2eb114cc3c89fff6e80ac949bc8 + - 924b5c0df9cc8013ed262275a00bfa76f85e4466 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230113-FRA + - cache-fra-eddf8230136-FRA X-Timer: - - S1715324969.238517,VS0,VE1 + - S1716541085.648799,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '5' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 7f11a08069ece623357e7a8f97d1e6c9d03c5c77 + - 613874fe1deee9cbf96501e98ee47f5d774aa9ad X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230096-FRA + - cache-fra-eddf8230116-FRA X-Timer: - - S1715324969.313457,VS0,VE1 + - S1716541085.701349,VS0,VE5 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args_empty_args.yaml similarity index 93% rename from test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args.yaml rename to test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args_empty_args.yaml index 753e7be..e85014c 100644 --- a/test/cassettes/test_stac/StacTest.test_get_data_ids_optional_args.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_ids_optional_args_empty_args.yaml @@ -41,11 +41,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - '3' Strict-Transport-Security: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - df710316c85a5940f86fd1e2cacb1bcca6fbdc5c + - 42b96759653078ba3d851b75d1569d5991323b9d X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-fra-eddf8230084-FRA + - cache-fra-eddf8230157-FRA X-Timer: - - S1715324966.145067,VS0,VE1 + - S1716541085.772798,VS0,VE13 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '2' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 826bab83ce24f34d5b8d70446967659610b61efd + - f28012f1a58bb56c04a1367713e80a87c479724b X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-fra-eddf8230061-FRA + - cache-fra-eddf8230043-FRA X-Timer: - - S1715324966.219325,VS0,VE1 + - S1716541085.837286,VS0,VE20 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '2' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 8afd1c60fb3b418ac9ba0e386a1a09fef0b27d0a + - 43137188ffd96628e284b279b92cfb35254a23e6 X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230073-FRA + - cache-fra-eddf8230112-FRA X-Timer: - - S1715324966.292536,VS0,VE1 + - S1716541085.908000,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:04 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:04 GMT Source-Age: - - '2' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 76c9632d0d0f8d5d860680b358cd120d2630b358 + - 7edad6118331482f87cb5631c14011f83a5ec9d3 X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230021-FRA + - cache-fra-eddf8230119-FRA X-Timer: - - S1715324966.366755,VS0,VE1 + - S1716541085.968645,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,11 +387,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - '2' Strict-Transport-Security: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - c8f2191e668042a0e0ba591bd521991c89567264 + - 0902ce67ae5000a74b704aa27b5ffe22495c1c96 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230136-FRA + - cache-fra-eddf8230075-FRA X-Timer: - - S1715324966.438652,VS0,VE1 + - S1716541085.021618,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -487,11 +487,11 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - '2' Strict-Transport-Security: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 41ef574beb513786b84774c7440a2b5bbc8f1e2e + - 16c67c6c8ff8caa90c9bf6a527d741e2b9c454b8 X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230103-FRA + - cache-fra-eddf8230101-FRA X-Timer: - - S1715324967.513187,VS0,VE1 + - S1716541085.078486,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids.yaml index 6afb7f1..0c2a622 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '19' + - '4' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 61f6709e4d3a89ae6c839ffd09478569b65521ee + - dd1315af903842a5a4f2aa7d97161830c5faf6ee X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320044-CPH + - cache-fra-eddf8230053-FRA X-Timer: - - S1714749928.374867,VS0,VE1 + - S1716541085.146954,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '19' + - '4' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 76b94382cbeb9fd3aec4533d48822e962c1c9042 + - b8bef633200b02546bfcc68a451f3f7ed8dd2696 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320034-CPH + - cache-fra-eddf8230114-FRA X-Timer: - - S1714749928.413448,VS0,VE1 + - S1716541085.231558,VS0,VE14 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids_optional_args.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids_optional_args.yaml index 79049d8..e6afc1c 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids_optional_args.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_opener_ids_optional_args.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '6' + - '4' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 1e9ec80e16480b590657736f0d1840d6b6f82ae7 + - 8c62f39db78ec08b02554ba4420f6332bbe4066d X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-fra-eddf8230021-FRA + - cache-fra-eddf8230122-FRA X-Timer: - - S1715324969.472889,VS0,VE1 + - S1716541085.310485,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '6' + - '4' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 2b48523415838673377be6bcf8363a00907bb353 + - 6e3c36f84f1a62a4dfa73d84a55665ebd53d110e X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-fra-eddf8230091-FRA + - cache-fra-eddf8230143-FRA X-Timer: - - S1715324970.547903,VS0,VE1 + - S1716541085.363656,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '6' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - d7961f399b5cc3aef295332a33975098946e01ec + - 73ea1cc93e333d1a1c4bd28709c5c7a970f261db X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230038-FRA + - cache-fra-eddf8230139-FRA X-Timer: - - S1715324970.620450,VS0,VE1 + - S1716541085.418672,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '5' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 15e893447e496bdf0c95a039ccc9e4f3d5a87b87 + - d43c24464af476387d2f48d0ac2b685118c14312 X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230086-FRA + - cache-fra-eddf8230114-FRA X-Timer: - - S1715324970.692790,VS0,VE1 + - S1716541085.485607,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '5' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - d0995561b4cbd36933abe6bcc7b1ac59a2aa9bdd + - 749b749eec56f759d98222b1f5e17b6629a8f2b7 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230069-FRA + - cache-fra-eddf8230122-FRA X-Timer: - - S1715324970.775223,VS0,VE1 + - S1716541086.545113,VS0,VE7 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '5' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 5f5032b6c599719aabfa6acc06cbcc74b9afd721 + - 3ac05b1f5bc6abec844edb0e28fe135cc7747981 X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230123-FRA + - cache-fra-eddf8230124-FRA X-Timer: - - S1715324970.848653,VS0,VE1 + - S1716541086.609369,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -583,13 +583,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '5' + - '3' Strict-Transport-Security: - max-age=31536000 Vary: @@ -603,15 +603,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 6567ca47b530758b584bf95b93a8549e0e03e79e + - 0be25e0e24878a89168b8dbcb4ac0732f4181d05 X-Frame-Options: - deny X-GitHub-Request-Id: - - 464C:31B7DA:494AB4:4E5AED:663DC824 + - A3B0:2F2389:1860BF0:19B2BED:66505264 X-Served-By: - - cache-fra-eddf8230132-FRA + - cache-fra-eddf8230144-FRA X-Timer: - - S1715324970.921488,VS0,VE1 + - S1716541086.665194,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -679,13 +679,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:29 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' Expires: - - Fri, 10 May 2024 07:14:29 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '5' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -699,15 +699,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 34032237351fca2cdb9820b49bc9cbce970cac4a + - 2b211312bc591bb5ac08eb03abd6bb3bf8f7075f X-Frame-Options: - deny X-GitHub-Request-Id: - - 0968:2C39F8:F59BAF:103E592:663DC824 + - 89B0:343D51:70A407:76EC44:66505264 X-Served-By: - - cache-fra-eddf8230110-FRA + - cache-fra-eddf8230131-FRA X-Timer: - - S1715324970.995704,VS0,VE1 + - S1716541086.718221,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -775,13 +775,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:05 GMT ETag: - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:05 GMT Source-Age: - - '5' + - '2' Strict-Transport-Security: - max-age=31536000 Vary: @@ -795,15 +795,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 421aee5438770a96c0b0e3f20ef223a7c145e756 + - ba83e6a2c9071fbd670013eabaf019f7a13b2e1b X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A44E:105F8EA:663DC824 + - 6970:1A1B9A:2254DAB:242883D:66505264 X-Served-By: - - cache-fra-eddf8230094-FRA + - cache-fra-eddf8230100-FRA X-Timer: - - S1715324970.072292,VS0,VE1 + - S1716541086.769714,VS0,VE5 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_store_params_schema.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_store_params_schema.yaml index c1194a1..b666ac0 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_store_params_schema.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_store_params_schema.yaml @@ -11,139 +11,42 @@ interactions: User-Agent: - python-requests/2.31.0 method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json + uri: https://earth-search.aws.element84.com/v1 response: body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" + string: '{"stac_version":"1.0.0","type":"Catalog","id":"earth-search-aws","title":"Earth + Search by Element 84","description":"A STAC API of public datasets on AWS","links":[{"rel":"self","type":"application/json","href":"https://earth-search.aws.element84.com/v1"},{"rel":"root","type":"application/json","href":"https://earth-search.aws.element84.com/v1"},{"rel":"conformance","type":"application/json","href":"https://earth-search.aws.element84.com/v1/conformance"},{"rel":"data","type":"application/json","href":"https://earth-search.aws.element84.com/v1/collections"},{"rel":"search","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/search","method":"GET"},{"rel":"search","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/search","method":"POST"},{"rel":"aggregate","type":"application/json","href":"https://earth-search.aws.element84.com/v1/aggregate","method":"GET"},{"rel":"aggregations","type":"application/json","href":"https://earth-search.aws.element84.com/v1/aggregations"},{"rel":"service-desc","type":"application/vnd.oai.openapi","href":"https://earth-search.aws.element84.com/v1/api"},{"rel":"service-doc","type":"text/html","href":"https://earth-search.aws.element84.com/v1/api.html"},{"rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"application/schema+json","href":"https://earth-search.aws.element84.com/v1/queryables"},{"rel":"server","type":"text/html","href":"https://stac-utils.github.io/stac-server/"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-pre-c1-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/cop-dem-glo-30"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/naip"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/cop-dem-glo-90"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/landsat-c2-l2"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-l1c"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-c1-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-1-grd"}],"conformsTo":["https://api.stacspec.org/v1.0.0/core","https://api.stacspec.org/v1.0.0/collections","https://api.stacspec.org/v1.0.0/ogcapi-features","https://api.stacspec.org/v1.0.0/item-search","https://api.stacspec.org/v1.0.0/ogcapi-features#fields","https://api.stacspec.org/v1.0.0/ogcapi-features#sort","https://api.stacspec.org/v1.0.0/ogcapi-features#query","https://api.stacspec.org/v1.0.0/item-search#fields","https://api.stacspec.org/v1.0.0/item-search#sort","https://api.stacspec.org/v1.0.0/item-search#query","https://api.stacspec.org/v0.3.0/aggregation","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson"]}' headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 Connection: - keep-alive - Content-Encoding: - - gzip Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox + - '3369' Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin + - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin + - Fri, 24 May 2024 08:58:06 GMT Via: - - 1.1 varnish + - 1.1 c7e5cf0daf58b19f5e633376f1ccbc94.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - FkeFxB7F9WXIM4ssPmDzHcSbFz_T8CVf2bXry-rFNXBoqlM-VuVnvA== + X-Amz-Cf-Pop: + - TXL50-P5 + X-Amzn-Trace-Id: + - Root=1-6650569e-1979ab531f2d790d79dcd293;Parent=2b2747169344130b;Sampled=0;lineage=9e2884e9:0 X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 2b14487b1a1e1fa19e167c9e76a03d2aea3999b2 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320039-CPH - X-Timer: - - S1714749929.500355,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: + - Miss from cloudfront + access-control-allow-origin: - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 2aaabc5de3fe39f86d98528f17c1870e10d41bc6 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320027-CPH - X-Timer: - - S1714749929.532326,VS0,VE1 - X-XSS-Protection: - - 1; mode=block + etag: + - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" + x-amz-apigw-id: + - YRJ4yFVEPHcEOaQ= + x-amzn-Remapped-content-length: + - '3369' + x-amzn-RequestId: + - 7588de2e-721b-4679-8705-f180cf2f6ab8 + x-powered-by: + - Express status: code: 200 message: OK diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_types.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_types.yaml index 0bb7b6e..72c9636 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_types.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_types.yaml @@ -11,139 +11,42 @@ interactions: User-Agent: - python-requests/2.31.0 method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json + uri: https://earth-search.aws.element84.com/v1 response: body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" + string: '{"stac_version":"1.0.0","type":"Catalog","id":"earth-search-aws","title":"Earth + Search by Element 84","description":"A STAC API of public datasets on AWS","links":[{"rel":"self","type":"application/json","href":"https://earth-search.aws.element84.com/v1"},{"rel":"root","type":"application/json","href":"https://earth-search.aws.element84.com/v1"},{"rel":"conformance","type":"application/json","href":"https://earth-search.aws.element84.com/v1/conformance"},{"rel":"data","type":"application/json","href":"https://earth-search.aws.element84.com/v1/collections"},{"rel":"search","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/search","method":"GET"},{"rel":"search","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/search","method":"POST"},{"rel":"aggregate","type":"application/json","href":"https://earth-search.aws.element84.com/v1/aggregate","method":"GET"},{"rel":"aggregations","type":"application/json","href":"https://earth-search.aws.element84.com/v1/aggregations"},{"rel":"service-desc","type":"application/vnd.oai.openapi","href":"https://earth-search.aws.element84.com/v1/api"},{"rel":"service-doc","type":"text/html","href":"https://earth-search.aws.element84.com/v1/api.html"},{"rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"application/schema+json","href":"https://earth-search.aws.element84.com/v1/queryables"},{"rel":"server","type":"text/html","href":"https://stac-utils.github.io/stac-server/"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-pre-c1-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/cop-dem-glo-30"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/naip"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/cop-dem-glo-90"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/landsat-c2-l2"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-l1c"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-c1-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-1-grd"}],"conformsTo":["https://api.stacspec.org/v1.0.0/core","https://api.stacspec.org/v1.0.0/collections","https://api.stacspec.org/v1.0.0/ogcapi-features","https://api.stacspec.org/v1.0.0/item-search","https://api.stacspec.org/v1.0.0/ogcapi-features#fields","https://api.stacspec.org/v1.0.0/ogcapi-features#sort","https://api.stacspec.org/v1.0.0/ogcapi-features#query","https://api.stacspec.org/v1.0.0/item-search#fields","https://api.stacspec.org/v1.0.0/item-search#sort","https://api.stacspec.org/v1.0.0/item-search#query","https://api.stacspec.org/v0.3.0/aggregation","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson"]}' headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 Connection: - keep-alive - Content-Encoding: - - gzip Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox + - '3369' Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin + - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin + - Fri, 24 May 2024 08:58:06 GMT Via: - - 1.1 varnish + - 1.1 89c50b6a052f3d7c2c7b36108c6288f2.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - BV8PzMxFdIKGNSV5o_kareebOcVWL5zJr7C12m-Bc-vIidTWQxJang== + X-Amz-Cf-Pop: + - TXL50-P5 + X-Amzn-Trace-Id: + - Root=1-6650569e-46fff81c6c22cea56ffbd65a;Parent=2ed6a5b14451123b;Sampled=0;lineage=9e2884e9:0 X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 300d64d18e0ce1b80ea9826129a9bd92452b44cc - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320056-CPH - X-Timer: - - S1714749929.602171,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: + - Miss from cloudfront + access-control-allow-origin: - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '2' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 90279fe3048c21ea01ff669c0bf8303a401c7c0a - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320041-CPH - X-Timer: - - S1714749929.636388,VS0,VE0 - X-XSS-Protection: - - 1; mode=block + etag: + - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" + x-amz-apigw-id: + - YRJ43Gz2PHcEr6w= + x-amzn-Remapped-content-length: + - '3369' + x-amzn-RequestId: + - 0a63ed79-b2c3-4c68-b788-f70b8a0eadd6 + x-powered-by: + - Express status: code: 200 message: OK diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_data_types_for_data.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_data_types_for_data.yaml index 501fc25..420c022 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_data_types_for_data.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_data_types_for_data.yaml @@ -11,139 +11,42 @@ interactions: User-Agent: - python-requests/2.31.0 method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json + uri: https://earth-search.aws.element84.com/v1 response: body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" + string: '{"stac_version":"1.0.0","type":"Catalog","id":"earth-search-aws","title":"Earth + Search by Element 84","description":"A STAC API of public datasets on AWS","links":[{"rel":"self","type":"application/json","href":"https://earth-search.aws.element84.com/v1"},{"rel":"root","type":"application/json","href":"https://earth-search.aws.element84.com/v1"},{"rel":"conformance","type":"application/json","href":"https://earth-search.aws.element84.com/v1/conformance"},{"rel":"data","type":"application/json","href":"https://earth-search.aws.element84.com/v1/collections"},{"rel":"search","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/search","method":"GET"},{"rel":"search","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/search","method":"POST"},{"rel":"aggregate","type":"application/json","href":"https://earth-search.aws.element84.com/v1/aggregate","method":"GET"},{"rel":"aggregations","type":"application/json","href":"https://earth-search.aws.element84.com/v1/aggregations"},{"rel":"service-desc","type":"application/vnd.oai.openapi","href":"https://earth-search.aws.element84.com/v1/api"},{"rel":"service-doc","type":"text/html","href":"https://earth-search.aws.element84.com/v1/api.html"},{"rel":"http://www.opengis.net/def/rel/ogc/1.0/queryables","type":"application/schema+json","href":"https://earth-search.aws.element84.com/v1/queryables"},{"rel":"server","type":"text/html","href":"https://stac-utils.github.io/stac-server/"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-pre-c1-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/cop-dem-glo-30"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/naip"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/cop-dem-glo-90"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/landsat-c2-l2"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-l1c"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-2-c1-l2a"},{"rel":"child","type":"application/geo+json","href":"https://earth-search.aws.element84.com/v1/collections/sentinel-1-grd"}],"conformsTo":["https://api.stacspec.org/v1.0.0/core","https://api.stacspec.org/v1.0.0/collections","https://api.stacspec.org/v1.0.0/ogcapi-features","https://api.stacspec.org/v1.0.0/item-search","https://api.stacspec.org/v1.0.0/ogcapi-features#fields","https://api.stacspec.org/v1.0.0/ogcapi-features#sort","https://api.stacspec.org/v1.0.0/ogcapi-features#query","https://api.stacspec.org/v1.0.0/item-search#fields","https://api.stacspec.org/v1.0.0/item-search#sort","https://api.stacspec.org/v1.0.0/item-search#query","https://api.stacspec.org/v0.3.0/aggregation","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas30","http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson"]}' headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: - - '*' - Cache-Control: - - max-age=300 Connection: - keep-alive - Content-Encoding: - - gzip Content-Length: - - '236' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox + - '3369' Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin + - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin + - Fri, 24 May 2024 08:58:07 GMT Via: - - 1.1 varnish + - 1.1 ee34f7af76b54660352564a750b131f6.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - A0FsFaGfpkpxbT8nepeIHwpx7nd6EfxwNblnrLpir0K0fIhIY8udhA== + X-Amz-Cf-Pop: + - TXL50-P5 + X-Amzn-Trace-Id: + - Root=1-6650569f-6c66e2ed6603afbf4e2f7c11;Parent=339c964491289915;Sampled=0;lineage=9e2884e9:0 X-Cache: - - HIT - X-Cache-Hits: - - '1' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 4b7cb81caf229cb6f791d1a241a42082b2f53acb - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 - X-Served-By: - - cache-cph2320029-CPH - X-Timer: - - S1714749929.708700,VS0,VE1 - X-XSS-Protection: - - 1; mode=block - status: - code: 200 - message: OK -- request: - body: null - headers: - Connection: - - close - Host: - - raw.githubusercontent.com - User-Agent: - - Python-urllib/3.12 - method: GET - uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/catalog.json - response: - body: - string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"type\": \"Catalog\",\n - \ \"id\": \"label_extension_demo\",\n \"title\": \"label extension demo\",\n - \ \"description\": \"Sample ML training data labels in the STAC format\",\n - \ \"links\": [\n {\n \"rel\": \"root\",\n \"href\": \"./catalog.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"zanzibar/collection.json\"\n - \ },\n {\n \"rel\": \"child\",\n \"href\": \"spacenet-buildings/collection.json\"\n - \ }\n ]\n}" - headers: - Accept-Ranges: - - bytes - Access-Control-Allow-Origin: + - Miss from cloudfront + access-control-allow-origin: - '*' - Cache-Control: - - max-age=300 - Connection: - - close - Content-Length: - - '436' - Content-Security-Policy: - - default-src 'none'; style-src 'unsafe-inline'; sandbox - Content-Type: - - text/plain; charset=utf-8 - Cross-Origin-Resource-Policy: - - cross-origin - Date: - - Fri, 03 May 2024 15:25:28 GMT - ETag: - - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' - Expires: - - Fri, 03 May 2024 15:30:28 GMT - Source-Age: - - '19' - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization,Accept-Encoding,Origin - Via: - - 1.1 varnish - X-Cache: - - HIT - X-Cache-Hits: - - '2' - X-Content-Type-Options: - - nosniff - X-Fastly-Request-ID: - - 9494a8411ae039c8600d90f07bbb4c747f7ab739 - X-Frame-Options: - - deny - X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 - X-Served-By: - - cache-cph2320033-CPH - X-Timer: - - S1714749929.737587,VS0,VE0 - X-XSS-Protection: - - 1; mode=block + etag: + - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" + x-amz-apigw-id: + - YRJ49FVGvHcELkA= + x-amzn-Remapped-content-length: + - '3369' + x-amzn-RequestId: + - 2fbda55c-345a-4df1-b460-9ba3cf0add6d + x-powered-by: + - Express status: code: 200 message: OK diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection.yaml index 6cb6594..0db5e15 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:07 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:07 GMT Source-Age: - - '19' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -57,19 +57,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '2' + - '1' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 9ba6327d5b687d00dc6fdd939f9f5e7f479f33ba + - b8d27835347b5814e1c5427198ea68994e496a3d X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320039-CPH + - cache-fra-eddf8230029-FRA X-Timer: - - S1714749929.798403,VS0,VE0 + - S1716541088.684187,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:07 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:07 GMT Source-Age: - - '19' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -129,19 +129,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '2' + - '1' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - e7e762a2fc476f55c11ae63afd4afe92c0780fd7 + - fe28ae4536fa7e53b608978b2d9804f70ed6ee1a X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320027-CPH + - cache-fra-eddf8230094-FRA X-Timer: - - S1714749929.825373,VS0,VE0 + - S1716541088.736190,VS0,VE6 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:07 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:07 GMT Source-Age: - - '18' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 4692ab5b2bb363bfbf9e3bd67fe337a20b6b6e70 + - bad2b4d7604a03ce96094aae5eeca4f1e498362c X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CEA048:1E6FBF3:6634FE90 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-cph2320032-CPH + - cache-fra-eddf8230154-FRA X-Timer: - - S1714749929.851981,VS0,VE1 + - S1716541088.792405,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:07 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:07 GMT Source-Age: - - '18' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 2f73e7d63ed226e827e7297687da51ccdb505510 + - 4970329f132855476f71cf090ea483ed02119b79 X-Frame-Options: - deny X-GitHub-Request-Id: - - BD44:35E0B5:82172B:890D03:66349397 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-cph2320028-CPH + - cache-fra-eddf8230117-FRA X-Timer: - - S1714749929.883447,VS0,VE1 + - S1716541088.847989,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:07 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:07 GMT Source-Age: - - '18' + - '5' Strict-Transport-Security: - max-age=31536000 Vary: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 468daa939d0ce93abdec62e3f27ee1e781d31905 + - f85623dcdacdd94f690de95a5836fbecf42a5bc7 X-Frame-Options: - deny X-GitHub-Request-Id: - - 4110:358461:BBEFF9:C5A505:66349629 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-cph2320048-CPH + - cache-fra-eddf8230109-FRA X-Timer: - - S1714749929.933947,VS0,VE1 + - S1716541088.907447,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,301 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:28 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 03 May 2024 15:30:28 GMT + - Fri, 24 May 2024 09:03:08 GMT + Source-Age: + - '5' + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization,Accept-Encoding,Origin + Via: + - 1.1 varnish + X-Cache: + - HIT + X-Cache-Hits: + - '1' + X-Content-Type-Options: + - nosniff + X-Fastly-Request-ID: + - 04cfbc5535736aa188c2ea4bf8fab85f7bde7272 + X-Frame-Options: + - deny + X-GitHub-Request-Id: + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 + X-Served-By: + - cache-fra-eddf8230143-FRA + X-Timer: + - S1716541088.987738,VS0,VE17 + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - close + Host: + - raw.githubusercontent.com + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_2_Vegas_img2636.json + response: + body: + string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n + \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n + \ ],\n \"id\": \"AOI_2_Vegas_img2636\",\n \"type\": \"Feature\",\n \"bbox\": + [\n -115.23556259985658,\n 36.12654269972625,\n -115.23412932899998,\n + \ 36.12829769972975\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n + \ \"coordinates\": [\n [\n [\n -115.23556259985658,\n + \ 36.12654269972625\n ],\n [\n -115.23556259985658,\n + \ 36.12829769972975\n ],\n [\n -115.23412932899998,\n + \ 36.12829769972975\n ],\n [\n -115.23412932899998,\n + \ 36.12654269972625\n ]\n ]\n ]\n },\n \"assets\": + {\n \"labels\": {\n \"title\": \"AOI_2_Vegas_img2636_label\",\n \"href\": + \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_2_Vegas/geojson_buildings/SN2_buildings_train_AOI_2_Vegas_geojson_buildings_img2636.geojson\",\n + \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": + \"AOI_2_Vegas_img2636_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_2_Vegas/PS-MS/AOI_2_Vegas_PS-MS_COG.tif\",\n + \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n + \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n + \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n + \ ],\n \"label:description\": \"building footprints manually labeled\",\n + \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": + \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": + \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n + \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": + [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": + [\n {\n \"name\": \"0\",\n \"count\": 27\n + \ }\n ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": + \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": + \"parent\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": + \"collection\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": + \"source\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_2_Vegas/PS-RGB/SN2_buildings_train_AOI_2_Vegas_PS-RGB_img2636.tif\",\n + \ \"title\": \"The source imagery these building labels were derived from\",\n + \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - max-age=300 + Connection: + - close + Content-Length: + - '2533' + Content-Security-Policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + Content-Type: + - text/plain; charset=utf-8 + Cross-Origin-Resource-Policy: + - cross-origin + Date: + - Fri, 24 May 2024 08:58:08 GMT + ETag: + - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' + Expires: + - Fri, 24 May 2024 09:03:08 GMT + Source-Age: + - '5' + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization,Accept-Encoding,Origin + Via: + - 1.1 varnish + X-Cache: + - HIT + X-Cache-Hits: + - '1' + X-Content-Type-Options: + - nosniff + X-Fastly-Request-ID: + - 551a19bd5bf5467233dd2c6f1b2089feed1881ad + X-Frame-Options: + - deny + X-GitHub-Request-Id: + - A3B0:2F2389:1860BF0:19B2BED:66505264 + X-Served-By: + - cache-fra-eddf8230049-FRA + X-Timer: + - S1716541088.055850,VS0,VE1 + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - close + Host: + - raw.githubusercontent.com + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_3_Paris_img1648.json + response: + body: + string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n + \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n + \ ],\n \"id\": \"AOI_3_Paris_img1648\",\n \"type\": \"Feature\",\n \"bbox\": + [\n 2.288201399928881,\n 49.00383090002822,\n 2.289956399928177,\n + \ 49.00558590002751\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n + \ \"coordinates\": [\n [\n [\n 2.288201399928881,\n + \ 49.00383090002822\n ],\n [\n 2.289956399928177,\n + \ 49.00383090002822\n ],\n [\n 2.289956399928177,\n + \ 49.00558590002751\n ],\n [\n 2.288201399928881,\n + \ 49.00558590002751\n ]\n ]\n ]\n },\n \"assets\": + {\n \"labels\": {\n \"title\": \"AOI_3_Paris_img1648_label\",\n \"href\": + \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_3_Paris/geojson_buildings/SN2_buildings_train_AOI_3_Paris_geojson_buildings_img1648.geojson\",\n + \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": + \"AOI_3_Paris_img1648_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_3_Paris/PS-MS/AOI_3_Paris_PS-MS_COG.tif\",\n + \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n + \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n + \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n + \ ],\n \"label:description\": \"building footprints manually labeled\",\n + \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": + \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": + \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n + \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": + [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": + [\n {\n \"name\": \"0\",\n \"count\": 39\n + \ }\n ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": + \"root\",\n \"href\": \"../catalog.json\"\n },\n {\n \"rel\": + \"parent\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": + \"collection\",\n \"href\": \"collection.json\"\n },\n {\n \"rel\": + \"source\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_3_Paris/PS-RGB/SN2_buildings_train_AOI_3_Paris_PS-RGB_img1648.tif\",\n + \ \"title\": \"The source imagery these building labels were derived from\",\n + \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - max-age=300 + Connection: + - close + Content-Length: + - '2521' + Content-Security-Policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + Content-Type: + - text/plain; charset=utf-8 + Cross-Origin-Resource-Policy: + - cross-origin + Date: + - Fri, 24 May 2024 08:58:08 GMT + ETag: + - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' + Expires: + - Fri, 24 May 2024 09:03:08 GMT + Source-Age: + - '5' + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization,Accept-Encoding,Origin + Via: + - 1.1 varnish + X-Cache: + - HIT + X-Cache-Hits: + - '1' + X-Content-Type-Options: + - nosniff + X-Fastly-Request-ID: + - 61811e0ce6d04d43a0cb3343bedf62e756abca87 + X-Frame-Options: + - deny + X-GitHub-Request-Id: + - 89B0:343D51:70A407:76EC44:66505264 + X-Served-By: + - cache-fra-eddf8230153-FRA + X-Timer: + - S1716541088.107076,VS0,VE2 + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Connection: + - close + Host: + - raw.githubusercontent.com + User-Agent: + - Python-urllib/3.12 + method: GET + uri: https://raw.githubusercontent.com/stac-extensions/label/main/examples/multidataset/spacenet-buildings/AOI_4_Shanghai_img3344.json + response: + body: + string: "{\n \"stac_version\": \"1.0.0-rc.1\",\n \"stac_extensions\": [\n + \ \"https://stac-extensions.github.io/label/v1.0.1/schema.json\",\n \"https://stac-extensions.github.io/version/v1.0.0/schema.json\"\n + \ ],\n \"id\": \"AOI_4_Shanghai_img3344\",\n \"type\": \"Feature\",\n \"bbox\": + [\n 121.66563419996653,\n 31.234725900085653,\n 121.66738919996575,\n + \ 31.236480900084874\n ],\n \"geometry\": {\n \"type\": \"Polygon\",\n + \ \"coordinates\": [\n [\n [\n 121.66563419996653,\n + \ 31.234725900085653\n ],\n [\n 121.66563419996653,\n + \ 31.236480900084874\n ],\n [\n 121.66738919996575,\n + \ 31.236480900084874\n ],\n [\n 121.66738919996575,\n + \ 31.234725900085653\n ]\n ]\n ]\n },\n \"assets\": + {\n \"labels\": {\n \"title\": \"AOI_4_Shanghai_img3344_label\",\n + \ \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_4_Shanghai/geojson_buildings/SN2_buildings_train_AOI_4_Shanghai_geojson_buildings_img3344.geojson\",\n + \ \"type\": \"application/geo+json\"\n },\n \"raster\": {\n \"title\": + \"AOI_4_Shanghai_img3344_previewcog\",\n \"href\": \"https://spacenet-dataset.s3.amazonaws.com/AOIs/AOI_4_Shanghai/PS-MS/AOI_4_Shanghai_PS-MS_COG.tif\",\n + \ \"type\": \"image/tiff; application=geotiff; profile=cloud-optimized\"\n + \ }\n },\n \"properties\": {\n \"datetime\": \"2016-08-26T22:41:55Z\",\n + \ \"license\": \"CC-BY-SA-4.0\",\n \"label:properties\": [\n \"OBJECTID_1\"\n + \ ],\n \"label:description\": \"building footprints manually labeled\",\n + \ \"label:tasks\": [\n \"segmentation\"\n ],\n \"label:type\": + \"vector\",\n \"label:methods\": [\n \"manual\"\n ],\n \"version\": + \"1\",\n \"label:classes\": [\n {\n \"name\": \"OBJECTID_1\",\n + \ \"classes\": [\n \"0\"\n ]\n }\n ],\n \"label:overviews\": + [\n {\n \"property_key\": \"OBJECTID_1\",\n \"counts\": + [\n {\n \"name\": \"0\",\n \"count\": 8\n }\n + \ ]\n }\n ]\n },\n \"links\": [\n {\n \"rel\": \"root\",\n + \ \"href\": \"../catalog.json\"\n },\n {\n \"rel\": \"parent\",\n + \ \"href\": \"collection.json\"\n },\n {\n \"rel\": \"collection\",\n + \ \"href\": \"collection.json\"\n },\n {\n \"rel\": \"source\",\n + \ \"href\": \"https://spacenet-dataset.s3.amazonaws.com/spacenet/SN2_buildings/train/AOI_4_Shanghai/PS-RGB/SN2_buildings_train_AOI_4_Shanghai_PS-RGB_img3344.tif\",\n + \ \"title\": \"The source imagery these building labels were derived from\",\n + \ \"label:assets\": [\n \"OBJECTID_1\"\n ]\n }\n ]\n}" + headers: + Accept-Ranges: + - bytes + Access-Control-Allow-Origin: + - '*' + Cache-Control: + - max-age=300 + Connection: + - close + Content-Length: + - '2559' + Content-Security-Policy: + - default-src 'none'; style-src 'unsafe-inline'; sandbox + Content-Type: + - text/plain; charset=utf-8 + Cross-Origin-Resource-Policy: + - cross-origin + Date: + - Fri, 24 May 2024 08:58:08 GMT + ETag: + - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' + Expires: + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '18' + - '5' Strict-Transport-Security: - max-age=31536000 Vary: @@ -507,15 +795,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 38ecb643410c04a2e3aa829e19aeeccfba62acc0 + - 7942b1655e877c17f39c10fb04f4a1c89d6881cd X-Frame-Options: - deny X-GitHub-Request-Id: - - B710:26E42A:1C85640:1E0B055:6634FE8F + - 6970:1A1B9A:2254DAB:242883D:66505264 X-Served-By: - - cache-cph2320038-CPH + - cache-fra-eddf8230137-FRA X-Timer: - - S1714749929.972906,VS0,VE1 + - S1716541088.160522,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_stac/StacTest.test_get_data_ids_from_items.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection_open_params.yaml similarity index 92% rename from test/cassettes/test_stac/StacTest.test_get_data_ids_from_items.yaml rename to test/cassettes/test_store/StacDataStoreTest.test_get_item_collection_open_params.yaml index b418b6b..17d49f7 100644 --- a/test/cassettes/test_stac/StacTest.test_get_data_ids_from_items.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection_open_params.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:25 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 10 May 2024 07:14:25 GMT + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '2' + - '7' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 2daeee398cc065419432a81781a0610d70da15dc + - 55c7d0e1f5b540bdabc8c174bba555c45059976d X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-fra-eddf8230103-FRA + - cache-fra-eddf8230088-FRA X-Timer: - - S1715324966.636415,VS0,VE1 + - S1716541088.230992,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:25 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 10 May 2024 07:14:25 GMT + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '2' + - '7' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 40530744f3039caca7897744e3257d1afc349760 + - c27a6bb782adbd2c5297c7e42e8e9c61025ef9a9 X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-fra-eddf8230080-FRA + - cache-fra-eddf8230113-FRA X-Timer: - - S1715324966.726841,VS0,VE1 + - S1716541088.285931,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:25 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:25 GMT + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '2' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - bb706f13c54b16153e9cb0b01cd00755d7afbfe3 + - ec613abd59875f32c6f6d47d50a38a65209d8806 X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230110-FRA + - cache-fra-eddf8230031-FRA X-Timer: - - S1715324966.813722,VS0,VE1 + - S1716541088.341966,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:25 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:25 GMT + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '2' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 175a831f3c5f8ceaeff25af9f4d744c4db392264 + - 0bee4b76a9688fad9a7677deefc38c8fa4445a2b X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230076-FRA + - cache-fra-eddf8230113-FRA X-Timer: - - S1715324966.890022,VS0,VE1 + - S1716541088.396056,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:25 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:25 GMT + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '1' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - d97f7ab7b07daaa45cd383ad926c146ee3d5f90b + - 61af7c3c3137fb3fab8a126f9a287992798de493 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230120-FRA + - cache-fra-eddf8230038-FRA X-Timer: - - S1715324966.983411,VS0,VE1 + - S1716541088.448608,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:26 GMT + - Fri, 24 May 2024 08:58:08 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:26 GMT + - Fri, 24 May 2024 09:03:08 GMT Source-Age: - - '1' + - '6' Strict-Transport-Security: - max-age=31536000 Vary: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - f6db63ae395a98f37e8d064b36839e2799133f6b + - 54a1c8fefd382bdd7d4c58a2d67cd9416e6e4951 X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230022-FRA + - cache-fra-eddf8230104-FRA X-Timer: - - S1715324966.059282,VS0,VE1 + - S1716541089.502936,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_stac/StacTest.test_get_item_collection_searchable_catalog.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection_searchable_catalog.yaml similarity index 98% rename from test/cassettes/test_stac/StacTest.test_get_item_collection_searchable_catalog.yaml rename to test/cassettes/test_store/StacDataStoreTest.test_get_item_collection_searchable_catalog.yaml index 8e54af0..58d5bc6 100644 --- a/test/cassettes/test_stac/StacTest.test_get_item_collection_searchable_catalog.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_item_collection_searchable_catalog.yaml @@ -24,15 +24,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:12 GMT + - Fri, 24 May 2024 08:58:08 GMT Via: - - 1.1 e86025dac63232624d2273c5fd256ce4.cloudfront.net (CloudFront) + - 1.1 25cc6d5f46d4eae9262198b05709a32e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - qGi5o7ukIYd8J8GjZZhfOG8-6VXg4Gi1KPKcIshruWUeunlZa7tSmQ== + - kX9iInuKlLIl3rOIoosKp_M_T64aIxYakUjT5dqca9ns2SDPYKh6hQ== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501d8-74e0deaa6f8924d8232ba4cd;Parent=7c9417ac0404a43e;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a0-494811187fff4e125bdf189d;Parent=3ccd4af5dc04d9f5;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -40,11 +40,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM052EkSvHcEguA= + - YRJ5MHZMPHcEWjg= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - ea2c76e1-ea86-4821-a943-33eb94329256 + - 3fc6aaa0-8050-4ad9-a0ad-f31260c7cc22 x-powered-by: - Express status: @@ -790,15 +790,15 @@ interactions: Content-Type: - application/geo+json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:12 GMT + - Fri, 24 May 2024 08:58:09 GMT Via: - - 1.1 cb33a7a4640adbb55df3e0d143601558.cloudfront.net (CloudFront) + - 1.1 365a977b864574759e83e211b333db7e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - hkc5W84c_2X907wj05pd4CJAu9lhIkXl1P-s3sIfJ_rXju4GYp-hoA== + - mRmDNrcaTHZZW4YwV9gJZMUISy2X4PRvGmDtCPXDhbEltYE7VZ6v3g== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501d8-5b69991c7aafc0ad03cfe13d;Parent=0f0cd672708789c2;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a1-6785547922b0956821dfecbf;Parent=692048b22b75cdb4;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -806,11 +806,11 @@ interactions: etag: - W/"3442c-e1pIlowugDlZpGTJPEymFlh9yOg" x-amz-apigw-id: - - XM058HjAvHcEo3w= + - YRJ5SFkIPHcEvVg= x-amzn-Remapped-content-length: - '214060' x-amzn-RequestId: - - 29fe7c88-28a9-40d4-aeac-42ca2e8321a2 + - 91ce3f72-70a6-4be0-b7db-5ee41f3abfda x-powered-by: - Express status: @@ -988,15 +988,15 @@ interactions: Content-Type: - application/geo+json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:14 GMT + - Fri, 24 May 2024 08:58:10 GMT Via: - - 1.1 d8eef512ab23f23f549b4cd25ac5328c.cloudfront.net (CloudFront) + - 1.1 a0c62ac6d80b58b3f615b5e036674890.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - _jTn3ygKY_6ciX09-wcn2Urxg4aK-kX43Ewn6Ik2uAbyZhUOVYie4w== + - KsgK-sDAoZ3AhQ3_ifYozDL1GV5qKFl7V_4tAoJTI2Fx7YFTFpb5iw== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501da-0714e5f56df8945801fc1efb;Parent=59fbe863c05dfcc8;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a2-4706b65d50359f7905bd57bc;Parent=36483ebc4b4a7af7;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1004,11 +1004,11 @@ interactions: etag: - W/"a943-TdsobaCdTAhOYG4FP4hoi+Oyj5c" x-amz-apigw-id: - - XM06HFhTvHcEXIw= + - YRJ5bFmXvHcEvVg= x-amzn-Remapped-content-length: - '43331' x-amzn-RequestId: - - 2c2bfed7-d77f-41fd-90c2-fb32224d0c0c + - e9e69c97-d9b2-4df7-ad34-826bd714d6be x-powered-by: - Express status: @@ -1044,15 +1044,15 @@ interactions: Content-Type: - application/geo+json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:14 GMT + - Fri, 24 May 2024 08:58:11 GMT Via: - - 1.1 c379418fd6100691807f32f274ebe9ce.cloudfront.net (CloudFront) + - 1.1 be10e6b765bbef9faac0617fa874014e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - hi5dd6CRNOx4foBg2FS9dQSXMl-870q9AayHO-ks7N_X60PFUe-ZwA== + - BYWU_fnk4ISGN4Q_ISb7SnoxNuG1eliC-CONLqFVzjex5mVWCfarZQ== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501da-65ac6051273d3ebf7094fbaa;Parent=2c26518eb7bd3744;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a3-4e3aec5c3c2a32881c4e8723;Parent=2fab882fe8a7176e;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1060,11 +1060,11 @@ interactions: etag: - W/"113-INmk1vA1mV5xnSaGV6w1W5CB9KY" x-amz-apigw-id: - - XM06PHjhvHcEs8g= + - YRJ5jEeCvHcEvag= x-amzn-Remapped-content-length: - '275' x-amzn-RequestId: - - e1abdc40-1339-48ce-9d74-da0e43eb5827 + - 2e704dab-fe8d-4a53-8da0-0cd1a6ceeca6 x-powered-by: - Express status: @@ -1183,15 +1183,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:15 GMT + - Fri, 24 May 2024 08:58:11 GMT Via: - - 1.1 29051585a13addd312c8ac9d527433c6.cloudfront.net (CloudFront) + - 1.1 ee34f7af76b54660352564a750b131f6.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - dXTwTed-LDE7lfQVbVQ4VEzzIxJxcfg_gwZJMn7qs2T99w5ME0nD8Q== + - P64x5Rv71wa3GITu-qjJpgphblyK43nqqKgjG0pZ7i1TzNQZoQLRTQ== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501db-6e1a9a803cc9b3de4d9ea3c9;Parent=6c51fcc4ea62c576;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a3-129b0fb65c0beaa644404c8a;Parent=065dc2f3f4150dad;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1199,11 +1199,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM06VFHMvHcEVSg= + - YRJ5pGiNvHcEtUQ= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 2bb755d8-325f-44c1-ae9e-f5b2ac0745d1 + - fdff497f-a3d1-44fc-a89a-49c75a49dda3 x-powered-by: - Express status: @@ -1232,15 +1232,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:16 GMT + - Fri, 24 May 2024 08:58:12 GMT Via: - - 1.1 e86025dac63232624d2273c5fd256ce4.cloudfront.net (CloudFront) + - 1.1 8562aa55ecb1bd657c9073c0910ec6bc.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - od4ZRhtk0cEdJJqQZ2X9cKFNW0H0rBXe-HUp7zu-ws3txieGz4NrqA== + - -Wld05RZgXGoPKEGh-BNLhJkUy7-dhexT5x-0zrOCkVLV0v4eBpvKQ== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501dc-5dd6adae007be3154fe83591;Parent=1e896f68199e545e;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a4-5c385faa19fc44c3023c9ce2;Parent=0bcfc90ceee9a987;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1248,11 +1248,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM06bEerPHcEosQ= + - YRJ5xGSQPHcEHgg= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - cc038039-c179-4c77-afbb-20bbd07fd6ee + - 2afd0943-3e22-4dc8-b008-a6f034bce998 x-powered-by: - Express status: @@ -1371,15 +1371,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:16 GMT + - Fri, 24 May 2024 08:58:13 GMT Via: - - 1.1 c379418fd6100691807f32f274ebe9ce.cloudfront.net (CloudFront) + - 1.1 9e5ec6086358ec6bc142d90efec366a2.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - eL9VpJZAysTDudKE-8cxdXxqcLlb84O1f4mO9CxQm41w-FotYoIARg== + - gWNAyEaw4P9uacHE5WnAG20a5_NjWv2uh60osGVeEXNRtDODH_stcA== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501dc-3c6c60901c9adb88426c9f30;Parent=32d9158e4441fb73;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a5-380370213fe7e4f30a3ca991;Parent=0b1df49ff0aaf78b;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1387,11 +1387,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM06hGhHPHcEK6Q= + - YRJ53FloPHcELkA= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 22bdeeac-3e51-42a2-9418-21d7e0fa9ecd + - 3df2cd55-3f42-4166-8bca-790ee12ee676 x-powered-by: - Express status: @@ -1420,15 +1420,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:17 GMT + - Fri, 24 May 2024 08:58:13 GMT Via: - - 1.1 5a5b94c62ea85e0c0d78b169589b08b4.cloudfront.net (CloudFront) + - 1.1 7c0e584d1165bf617544d868dc892940.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - FgN99Y2vuBV25kOEPbM5zagGhh40Bmm10VoW3OPV5xcmhE-6RONgYQ== + - 6NFLM-JFm7gZzM2qD8CYQ7Q9CaewDcb3TD7dJElNyR3C-ei9WKvtsg== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501dd-05d31c7b11b6f64d508009c2;Parent=6d4df2a179dfecd8;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a5-118e03ad3a7490c14fb392f0;Parent=28a2fa5aec509656;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1436,11 +1436,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM06oEfGvHcEChg= + - YRJ5-Gy3vHcERXg= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - e9fe5ac3-d028-458c-85d6-9658068abf71 + - a5a1617b-ac8f-4997-b406-a2879d365082 x-powered-by: - Express status: @@ -1559,15 +1559,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:17 GMT + - Fri, 24 May 2024 08:58:14 GMT Via: - - 1.1 59d92388a3a66e5f245f384a437fa024.cloudfront.net (CloudFront) + - 1.1 e1997deca771cb54e2886aed779bc92c.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - DzuKO1C5V3p6R6tJW4diqUExKRFIO8VHcIBNNFYz2jVFsn0tzR8TiA== + - Sw3vYHITWn1Mr1z59cazAgnXqxKrdOtI4bVKABCLMpPADde8n8cPng== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501dd-4284e9b55be997444eadf831;Parent=2dd508e9558e2396;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a6-0dac09b0523f17672a66ffbf;Parent=1b9402fe56d66c64;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1575,11 +1575,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM06tF7_vHcEWCA= + - YRJ6EG26PHcEvYA= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 5786bae0-d8c6-4468-b44e-a5f31a27f9a5 + - a84de839-7da9-4a98-bad2-4c555e68c98d x-powered-by: - Express status: @@ -1608,15 +1608,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:18 GMT + - Fri, 24 May 2024 08:58:15 GMT Via: - - 1.1 42b60ee17f7593fff72ca1cb725d6c9a.cloudfront.net (CloudFront) + - 1.1 c7e5cf0daf58b19f5e633376f1ccbc94.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - gqmbt-7q_fgP5A5KWWI-zr7SLROrAEwXPxrBW3xoGF58KiwICbbEcA== + - prsmz2wHD3_VKZ93e0JCeeHbz-9yfe6J_w2O5W6fPHqsvnwsuKb5Ew== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501de-7eba6eb47d1e134f3b32ed36;Parent=37ae6c470d6905f2;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a7-080ff24f50cbb1374014d221;Parent=18added46cc39fe4;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1624,11 +1624,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM06xFkrvHcEVQg= + - YRJ6LFHPvHcEOLw= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - 6643ece5-28f4-421b-9feb-15f397c0fd8a + - 40eb558d-e421-4779-aaf6-32da5fc93c18 x-powered-by: - Express status: @@ -1747,15 +1747,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:18 GMT + - Fri, 24 May 2024 08:58:15 GMT Via: - - 1.1 2bbba694ff55d664208103e9c25dce14.cloudfront.net (CloudFront) + - 1.1 b15f4c07714f7f016a27a820e066ec22.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - HypZcUHeXHX8Eu3SUE97aoeec9pmbla6IHYAZp45DnlxZrj-l3No-g== + - wbY46Jp47viVQ7_AHpR_IqT4PKZlN-VK1xWy1sJl66WaxydDvFYSiA== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501de-440ffaaa1908215945dd5321;Parent=6fd3a4438fbf42c0;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a7-5661659b5bda9b582ed0aa56;Parent=0fd22e5dc4c4451e;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1763,11 +1763,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM060EWYvHcEHPw= + - YRJ6NFkgPHcES1w= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 740dfc51-b3d6-4de3-b304-2e5bf0a37c6b + - e0397d6d-de28-4eea-b62e-c8f023e5fd37 x-powered-by: - Express status: @@ -1796,15 +1796,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:19 GMT + - Fri, 24 May 2024 08:58:16 GMT Via: - - 1.1 8f20db43ba7579b7216cf908572d5054.cloudfront.net (CloudFront) + - 1.1 b15f4c07714f7f016a27a820e066ec22.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - KeG3e9GbfI2f3R7pDLjK_CNVEn2-dZgiu9GEBxGLchli9VivDZbSXQ== + - 1yzOK0fi2Wy5tDMrlPQUGzXv6uI4iM_XCqm4AVYI8Keman5-8yELrw== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501df-6d57641250aed75844d9bae0;Parent=34b2b092af4008e5;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a7-473e1e6d26670e33229d26b5;Parent=11c5c2c242344a47;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1812,11 +1812,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM065G1evHcEOyg= + - YRJ6SGl8PHcEl5w= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - a962a6ec-ebed-4b4a-8263-63204ac377a2 + - 78e10279-ed93-408c-9af6-5f141c70d55a x-powered-by: - Express status: @@ -1935,15 +1935,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:19 GMT + - Fri, 24 May 2024 08:58:16 GMT Via: - - 1.1 29051585a13addd312c8ac9d527433c6.cloudfront.net (CloudFront) + - 1.1 fc2007805b18155e8ca67104268477c6.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - _aJHrGS32a4dvW59dxTESKsoufiUKOj1Oh9ljrijvwX5LFNzP4NaKg== + - J_M-ut4OkwaXdJF5HMKvFwQuM_jFY1YA6R6bUZaWGnyXrZinTWYnhg== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501df-39baee2f46f09aa56519d8af;Parent=162a2fe99c1df87d;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a8-1b2ab9246120a58e23341468;Parent=1776de38d6e67730;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -1951,11 +1951,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM06_GGMPHcENSg= + - YRJ6XEDMvHcENMQ= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 26846a5d-7807-4e9a-a488-c361fea8bc2e + - 779904c2-e269-4e77-bd3f-aa6288cc4ccc x-powered-by: - Express status: @@ -1984,15 +1984,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:20 GMT + - Fri, 24 May 2024 08:58:17 GMT Via: - - 1.1 eb83e7e264681d87a86c9b6a2159e502.cloudfront.net (CloudFront) + - 1.1 89c50b6a052f3d7c2c7b36108c6288f2.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - 6upVsi4968yaf3DAclCYBmnAuwl6uajzZRzuooRCeTRhwChX6NgdwQ== + - u6AGgl5ojtRnSwCS48k06Qtw-HTJrSUACZOcMUNWM4UjawwFOhWG9A== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e0-6704c24d305a9c176d47dd5d;Parent=5a39c8e5fea29bd1;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a9-747ac05c1d048c1a532c78c6;Parent=4feafb138d5204b5;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2000,11 +2000,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM07GEcCPHcEfIQ= + - YRJ6eFMsvHcEOLw= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - 35c4039c-c465-4e9d-9b27-1c4c680b2c84 + - 3e8903cb-41cf-4589-8cc1-a6dfa9c16631 x-powered-by: - Express status: @@ -2123,15 +2123,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:20 GMT + - Fri, 24 May 2024 08:58:17 GMT Via: - - 1.1 f797fc0ae68a3abc35e081e46174c9f2.cloudfront.net (CloudFront) + - 1.1 15ecb680f8d71749752cdfbf2e720cac.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - EBFmK7IxKdsUtUOcBTi8YOzHW8VU5BNo6u6YholZhCSJ5Goc6Lpvig== + - Py5G5H9q4cLrGGrcNUPbCa0jB6HtZPNPTLEjDaRKhFMrtBc95bra0g== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e0-4698d95178b31557240c34aa;Parent=572cf7721a3bf320;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056a9-54eb0cc2542c302d66189de4;Parent=0fca31b65900d977;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2139,11 +2139,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM07JHo6vHcEVAg= + - YRJ6jHQ1PHcEr6w= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 742d4ddd-c888-4edb-b15b-8a734bdf242c + - 116726d1-eeef-4a3c-9910-032fe64b8d1c x-powered-by: - Express status: @@ -2172,15 +2172,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:20 GMT + - Fri, 24 May 2024 08:58:18 GMT Via: - - 1.1 42b60ee17f7593fff72ca1cb725d6c9a.cloudfront.net (CloudFront) + - 1.1 7072690eb7ddba69e9cc825897c73c04.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - t4eUzrrLNIHs_6r3OCyUOCZOKAJ68XOrW5083ltx3uylQF5uo6Nh9g== + - GkvBJ35rC0nPpcfMHTeKQl3tA8wJGyZDL0iW_zhIgDrlfqqoewMmOw== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e0-6fb869616e694302615fd000;Parent=11f38f82c1ebee5b;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056aa-6e2c78a10e32eb5f3aecda30;Parent=50837a179629d73f;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2188,11 +2188,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM07LFqfvHcEGlA= + - YRJ6qFYUvHcEewg= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - f6e1b98e-e48c-4965-aea3-4be4ba0817b6 + - 4a39f701-c1e8-4f54-b494-7d42cdaf0e34 x-powered-by: - Express status: @@ -2311,15 +2311,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:21 GMT + - Fri, 24 May 2024 08:58:18 GMT Via: - - 1.1 ba5b5e2e7fd98c4a472633bc4c1d4480.cloudfront.net (CloudFront) + - 1.1 ecac8e61be1e296c21a67e56243778f8.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - 5SFJkvz7asXvdtrGC2wc-rNwvy6PyiMx7SSJ7D8hbt7Xbr7h_p7qkQ== + - BtSMwDJwHYQbwDbAphioiCnyzF2kGB-MXzW905F2hkKvJEXLM-iVsw== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e1-69b5bb453aba414a7ed02bb0;Parent=6380c8d26d90211e;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056aa-47d919c0576c496511cbcfe2;Parent=625fe8f6962e1851;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2327,11 +2327,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM07OHSavHcEqaQ= + - YRJ6vFjdPHcEa7w= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - aec42de5-f68b-4dd7-9ec5-447d07441f9c + - 0f7e3f21-37b5-44d4-8198-7ef9c2097eff x-powered-by: - Express status: @@ -2360,15 +2360,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:21 GMT + - Fri, 24 May 2024 08:58:19 GMT Via: - - 1.1 c379418fd6100691807f32f274ebe9ce.cloudfront.net (CloudFront) + - 1.1 f51f3da7e87f0e92f1fbd7965ab3105a.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - GLmdV8pkBuINoGgB6qbkKznsDnCAZ3LBKdJO7t-KqSRC-MrV7Wqnfw== + - 54vZXZXrSF2EpX9-GGcNg01o5pc_KMYiD5u9aj73vSVRSAIqORb2fQ== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e1-57e2e7c93eadaf840f9cf025;Parent=61272856c028eaf4;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056ab-6a84b0fe225727c1145284c6;Parent=56f8bc2cc4d15681;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2376,11 +2376,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM07UGySPHcEDkg= + - YRJ61HB3PHcERXg= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - d0894f1a-424e-42aa-b11e-6833d201160f + - db282805-e545-41cf-b5d5-2056e5d71cd9 x-powered-by: - Express status: @@ -2499,15 +2499,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:22 GMT + - Fri, 24 May 2024 08:58:20 GMT Via: - - 1.1 5a5b94c62ea85e0c0d78b169589b08b4.cloudfront.net (CloudFront) + - 1.1 be10e6b765bbef9faac0617fa874014e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - c26KxgEwnLElvcvwngOp2V74_SFcdsnIJrw_dgOzq5DQFYUjdnofxA== + - 6lA7xZeQlrBubj_yLgpvZEODDoB0mkYTciZPaW06jZe6vROx2wmPSg== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e2-555f4cc2001e48d17666d851;Parent=4903a4dae0588102;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056ab-30725ab9614e24d244c6470a;Parent=296a8e9fb48511cb;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2515,11 +2515,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM07aHATPHcEeNg= + - YRJ66FnCvHcEa7w= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 7898107d-71a3-4c3d-9675-32b71f4b5309 + - a296b6ea-f722-4ae2-afb5-f6565cf7d95f x-powered-by: - Express status: @@ -2548,15 +2548,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:23 GMT + - Fri, 24 May 2024 08:58:20 GMT Via: - - 1.1 2bbba694ff55d664208103e9c25dce14.cloudfront.net (CloudFront) + - 1.1 25cc6d5f46d4eae9262198b05709a32e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - C_2d2PtL4pUPHee5d_oF_KIxFdSaYvEKFLNKdqHlTpi6FKNhS9BHzg== + - zSZ8WVZa3WyTFGGI0QSZqXt4FeNdy5w9JKItJbuoeqLqt1uxMY6Mbg== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e3-477bdaf248dc1c45129549ae;Parent=2b41000994ea32d7;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056ac-2803b0a50c4743cd125e9083;Parent=0e282cae0d304b3a;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2564,11 +2564,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM07hEixPHcEPcA= + - YRJ7BG4nPHcEkBA= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - 48b4acf1-662b-46b1-8e51-7e47aaf00964 + - baf7343e-b40d-416b-ac4b-265a5449f957 x-powered-by: - Express status: @@ -2687,15 +2687,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:23 GMT + - Fri, 24 May 2024 08:58:21 GMT Via: - - 1.1 8f20db43ba7579b7216cf908572d5054.cloudfront.net (CloudFront) + - 1.1 0daacc4ea9faa788f2eb67745b6bb46c.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - PA-iVbJYVDjcM-WZ0V9V9OVvodz3uCZk4FMZr1Pbo9IbA9A0C9NuFg== + - QNkL9JHuE3YPgrRttNLYsx4Qlgt176CEa0bDet11OjJuREzVQhbnJA== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e3-103fd83139184a883e13e4ec;Parent=43dbb66062f13f58;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056ad-286dcf8c6ed763a3776e8d8e;Parent=7de98af76e7e4af3;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2703,11 +2703,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM07nFsIPHcEBsw= + - YRJ7GEFfPHcELpA= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - b8a4f585-ec12-4c28-8bec-6494bb74179f + - ea655efa-58a2-4423-bfdb-1499b39caa6d x-powered-by: - Express status: @@ -2736,15 +2736,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:24 GMT + - Fri, 24 May 2024 08:58:21 GMT Via: - - 1.1 c3b74c81fdcb7942211a6c721efa13fc.cloudfront.net (CloudFront) + - 1.1 365a977b864574759e83e211b333db7e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - 6CbIfSBHYE_Em7GdSGUO-8W9Xn_g-CgnUkB5TTKTPD8su85iYGtFfQ== + - ahqj6zfa0Aa8CkE3UvIVcxm8-D1a4OQZD5qWxjtl7B8r07fDzGiqig== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e4-7ec844df2b9969831753d2e3;Parent=326afe9bd494de70;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056ad-718c5bea02b245a81e5bdc4f;Parent=0b773f8f590ce196;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2752,11 +2752,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM07uF0SvHcEp5w= + - YRJ7NHoMvHcEdUQ= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - bd02a544-d822-47a2-9ac7-5c77b43d4ac7 + - f5f61dac-756c-4f50-91ed-80c4f26de58b x-powered-by: - Express status: @@ -2875,15 +2875,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:24 GMT + - Fri, 24 May 2024 08:58:22 GMT Via: - - 1.1 eab88762658052b4a1e386f8521a38ce.cloudfront.net (CloudFront) + - 1.1 25cc6d5f46d4eae9262198b05709a32e.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - IBwH1RGyB-nImsFboGdAfRkep38jLACBFtqxrmTTryGjMQEksKr7Hw== + - H57g2kZtxX9vQOJNRFnnXUoXd3FYqadIZm3TEakcN9V8nn39IHZxHA== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e4-0b3e9e5723beb111301fe44d;Parent=515cbcab1be3eda7;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056ae-7f55b4b1466821bb38b3fc73;Parent=305491fdbedc9d94;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2891,11 +2891,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM07yHLgPHcEHcQ= + - YRJ7TE7hvHcECHw= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - e2f087b7-6146-43fc-a120-293c5142538b + - d2d99fdf-bcb4-455f-8d84-efaacbd1e4e2 x-powered-by: - Express status: @@ -2924,15 +2924,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:25 GMT + - Fri, 24 May 2024 08:58:23 GMT Via: - - 1.1 3b02f73dccc5077f1ad544a27a475ed6.cloudfront.net (CloudFront) + - 1.1 4e44ab675e04b2d505f10321504a5be2.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - c3jrq7tscB4z2387GB-oRjmvnPcGXaJL53TebpB2r0TS0fdqH1MaDQ== + - apMUmSOKOp5R7z7FpSMnUYO6LzFHN3JPCV7mUOERR47NiOc9a2kjSA== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e5-58f539721836c427025ced2d;Parent=6afa592d620fa821;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056af-46a633751b08ed3a28532f67;Parent=63457f4e7970810a;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -2940,11 +2940,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM073HeoPHcEucA= + - YRJ7aGf2vHcESiw= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - eda4bb80-db94-4e56-a553-4cf56b343315 + - 665560a4-7331-4b47-b9da-c7a322d10a1b x-powered-by: - Express status: @@ -3063,15 +3063,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:25 GMT + - Fri, 24 May 2024 08:58:23 GMT Via: - - 1.1 c2a926ef1bafe1ab239d4761594a8098.cloudfront.net (CloudFront) + - 1.1 b15f4c07714f7f016a27a820e066ec22.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - II7J4-Wu-9avF0VuTh5QgEQp2lNl94vf2pvYKc8PEoR6CFJSbyyDig== + - VOHth4lHBzm-H7WlhTx4obzDFh3_5Pd2Na7uBr8RRnFBGvPcIN6PUw== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e5-74bd3f111095e1b61020da86;Parent=1802786e874fad43;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056af-4c307367567a2b6345559857;Parent=1bed35daeb4a1125;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -3079,11 +3079,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM07-FA3PHcEnaA= + - YRJ7cELxvHcELpA= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 6d4d9942-ebac-4ad5-b366-03ae41373287 + - e6b8c340-23ef-477b-9302-687bbf46a2fe x-powered-by: - Express status: @@ -3112,15 +3112,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:26 GMT + - Fri, 24 May 2024 08:58:23 GMT Via: - - 1.1 cb33a7a4640adbb55df3e0d143601558.cloudfront.net (CloudFront) + - 1.1 7072690eb7ddba69e9cc825897c73c04.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - KwUi-6ABnafTO9sf3-mYVadBebN93m0T4iuEzrKaYDKwnl6XC41v8Q== + - 3veWyhA5pQF0zMxhrXaiQguKIg1WQlaa5lxa6mW7aURPh7Op2uOb3g== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e6-40303d9943f59bff245e91bb;Parent=09d9809d3e6a524d;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056af-75c9dc43741860063288db4b;Parent=527274509feabd63;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -3128,11 +3128,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM08FE1fPHcEHPw= + - YRJ7gFSFPHcEMPQ= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - db9affbd-c0da-4d1e-a2f2-24d947a97f9c + - 4d574ca9-febc-481c-8a52-e8c32feddae3 x-powered-by: - Express status: @@ -3251,15 +3251,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:27 GMT + - Fri, 24 May 2024 08:58:24 GMT Via: - - 1.1 c2a926ef1bafe1ab239d4761594a8098.cloudfront.net (CloudFront) + - 1.1 9f9a9459e41ff1f18971fa1adf6eb202.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - 6XzVrKiWfXI7gJ07G9dBQpxWNpjmMHW-o3IA8Br209-XpIe6tkQ1Ww== + - cnZYPPyP1vTiyhNAPVZbmth49cPpw3gZVxwG5znMrlOybdc3fZ9nOw== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e7-60ac65d6238e39027f159438;Parent=42cbaf328d07e85f;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056b0-7c329693234aa4192b3f6f33;Parent=21ffbbeb750a0bb5;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -3267,11 +3267,11 @@ interactions: etag: - W/"477b-Asxhtvc+lqTFG+89C5CkYquEf14" x-amz-apigw-id: - - XM08KHD9PHcEXNw= + - YRJ7lHeXvHcEa0w= x-amzn-Remapped-content-length: - '18299' x-amzn-RequestId: - - 4326fd9f-0377-43c3-9206-52040bdba107 + - 8261a13c-0816-4271-8f73-77bff521a248 x-powered-by: - Express status: @@ -3300,15 +3300,15 @@ interactions: Content-Type: - application/json; charset=utf-8 Date: - - Fri, 03 May 2024 15:25:27 GMT + - Fri, 24 May 2024 08:58:25 GMT Via: - - 1.1 eab88762658052b4a1e386f8521a38ce.cloudfront.net (CloudFront) + - 1.1 9e5ec6086358ec6bc142d90efec366a2.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - UdDC_trQe8NottDltkN3aCMPCafF3iBauLY8mNaTdx4XaOmbv785Jg== + - KG1qUiz9ba1P9AAQbMHub2HgIEob6O_aOJ1Zrd6zY1Om6k1SbzgGYQ== X-Amz-Cf-Pop: - - FRA2-C1 + - TXL50-P5 X-Amzn-Trace-Id: - - Root=1-663501e7-3f77c88f26f6174f0428f36d;Parent=6d06e98e73dd91dc;Sampled=0;lineage=9e2884e9:0 + - Root=1-665056b1-7575db761c083aab45958e0b;Parent=57912863e159adb0;Sampled=0;lineage=9e2884e9:0 X-Cache: - Miss from cloudfront access-control-allow-origin: @@ -3316,11 +3316,11 @@ interactions: etag: - W/"d29-QPs+H0wJLUX32EZKNgzG3k6wfQ8" x-amz-apigw-id: - - XM08QFtTvHcEoZw= + - YRJ7tGTlvHcEfKw= x-amzn-Remapped-content-length: - '3369' x-amzn-RequestId: - - e1ce8e28-4656-4d1c-ba75-1f7735654bda + - 0dbf11a5-53e8-410a-a7db-56daa83eed59 x-powered-by: - Express status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_open_data_params_schema.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_open_data_params_schema.yaml index 1726122..9d1ff76 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_open_data_params_schema.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_open_data_params_schema.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '20' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 441d80997bf39fb2f2cc7425e54a9130a245059a + - 4d863b1f05ad5121c29f279287d00045238e29fd X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320035-CPH + - cache-fra-eddf8230063-FRA X-Timer: - - S1714749929.060379,VS0,VE1 + - S1716541105.227431,VS0,VE6 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '19' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - b7b4c7d78fe782beb00c1b4e22c4a0a99d3c8814 + - ed2f870f753d07fb2b2620ae22ce730d36d68e66 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320045-CPH + - cache-fra-eddf8230050-FRA X-Timer: - - S1714749929.090788,VS0,VE1 + - S1716541105.284938,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_get_search_params_schema.yaml b/test/cassettes/test_store/StacDataStoreTest.test_get_search_params_schema.yaml index 171cec8..4a44257 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_get_search_params_schema.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_get_search_params_schema.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '20' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 51bd0e28674149f8a6511e7220709c5d707cd6b8 + - e351a007ef560d2bbc1fe4f47694b16ce024682b X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320046-CPH + - cache-fra-eddf8230025-FRA X-Timer: - - S1714749929.174729,VS0,VE1 + - S1716541105.392760,VS0,VE10 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '20' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 674f86cc5615b1a123279ed51a7cc33bc98cd2dc + - dc2d8117fcae93d0eee856b23414db59fb8cf099 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320054-CPH + - cache-fra-eddf8230022-FRA X-Timer: - - S1714749929.221389,VS0,VE1 + - S1716541105.455495,VS0,VE3 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_has_data.yaml b/test/cassettes/test_store/StacDataStoreTest.test_has_data.yaml index 99a96ba..deb2e9e 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_has_data.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_has_data.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '20' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 0150f4b8fb35d2d65a21a67da291495921fa6c19 + - 1004571e3559aa9780c0aac3fd4c1cbcff2f678d X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320041-CPH + - cache-fra-eddf8230085-FRA X-Timer: - - S1714749929.285087,VS0,VE1 + - S1716541106.523862,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '20' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 8db1a2730a5dba7c9c1415ee2f04a8305228051c + - b6230c3b83ac989cfb78c0bf1a079530027b0026 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320059-CPH + - cache-fra-eddf8230067-FRA X-Timer: - - S1714749929.324218,VS0,VE1 + - S1716541106.595172,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '7' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 5272c529369f27d6125e2051d190def57879b522 + - 74885f71176f41c6bada04b7eab7d530250ea389 X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230092-FRA + - cache-fra-eddf8230127-FRA X-Timer: - - S1715324971.632284,VS0,VE1 + - S1716541106.650603,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '6' + - '23' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - be44f60a2cc5b0cbfac23c9beb00cdbf01711326 + - c59613f2a4e2a3bc992fc5f4a5b2b7a6a0bc299d X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230135-FRA + - cache-fra-eddf8230023-FRA X-Timer: - - S1715324971.702297,VS0,VE1 + - S1716541106.709748,VS0,VE4 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '6' + - '23' Strict-Transport-Security: - max-age=31536000 Vary: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 85676f8d1ccd7ad438e56963a537d58b4445864f + - ac452b4d17ed356d4e90643573bd9ff6519dfdc3 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230032-FRA + - cache-fra-eddf8230147-FRA X-Timer: - - S1715324971.772990,VS0,VE1 + - S1716541106.764735,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '6' + - '23' Strict-Transport-Security: - max-age=31536000 Vary: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 289840dae091ae2c85ee4bdb140da6fa037f2df7 + - d7383b277a47a74b87c2c2fb162da677739546c8 X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230039-FRA + - cache-fra-eddf8230094-FRA X-Timer: - - S1715324971.846867,VS0,VE1 + - S1716541106.830318,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -583,13 +583,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '6' + - '23' Strict-Transport-Security: - max-age=31536000 Vary: @@ -603,15 +603,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - fa979648e6c6e0a70323efa0556a8be631e9ca4d + - 823527384bfc0bc6de3c05617e7f3d234bcb9902 X-Frame-Options: - deny X-GitHub-Request-Id: - - 464C:31B7DA:494AB4:4E5AED:663DC824 + - A3B0:2F2389:1860BF0:19B2BED:66505264 X-Served-By: - - cache-fra-eddf8230142-FRA + - cache-fra-eddf8230026-FRA X-Timer: - - S1715324971.919472,VS0,VE3 + - S1716541106.883528,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -679,13 +679,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:30 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' Expires: - - Fri, 10 May 2024 07:14:30 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '6' + - '23' Strict-Transport-Security: - max-age=31536000 Vary: @@ -699,15 +699,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 7fab116d2b08550521b79e532a6f35ae033c02fa + - 555b291ffeed9a60a787bfcc7232e1c5664d8bf3 X-Frame-Options: - deny X-GitHub-Request-Id: - - 0968:2C39F8:F59BAF:103E592:663DC824 + - 89B0:343D51:70A407:76EC44:66505264 X-Served-By: - - cache-fra-eddf8230144-FRA + - cache-fra-eddf8230059-FRA X-Timer: - - S1715324971.993086,VS0,VE1 + - S1716541106.935000,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -775,13 +775,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:25 GMT ETag: - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:25 GMT Source-Age: - - '6' + - '23' Strict-Transport-Security: - max-age=31536000 Vary: @@ -795,15 +795,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - bbcf3838fffa8dc3f9cb02a5168aef4a0205e8a9 + - 513cfd878ddd19331b116cb63969157a425af8e2 X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A44E:105F8EA:663DC824 + - 6970:1A1B9A:2254DAB:242883D:66505264 X-Served-By: - - cache-fra-eddf8230155-FRA + - cache-fra-eddf8230065-FRA X-Timer: - - S1715324971.065512,VS0,VE1 + - S1716541106.985876,VS0,VE1 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_has_data_optional_args.yaml b/test/cassettes/test_store/StacDataStoreTest.test_has_data_optional_args.yaml index 8aaf5f9..5212035 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_has_data_optional_args.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_has_data_optional_args.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:26 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:26 GMT Source-Age: - - '8' + - '25' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 4acf3301828fe452cb788a1bc7bd4fde2499d817 + - 2612723c627dc273e74bcd30c6dfcf1feb5db883 X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A385:105F80C:663DC822 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-fra-eddf8230038-FRA + - cache-fra-eddf8230147-FRA X-Timer: - - S1715324971.150694,VS0,VE1 + - S1716541106.054139,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:26 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:26 GMT Source-Age: - - '7' + - '25' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - bdcfaffec975911af66a674774c282bf37f2be7b + - 6a0537da371b5a361d2832b22825e234a2c97a60 X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A39E:105F82D:663DC823 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-fra-eddf8230115-FRA + - cache-fra-eddf8230118-FRA X-Timer: - - S1715324971.222111,VS0,VE1 + - S1716541106.108815,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -203,13 +203,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:26 GMT ETag: - '"ddd340bc27c120dd2e43868bcde0510a326a6223dac1b0c47c05100e20d1397e"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:26 GMT Source-Age: - - '7' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -223,15 +223,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 1848e7c4d5c57ee6bf498a05da9c4f4e4b111ac7 + - b9df752665654279fc873bf4eca8dc60b823381c X-Frame-Options: - deny X-GitHub-Request-Id: - - 27EE:3635F7:5B574A:611F18:663DC823 + - 7F34:D7055:26F806E:29015C2:66505262 X-Served-By: - - cache-fra-eddf8230113-FRA + - cache-fra-eddf8230130-FRA X-Timer: - - S1715324971.313427,VS0,VE1 + - S1716541106.161434,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -287,13 +287,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"3263faca1f19517d02862736694703cc8519bed9344039cace8aa2c5f9379bcf"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '7' + - '25' Strict-Transport-Security: - max-age=31536000 Vary: @@ -307,15 +307,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - bee1ff705569eaf2dbeb8fc8d153311efccb5f0d + - a27b738051b3641bd879b4ad20efd2583ed1a364 X-Frame-Options: - deny X-GitHub-Request-Id: - - E09A:28EC35:F3998B:101ED8D:663DC822 + - 5554:366126:1E0E130:1F94C3C:66505262 X-Served-By: - - cache-fra-eddf8230107-FRA + - cache-fra-eddf8230045-FRA X-Timer: - - S1715324971.386498,VS0,VE1 + - S1716541107.234391,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -387,13 +387,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"80ec96bc0acf2e604a03f109bd730426aa82e442d44946231cbe82a531b944f7"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '7' + - '25' Strict-Transport-Security: - max-age=31536000 Vary: @@ -407,15 +407,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - c831cf92a77be24524d4e67c91de90dab43b2cbd + - c2feaccd6dd4fb77381a0f14e3c77e92bd7a1987 X-Frame-Options: - deny X-GitHub-Request-Id: - - 3D42:208DB8:E6CE03:F4739A:663DC824 + - 6B90:37C204:1CC468F:1E3D692:66505261 X-Served-By: - - cache-fra-eddf8230090-FRA + - cache-fra-eddf8230108-FRA X-Timer: - - S1715324971.460337,VS0,VE1 + - S1716541107.288507,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -487,13 +487,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"726870312c74ead0b10c3125045c301e8600929684c49447d64c2db72dc779fc"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '7' + - '25' Strict-Transport-Security: - max-age=31536000 Vary: @@ -507,15 +507,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - cdf7b32a684c874743fb348eb3f8afc002543825 + - 614054225e741e68a3816104ddd080448a48dc4f X-Frame-Options: - deny X-GitHub-Request-Id: - - 25B8:28EC35:F399B5:101EDC3:663DC823 + - D9D6:198FA3:2BF2E8A:2E48E77:66505263 X-Served-By: - - cache-fra-eddf8230055-FRA + - cache-fra-eddf8230115-FRA X-Timer: - - S1715324972.532038,VS0,VE1 + - S1716541107.339855,VS0,VE4 X-XSS-Protection: - 1; mode=block status: @@ -583,13 +583,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"ce41324ef0ed1993e9becda97e8bd6e7186e24be35178941b14e6f895823f452"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '7' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -603,15 +603,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - e80b41103873885c61d8f956f957c59fdcb59d9c + - 155af0ad1f14bce5461816d731f9bb2d322fff07 X-Frame-Options: - deny X-GitHub-Request-Id: - - 464C:31B7DA:494AB4:4E5AED:663DC824 + - A3B0:2F2389:1860BF0:19B2BED:66505264 X-Served-By: - - cache-fra-eddf8230086-FRA + - cache-fra-eddf8230052-FRA X-Timer: - - S1715324972.605383,VS0,VE1 + - S1716541107.396917,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -679,13 +679,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"64208ffa092e62b99037d93a9865ac76f7b075e742e951fa01a6cc4318f9f91d"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '6' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -699,15 +699,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - dc01fc9210c625e1f41f756f3618d481c4ea5f3b + - 57977064270495278a0b4ef23da93e7c2fb872f2 X-Frame-Options: - deny X-GitHub-Request-Id: - - 0968:2C39F8:F59BAF:103E592:663DC824 + - 89B0:343D51:70A407:76EC44:66505264 X-Served-By: - - cache-fra-eddf8230134-FRA + - cache-fra-eddf8230140-FRA X-Timer: - - S1715324972.678522,VS0,VE1 + - S1716541107.452145,VS0,VE2 X-XSS-Protection: - 1; mode=block status: @@ -775,13 +775,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 10 May 2024 07:09:31 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"b013010acfbb8a7c7479cba0a48831d129ecd605ac31316930d1d2f804634dbc"' Expires: - - Fri, 10 May 2024 07:14:31 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '6' + - '24' Strict-Transport-Security: - max-age=31536000 Vary: @@ -795,15 +795,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - f6d837d1060782f9af0b04a323db4dbf2e0d3bdc + - f913ddf9fb369bedf6c2b89a1e4468517d5687ae X-Frame-Options: - deny X-GitHub-Request-Id: - - 5BAC:6DBF6:F7A44E:105F8EA:663DC824 + - 6970:1A1B9A:2254DAB:242883D:66505264 X-Served-By: - - cache-fra-eddf8230026-FRA + - cache-fra-eddf8230068-FRA X-Timer: - - S1715324972.768517,VS0,VE1 + - S1716541108.507834,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_stac/StacTest.test_assert_datetime.yaml b/test/cassettes/test_store/StacDataStoreTest.test_is_datetime_in_range.yaml similarity index 88% rename from test/cassettes/test_stac/StacTest.test_assert_datetime.yaml rename to test/cassettes/test_store/StacDataStoreTest.test_is_datetime_in_range.yaml index 741c8af..78a72cb 100644 --- a/test/cassettes/test_stac/StacTest.test_assert_datetime.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_is_datetime_in_range.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:10 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:10 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '1' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - bfb5262ba5750f941b6cd7a6241f9db10a008bc6 + - 30c5bb778ba522a9623085110005f936fae503e5 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320038-CPH + - cache-fra-eddf8230026-FRA X-Timer: - - S1714749910.023210,VS0,VE1 + - S1716541108.575831,VS0,VE5 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:10 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:10 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '0' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - c889a319a8de05ae63d9fa45836b28443602ea87 + - 4d64c2f2eaea649f05761540d6beede2d2684862 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320033-CPH + - cache-fra-eddf8230033-FRA X-Timer: - - S1714749910.060220,VS0,VE1 + - S1716541108.632084,VS0,VE3 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_open_data.yaml b/test/cassettes/test_store/StacDataStoreTest.test_open_data.yaml index 2b0a4c2..438ec5e 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_open_data.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_open_data.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '20' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -57,19 +57,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '2' + - '1' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - abe4f0d57fc2868cde252d36a04a95c3849e3e1e + - f34e0980e36c76b1fc21a0ecd90f45e3358561b3 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320041-CPH + - cache-fra-eddf8230133-FRA X-Timer: - - S1714749929.388680,VS0,VE0 + - S1716541108.696285,VS0,VE1 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '20' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 5c412d7c8ec5bd27cbb15106cd2700a64e41477b + - b4d50e30196babc58432ffbc42360c1eeff3b209 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320044-CPH + - cache-fra-eddf8230046-FRA X-Timer: - - S1714749929.425456,VS0,VE1 + - S1716541108.753686,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_open_data_wrong_opener_id.yaml b/test/cassettes/test_store/StacDataStoreTest.test_open_data_wrong_opener_id.yaml index 5a175ef..a304577 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_open_data_wrong_opener_id.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_open_data_wrong_opener_id.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '20' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -61,15 +61,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - d6adf9a9e278c1e819b7887b5870e096b3f55964 + - 7128abbef96338beadfb5aa3816294b64c0d6a37 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320028-CPH + - cache-fra-eddf8230156-FRA X-Timer: - - S1714749929.496967,VS0,VE1 + - S1716541108.822708,VS0,VE3 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '20' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 86eaab36e30b33c3f87acd55cf7fe82de73a128c + - ee10adf22694ffe6bc3c23477324e13bd2c1c3c9 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320022-CPH + - cache-fra-eddf8230032-FRA X-Timer: - - S1714749930.537121,VS0,VE1 + - S1716541108.893953,VS0,VE1 X-XSS-Protection: - 1; mode=block status: diff --git a/test/cassettes/test_store/StacDataStoreTest.test_search_data.yaml b/test/cassettes/test_store/StacDataStoreTest.test_search_data.yaml index ef14de2..8056255 100644 --- a/test/cassettes/test_store/StacDataStoreTest.test_search_data.yaml +++ b/test/cassettes/test_store/StacDataStoreTest.test_search_data.yaml @@ -41,13 +41,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:27 GMT ETag: - W/"acb7a8d6636e24e32f4018c14f1c4ff418a82567b2746560f9eae6ad97a48a54" Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:27 GMT Source-Age: - - '20' + - '27' Strict-Transport-Security: - max-age=31536000 Vary: @@ -57,19 +57,19 @@ interactions: X-Cache: - HIT X-Cache-Hits: - - '1' + - '2' X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 02e8e14da5f5ffad99ec2622434aceeec44f85f3 + - b2e60af45391757ac43a97192ecca02b608550b0 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F67:1E6FB08:6634FE90 + - 36D3:107820:22CCEEE:24A2ADC:665050BD X-Served-By: - - cache-cph2320051-CPH + - cache-fra-eddf8230147-FRA X-Timer: - - S1714749930.603023,VS0,VE1 + - S1716541108.962343,VS0,VE0 X-XSS-Protection: - 1; mode=block status: @@ -113,13 +113,13 @@ interactions: Cross-Origin-Resource-Policy: - cross-origin Date: - - Fri, 03 May 2024 15:25:29 GMT + - Fri, 24 May 2024 08:58:28 GMT ETag: - '"e74ebcbc46d43c5b693ecb995381fbeba03583627e6d65b21ed7678a10d94729"' Expires: - - Fri, 03 May 2024 15:30:29 GMT + - Fri, 24 May 2024 09:03:28 GMT Source-Age: - - '20' + - '26' Strict-Transport-Security: - max-age=31536000 Vary: @@ -133,15 +133,15 @@ interactions: X-Content-Type-Options: - nosniff X-Fastly-Request-ID: - - 0ee4551d52e42dd8d6e2086c23c5481170380f35 + - fd273ea425c62f9e42d160706e4119b50b6a3c53 X-Frame-Options: - deny X-GitHub-Request-Id: - - BACE:2E8F4B:1CE9F92:1E6FB29:6634FE90 + - 36CD:107820:22CCF1B:24A2B05:665050BD X-Served-By: - - cache-cph2320055-CPH + - cache-fra-eddf8230087-FRA X-Timer: - - S1714749930.647178,VS0,VE1 + - S1716541108.014349,VS0,VE2 X-XSS-Protection: - 1; mode=block status: diff --git a/test/test_opener.py b/test/test_opener.py deleted file mode 100644 index 1ce2d9c..0000000 --- a/test/test_opener.py +++ /dev/null @@ -1,68 +0,0 @@ -# The MIT License (MIT) -# Copyright (c) 2024 by the xcube development team and contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import unittest - -import pytest -from xcube.util.jsonschema import JsonObjectSchema - -from xcube_stac.stac import Stac -from xcube_stac.store import StacDataOpener - - -class StacDataOpenerTest(unittest.TestCase): - - def setUp(self): - self.url = ( - "https://raw.githubusercontent.com/stac-extensions/" - "label/main/examples/multidataset/catalog.json" - ) - self.data_id = "zanzibar-collection/znz001/raster" - - @pytest.mark.vcr() - def test_get_open_data_params_schema(self): - opener = StacDataOpener(Stac(self.url)) - schema = opener.get_open_data_params_schema() - self.assertIsInstance(schema, JsonObjectSchema) - self.assertIn("variable_names", schema.properties) - self.assertIn("time_range", schema.properties) - self.assertIn("bbox", schema.properties) - self.assertIn("collections", schema.properties) - - @pytest.mark.vcr() - def test_open_data(self): - opener = StacDataOpener(Stac(self.url)) - with self.assertRaises(NotImplementedError) as cm: - opener.open_data(self.data_id) - self.assertEqual( - "open_data() operation is not supported yet", - f"{cm.exception}", - ) - - @pytest.mark.vcr() - def test_describe_data(self): - opener = StacDataOpener(Stac(self.url)) - with self.assertRaises(NotImplementedError) as cm: - opener.describe_data(self.data_id) - self.assertEqual( - "describe_data() operation is not supported yet", - f"{cm.exception}", - ) diff --git a/test/test_stac.py b/test/test_stac.py deleted file mode 100644 index 43f9954..0000000 --- a/test/test_stac.py +++ /dev/null @@ -1,268 +0,0 @@ -# The MIT License (MIT) -# Copyright (c) 2024 by the xcube development team and contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import unittest - -from pystac import ItemCollection -import pytest -from xcube.util.jsonschema import JsonObjectSchema - -from xcube_stac.stac import Stac - - -class StacTest(unittest.TestCase): - - def setUp(self): - self.url_nonsearchable = ( - "https://raw.githubusercontent.com/stac-extensions/" - "label/main/examples/multidataset/catalog.json" - ) - self.url_searchable = "https://earth-search.aws.element84.com/v1" - - @pytest.mark.vcr() - def test_get_open_data_params_schema(self): - stac_instance = Stac(self.url_nonsearchable) - schema = stac_instance.get_open_data_params_schema() - self.assertIsInstance(schema, JsonObjectSchema) - self.assertIn("variable_names", schema.properties) - self.assertIn("time_range", schema.properties) - self.assertIn("bbox", schema.properties) - self.assertIn("collections", schema.properties) - - @pytest.mark.vcr() - def test_get_item_collection(self): - stac_instance = Stac(self.url_nonsearchable) - items, data_id_items = stac_instance.get_item_collection() - data_id_items_expected = [ - "zanzibar-collection/znz001", - "zanzibar-collection/znz029", - "spacenet-buildings-collection/AOI_2_Vegas_img2636", - "spacenet-buildings-collection/AOI_3_Paris_img1648", - "spacenet-buildings-collection/AOI_4_Shanghai_img3344" - ] - self.assertIsInstance(items, ItemCollection) - self.assertCountEqual(data_id_items_expected, data_id_items) - self.assertEqual(len(items), len(data_id_items)) - - @pytest.mark.vcr() - def test_get_item_collection_open_params(self): - stac_instance = Stac(self.url_nonsearchable) - items, data_id_items = stac_instance.get_item_collection( - collections="zanzibar-collection", - bbox=[39.28, -5.74, 39.31, -5.72], - time_range=["2019-04-23", "2019-04-24"] - ) - data_id_items_expected = [ - "zanzibar-collection/znz001", - ] - self.assertIsInstance(items, ItemCollection) - self.assertCountEqual(data_id_items_expected, data_id_items) - self.assertEqual(len(items), len(data_id_items)) - - items, data_id_items = stac_instance.get_item_collection( - collections="zanzibar-collection", - bbox=[39, -5., 41, -6], - time_range=["2019-04-28", "2019-04-30"] - ) - self.assertIsInstance(items, ItemCollection) - self.assertEqual(0, len(items)) - self.assertEqual(len(items), len(data_id_items)) - - @pytest.mark.vcr() - def test_get_item_collection_searchable_catalog(self): - stac_instance = Stac(self.url_searchable) - items, data_id_items = stac_instance.get_item_collection( - variable_names="red", - collections=["sentinel-2-l2a"], - bbox=[9, 47, 10, 48], - time_range=["2020-03-01", "2020-03-05"] - ) - data_id_items_expected = [ - "sentinel-2-l2a/S2A_32TMT_20200305_0_L2A", - "sentinel-2-l2a/S2A_32TNT_20200305_0_L2A", - "sentinel-2-l2a/S2A_32UMU_20200305_0_L2A", - "sentinel-2-l2a/S2A_32UNU_20200305_0_L2A", - "sentinel-2-l2a/S2A_32TMT_20200302_1_L2A", - "sentinel-2-l2a/S2A_32TMT_20200302_0_L2A", - "sentinel-2-l2a/S2A_32TNT_20200302_1_L2A", - "sentinel-2-l2a/S2A_32TNT_20200302_0_L2A", - "sentinel-2-l2a/S2A_32UMU_20200302_1_L2A", - "sentinel-2-l2a/S2A_32UMU_20200302_0_L2A", - "sentinel-2-l2a/S2A_32UNU_20200302_1_L2A", - "sentinel-2-l2a/S2A_32UNU_20200302_0_L2A" - ] - self.assertIsInstance(items, ItemCollection) - self.assertCountEqual(data_id_items_expected, data_id_items) - self.assertEqual(len(items), len(data_id_items)) - - @pytest.mark.vcr() - def test_get_data_ids(self): - stac_instance = Stac(self.url_nonsearchable) - data_ids = stac_instance.get_data_ids() - data_ids_expected = [ - "zanzibar-collection/znz001/raster", - "zanzibar-collection/znz029/raster", - "spacenet-buildings-collection/AOI_2_Vegas_img2636/raster", - "spacenet-buildings-collection/AOI_3_Paris_img1648/raster", - "spacenet-buildings-collection/AOI_4_Shanghai_img3344/raster" - ] - self.assertCountEqual(data_ids_expected, data_ids) - - @pytest.mark.vcr() - def test_get_data_ids_optional_args(self): - stac_instance = Stac( - self.url_nonsearchable, - data_id_delimiter=":" - ) - data_ids = stac_instance.get_data_ids( - include_attrs=["title"], - collections="zanzibar-collection", - variable_names=["raster"] - ) - data_ids_expected = [ - ("zanzibar-collection:znz001:raster", {"title": "znz001_previewcog"}), - ("zanzibar-collection:znz029:raster", {"title": "znz029_previewcog"}) - ] - self.assertCountEqual(data_ids_expected, data_ids) - - @pytest.mark.vcr() - def test_get_data_ids_optional_args_empty_args(self): - stac_instance = Stac( - self.url_nonsearchable, - data_id_delimiter=":" - ) - data_ids = stac_instance.get_data_ids( - include_attrs=["dtype"], - collections="zanzibar-collection", - variable_names=["raster"] - ) - data_ids_expected = [ - ("zanzibar-collection:znz001:raster", {}), - ("zanzibar-collection:znz029:raster", {}) - ] - self.assertCountEqual(data_ids_expected, data_ids) - - @pytest.mark.vcr() - def test_get_data_ids_from_items(self): - stac_instance = Stac( - self.url_nonsearchable - ) - items, _ = stac_instance.get_item_collection( - collections="zanzibar-collection" - ) - data_ids = stac_instance.get_data_ids( - items=items - ) - data_ids_expected = [ - "zanzibar-collection/znz001/raster", - "zanzibar-collection/znz029/raster" - ] - self.assertCountEqual(data_ids_expected, data_ids) - - @pytest.mark.vcr() - def test_open_data(self): - stac_instance = Stac(self.url_nonsearchable) - data_id = "zanzibar-collection/znz001/raster" - with self.assertRaises(NotImplementedError) as cm: - stac_instance.open_data(data_id) - self.assertEqual( - "open_data() operation is not supported yet", - f"{cm.exception}", - ) - - @pytest.mark.vcr() - def test_is_datetime_in_range(self): - class Item1(): - - def __init__(self) -> None: - self.properties = dict( - datetime="2024-05-02T09:19:38.543000Z" - ) - - class Item2(): - - def __init__(self) -> None: - self.properties = dict( - datetime="null", - start_datetime="2023-12-02T09:19:38.543000Z", - end_datetime="2024-05-02T09:19:38.543000Z" - ) - - item1_test_paramss = [ - ("2024-04-30", "2024-05-03", self.assertTrue), - ("2024-04-26", "2024-05-02", self.assertFalse), - ("2024-04-26", "2024-05-01", self.assertFalse) - ] - - item2_test_paramss = [ - ("2024-05-05", "2024-05-08", self.assertFalse), - ("2024-04-30", "2024-05-03", self.assertTrue), - ("2024-04-26", "2024-04-29", self.assertTrue), - ("2023-11-26", "2023-12-31", self.assertTrue), - ("2023-11-26", "2023-11-30", self.assertFalse), - ("2023-11-26", "2024-05-08", self.assertTrue), - ] - - stac_instance = Stac(self.url_nonsearchable) - - item1 = Item1() - for (time_start, time_end, fun) in item1_test_paramss: - fun( - stac_instance._is_datetime_in_range( - item1, - time_range=[time_start, time_end] - ) - ) - - item1 = Item2() - for (time_start, time_end, fun) in item2_test_paramss: - fun( - stac_instance._is_datetime_in_range( - item1, - time_range=[time_start, time_end] - ) - ) - - @pytest.mark.vcr() - def test_do_bboxes_intersect(self): - class Item(): - - def __init__(self) -> None: - self.bbox = [0, 0, 1, 1] - - item_test_paramss = [ - (0, 0, 1, 1, self.assertTrue), - (0.5, 0.5, 1.5, 1.5, self.assertTrue), - (-0.5, -0.5, 0.5, 0.5, self.assertTrue), - (1, 1, 2, 2, self.assertTrue), - (2, 2, 3, 3, self.assertFalse) - ] - - stac_instance = Stac(self.url_nonsearchable) - - item = Item() - for (west, south, east, north, fun) in item_test_paramss: - fun( - stac_instance._do_bboxes_intersect( - item, - bbox=[west, south, east, north] - ) - ) diff --git a/test/test_store.py b/test/test_store.py index 2fa7859..38beb05 100644 --- a/test/test_store.py +++ b/test/test_store.py @@ -33,15 +33,16 @@ class StacDataStoreTest(unittest.TestCase): def setUp(self): - self.url = ( + self.url_nonsearchable = ( "https://raw.githubusercontent.com/stac-extensions/" "label/main/examples/multidataset/catalog.json" ) + self.url_searchable = "https://earth-search.aws.element84.com/v1" self.data_id = "zanzibar-collection/znz001/raster" @pytest.mark.vcr() def test_get_data_store_params_schema(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_searchable) schema = store.get_data_store_params_schema() self.assertIsInstance(schema, JsonObjectSchema) self.assertIn("url", schema.properties) @@ -50,20 +51,86 @@ def test_get_data_store_params_schema(self): @pytest.mark.vcr() def test_get_data_types(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_searchable) self.assertEqual(("dataset",), store.get_data_types()) @pytest.mark.vcr() def test_get_data_types_for_data(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_searchable) self.assertEqual( ("dataset",), store.get_data_types_for_data(self.data_id) ) + @pytest.mark.vcr() + def test_get_item_collection(self): + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) + items, data_id_items = store.get_item_collection() + data_id_items_expected = [ + "zanzibar-collection/znz001", + "zanzibar-collection/znz029", + "spacenet-buildings-collection/AOI_2_Vegas_img2636", + "spacenet-buildings-collection/AOI_3_Paris_img1648", + "spacenet-buildings-collection/AOI_4_Shanghai_img3344" + ] + self.assertIsInstance(items, ItemCollection) + self.assertCountEqual(data_id_items_expected, data_id_items) + self.assertEqual(len(items), len(data_id_items)) + + @pytest.mark.vcr() + def test_get_item_collection_open_params(self): + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) + items, data_id_items = store.get_item_collection( + collections="zanzibar-collection", + bbox=[39.28, -5.74, 39.31, -5.72], + time_range=["2019-04-23", "2019-04-24"] + ) + data_id_items_expected = [ + "zanzibar-collection/znz001", + ] + self.assertIsInstance(items, ItemCollection) + self.assertCountEqual(data_id_items_expected, data_id_items) + self.assertEqual(len(items), len(data_id_items)) + + items, data_id_items = store.get_item_collection( + collections="zanzibar-collection", + bbox=[39, -5., 41, -6], + time_range=["2019-04-28", "2019-04-30"] + ) + self.assertIsInstance(items, ItemCollection) + self.assertEqual(0, len(items)) + self.assertEqual(len(items), len(data_id_items)) + + @pytest.mark.vcr() + def test_get_item_collection_searchable_catalog(self): + store = new_data_store(DATA_STORE_ID, url=self.url_searchable) + items, data_id_items = store.get_item_collection( + variable_names="red", + collections=["sentinel-2-l2a"], + bbox=[9, 47, 10, 48], + time_range=["2020-03-01", "2020-03-05"] + ) + data_id_items_expected = [ + "sentinel-2-l2a/S2A_32TMT_20200305_0_L2A", + "sentinel-2-l2a/S2A_32TNT_20200305_0_L2A", + "sentinel-2-l2a/S2A_32UMU_20200305_0_L2A", + "sentinel-2-l2a/S2A_32UNU_20200305_0_L2A", + "sentinel-2-l2a/S2A_32TMT_20200302_1_L2A", + "sentinel-2-l2a/S2A_32TMT_20200302_0_L2A", + "sentinel-2-l2a/S2A_32TNT_20200302_1_L2A", + "sentinel-2-l2a/S2A_32TNT_20200302_0_L2A", + "sentinel-2-l2a/S2A_32UMU_20200302_1_L2A", + "sentinel-2-l2a/S2A_32UMU_20200302_0_L2A", + "sentinel-2-l2a/S2A_32UNU_20200302_1_L2A", + "sentinel-2-l2a/S2A_32UNU_20200302_0_L2A" + ] + self.assertIsInstance(items, ItemCollection) + self.assertCountEqual(data_id_items_expected, data_id_items) + self.assertEqual(len(items), len(data_id_items)) + @pytest.mark.vcr() def test_get_data_ids(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) data_ids = store.get_data_ids() data_ids_expected = [ "zanzibar-collection/znz001/raster", @@ -76,30 +143,68 @@ def test_get_data_ids(self): @pytest.mark.vcr() def test_get_data_ids_optional_args(self): - # test data_id_delimiter store = new_data_store( DATA_STORE_ID, - url=self.url, + url=self.url_nonsearchable, data_id_delimiter=":" ) - open_params = dict(collections="zanzibar-collection") - data_ids = store.get_data_ids(**open_params) + data_ids = store.get_data_ids( + include_attrs=["title"], + collections="zanzibar-collection", + variable_names=["raster"] + ) data_ids_expected = [ - "zanzibar-collection:znz001:raster", - "zanzibar-collection:znz029:raster" + ("zanzibar-collection:znz001:raster", {"title": "znz001_previewcog"}), + ("zanzibar-collection:znz029:raster", {"title": "znz029_previewcog"}) + ] + self.assertCountEqual(data_ids_expected, data_ids) + + @pytest.mark.vcr() + def test_get_data_ids_optional_args_empty_args(self): + store = new_data_store( + DATA_STORE_ID, + url=self.url_nonsearchable, + data_id_delimiter=":" + ) + data_ids = store.get_data_ids( + include_attrs=["dtype"], + collections="zanzibar-collection", + variable_names=["raster"] + ) + data_ids_expected = [ + ("zanzibar-collection:znz001:raster", {}), + ("zanzibar-collection:znz029:raster", {}) + ] + self.assertCountEqual(data_ids_expected, data_ids) + + @pytest.mark.vcr() + def test_get_data_ids_from_items(self): + store = new_data_store( + DATA_STORE_ID, + url=self.url_nonsearchable + ) + items, _ = store.get_item_collection( + collections="zanzibar-collection" + ) + data_ids = store.get_data_ids( + items=items + ) + data_ids_expected = [ + "zanzibar-collection/znz001/raster", + "zanzibar-collection/znz029/raster" ] self.assertCountEqual(data_ids_expected, data_ids) @pytest.mark.vcr() def test_has_data(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) self.assertTrue(store.has_data(self.data_id)) @pytest.mark.vcr() def test_has_data_optional_args(self): store = new_data_store( DATA_STORE_ID, - url=self.url, + url=self.url_nonsearchable, data_id_delimiter=":" ) self.assertTrue(store.has_data("zanzibar-collection:znz001:raster")) @@ -109,33 +214,9 @@ def test_has_data_optional_args(self): data_type=str )) - @pytest.mark.vcr() - def test_get_item_collection(self): - store = new_data_store(DATA_STORE_ID, url=self.url) - items, data_id_items = store.get_item_collection( - collections="zanzibar-collection" - ) - data_id_items_expected = [ - "zanzibar-collection/znz001", - "zanzibar-collection/znz029" - ] - self.assertIsInstance(items, ItemCollection) - self.assertListEqual(data_id_items_expected, data_id_items) - self.assertEqual(len(items), len(data_id_items)) - - @pytest.mark.vcr() - def test_describe_data(self): - store = new_data_store(DATA_STORE_ID, url=self.url) - with self.assertRaises(NotImplementedError) as cm: - store.describe_data(self.data_id) - self.assertEqual( - "describe_data() operation is not supported yet", - f"{cm.exception}", - ) - @pytest.mark.vcr() def test_get_data_opener_ids(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) self.assertEqual( ("dataset:zarr:stac",), store.get_data_opener_ids() @@ -143,7 +224,7 @@ def test_get_data_opener_ids(self): @pytest.mark.vcr() def test_get_data_opener_ids_optional_args(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) with self.assertRaises(DataStoreError) as cm: store.get_data_opener_ids(data_id="wrong_data_id") self.assertEqual( @@ -159,7 +240,7 @@ def test_get_data_opener_ids_optional_args(self): @pytest.mark.vcr() def test_get_open_data_params_schema(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) schema = store.get_open_data_params_schema() self.assertIsInstance(schema, JsonObjectSchema) self.assertIn("variable_names", schema.properties) @@ -169,7 +250,7 @@ def test_get_open_data_params_schema(self): @pytest.mark.vcr() def test_open_data(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) with self.assertRaises(NotImplementedError) as cm: store.open_data(self.data_id) self.assertEqual( @@ -179,7 +260,7 @@ def test_open_data(self): @pytest.mark.vcr() def test_open_data_wrong_opener_id(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) with self.assertRaises(DataStoreError) as cm: store.open_data(self.data_id, opener_id="wrong_opener_id") self.assertEqual( @@ -188,9 +269,19 @@ def test_open_data_wrong_opener_id(self): f"{cm.exception}", ) + @pytest.mark.vcr() + def test_describe_data(self): + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) + with self.assertRaises(NotImplementedError) as cm: + store.describe_data(self.data_id) + self.assertEqual( + "describe_data() operation is not supported yet", + f"{cm.exception}", + ) + @pytest.mark.vcr() def test_search_data(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) with self.assertRaises(NotImplementedError) as cm: store.search_data() self.assertEqual( @@ -200,10 +291,95 @@ def test_search_data(self): @pytest.mark.vcr() def test_get_search_params_schema(self): - store = new_data_store(DATA_STORE_ID, url=self.url) + store = new_data_store(DATA_STORE_ID, url=self.url_nonsearchable) with self.assertRaises(NotImplementedError) as cm: store.get_search_params_schema() self.assertEqual( "get_search_params_schema() operation is not supported yet", f"{cm.exception}", ) + + @pytest.mark.vcr() + def test_is_datetime_in_range(self): + class Item1(): + + def __init__(self) -> None: + self.properties = dict( + datetime="2024-05-02T09:19:38.543000Z" + ) + + class Item2(): + + def __init__(self) -> None: + self.properties = dict( + datetime="null", + start_datetime="2023-12-02T09:19:38.543000Z", + end_datetime="2024-05-02T09:19:38.543000Z" + ) + + item1_test_paramss = [ + ("2024-04-30", "2024-05-03", self.assertTrue), + ("2024-04-26", "2024-05-02", self.assertFalse), + ("2024-04-26", "2024-05-01", self.assertFalse) + ] + + item2_test_paramss = [ + ("2024-05-05", "2024-05-08", self.assertFalse), + ("2024-04-30", "2024-05-03", self.assertTrue), + ("2024-04-26", "2024-04-29", self.assertTrue), + ("2023-11-26", "2023-12-31", self.assertTrue), + ("2023-11-26", "2023-11-30", self.assertFalse), + ("2023-11-26", "2024-05-08", self.assertTrue), + ] + + store = new_data_store( + DATA_STORE_ID, + url=self.url_nonsearchable + ) + + item1 = Item1() + for (time_start, time_end, fun) in item1_test_paramss: + fun( + store._is_datetime_in_range( + item1, + time_range=[time_start, time_end] + ) + ) + + item1 = Item2() + for (time_start, time_end, fun) in item2_test_paramss: + fun( + store._is_datetime_in_range( + item1, + time_range=[time_start, time_end] + ) + ) + + @pytest.mark.vcr() + def test_do_bboxes_intersect(self): + class Item(): + + def __init__(self) -> None: + self.bbox = [0, 0, 1, 1] + + item_test_paramss = [ + (0, 0, 1, 1, self.assertTrue), + (0.5, 0.5, 1.5, 1.5, self.assertTrue), + (-0.5, -0.5, 0.5, 0.5, self.assertTrue), + (1, 1, 2, 2, self.assertTrue), + (2, 2, 3, 3, self.assertFalse) + ] + + store = new_data_store( + DATA_STORE_ID, + url=self.url_nonsearchable + ) + + item = Item() + for (west, south, east, north, fun) in item_test_paramss: + fun( + store._do_bboxes_intersect( + item, + bbox=[west, south, east, north] + ) + ) diff --git a/xcube_stac/opener.py b/xcube_stac/opener.py deleted file mode 100644 index 9a7889f..0000000 --- a/xcube_stac/opener.py +++ /dev/null @@ -1,82 +0,0 @@ -# The MIT License (MIT) -# Copyright (c) 2024 by the xcube development team and contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -import xarray as xr -from xcube.core.store import ( - DataOpener, - DatasetDescriptor -) -from xcube.util.jsonschema import JsonObjectSchema - -from .stac import Stac - - -class StacDataOpener(DataOpener): - """STAC implementation of the data opener. - - Attributes: - stac: Common operations on STAC catalogs - """ - - def __init__(self, stac: Stac): - self._stac = stac - - @property - def stac(self) -> Stac: - return self._stac - - def get_open_data_params_schema(self, data_id: str = None) -> JsonObjectSchema: - return self.stac.get_open_data_params_schema(data_id) - - def open_data(self, data_id: str, **open_params) -> xr.Dataset: - """Open the data given by the data resource identifier *data_id* - using the supplied *open_params*. - - Args: - data_id: An identifier of data that is provided by this - store. - - Returns: - A representation of the data resources - identified by *data_id* and *open_params*. - """ - stac_schema = self.get_open_data_params_schema() - stac_schema.validate_instance(open_params) - return self.stac.open_data(data_id, **open_params) - - def describe_data( - self, data_id: str, **open_params - ) -> DatasetDescriptor: - """Get the descriptor for the data resource given by *data_id*. - - Args: - data_id: An identifier of data that is provided by this - store. - - Raises: - NotImplementedError: Not implemented yet. - - Returns: - Data descriptor containing meta data of - the data resources identified by *data_id* - """ - # ToDo: implement describe_data method. - raise NotImplementedError("describe_data() operation is not supported yet") diff --git a/xcube_stac/stac.py b/xcube_stac/stac.py deleted file mode 100644 index 9aeb532..0000000 --- a/xcube_stac/stac.py +++ /dev/null @@ -1,364 +0,0 @@ -# The MIT License (MIT) -# Copyright (c) 2024 by the xcube development team and contributors -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -from datetime import timezone -from itertools import chain -from typing import Any, Container, Dict, Iterable, Iterator, List, Tuple, Union - -import pandas as pd -import pystac -import pystac_client -from shapely.geometry import box -import xarray as xr -from xcube.util.jsonschema import JsonObjectSchema - -from .constants import ( - MIME_TYPES, - STAC_SEARCH_ITEM_PARAMETERS -) - - -class Stac: - """Common operations on STAC catalogs. - - Attributes: - url: URL to STAC catalog - data_id_delimiter: Delimiter used to separate - collections, items and assets from each other. - Defaults to "/". - """ - - def __init__( - self, - url: str, - data_id_delimiter: str = "/" - ): - self._url = url - self._data_id_delimiter = data_id_delimiter - - # if STAC catalog is not searchable, pystac_client - # falls back to pystac; to prevent warnings from pystac_client - # use catalog from pystac instead. For more discussion refer to - # https://github.com/xcube-dev/xcube-stac/issues/5 - catalog = pystac_client.Client.open(url) - self._searchable = True - if not catalog.conforms_to("ITEM_SEARCH"): - catalog = pystac.Catalog.from_file(url) - self._searchable = False - self._catalog = catalog - - # TODO: Add a data store "file" here when implementing - # open_data(), which will be used to open the hrefs - - @property - def catalog(self) -> pystac.Catalog: - return self._catalog - - def get_open_data_params_schema(self, data_id: str = None) -> JsonObjectSchema: - """Get the JSON schema for instantiating a new data store. - - Returns: - The JSON schema for the data store's parameters. - """ - return JsonObjectSchema( - properties=dict(**STAC_SEARCH_ITEM_PARAMETERS), - required=[], - additional_properties=False - ) - - def get_item_collection( - self, **open_params - ) -> Tuple[pystac.ItemCollection, List[str]]: - """Collects all items within the given STAC catalog - using the supplied *open_params*. - - Returns: - items: item collection containing all items identified by *open_params* - item_data_ids: data IDs corresponding to items - """ - if self._searchable: - # not used - open_params.pop("variable_names", None) - # rewrite to "datetime" - time_range = open_params.pop("time_range", None) - if time_range: - open_params["datetime"] = "/".join(time_range) - items = self.catalog.search(**open_params).item_collection() - else: - items = self._get_items_nonsearchable_catalog( - self.catalog, - **open_params - ) - items = pystac.ItemCollection(items) - item_data_ids = self.list_item_data_ids(items) - return items, item_data_ids - - def get_item_data_id(self, item: pystac.Item) -> str: - """Generates the data ID of an item, which follows the structure: - - `collection_id_0/../collection_id_n/item_id` - - Args: - item: item/feature - - Returns: - data ID of an item - """ - id_parts = [] - parent_item = item - while parent_item.STAC_OBJECT_TYPE != "Catalog": - id_parts.append(parent_item.id) - parent_item = parent_item.get_parent() - id_parts.reverse() - return self._data_id_delimiter.join(id_parts) - - def get_item_data_ids(self, items: Iterable[pystac.Item]) -> Iterator[str]: - """Generates the data IDs of an item collection, - which follows the structure: - - `collection_id_0/../collection_id_n/item_id` - - Args: - items: item collection - - Yields: - data ID of an item - """ - for item in items: - yield self.get_item_data_id(item) - - def list_item_data_ids(self, items: Iterable[pystac.Item]) -> List[str]: - """Generates a list of data IDs for a given item collection, - which follows the structure: - - `collection_id_0/../collection_id_n/item_id` - - Args: - items: item collection - - Returns: - list of data IDs for a given item collection - """ - return list(self.get_item_data_ids(items)) - - def get_data_ids( - self, - items: Iterable[pystac.Item] = None, - item_data_ids: Iterable[str] = None, - include_attrs: Container[str] = None, - **open_params - ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: - """Get an iterator over the data resource identifiers The data - resource identifiers follow the following structure: - - `collection_id_0/../collection_id_n/item_id/asset_id` - - Args: - items: collection of items for which data IDs are desired. If None, - items are collected by :meth:`get_item_collection` using - *open_params*. Defaults to None. - item_data_ids: data IDs corresponding to items. If None, - item_data_ids are collected by :meth:`get_item_data_ids`. - Defaults to None. - include_attrs: A sequence of names of attributes to be returned - for each dataset identifier. If given, the store will attempt - to provide the set of requested dataset attributes in addition - to the data ids. If no attributes are found, empty dictionary - is returned. So far only the attribute 'title' is supported. - Defaults to None. - - Yields: - An iterator over the identifiers (and additional attributes defined - by *include_attrs* of data resources provided by this data store). - """ - if items is None: - items, item_data_ids = self.get_item_collection(**open_params) - if item_data_ids is None: - item_data_ids = self.get_item_data_ids(items) - - for (item, item_data_id) in zip(items, item_data_ids): - for asset in self.get_assets_from_item( - item, include_attrs, **open_params - ): - if include_attrs is not None: - (asset, attrs) = asset - data_id = ( - item_data_id + self._data_id_delimiter + asset - ) - yield (data_id, attrs) - else: - data_id = item_data_id + self._data_id_delimiter + asset - yield data_id - - def get_assets_from_item( - self, - item: pystac.Item, - include_attrs: Container[str] = None, - **open_params - ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: - """Get all assets for a given item, which has a MIME data type - - Args: - item: item/feature - include_attrs: A sequence of names of attributes to be returned - for each dataset identifier. If given, the store will attempt - to provide the set of requested dataset attributes in addition - to the data ids. If no attributes are found, empty dictionary - is returned. So far only the attribute 'title' is supported. - Defaults to None. - - Yields: - An iterator over the assets (and additional attributes defined - by *include_attrs* of data resources provided by this data store). - """ - for k, v in item.assets.items(): - # test if asset is in variable_names and the media type is - # one of the predefined MIME types - if ( - k in open_params.get("variable_names", [k]) and - any(x in MIME_TYPES for x in v.media_type.split("; ")) - ): - # TODO: support more attributes - if include_attrs is not None: - attrs = {} - if "title" in include_attrs and hasattr(v, "title"): - attrs["title"] = v.title - yield (k, attrs) - else: - yield k - - def open_data(self, data_id: str, **open_params) -> xr.Dataset: - """Open the data given by the data resource identifier *data_id* - using the supplied *open_params*. - - Args: - data_id: An identifier of data that is provided by this - store. - - Raises: - NotImplementedError: Not implemented yet. - - Returns: - A representation of the data resources - identified by *data_id* and *open_params*. - """ - # ToDo: implement this method using data store "file", see __init__() - raise NotImplementedError("open_data() operation is not supported yet") - - def _get_items_nonsearchable_catalog( - self, - pystac_object: Union[pystac.Catalog, pystac.Collection], - recursive: bool = True, - **open_params - ) -> Iterator[Tuple[pystac.Item, str]]: - """Get the items of a catalog which does not implement the - "STAC API - Item Search" conformance class. - - Args: - pystac_object: either a `pystac.catalog:Catalog` or a - `pystac.collection:Collection` object - recursive: If True, the data IDs of a multiple-collection - and/or nested-collection STAC catalog can be collected. If False, - a flat STAC catalog hierarchy is assumed, consisting only of items. - - Yields: - An iterator over the items matching the **open_params. - """ - - if ( - pystac_object.extra_fields["type"] != "Collection" or - pystac_object.id in open_params.get("collections", [pystac_object.id]) - ): - if recursive: - if any(True for _ in pystac_object.get_children()): - iterators = (self._get_items_nonsearchable_catalog( - child, - recursive=True, - **open_params - ) for child in pystac_object.get_children()) - yield from chain(*iterators) - else: - iterator = self._get_items_nonsearchable_catalog( - pystac_object, - recursive=False, - **open_params - ) - yield from iterator - else: - for item in pystac_object.get_items(): - # test if item's bbox intersects with the desired bbox - if "bbox" in open_params: - if not self._do_bboxes_intersect(item, **open_params): - continue - # test if item fit to desired time range - if "time_range" in open_params: - if not self._is_datetime_in_range(item, **open_params): - continue - # iterate through assets of item - yield item - - def _is_datetime_in_range(self, item: pystac.Item, **open_params) -> bool: - """Determine whether the datetime or datetime range of an item - intersects to the 'time_range' given by *open_params*. - - Args: - item: item/feature - open_params: Optional opening parameters which need - to include 'time_range' - - - Returns: - True, if the datetime of an item is within the 'time_range', - or if there is any overlap between the 'time_range' and - the datetime range of an item; otherwise False. - - """ - dt_start = pd.Timestamp( - open_params["time_range"][0] - ).to_pydatetime().replace(tzinfo=timezone.utc) - dt_end = pd.Timestamp( - open_params["time_range"][1] - ).to_pydatetime().replace(tzinfo=timezone.utc) - if item.properties["datetime"] == "null": - dt_start_data = pd.Timestamp( - item.properties["start_datetime"] - ).to_pydatetime() - dt_end_data = pd.Timestamp( - item.properties["end_datetime"] - ).to_pydatetime() - return dt_end >= dt_start_data and dt_start <= dt_end_data - else: - dt_data = pd.Timestamp(item.properties["datetime"]).to_pydatetime() - return dt_start <= dt_data <= dt_end - - def _do_bboxes_intersect(self, item: pystac.Item, **open_params) -> bool: - """Determine whether two bounding boxes intersect. - - Args: - item: item/feature - open_params: Optional opening parameters which need - to include 'bbox' - - Returns: - True if the bounding box given by the item intersects with - the bounding box given by *open_params*. Otherwise False. - """ - return box(*item.bbox).intersects(box(*open_params["bbox"])) diff --git a/xcube_stac/store.py b/xcube_stac/store.py index cbb1037..365c0cc 100644 --- a/xcube_stac/store.py +++ b/xcube_stac/store.py @@ -19,13 +19,19 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +from datetime import timezone +from itertools import chain from typing import Any, Container, Dict, Iterable, Iterator, List, Tuple, Union +import pandas as pd import pystac +import pystac_client +from shapely.geometry import box import xarray as xr from xcube.core.store import ( DATASET_TYPE, DataDescriptor, + DatasetDescriptor, DataStore, DataStoreError, DataTypeLike @@ -35,12 +41,14 @@ JsonStringSchema ) -from .constants import DATASET_OPENER_ID -from .opener import StacDataOpener -from .stac import Stac +from .constants import ( + DATASET_OPENER_ID, + MIME_TYPES, + STAC_SEARCH_ITEM_PARAMETERS +) -class StacDataStore(StacDataOpener, DataStore): +class StacDataStore(DataStore): """STAC implementation of the data store. Attributes: @@ -55,10 +63,22 @@ def __init__( url: str, data_id_delimiter: str = "/" ): - super().__init__(stac=Stac( - url, - data_id_delimiter=data_id_delimiter - )) + self._url = url + self._data_id_delimiter = data_id_delimiter + + # if STAC catalog is not searchable, pystac_client + # falls back to pystac; to prevent warnings from pystac_client + # use catalog from pystac instead. For more discussion refer to + # https://github.com/xcube-dev/xcube-stac/issues/5 + catalog = pystac_client.Client.open(url) + self._searchable = True + if not catalog.conforms_to("ITEM_SEARCH"): + catalog = pystac.Catalog.from_file(url) + self._searchable = False + self._catalog = catalog + + # TODO: Add a data store "file" here when implementing + # open_data(), which will be used to open the hrefs @classmethod def get_data_store_params_schema(cls) -> JsonObjectSchema: @@ -97,35 +117,92 @@ def get_item_collection( using the supplied *open_params*. Returns: - A tuple of the item collection containing all items - identified by *open_params* and data IDs corresponding to items + items: item collection containing all items identified by *open_params* + item_data_ids: data IDs corresponding to items """ - return self.stac.get_item_collection(**open_params) + if self._searchable: + # not used + open_params.pop("variable_names", None) + # rewrite to "datetime" + time_range = open_params.pop("time_range", None) + if time_range: + open_params["datetime"] = "/".join(time_range) + items = self._catalog.search(**open_params).item_collection() + else: + items = self._get_items_nonsearchable_catalog( + self._catalog, + **open_params + ) + items = pystac.ItemCollection(items) + item_data_ids = self.list_item_data_ids(items) + return items, item_data_ids + + def get_item_data_id(self, item: pystac.Item) -> str: + """Generates the data ID of an item, which follows the structure: + + `collection_id_0/../collection_id_n/item_id` + + Args: + item: item/feature + + Returns: + data ID of an item + """ + id_parts = [] + parent_item = item + while parent_item.STAC_OBJECT_TYPE != "Catalog": + id_parts.append(parent_item.id) + parent_item = parent_item.get_parent() + id_parts.reverse() + return self._data_id_delimiter.join(id_parts) + + def get_item_data_ids(self, items: Iterable[pystac.Item]) -> Iterator[str]: + """Generates the data IDs of an item collection, + which follows the structure: + + `collection_id_0/../collection_id_n/item_id` + + Args: + items: item collection + + Yields: + data ID of an item + """ + for item in items: + yield self.get_item_data_id(item) + + def list_item_data_ids(self, items: Iterable[pystac.Item]) -> List[str]: + """Generates a list of data IDs for a given item collection, + which follows the structure: + + `collection_id_0/../collection_id_n/item_id` + + Args: + items: item collection + + Returns: + list of data IDs for a given item collection + """ + return list(self.get_item_data_ids(items)) def get_data_ids( self, - data_type: DataTypeLike = None, items: Iterable[pystac.Item] = None, item_data_ids: Iterable[str] = None, include_attrs: Container[str] = None, **open_params ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: - """Get an iterator over the data resource identifiers for the - given type *data_type*. If *data_type* is omitted, all data - resource identifiers are returned. The data resource identifiers - follow the following structure: + """Get an iterator over the data resource identifiers The data + resource identifiers follow the following structure: `collection_id_0/../collection_id_n/item_id/asset_id` Args: - data_type: If given, only data identifiers - that are available as this type are returned. If this is None, - all available data identifiers are returned. Defaults to None. items: collection of items for which data IDs are desired. If None, - items are collected by :meth:`Stac.get_item_collection` - using *open_params. Defaults to None. + items are collected by :meth:`get_item_collection` using + *open_params*. Defaults to None. item_data_ids: data IDs corresponding to items. If None, - item_data_ids are collected by :meth:`Stac.get_item_data_ids`. + item_data_ids are collected by :meth:`get_item_data_ids`. Defaults to None. include_attrs: A sequence of names of attributes to be returned for each dataset identifier. If given, the store will attempt @@ -134,35 +211,70 @@ def get_data_ids( is returned. So far only the attribute 'title' is supported. Defaults to None. - Returns: + Yields: An iterator over the identifiers (and additional attributes defined by *include_attrs* of data resources provided by this data store). """ - self._assert_valid_data_type(data_type) - return self.stac.get_data_ids( - items=items, - item_data_ids=item_data_ids, - include_attrs=include_attrs, - **open_params - ) + if items is None: + items, item_data_ids = self.get_item_collection(**open_params) + if item_data_ids is None: + item_data_ids = self.get_item_data_ids(items) + + for (item, item_data_id) in zip(items, item_data_ids): + for asset in self.get_assets_from_item( + item, include_attrs, **open_params + ): + if include_attrs is not None: + (asset, attrs) = asset + data_id = ( + item_data_id + self._data_id_delimiter + asset + ) + yield (data_id, attrs) + else: + data_id = item_data_id + self._data_id_delimiter + asset + yield data_id def has_data(self, data_id: str, data_type: DataTypeLike = None) -> bool: if self._is_valid_data_type(data_type): return data_id in self.list_data_ids() return False - def describe_data(self, data_id: str, **open_params) -> DataDescriptor: - """Get the descriptor for the data resource given by *data_id*. + def get_assets_from_item( + self, + item: pystac.Item, + include_attrs: Container[str] = None, + **open_params + ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: + """Get all assets for a given item, which has a MIME data type Args: - data_id: An identifier of data that is provided by this - store. + item: item/feature + include_attrs: A sequence of names of attributes to be returned + for each dataset identifier. If given, the store will attempt + to provide the set of requested dataset attributes in addition + to the data ids. If no attributes are found, empty dictionary + is returned. So far only the attribute 'title' is supported. + Defaults to None. - Returns: - Data descriptor containing meta data of - the data resources identified by *data_id* + Yields: + An iterator over the assets (and additional attributes defined + by *include_attrs* of data resources provided by this data store). """ - return super().describe_data(data_id, **open_params) + for k, v in item.assets.items(): + # test if asset is in variable_names and the media type is + # one of the predefined MIME types + if ( + k in open_params.get("variable_names", [k]) and + any(x in MIME_TYPES for x in v.media_type.split("; ")) + ): + # TODO: support more attributes + if include_attrs is not None: + attrs = {} + if "title" in include_attrs and hasattr(v, "title"): + attrs["title"] = v.title + yield (k, attrs) + else: + yield k def get_data_opener_ids( self, data_id: str = None, data_type: DataTypeLike = None @@ -178,7 +290,11 @@ def get_open_data_params_schema( self, data_id: str = None, opener_id: str = None ) -> JsonObjectSchema: self._assert_valid_opener_id(opener_id) - return super().get_open_data_params_schema(data_id) + return JsonObjectSchema( + properties=dict(**STAC_SEARCH_ITEM_PARAMETERS), + required=[], + additional_properties=False + ) def open_data( self, data_id: str, opener_id: str = None, **open_params @@ -197,7 +313,29 @@ def open_data( by *data_id* and *open_params*. """ self._assert_valid_opener_id(opener_id) - return super().open_data(data_id, **open_params) + stac_schema = self.get_open_data_params_schema() + stac_schema.validate_instance(open_params) + # ToDo: implement open_data method. + raise NotImplementedError("open_data() operation is not supported yet") + + def describe_data( + self, data_id: str, **open_params + ) -> DatasetDescriptor: + """Get the descriptor for the data resource given by *data_id*. + + Args: + data_id: An identifier of data that is provided by this + store. + + Raises: + NotImplementedError: Not implemented yet. + + Returns: + Data descriptor containing meta data of + the data resources identified by *data_id* + """ + # ToDo: implement describe_data method. + raise NotImplementedError("describe_data() operation is not supported yet") def search_data( self, data_type: DataTypeLike = None, **search_params @@ -294,3 +432,103 @@ def _assert_valid_opener_id(cls, opener_id: str): f"Data opener identifier must be " f'{DATASET_OPENER_ID!r}, but got {opener_id!r}' ) + + def _get_items_nonsearchable_catalog( + self, + pystac_object: Union[pystac.Catalog, pystac.Collection], + recursive: bool = True, + **open_params + ) -> Iterator[Tuple[pystac.Item, str]]: + """Get the items of a catalog which does not implement the + "STAC API - Item Search" conformance class. + + Args: + pystac_object: either a `pystac.catalog:Catalog` or a + `pystac.collection:Collection` object + recursive: If True, the data IDs of a multiple-collection + and/or nested-collection STAC catalog can be collected. If False, + a flat STAC catalog hierarchy is assumed, consisting only of items. + + Yields: + An iterator over the items matching the **open_params. + """ + + if ( + pystac_object.extra_fields["type"] != "Collection" or + pystac_object.id in open_params.get("collections", [pystac_object.id]) + ): + if recursive: + if any(True for _ in pystac_object.get_children()): + iterators = (self._get_items_nonsearchable_catalog( + child, + recursive=True, + **open_params + ) for child in pystac_object.get_children()) + yield from chain(*iterators) + else: + iterator = self._get_items_nonsearchable_catalog( + pystac_object, + recursive=False, + **open_params + ) + yield from iterator + else: + for item in pystac_object.get_items(): + # test if item's bbox intersects with the desired bbox + if "bbox" in open_params: + if not self._do_bboxes_intersect(item, **open_params): + continue + # test if item fit to desired time range + if "time_range" in open_params: + if not self._is_datetime_in_range(item, **open_params): + continue + # iterate through assets of item + yield item + + def _is_datetime_in_range(self, item: pystac.Item, **open_params) -> bool: + """Determine whether the datetime or datetime range of an item + intersects to the 'time_range' given by *open_params*. + + Args: + item: item/feature + open_params: Optional opening parameters which need + to include 'time_range' + + + Returns: + True, if the datetime of an item is within the 'time_range', + or if there is any overlap between the 'time_range' and + the datetime range of an item; otherwise False. + + """ + dt_start = pd.Timestamp( + open_params["time_range"][0] + ).to_pydatetime().replace(tzinfo=timezone.utc) + dt_end = pd.Timestamp( + open_params["time_range"][1] + ).to_pydatetime().replace(tzinfo=timezone.utc) + if item.properties["datetime"] == "null": + dt_start_data = pd.Timestamp( + item.properties["start_datetime"] + ).to_pydatetime() + dt_end_data = pd.Timestamp( + item.properties["end_datetime"] + ).to_pydatetime() + return dt_end >= dt_start_data and dt_start <= dt_end_data + else: + dt_data = pd.Timestamp(item.properties["datetime"]).to_pydatetime() + return dt_start <= dt_data <= dt_end + + def _do_bboxes_intersect(self, item: pystac.Item, **open_params) -> bool: + """Determine whether two bounding boxes intersect. + + Args: + item: item/feature + open_params: Optional opening parameters which need + to include 'bbox' + + Returns: + True if the bounding box given by the item intersects with + the bounding box given by *open_params*. Otherwise False. + """ + return box(*item.bbox).intersects(box(*open_params["bbox"])) From 40e5b9072d186e5d18be479201c76c8607716dbf Mon Sep 17 00:00:00 2001 From: konstntokas Date: Wed, 29 May 2024 16:16:34 +0200 Subject: [PATCH 2/3] ponts review addressed --- xcube_stac/store.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/xcube_stac/store.py b/xcube_stac/store.py index 365c0cc..bb285ef 100644 --- a/xcube_stac/store.py +++ b/xcube_stac/store.py @@ -22,6 +22,7 @@ from datetime import timezone from itertools import chain from typing import Any, Container, Dict, Iterable, Iterator, List, Tuple, Union +import warnings import pandas as pd import pystac @@ -51,7 +52,7 @@ class StacDataStore(DataStore): """STAC implementation of the data store. - Attributes: + Args: url: URL to STAC catalog data_id_delimiter: Delimiter used to separate collections, items and assets from each other. @@ -187,12 +188,13 @@ def list_item_data_ids(self, items: Iterable[pystac.Item]) -> List[str]: def get_data_ids( self, + data_type: DataTypeLike = None, items: Iterable[pystac.Item] = None, item_data_ids: Iterable[str] = None, include_attrs: Container[str] = None, **open_params ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: - """Get an iterator over the data resource identifiers The data + """Get an iterator over the data resource identifiers. The data resource identifiers follow the following structure: `collection_id_0/../collection_id_n/item_id/asset_id` @@ -215,6 +217,10 @@ def get_data_ids( An iterator over the identifiers (and additional attributes defined by *include_attrs* of data resources provided by this data store). """ + if data_type is not None: + warnings.warn( + f'data_type is set to {data_type}, but is not used.' + ) if items is None: items, item_data_ids = self.get_item_collection(**open_params) if item_data_ids is None: @@ -438,7 +444,7 @@ def _get_items_nonsearchable_catalog( pystac_object: Union[pystac.Catalog, pystac.Collection], recursive: bool = True, **open_params - ) -> Iterator[Tuple[pystac.Item, str]]: + ) -> Iterator[pystac.Item]: """Get the items of a catalog which does not implement the "STAC API - Item Search" conformance class. From b2800b94d098b34e72e95668d429b7038e91122b Mon Sep 17 00:00:00 2001 From: konstntokas Date: Wed, 29 May 2024 17:47:38 +0200 Subject: [PATCH 3/3] normans review addressed --- xcube_stac/store.py | 81 ++++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/xcube_stac/store.py b/xcube_stac/store.py index bb285ef..0a0e3e8 100644 --- a/xcube_stac/store.py +++ b/xcube_stac/store.py @@ -200,6 +200,11 @@ def get_data_ids( `collection_id_0/../collection_id_n/item_id/asset_id` Args: + data_type: If given, only data identifiers + that are available as this type are returned. If this is None, + all available data identifiers are returned. Note that it is + not used yet, and a warning will be emitted if it is set to a + value other than the default. Defaults to None. items: collection of items for which data IDs are desired. If None, items are collected by :meth:`get_item_collection` using *open_params*. Defaults to None. @@ -227,7 +232,7 @@ def get_data_ids( item_data_ids = self.get_item_data_ids(items) for (item, item_data_id) in zip(items, item_data_ids): - for asset in self.get_assets_from_item( + for asset in self._get_assets_from_item( item, include_attrs, **open_params ): if include_attrs is not None: @@ -245,43 +250,6 @@ def has_data(self, data_id: str, data_type: DataTypeLike = None) -> bool: return data_id in self.list_data_ids() return False - def get_assets_from_item( - self, - item: pystac.Item, - include_attrs: Container[str] = None, - **open_params - ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: - """Get all assets for a given item, which has a MIME data type - - Args: - item: item/feature - include_attrs: A sequence of names of attributes to be returned - for each dataset identifier. If given, the store will attempt - to provide the set of requested dataset attributes in addition - to the data ids. If no attributes are found, empty dictionary - is returned. So far only the attribute 'title' is supported. - Defaults to None. - - Yields: - An iterator over the assets (and additional attributes defined - by *include_attrs* of data resources provided by this data store). - """ - for k, v in item.assets.items(): - # test if asset is in variable_names and the media type is - # one of the predefined MIME types - if ( - k in open_params.get("variable_names", [k]) and - any(x in MIME_TYPES for x in v.media_type.split("; ")) - ): - # TODO: support more attributes - if include_attrs is not None: - attrs = {} - if "title" in include_attrs and hasattr(v, "title"): - attrs["title"] = v.title - yield (k, attrs) - else: - yield k - def get_data_opener_ids( self, data_id: str = None, data_type: DataTypeLike = None ) -> Tuple[str, ...]: @@ -491,6 +459,43 @@ def _get_items_nonsearchable_catalog( # iterate through assets of item yield item + def _get_assets_from_item( + self, + item: pystac.Item, + include_attrs: Container[str] = None, + **open_params + ) -> Union[Iterator[str], Iterator[Tuple[str, Dict[str, Any]]]]: + """Get all assets for a given item, which has a MIME data type + + Args: + item: item/feature + include_attrs: A sequence of names of attributes to be returned + for each dataset identifier. If given, the store will attempt + to provide the set of requested dataset attributes in addition + to the data ids. If no attributes are found, empty dictionary + is returned. So far only the attribute 'title' is supported. + Defaults to None. + + Yields: + An iterator over the assets (and additional attributes defined + by *include_attrs* of data resources provided by this data store). + """ + for k, v in item.assets.items(): + # test if asset is in variable_names and the media type is + # one of the predefined MIME types + if ( + k in open_params.get("variable_names", [k]) and + any(x in MIME_TYPES for x in v.media_type.split("; ")) + ): + # TODO: support more attributes + if include_attrs is not None: + attrs = {} + if "title" in include_attrs and hasattr(v, "title"): + attrs["title"] = v.title + yield (k, attrs) + else: + yield k + def _is_datetime_in_range(self, item: pystac.Item, **open_params) -> bool: """Determine whether the datetime or datetime range of an item intersects to the 'time_range' given by *open_params*.