- feat: CORS probe (#359)
- Adapt to the new
csv-detectiveoutput (#369) - Better pick latitude/longitude columns when there are multiple options (#376)
- chore: move pyproject optional-dependencies to dependency-groups (#368)
- Fix stable resource URL syntax (#375)
- fix: unlink pmtiles once only (#373)
- Move file cleanup condition to the config (#374)
- refactor: refactor docker-compose files to use profiles (#370)
- Upgrade
csv-detective(#377)
- chore(rq): set failure ttl to 10 days (#372)
- chore: clean remaining pmtiles files (#371)
- fix: fix tag_version.sh to work with MacOS (#367)
- Add binary type support (#364)
- Bring
tables_indexupdate closer to db insertion (#366) - Change how we spot tables to delete (#358)
- Handle empty geometry cells (#365)
- Revert "feat: better logs for CLI commands run by crons (#354)" (#355)
- chore: remove parallel tests executors and add minimum test coverage of 80% (#356)
- docs: fix README
- docs: fix README (#352)
- feat: add parsing_table index on checks (#357)
- feat: add resource_id index on tables_index (#353)
- feat: add total resources and deleted resources in crawler status health check (#362)
- feat: better logs for CLI commands run by crons (#354)
- feat: optimize cleanup of stuck status resources (#363)
- fix: resolve async/await compatibility issues with Typer CLI (#361)
- refactor: replace Minicli dependency with Typer (#233)
- fix: fix entrypoint (#350)
- build: add tag_version.sh script (#342)
- build: use uv instead of Poetry for lock file and in CI (#241)
- chore: bump version to 2.4.2
- docs: fix changelog
- docs: fix error in changelog
- docs: remove "current" section in changelog to prepare it for automatic update of changelog
- docs: update changelog for merged PR #328
- Enable to analyse and insert parquet files (#343)
- feat: add performance tests and CLI tools for geographical file conversion benchmarking (#319)
- feat: allow to crawl non-data.gouv URLs (#312)
- feat: benchmarks CI workflow (#339)
- feat: dynamic version in user agent (#328)
- feat: flag deleted resources in CSV DB instead of deleting them (#340)
- feat: store dataset_id in CSV tables_index (#341)
- Fix after parquet (#346)
- fix: fix docker image
- fix: fix release in CI (#349)
- fix: fix user agent string (#337)
- Revert "chore: bump version to 2.4.2"
- Update to version 2.4.2.dev for next development cycle
- Only delete the table if the insertion was not successful #332
- Handle cases of empty table in db when getting the previous analysis #333
- Better discriminate long column names #334
- Simplify CI configuration #290
- Remove unused dependencies #292
- Fill in check throughout the process to send previous steps infos in case of late crash #293
- Fix purge csv tables CLI by using the csv db connection #294
- Better gz files extraction function name #295
- Add more detailed statuses #298
- Handle cases of too long columns labels for postgres #299
- Fix rare issue in
/status/crawler/endpoint #301 #302 - Fix typos, deprecated examples and add emojis in README #304
- Upgrade dependencies and fix pytest-asyncio deprecated code #305
- Handle new cases of geo columns from csv-detective #303
- Fix custom Sentry error by capturing original exception stack trace and add test #308
- Optimize queue priorities for resource processing #311
- Add
resource_idinfo in timer logs and add timer for analysing resource #313 - Add check id in udata extras to facilitate debug #307
- Split
csv_to geojson_and_pmtilesfunction into a new intermediary functioncsv_to_geojsonfor better unit testing/benchmarking #317 - Add download resource CLI command #320
- Fix custom exception
ExceptionWithSentryDetailsto include Python stack trace #315 - Fix deprecated Sentry method #323
- Upgrade csv-detective #322 #324 #327
- Stream geojson conversion to prevent RAM consumption #326
- Gracefully crash if any of the column names is too long for Postgres #329
- Return updated check in
handle_resource_exceptionto send the right payload to udata #330
- Delete tmp files if error in download #277
- Add parsing_table in extra analysis payload #279
- Add a column in catalog that indicates when the status was last changed and delete the status-specific endpoint #276
- Remove F401 (unused import) ignore rule and clean up init.py files with explicit all declarations #281
- Update PostgreSQL version in CI to match Docker Compose (15.13) #282
- Add a CI job to create a release on Sentry #246
- Use pre-cast dataframe from csv-detective instead of re-reading the file #236
- Enable csv to GeoJSON and PMTiles converion if relevant #278 #285 #291
- Add conversions state to health endpoint #284
- Better logs in Sentry #287 #289
- Consistent return types for CRUD methods #288
⚠️ resources_exceptions migration from main to csv db. Code is updated accordingly #264- Migration should be made manually. See migrations instructions in the migrations files.
- Fix some CLI functions to improve local debug #269
- Upgrade csv-detective and use previous analysis to validate if available #266
- Fix and add new purge tables CLI utils #271 #272 #273
- Increase timeout for exception resources #274
- Fix logs when creating indexes #275
- Fix datetime insertion in db #280
- Better prioritizing #255
- Reset same category udata extra fields on sending #256
- Make sure detected_last_modified_at is set even if HAS_NOT_CHANGED #257
- Fill in new check even if no update #258
- Better change detections and add related tests #259
- Enable GeoJSON to PMTiles conversion #260 #267
- Parquet files are named after resource ids #262
- Upgrade csv-detective #263
- Fix call to a sync function after demo crash test #265
- Add a status resetting mechanism for stuck resources #251
- Update harvest_modified_at on load catalog #252
- Unify exceptions to prevent unhandled ones in Sentry #253
- Get max allowed size even in CLI process #254
- Fix CLI analyse-csv and allow analysis from a resource id #248
- Rework handling of too large files #248
- Refactor ParseError to enrich Sentry with context and to inquire about Sentry errors like #4096 #218
- Remove legacy routes #203
- More explicit error reporting when sending to udata without raising errors for udata responding with a 404 #213
- Minor cleaning: remove unused arg in function #219
- Fix type issue regarding
resource_id#220 - Use bump'X #226
- Get actual resource URL in case of 404 (change since last catalog load) #225
- Add CLI util to insert or update a resource into the catalog (change since last catalog load) #228
- Fix deadlocks errors when purging CSV tables by refactoring
purge_csv_tablesto use atomic transactions #230 - Improve timing of checks depending on changes since last check #163
- Remove bad default value in CLI to insert a resource #235
- Trigger GitLab deployment in CI when pushing on
main#186 - Fix GitLab deployment in CI #239
- Add indexes to improve resource filtering and batch selection #240
- Parallelize tests in CI #238
- Refactor analysis logic to remove 5 non necessary queries, using the existing data in the code instead of re-querying it #227
- Use a package-manager-agnostic pyproject.toml instead of a Poetry pyproject.toml #170
- Remove unused setup.cfg #244
- Use a bash file instead of text file to store env vars across CI jobs #245
- Fix minor types issues #204
- Return resources statuses count in crawler status endpoint response #206
- Fix deprecated CircleCI config #207
- Fix Sentry issue #4195 #209
- Clean doctrings for more consistent style #215
- Fix some type hints #214
- Add option to force analysis even if resource has not changed #205
- Fix get all checks CRUD method #217
- Deactivate parquet export for small CSVs #216
- Fix wrong resource status #196
- Fix issue related to empty
table_indexescolumn instead of default{}#197 - Make the
last_checkcolumn of thecatalogtable as a foreign key tocheckstable, in order to fix error when crawling resources with last checks that don't exist anymore #195 - Fix
analyse-csvCLI when using by url, and refactor errors for cases when resource or url not found #200 - Fix errors when sending malformed request, and make API error responses more consistent #202
- Save git commit hash in CI and use it for health check #182 and #185
- Add comment column/field to ressources exceptions #191
- Add extra args and DB fields for parquet export #193
- Fix CircleCI config for packaging version not to include commit hash when publishing #194
- Refactor function to get no_backoff domains and add PostgreSQL indexes to improve DB queries perfs #171
- Clean changelog and remove useless section in pyproject.toml #175
- Refactor purge_checks CLI to use a date limit instead of a number #174
- Fix resources exceptions routes responses, add resources exceptions tests #176
- Fix CSV analysis CLI #181
- Add a
PUT/api/resources-exceptions/{id}route to update a resource exception #178 - Add a
quietargument forpurge_checkandpurge_csv_tableCLIs #184 - Fix wrong resource status #187
- More informative error relative to check resource CLI #188
- Use Python 3.11 instead of 3.9 for performance improvements and future compatibility #101
- Refactor and split code from
crawl.pyinto separate files using refactoreddb.Resourceclass methods and static methods #135 - Allow routes with or without trailing slashes #158
- Delete resource as a CRUD method #161
- Refactor routes URLs to be more RESTful and separate legacy routes code from new routes code #132
- Display app version and environment in health check endpoint #164
- Use ENVIRONMENT from config file instead of env var #165
- Manage large resources exceptions differently #148
- Add checks aggregate route #167
- Use profiling option from csv-detective #54
- Remove csv_analysis, integrate into checks #52
- Add new types for csv parsing: json, date and datetime #51
- Notify udata of csv parsing #51
- Allow
Nonevalues in udata notifications #51 - Add tests for udata-triggered checks #49
- Include migration files in package
- Allow to configure a dedicated PostgreSQL schema #56
- Fix typo in handle_parse_exception and schema in CLI #57
- Skip archived dataset when loading catalog #58
- Update resources expected dates in API following udata refactoring #60
- Download csv resource only if first check #61
- Send content-type and content-length info from header to udata #64
- Add timezone values to dates sent to udata #63
- Rename analysis filesize to content-length #66
- Sleep between all batches #67
- Support having multiple crawlers by setting a status column in the catalog table #68
- Add a health route #69
- Make temporary folder configurable #70
- Fix conflict on updating catalog with multiple entries for a resource #73
- Set check:available to None in case of a 429 #75
- Improve conditional analysis logic and readability #76 #80
- Use latest csv-detective version #89
- Compare content type / length to check if changed #78 #79
- Create a list of exceptions to analyse despite larger size #85
- Enable csv.gz analysis #84
- Add worker default timeout config #86
- Return None value early when casting in csv analysis #87
- Ping udata after loading a csv to database #91
- Allow for none value in resource schema #93
- Handle other file formats #92
- Add a quiet option on load catalog #95
- Select distinct parsing tables to delete #96
- Enable parquet export #97
- Update documentation #98 and #106
- Add linter and formatter with
pyproject.tomlconfig, add lint and formatting step in CI, add pre-commit hook to lint and format, update docs and lint and format the code #99 - Update
sentry-sdkdependency, and update Sentry logic to be able to send environment, app version and profiling/performance info #100 - Basic cleaning: use Python 3.11 in CI, remove Pandas in project dependencies, add type hints, fix wrong type hints, remove deprecated version field in docker compose files, update
.gitignore[#102] [datagouv#102] and #107 - Add missing content-type for csv.gz #103
- Remove deprecated
pytzmodule #109 - Refactor project structure to use DB classes for each DB table, with their factorized DB methods #112 and #55
- Add tests coverage feature #122
- Refactor routes #117
- Fix Ruff configuration #125
- Add some API tests to improve coverage #123
- Fix health check endpoint route which was wrongly removed, and add test for API health check endpoint to make sure this endpoint is working as expected #128
- Add basic authentication via API key using a bearer token auth for all POST/PUT/DELETE endpoints #130
- Simplify getting Sentry info by loading pyproject.toml info in config #138
- Add a
POST/api/checks/route for force crawling #118 - Update
csv-detectiveto 0.7.2 which doesn't include yanked version ofrequestsanymore #142 and #144 - Update resource statuses in DB when crawling and analysing, and add resource status route #119
- Simplify
save_as_parquetmethod, and fix type not compatible with Python 3.9; remove unused import #156 - Fix and simplify project metadata loading #157
- Pin Numpy version to 1.26.4 to avoid conflicts with pandas and csv-detective
- Packaging-fix release
- Initial version