Skip to content

feat: database for collections storage#2082

Open
anesson-cs wants to merge 40 commits intodevelopfrom
db-for-collections-storage
Open

feat: database for collections storage#2082
anesson-cs wants to merge 40 commits intodevelopfrom
db-for-collections-storage

Conversation

@anesson-cs
Copy link
Copy Markdown
Collaborator

In this PR, a SQLite database is setup to store collections so they will not be kept in memory anymore. This will be particularly useful when eodag catalog will contain a big amount of collections.

Daily collections fetch is removed, which implies that users have to fetch collections by themselves (by calling the fetch method).

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 11, 2026

Test Results

  1 files   -     3    1 suites   - 3   34s ⏱️ - 2m 43s
697 tests +   12  586 ✅  -    98  2 💤 +1  84 ❌ +84  25 🔥 +25 
718 runs   - 2 064  607 ✅  - 2 169  2 💤  - 4  84 ❌ +84  25 🔥 +25 

For more details on these failures and errors, see this check.

Results for commit 7a550b0. ± Comparison against base commit 326ff41.

This pull request removes 5 and adds 17 tests. Note that renamed tests count towards both.
eodag.api.collection ‑ eodag.api.collection.Collection.get_collection_mtd_from_alias
tests.units.test_collection.TestCollection ‑ test_search_result_repr_html
tests.units.test_collection.TestCollectionsDict ‑ test_search_result_is_dict_like
tests.units.test_collection.TestCollectionsList ‑ test_search_result_is_list_like
tests.units.test_collection.TestCollectionsList ‑ test_search_result_repr_html
eodag.api.collection ‑ eodag.api.collection.Collection.get_collection_alias_from_field
eodag.api.collection ‑ eodag.api.collection.Collection.get_collection_field_from_alias
tests.units.test_collection.TestCollection ‑ test_collection_dump
tests.units.test_collection.TestCollection ‑ test_collection_dump_json
tests.units.test_collection.TestCollection ‑ test_collection_repr_html
tests.units.test_collection.TestCollection ‑ test_collection_stac_fields
tests.units.test_collection.TestCollection ‑ test_collection_static_fields
tests.units.test_collection.TestCollection ‑ test_collection_strings_for_list_fields
tests.units.test_collection.TestCollection ‑ test_collection_summaries
tests.units.test_collection.TestCollection ‑ test_collection_summaries_fields
…
This pull request skips 1 test.
tests.units.test_core.TestCoreSearch ‑ test_guess_collection_has_no_limit

♻️ This comment has been updated with latest results.

@eodag-bot
Copy link
Copy Markdown
Collaborator

eodag-bot commented Mar 11, 2026

badge

