udata-hydra 2.0.0.dev2400__tar.gz → 2.0.0.dev2497__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/PKG-INFO +2 -2
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/README.md +1 -1
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/pyproject.toml +2 -2
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/crawl.py +4 -1
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/db/check.py +9 -2
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/schemas/check.py +0 -1
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/analysis/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/analysis/csv.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/analysis/errors.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/analysis/helpers.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/analysis/resource.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/app.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/cli.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/config_default.toml +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/context.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/db/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/db/resource.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/logger.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/csv/20221205_initial_up_rev1.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/csv/20230130_drop_migrations.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/csv/20230206_datetime_aware.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20221205_initial_up_rev1.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20221206_rev1_up_rev2.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20221206_rev2_up_rev3.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20221208_rev3_up_rev4.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20221208_rev4_up_rev5.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230119_rev5_up_rev6.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230121_rev6_up_rev7.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230121_rev7_up_rev8.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230130_drop_migrations.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230206_datetime_aware.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230515_rev8_up_rev9.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20230606_rev9_up_rev10.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/migrations/main/20231102_drop_csv_analysis.sql +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/routes/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/routes/checks.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/routes/resources.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/routes/status.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/schemas/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/schemas/resource.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/app_version.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/csv.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/file.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/http.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/minio.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/queue.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/reader.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/utils/timer.py +0 -0
- {udata_hydra-2.0.0.dev2400 → udata_hydra-2.0.0.dev2497}/udata_hydra/worker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata-hydra
|
|
3
|
-
Version: 2.0.0.
|
|
3
|
+
Version: 2.0.0.dev2497
|
|
4
4
|
Summary: Async crawler and parsing service for data.gouv.fr
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Opendata Team
|
|
@@ -374,7 +374,7 @@ Once this is done, code formatting and linting, as well as import sorting, will
|
|
|
374
374
|
|
|
375
375
|
If you cannot use pre-commit, it is necessary to format, lint, and sort imports with [Ruff](https://docs.astral.sh/ruff/) before committing:
|
|
376
376
|
```bash
|
|
377
|
-
ruff check --fix
|
|
377
|
+
ruff check --fix .
|
|
378
378
|
ruff format .
|
|
379
379
|
```
|
|
380
380
|
|
|
@@ -338,6 +338,6 @@ Once this is done, code formatting and linting, as well as import sorting, will
|
|
|
338
338
|
|
|
339
339
|
If you cannot use pre-commit, it is necessary to format, lint, and sort imports with [Ruff](https://docs.astral.sh/ruff/) before committing:
|
|
340
340
|
```bash
|
|
341
|
-
ruff check --fix
|
|
341
|
+
ruff check --fix .
|
|
342
342
|
ruff format .
|
|
343
343
|
```
|
|
@@ -9,7 +9,7 @@ readme = "README.md"
|
|
|
9
9
|
|
|
10
10
|
[tool.poetry]
|
|
11
11
|
name = "udata-hydra"
|
|
12
|
-
version = "2.0.0.
|
|
12
|
+
version = "2.0.0.dev2497"
|
|
13
13
|
description = "Async crawler and parsing service for data.gouv.fr"
|
|
14
14
|
authors = ["Opendata Team <opendatateam@data.gouv.fr>"]
|
|
15
15
|
license = "MIT"
|
|
@@ -76,7 +76,7 @@ markers = [
|
|
|
76
76
|
addopts = "--cov=udata_hydra/ --cov-report term-missing"
|
|
77
77
|
|
|
78
78
|
[tool.ruff]
|
|
79
|
-
lint = { extend-select = ["I"] } # also sort imports with an isort rule
|
|
79
|
+
lint = { extend-select = ["I"], ignore = ["F401"] } # ["I"] is to also sort imports with an isort rule # TODO: remove ignore F401 later
|
|
80
80
|
line-length = 100
|
|
81
81
|
|
|
82
82
|
[build-system]
|
|
@@ -132,6 +132,9 @@ async def process_check_data(check_data: dict) -> Tuple[int, bool]:
|
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
async def is_backoff(domain: str) -> Tuple[bool, str]:
|
|
135
|
+
"""Check if we should not crawl on this domain
|
|
136
|
+
Returns a tuple with if it should backoff or not (boolean) and the reason why (string)
|
|
137
|
+
"""
|
|
135
138
|
backoff = False, ""
|
|
136
139
|
no_backoff = [f"'{d}'" for d in config.NO_BACKOFF_DOMAINS]
|
|
137
140
|
no_backoff = f"({','.join(no_backoff)})"
|
|
@@ -201,7 +204,7 @@ def fix_surrogates(value):
|
|
|
201
204
|
"""FIX Unicode low surrogate must follow a high surrogate.
|
|
202
205
|
eg in 'TREMI_2017-R\xe9sultats enqu\xeate bruts.csv'
|
|
203
206
|
"""
|
|
204
|
-
if
|
|
207
|
+
if type(value) is not str:
|
|
205
208
|
value = str(value)
|
|
206
209
|
return value.encode("utf-8", "surrogateescape").decode("utf-8", "replace")
|
|
207
210
|
|
|
@@ -30,7 +30,7 @@ class Check:
|
|
|
30
30
|
async with pool.acquire() as connection:
|
|
31
31
|
q = f"""
|
|
32
32
|
SELECT catalog.id as catalog_id, checks.id as check_id,
|
|
33
|
-
catalog.status as catalog_status, checks.status as check_status, *
|
|
33
|
+
catalog.status as catalog_status, checks.status as check_status, catalog.deleted as deleted, *
|
|
34
34
|
FROM checks, catalog
|
|
35
35
|
WHERE checks.id = catalog.last_check
|
|
36
36
|
AND catalog.{column} = $1
|
|
@@ -44,7 +44,7 @@ class Check:
|
|
|
44
44
|
async with pool.acquire() as connection:
|
|
45
45
|
q = f"""
|
|
46
46
|
SELECT catalog.id as catalog_id, checks.id as check_id,
|
|
47
|
-
catalog.status as catalog_status, checks.status as check_status, *
|
|
47
|
+
catalog.status as catalog_status, checks.status as check_status, catalog.deleted as deleted, *
|
|
48
48
|
FROM checks, catalog
|
|
49
49
|
WHERE catalog.{column} = $1
|
|
50
50
|
AND catalog.url = checks.url
|
|
@@ -71,3 +71,10 @@ class Check:
|
|
|
71
71
|
async def update(cls, check_id: int, data: dict) -> int:
|
|
72
72
|
"""Update a check in DB with new data and return the check id in DB"""
|
|
73
73
|
return await update_table_record(table_name="checks", record_id=check_id, data=data)
|
|
74
|
+
|
|
75
|
+
@classmethod
|
|
76
|
+
async def delete(cls, check_id: int) -> int:
|
|
77
|
+
pool = await context.pool()
|
|
78
|
+
async with pool.acquire() as connection:
|
|
79
|
+
q = """DELETE FROM checks WHERE id = $1"""
|
|
80
|
+
return await connection.fetch(q, check_id)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|