Skip to content

Conversation

@jlahovnik
Copy link
Collaborator

@jlahovnik jlahovnik commented Oct 9, 2025

Data from Global Human Settlement Layer is available via the new provider cop_ghsl:

  • a new search plugin has been created
  • several new collections have been added
  • for download HTTPDownload is used

@jlahovnik jlahovnik marked this pull request as draft October 9, 2025 08:27
@jlahovnik jlahovnik self-assigned this Oct 9, 2025
@eodag-bot
Copy link
Collaborator

eodag-bot commented Oct 9, 2025

badge

Code Coverage (Ubuntu)

Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         244      10  95.90%   103-114, 622
config.py                                      459      35  92.37%   80-82, 85, 88, 91, 95, 99, 103-105, 176, 187, 204-205, 762-764, 888-891, 935-936, 945-946, 980, 1060, 1081, 1089, 1119-1124, 1126
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              123       7  94.31%   167, 203, 206, 296, 299, 317, 320
api/core.py                                    776      36  95.36%   347, 612, 643, 685-688, 726, 770, 804, 849-854, 879, 995, 1244, 1381, 1424, 1437, 1504, 1518-1519, 1595-1600, 1612-1615, 1948, 2188, 2251-2252, 2281-2282
api/search_result.py                           181      19  89.50%   104, 113, 120, 134, 178, 195, 292, 347-350, 420, 425-426, 460, 474, 497-498, 504
api/product/__init__.py                         18       2  88.89%   60, 62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        210      17  91.90%   171, 240-241, 259-260, 366, 393, 494, 514, 538-541, 550-553, 600
api/product/metadata_mapping.py                787      53  93.27%   125-127, 220-225, 246, 304-305, 393, 414, 466-467, 504, 525-528, 551, 563-564, 605, 628, 658-663, 728-733, 745, 753, 985, 1160, 1169-1173, 1190-1195, 1328, 1351, 1360, 1382, 1387, 1439, 1511, 1532, 1558, 1572, 1597, 1643, 1712, 1784
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     23       0  100.00%
api/product/drivers/generic.py                   7       0  100.00%
api/product/drivers/sentinel1.py                15       0  100.00%
api/product/drivers/sentinel2.py                15       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      18  89.60%   105-110, 145-150, 154, 192, 214, 242, 281-282, 382-385, 397-398
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          103      10  90.29%   177-179, 226-227, 253-255, 309-310
plugins/apis/usgs.py                           184      26  85.87%   160, 266, 300, 341-343, 348, 376-377, 382, 412-419, 430-435, 457-463, 494
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             124      35  71.77%   52-54, 69-70, 142-149, 177-203, 226, 258-262, 279, 303, 319-320
plugins/authentication/base.py                  22       4  81.82%   45, 58, 81, 95
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   153-156, 177-182
plugins/authentication/openid_connect.py       232      28  87.93%   91-92, 104-122, 169, 175-203, 211, 350-353, 379, 420
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              57       3  94.74%   68, 89, 135
plugins/authentication/token.py                128       9  92.97%   180, 217, 289-290, 340-344
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 100-102, 109-111, 118
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-113
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      25  60.32%   62-65, 72-75, 81, 85, 89, 100-116, 131-157
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        381      71  81.36%   267, 301, 339-342, 362-366, 461-463, 467, 498-499, 505-509, 540, 605-613, 677-770, 781-786, 824, 850, 895-897, 949, 1129
plugins/download/base.py                       260      35  86.54%   129, 158, 305-306, 364-365, 407, 411-422, 436, 504-508, 538-539, 564-572, 574-578, 628, 649, 671, 679
plugins/download/http.py                       545      77  85.87%   238, 280-283, 345-348, 351, 358-363, 394-396, 413, 428, 486, 521, 535, 549, 557-561, 577-582, 593, 611, 647-650, 671, 681, 688, 708, 843, 875, 905-914, 950, 975-976, 995-1000, 1009, 1024-1026, 1030, 1033, 1048-1049, 1125-1126, 1130, 1182, 1228-1229, 1235, 1245, 1271, 1306, 1326, 1363-1365
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         189      15  92.06%   107, 111, 135-141, 294, 315, 440, 487, 509-512, 521
plugins/search/build_search_result.py          522      81  84.48%   249-250, 286, 289, 327, 330, 361-363, 606-617, 747, 771, 773, 840, 848-852, 873, 885, 911, 956, 972, 1006-1021, 1069, 1094, 1097, 1101, 1141-1161, 1202, 1229-1230, 1239-1248, 1312, 1327, 1333, 1352-1361, 1482-1483, 1527, 1536-1538, 1595, 1643-1653
plugins/search/cop_ghsl.py                     388      84  78.35%   53-54, 85-86, 123-126, 148, 150, 196, 227-230, 274, 291, 294, 324, 328-333, 365, 386, 417, 433, 465, 480, 495-496, 510-512, 517, 521-523, 526-529, 546-599, 609-624
plugins/search/cop_marine.py                   267      56  79.03%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 236, 242, 246, 250, 261, 272-273, 281, 318-321, 327, 348, 352, 356, 360, 364-368, 374-377, 380-397, 414-417, 470-474, 479, 491
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          112      87  22.32%   99-100, 104-105, 113-170, 176-189, 197-229, 247-288
plugins/search/qssearch.py                     820      94  88.54%   415-416, 533-534, 557-558, 570-574, 789-795, 853, 949, 956, 1027, 1048, 1051-1052, 1070, 1079-1080, 1107, 1181, 1190, 1195-1212, 1221, 1236, 1245-1248, 1258, 1286, 1369, 1392, 1465-1466, 1472, 1562, 1669-1673, 1739, 1742, 1746-1747, 1768-1771, 1783, 1805-1817, 1824, 1859-1861, 1884-1890, 1897, 1951, 1974, 1979-1980, 1995, 2001, 2011, 2095, 2099, 2110, 2134, 2147, 2155-2165, 2202-2206
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      18  78.57%   99-127, 171-174, 187, 229
types/__init__.py                              161      44  72.67%   67, 71, 80-84, 95-107, 135-137, 144-149, 194, 213, 216, 254, 264-280, 285, 287, 309, 314, 322, 332
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                             84       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
utils/__init__.py                              596      45  92.45%   71, 168, 201-202, 211-237, 240, 255, 335-339, 414-418, 498, 538-539, 568, 943-946, 954-955, 997, 1016-1017, 1046, 1064-1065, 1177, 1244, 1408, 1497, 1512, 1521, 1533, 1708
utils/cache.py                                  22       0  100.00%
utils/dates.py                                  57       4  92.98%   63-65, 138
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             47       0  100.00%
utils/free_text_search.py                       65       2  96.92%   83, 91
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       0  100.00%
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/s3.py                                    240      12  95.00%   200-203, 245, 263, 489, 537-538, 585, 660, 686
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
TOTAL                                         9730    1339  86.24%