Code Coverage (Ubuntu)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         247      10  95.95%   104-115, 629
config.py                                      305      26  91.48%   70-72, 75, 78, 81, 85, 89, 93-95, 583-585, 646, 654, 707-709, 728, 736, 766-771, 773
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              281      55  80.43%   194, 199, 214-215, 262-271, 290, 300, 311, 408, 425-442, 448-449, 472-484, 504-521, 538-555, 558, 561, 588-593, 605-613, 625-633, 653, 656, 674, 677
api/core.py                                    769     127  83.49%   142-155, 173, 271, 275, 279-285, 321-357, 561, 609, 652, 692, 712, 716-727, 753-758, 783, 904-923, 937, 943, 958-963, 1096, 1101, 1196, 1214, 1249, 1256, 1264, 1333, 1376, 1389, 1456, 1470-1471, 1530, 1547-1552, 1564-1567, 1583, 1808-1813, 1950-1959, 2023, 2039-2079, 2172-2181, 2269-2270, 2375-2389
api/provider.py                                381      50  86.88%   186, 188-191, 298, 303, 308, 316-337, 405, 417, 422, 465-467, 492-493, 509-515, 521, 525-526, 531-534, 545, 621-631, 821-822, 870, 877, 908-911, 947-948, 956-957
api/search_result.py                           181      72  60.22%   111, 123, 133, 154, 203, 220, 320, 375-378, 392-400, 412-459, 471-508, 520-532
api/product/__init__.py                         18      10  44.44%   48-59
api/product/_assets.py                          52       4  92.31%   97, 191, 194-198
api/product/_product.py                        248      24  90.32%   189, 305-306, 320-325, 340, 346, 434, 463, 470, 577, 597, 620-623, 632-635, 689, 755, 767
api/product/metadata_mapping.py                791      57  92.79%   125-127, 220-225, 249, 307-308, 396, 417, 469-470, 507, 528-531, 554, 566-567, 608, 631, 656-659, 661-666, 731-736, 748, 756, 988, 1163, 1172-1176, 1193-1198, 1331, 1354, 1363, 1385, 1390, 1442, 1514, 1535, 1561, 1575, 1600, 1646, 1697-1698, 1715, 1790
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     29       0  100.00%
api/product/drivers/generic.py                  11       0  100.00%
api/product/drivers/sentinel1.py                33       1  96.97%   95
api/product/drivers/sentinel2.py                33       0  100.00%
databases/__init__.py                            0       0  100.00%
databases/sqlite.py                            189     102  46.03%   75-81, 102-107, 112, 128-131, 173-176, 194-198, 214-217, 252-262, 271-294, 298-322, 326-354, 358, 362, 389-414, 429-508
databases/sqlite_functions.py                   51      36  29.41%   50-76, 89-118
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      31  82.08%   102-107, 119-120, 179, 201, 219-220, 227-232, 271-272, 363-376, 387-388
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          101      42  58.42%   178-180, 195-272, 276
plugins/apis/usgs.py                           182     154  15.38%   118-136, 144-309, 323-481
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      35  38.60%   53-58, 63-97, 127-140
plugins/authentication/token.py                128       9  92.97%   180, 217, 288-289, 339-343
plugins/authentication/token_exchange.py        36      20  44.44%   72-78, 91-121
plugins/crunch/__init__.py                       0       0  100.00%
plugins/crunch/base.py                          10       1  90.00%   43
plugins/crunch/filter_date.py                   59      45  23.73%   52-57, 67-122
plugins/crunch/filter_latest_intersect.py       54      39  27.78%   50-55, 68-115
plugins/crunch/filter_latest_tpl_name.py        31      20  35.48%   46-54, 64-95
plugins/crunch/filter_overlap.py                63      54  14.29%   56-163
plugins/crunch/filter_property.py               30       7  76.67%   56-61, 64-65, 81-84
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        401      78  80.55%   270, 304, 353-356, 386-387, 395-399, 436-437, 479-482, 522-524, 528, 559-560, 566-570, 601, 666-674, 738-833, 845-850, 888, 914, 959-961, 1013
plugins/download/base.py                       280      79  71.79%   133, 162, 190-193, 214, 229-231, 240, 309-310, 327-333, 358-362, 368-369, 411, 414-428, 440, 444, 517-521, 551, 573-583, 586-587, 595-605, 612-621, 628-629, 680, 686-706, 719-723, 729-738, 765
plugins/download/http.py                       564      90  84.04%   233, 275-278, 340-343, 346, 353-358, 376-391, 408, 423, 483, 518, 532, 546, 556-560, 576-581, 592, 611, 648-651, 672, 682, 689, 709, 731, 854, 886, 895-925, 961, 986-987, 1006-1011, 1020, 1035-1037, 1040-1044, 1059-1060, 1144, 1196, 1238-1239, 1251, 1261, 1311-1312, 1342, 1362, 1403-1405, 1459-1460
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         191      21  89.01%   108, 112, 136-142, 151, 181, 199-202, 295, 316, 437, 441, 491, 513-516, 525
plugins/search/build_search_result.py          504     105  79.17%   259-260, 296, 300, 320, 507, 550-561, 576-578, 701, 725, 727, 794, 802-806, 827, 837, 863, 908, 932, 960, 978-993, 1043, 1068, 1071, 1075, 1084, 1090, 1128-1149, 1190, 1217-1218, 1227-1236, 1300, 1311-1364, 1378-1380, 1470-1471, 1515, 1524-1526, 1583, 1631-1641
plugins/search/cop_marine.py                   268      56  79.10%   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                     823     118  85.66%   415-416, 521, 533-534, 557-558, 570-574, 786-792, 850, 916, 946, 953, 1024, 1045, 1048-1049, 1062, 1064-1071, 1076-1077, 1104, 1178, 1183-1211, 1218, 1233, 1242-1245, 1255, 1278, 1367, 1390, 1413, 1462-1477, 1560, 1667-1671, 1737, 1740, 1744-1745, 1766-1769, 1781, 1803-1815, 1823, 1858-1860, 1883-1889, 1896, 1934, 1950, 1973, 1978-1979, 1994, 2000, 2010, 2088, 2100, 2104, 2115, 2138-2143, 2152, 2160-2170, 2208-2212
plugins/search/stac_list_assets.py              25      10  60.00%   44-51, 75-85
plugins/search/static_stac_search.py            84      47  44.05%   92, 99-127, 165-251
resources/__init__.py                            0       0  100.00%
resources/shp/__init__.py                        0       0  100.00%
types/__init__.py                              167      43  74.25%   58, 62, 71-75, 86-98, 126-128, 135-140, 216, 219, 257, 267-283, 288, 290, 312, 317, 325, 335
types/bbox.py                                   39      19  51.28%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                          10       0  100.00%
types/queryables.py                             88       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       114       1  99.12%   282
types/stac_metadata.py                         116      17  85.34%   77, 92, 113-114, 147, 177-191, 200-207
utils/__init__.py                              608      43  92.93%   71, 206, 237-238, 247-273, 276, 291, 371-375, 450-454, 534, 574-575, 604, 982-985, 1036, 1055-1056, 1085, 1103-1104, 1216, 1304, 1468, 1557, 1572, 1581, 1593, 1783
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 113       4  96.46%   171, 329-331
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                                        10406    2086  79.95%

Diff against develop

Filename                                    Stmts    Miss  Cover
----------------------------------------  -------  ------  --------
config.py                                       0      +2  -0.65%
api/collection.py                            +131     +47  -14.24%
api/core.py                                   +12     +79  -10.17%
api/provider.py                                 0     +15  -3.93%
api/search_result.py                            0     +53  -29.28%
api/product/__init__.py                         0      +8  -44.45%
api/product/_product.py                         0      +4  -1.62%
api/product/metadata_mapping.py                 0      +4  -0.51%
api/product/drivers/sentinel1.py                0      +1  -3.03%
databases/__init__.py                           0       0  +100.00%
databases/sqlite.py                          +189    +102  +46.03%
databases/sqlite_functions.py                 +51     +36  +29.41%
plugins/manager.py                              0     +15  -8.67%
plugins/apis/ecmwf.py                           0     +34  -33.66%
plugins/apis/usgs.py                            0    +129  -70.88%
plugins/authentication/sas_auth.py              0     +32  -56.14%
plugins/authentication/token_exchange.py        0      +6  -16.67%
plugins/crunch/filter_date.py                   0     +31  -52.54%
plugins/crunch/filter_overlap.py                0     +29  -46.03%
plugins/crunch/filter_property.py               0      +2  -6.66%
plugins/download/aws.py                         0      +2  -0.50%
plugins/download/base.py                        0     +44  -15.71%
plugins/download/http.py                        0     +13  -2.31%
plugins/search/base.py                          0      +3  -1.57%
plugins/search/build_search_result.py           0     +22  -4.36%
plugins/search/qssearch.py                      0     +24  -2.92%
plugins/search/static_stac_search.py            0     +29  -34.52%
types/stac_metadata.py                          0      +1  -0.87%
TOTAL                                        +383    +767  -6.89%

Results for commit: 7a550b0

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@eodag-bot
Copy link
Copy Markdown
Collaborator

badge

Code Coverage (Windows)

Details
Filename                                     Stmts    Miss  Cover    Missing
-----------------------------------------  -------  ------  -------  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
__init__.py                                      8       0  100.00%
cli.py                                         247      10  95.95%   104-115, 629
config.py                                      305      24  92.13%   70-72, 75, 78, 81, 85, 89, 93-95, 583-585, 707-709, 728, 736, 766-771, 773
crunch.py                                        5       5  0.00%    20-24
api/__init__.py                                  0       0  100.00%
api/collection.py                              276      11  96.01%   194, 199, 311, 408, 426, 558, 561, 653, 656, 674, 677
api/core.py                                    764      48  93.72%   266, 552, 600, 643, 683, 703, 744-749, 774, 895-914, 928, 934, 1087, 1092, 1187, 1324, 1367, 1380, 1447, 1461-1462, 1538-1543, 1555-1558, 2046, 2172, 2260-2261
api/provider.py                                381      35  90.81%   186, 190-191, 316-337, 405, 521, 525-526, 531-534, 545, 621-631, 821-822, 870, 877, 908-911, 947-948, 956-957
api/search_result.py                           181      19  89.50%   111, 123, 133, 154, 203, 220, 320, 375-378, 448, 453-454, 488, 502, 525-526, 532
api/product/__init__.py                         18       2  88.89%   57, 59
api/product/_assets.py                          52       4  92.31%   97, 191, 194-198
api/product/_product.py                        248      20  91.94%   189, 305-306, 324-325, 434, 463, 470, 577, 597, 620-623, 632-635, 689, 755, 767
api/product/metadata_mapping.py                791      53  93.30%   125-127, 220-225, 249, 307-308, 396, 417, 469-470, 507, 528-531, 554, 566-567, 608, 631, 661-666, 731-736, 748, 756, 988, 1163, 1172-1176, 1193-1198, 1331, 1354, 1363, 1385, 1390, 1442, 1514, 1535, 1561, 1575, 1600, 1646, 1715, 1790
api/product/drivers/__init__.py                 11       0  100.00%
api/product/drivers/base.py                     29       0  100.00%
api/product/drivers/generic.py                  11       0  100.00%
api/product/drivers/sentinel1.py                33       0  100.00%
api/product/drivers/sentinel2.py                33       0  100.00%
databases/__init__.py                            0       0  100.00%
databases/sqlite.py                            189     189  0.00%    18-509
databases/sqlite_functions.py                   51      51  0.00%    21-129
plugins/__init__.py                              0       0  100.00%
plugins/base.py                                 22       4  81.82%   48, 55, 68-69
plugins/manager.py                             173      16  90.75%   102-107, 179, 201, 219-220, 232, 271-272, 372-375, 387-388
plugins/apis/__init__.py                         0       0  100.00%
plugins/apis/base.py                             4       0  100.00%
plugins/apis/ecmwf.py                          101       8  92.08%   178-180, 228-229, 255-257
plugins/apis/usgs.py                           182      25  86.26%   161, 267, 301, 343-345, 350, 378-379, 384, 414-421, 432-437, 459-465
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, 288-289, 339-343
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       54      39  27.78%   50-55, 68-115
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%   56-61, 64-65
plugins/download/__init__.py                     0       0  100.00%
plugins/download/aws.py                        401      76  81.05%   270, 304, 353-356, 386-387, 395-399, 479-482, 522-524, 528, 559-560, 566-570, 601, 666-674, 738-833, 845-850, 888, 914, 959-961, 1013
plugins/download/base.py                       280      37  86.79%   133, 162, 229-231, 309-310, 368-369, 411, 415-426, 440, 517-521, 551, 586-587, 612-621, 680, 701, 723, 731, 765
plugins/download/http.py                       564      77  86.35%   233, 275-278, 340-343, 346, 353-358, 389-391, 408, 423, 483, 518, 532, 546, 556-560, 576-581, 592, 611, 648-651, 672, 682, 689, 854, 886, 916-925, 961, 986-987, 1006-1011, 1020, 1035-1037, 1041, 1044, 1059-1060, 1144, 1196, 1238-1239, 1251, 1261, 1311-1312, 1342, 1362, 1403-1405, 1459-1460
plugins/search/__init__.py                      25       0  100.00%
plugins/search/base.py                         191      18  90.58%   108, 112, 136-142, 199-202, 295, 316, 441, 491, 513-516, 525
plugins/search/build_search_result.py          504      83  83.53%   259-260, 296, 300, 320, 550-561, 576-578, 701, 725, 727, 794, 802-806, 827, 837, 863, 908, 932, 960, 978-993, 1043, 1068, 1071, 1075, 1084, 1090, 1128-1149, 1190, 1217-1218, 1227-1236, 1300, 1315, 1321, 1340-1349, 1470-1471, 1515, 1524-1526, 1583, 1631-1641
plugins/search/cop_marine.py                   268      56  79.10%   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                     823      94  88.58%   415-416, 533-534, 557-558, 570-574, 786-792, 850, 946, 953, 1024, 1045, 1048-1049, 1067, 1076-1077, 1104, 1178, 1187, 1192-1209, 1218, 1233, 1242-1245, 1255, 1278, 1367, 1390, 1463-1464, 1470, 1560, 1667-1671, 1737, 1740, 1744-1745, 1766-1769, 1781, 1803-1815, 1823, 1858-1860, 1883-1889, 1896, 1950, 1973, 1978-1979, 1994, 2000, 2010, 2100, 2104, 2115, 2139, 2152, 2160-2170, 2208-2212
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
resources/__init__.py                            0       0  100.00%
resources/shp/__init__.py                        0       0  100.00%
types/__init__.py                              167      43  74.25%   58, 62, 71-75, 86-98, 126-128, 135-140, 216, 219, 257, 267-283, 288, 290, 312, 317, 325, 335
types/bbox.py                                   39      19  51.28%   46-61, 72-74, 85-87, 99-101, 113-115, 123
types/download_args.py                          10       0  100.00%
types/queryables.py                             88       0  100.00%
types/search_args.py                            70      18  74.29%   60-64, 71-88, 103
types/stac_extensions.py                       114       1  99.12%   282
types/stac_metadata.py                         116      16  86.21%   92, 113-114, 147, 177-191, 200-207
utils/__init__.py                              608      43  92.93%   71, 206, 237-238, 247-273, 276, 291, 371-375, 450-454, 534, 574-575, 604, 982-985, 1036, 1055-1056, 1085, 1103-1104, 1216, 1304, 1468, 1557, 1572, 1581, 1593, 1783
utils/cache.py                                  22       0  100.00%
utils/dates.py                                 113       4  96.46%   171, 329-331
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                                        10396    1564  84.96%

Diff against develop

Filename                         Stmts    Miss  Cover
-----------------------------  -------  ------  --------
api/collection.py                 +126      +3  +1.34%
api/core.py                         +7       0  +0.06%
databases/__init__.py                0       0  +100.00%
databases/sqlite.py               +189    +189  +100.00%
databases/sqlite_functions.py      +51     +51  +100.00%
TOTAL                             +373    +243  -1.86%

Results for commit: 2bf5dee

Minimum allowed coverage is 70%

♻️ This comment has been updated with latest results

@alambare
Copy link
Copy Markdown
Collaborator

sqlite database should not have dependency on EODataAccessGateway. The database layer should be pure and independent.

@anesson-cs anesson-cs force-pushed the db-for-collections-storage branch 4 times, most recently from 398b63e to 2b23ed1 Compare March 13, 2026 08:58
@alambare alambare force-pushed the db-for-collections-storage branch from aa5cc03 to 90fccc0 Compare March 16, 2026 07:59
anesson-cs and others added 21 commits March 24, 2026 15:53
create a separate file to create SQLite functions which need to be registered as SQLite functions to be used during the queries

implement most of the main methods of the class
add an interface called 'Database'
collections returned in databases methods are dictionaries now, conversion to collection instances must be in the core
also refactor the sqlite and base codebase
perf fixes with cql2
fetch is a separated command
…at the init of the core and refactor some related topics

rename provider to federation_backend in database files

create an adapter and a converter for dicts

use ellipsis in database abstract methods

rename CollectionsDict.from_config() to CollectionsDict.from_configs()
also strong performances upgrades for spatial and temporal filtering
@anesson-cs anesson-cs force-pushed the db-for-collections-storage branch from 91e0123 to 3715b40 Compare April 2, 2026 14:45
except for deprecated core method 'available_providers()'
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