Diff against develop

Filename                      Stmts    Miss  Cover
--------------------------  -------  ------  -------
plugins/search/base.py           +1      -3  +1.63%
plugins/search/cop_ghsl.py     +388     +84  +78.35%
TOTAL                          +389     +81  -0.29%

Results for commit: 9eb8199

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@github-actions
Copy link
Contributor

github-actions bot commented Oct 9, 2025

Test Results

    4 files  ± 0      4 suites  ±0   4m 19s ⏱️ +9s
  643 tests +12    642 ✅ +12  1 💤 ±0  0 ❌ ±0 
2 614 runs  +48  2 608 ✅ +48  6 💤 ±0  0 ❌ ±0 

Results for commit 9eb8199. ± Comparison against base commit 97056cc.

♻️ This comment has been updated with latest results.

@eodag-bot
Copy link
Collaborator

eodag-bot commented Oct 13, 2025

badge

Code Coverage (Windows)

Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         244      10  95.90%   103-114, 622
config.py                                      459      35  92.37%   80-82, 85, 88, 91, 95, 99, 103-105, 176, 187, 204-205, 762-764, 888-891, 935-936, 945-946, 980, 1060, 1081, 1089, 1119-1124, 1126
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              123       7  94.31%   167, 203, 206, 296, 299, 317, 320
api/core.py                                    776      36  95.36%   347, 612, 643, 685-688, 726, 770, 804, 849-854, 879, 995, 1244, 1381, 1424, 1437, 1504, 1518-1519, 1595-1600, 1612-1615, 1948, 2188, 2251-2252, 2281-2282
api/search_result.py                           181      19  89.50%   104, 113, 120, 134, 178, 195, 292, 347-350, 420, 425-426, 460, 474, 497-498, 504
api/product/__init__.py                         18       2  88.89%   60, 62
api/product/_assets.py                          52       5  90.38%   97, 183, 191, 194-198
api/product/_product.py                        210      17  91.90%   171, 240-241, 259-260, 366, 393, 494, 514, 538-541, 550-553, 600
api/product/metadata_mapping.py                787      53  93.27%   125-127, 220-225, 246, 304-305, 393, 414, 466-467, 504, 525-528, 551, 563-564, 605, 628, 658-663, 728-733, 745, 753, 985, 1160, 1169-1173, 1190-1195, 1328, 1351, 1360, 1382, 1387, 1439, 1511, 1532, 1558, 1572, 1597, 1643, 1712, 1784
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     23       0  100.00%
api/product/drivers/generic.py                   7       0  100.00%
api/product/drivers/sentinel1.py                15       0  100.00%
api/product/drivers/sentinel2.py                15       0  100.00%
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      18  89.60%   105-110, 145-150, 154, 192, 214, 242, 281-282, 382-385, 397-398
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          103      10  90.29%   177-179, 226-227, 253-255, 309-310
plugins/apis/usgs.py                           184      26  85.87%   160, 266, 300, 341-343, 348, 376-377, 382, 412-419, 430-435, 457-463, 494
plugins/authentication/__init__.py               6       1  83.33%   31
plugins/authentication/aws_auth.py             124      35  71.77%   52-54, 69-70, 142-149, 177-203, 226, 258-262, 279, 303, 319-320
plugins/authentication/base.py                  22       4  81.82%   45, 58, 81, 95
plugins/authentication/generic.py               16       3  81.25%   50, 55, 65
plugins/authentication/header.py                19       0  100.00%
plugins/authentication/keycloak.py              46       7  84.78%   153-156, 177-182
plugins/authentication/openid_connect.py       232      28  87.93%   91-92, 104-122, 169, 175-203, 211, 350-353, 379, 420
plugins/authentication/qsauth.py                34       1  97.06%   91
plugins/authentication/sas_auth.py              57       3  94.74%   68, 89, 135
plugins/authentication/token.py                128       9  92.97%   180, 217, 289-290, 340-344
plugins/authentication/token_exchange.py        36      14  61.11%   75, 93-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      14  76.27%   52-57, 69, 78, 87, 90, 100-102, 109-111, 118
plugins/crunch/filter_latest_intersect.py       47      33  29.79%   49-54, 67-113
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      25  60.32%   62-65, 72-75, 81, 85, 89, 100-116, 131-157
plugins/crunch/filter_property.py               30       5  83.33%   55-60, 63-64
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        381      71  81.36%   267, 301, 339-342, 362-366, 461-463, 467, 498-499, 505-509, 540, 605-613, 677-770, 781-786, 824, 850, 895-897, 949, 1129
plugins/download/base.py                       260      37  85.77%   129, 158, 225-227, 305-306, 364-365, 407, 411-422, 436, 504-508, 538-539, 564-572, 574-578, 628, 649, 671, 679
plugins/download/http.py                       545      77  85.87%   238, 280-283, 345-348, 351, 358-363, 394-396, 413, 428, 486, 521, 535, 549, 557-561, 577-582, 593, 611, 647-650, 671, 681, 688, 708, 843, 875, 905-914, 950, 975-976, 995-1000, 1009, 1024-1026, 1030, 1033, 1048-1049, 1125-1126, 1130, 1182, 1228-1229, 1235, 1245, 1271, 1306, 1326, 1363-1365
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         189      15  92.06%   107, 111, 135-141, 294, 315, 440, 487, 509-512, 521
plugins/search/build_search_result.py          522      81  84.48%   249-250, 286, 289, 327, 330, 361-363, 606-617, 747, 771, 773, 840, 848-852, 873, 885, 911, 956, 972, 1006-1021, 1069, 1094, 1097, 1101, 1141-1161, 1202, 1229-1230, 1239-1248, 1312, 1327, 1333, 1352-1361, 1482-1483, 1527, 1536-1538, 1595, 1643-1653
plugins/search/cop_ghsl.py                     388      84  78.35%   53-54, 85-86, 123-126, 148, 150, 196, 227-230, 274, 291, 294, 324, 328-333, 365, 386, 417, 433, 465, 480, 495-496, 510-512, 517, 521-523, 526-529, 546-599, 609-624
plugins/search/cop_marine.py                   267      56  79.03%   57, 65-67, 77-78, 83, 88-89, 105, 107, 110, 176-177, 220, 236, 242, 246, 250, 261, 272-273, 281, 318-321, 327, 348, 352, 356, 360, 364-368, 374-377, 380-397, 414-417, 470-474, 479, 491
plugins/search/creodias_s3.py                   29       1  96.55%   59
plugins/search/csw.py                          112      87  22.32%   99-100, 104-105, 113-170, 176-189, 197-229, 247-288
plugins/search/qssearch.py                     820      94  88.54%   415-416, 533-534, 557-558, 570-574, 789-795, 853, 949, 956, 1027, 1048, 1051-1052, 1070, 1079-1080, 1107, 1181, 1190, 1195-1212, 1221, 1236, 1245-1248, 1258, 1286, 1369, 1392, 1465-1466, 1472, 1562, 1669-1673, 1739, 1742, 1746-1747, 1768-1771, 1783, 1805-1817, 1824, 1859-1861, 1884-1890, 1897, 1951, 1974, 1979-1980, 1995, 2001, 2011, 2095, 2099, 2110, 2134, 2147, 2155-2165, 2202-2206
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      18  78.57%   99-127, 171-174, 187, 229
types/__init__.py                              161      44  72.67%   67, 71, 80-84, 95-107, 135-137, 144-149, 194, 213, 216, 254, 264-280, 285, 287, 309, 314, 322, 332
types/bbox.py                                   43      19  55.81%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                           9       0  100.00%
types/queryables.py                             84       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
utils/__init__.py                              596      45  92.45%   71, 168, 201-202, 211-237, 240, 255, 335-339, 414-418, 498, 538-539, 568, 943-946, 954-955, 997, 1016-1017, 1046, 1064-1065, 1177, 1244, 1408, 1497, 1512, 1521, 1533, 1708
utils/cache.py                                  22       0  100.00%
utils/dates.py                                  57       4  92.98%   63-65, 138
utils/env.py                                     3       0  100.00%
utils/exceptions.py                             47       0  100.00%
utils/free_text_search.py                       65       2  96.92%   83, 91
utils/import_system.py                          28      19  32.14%   64-78, 89-99
utils/logging.py                                28       1  96.43%   41
utils/notebook.py                               44      23  47.73%   25-29, 36-41, 58-62, 72-78, 83-87
utils/repr.py                                   38       0  100.00%
utils/requests.py                               55      29  47.27%   51-52, 64, 85-96, 107-124, 128
utils/s3.py                                    240      12  95.00%   200-203, 245, 263, 489, 537-538, 585, 660, 686
utils/stac_reader.py                           113      44  61.06%   63-85, 95-97, 101, 138, 154-159, 206-216, 226-256
TOTAL                                         9730    1341  86.22%

Diff against develop

Filename                      Stmts    Miss  Cover
--------------------------  -------  ------  -------
plugins/search/base.py           +1      -3  +1.63%
plugins/search/cop_ghsl.py     +388     +84  +78.35%
TOTAL                          +389     +81  -0.29%

Results for commit: 9eb8199

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@jlahovnik jlahovnik marked this pull request as ready for review October 16, 2025 15:46
@jlahovnik jlahovnik requested a review from sbrunato October 16, 2025 15:46
@jlahovnik jlahovnik force-pushed the cop_ghs-provider branch 3 times, most recently from 5c12482 to 2ad95f0 Compare October 16, 2025 16:20
@jlahovnik jlahovnik marked this pull request as draft October 23, 2025 12:55
@jlahovnik jlahovnik marked this pull request as ready for review October 24, 2025 13:18
@jlahovnik jlahovnik force-pushed the cop_ghs-provider branch 2 times, most recently from d287492 to 1cc1090 Compare November 7, 2025 16:44
@jlahovnik jlahovnik force-pushed the cop_ghs-provider branch 2 times, most recently from ccda761 to 404897f Compare November 17, 2025 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants