udata-hydra 2.0.0.dev2045__tar.gz → 2.0.0.dev2099__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.dev2045 → udata_hydra-2.0.0.dev2099}/PKG-INFO +2 -2
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/pyproject.toml +2 -2
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/analysis/helpers.py +2 -2
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/config_default.toml +1 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/logger.py +15 -0
- udata_hydra-2.0.0.dev2099/udata_hydra/utils/app_version.py +17 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/README.md +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/analysis/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/analysis/csv.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/analysis/errors.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/analysis/resource.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/app.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/cli.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/context.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/crawl.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/csv/20221205_initial_up_rev1.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/csv/20230130_drop_migrations.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/csv/20230206_datetime_aware.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20221205_initial_up_rev1.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20221206_rev1_up_rev2.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20221206_rev2_up_rev3.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20221208_rev3_up_rev4.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20221208_rev4_up_rev5.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230119_rev5_up_rev6.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230121_rev6_up_rev7.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230121_rev7_up_rev8.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230130_drop_migrations.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230206_datetime_aware.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230515_rev8_up_rev9.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20230606_rev9_up_rev10.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/migrations/main/20231102_drop_csv_analysis.sql +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/__init__.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/csv.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/db.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/file.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/http.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/json.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/minio.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/queue.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/reader.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/udata_hydra/utils/timer.py +0 -0
- {udata_hydra-2.0.0.dev2045 → udata_hydra-2.0.0.dev2099}/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.dev2099
|
|
4
4
|
Summary: Async crawler and parsing service for data.gouv.fr
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Opendata Team
|
|
@@ -27,7 +27,7 @@ Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
|
|
27
27
|
Requires-Dist: python-magic (>=0.4.25,<0.5.0)
|
|
28
28
|
Requires-Dist: redis (>=4.1.4,<5.0.0)
|
|
29
29
|
Requires-Dist: rq (>=1.11.1,<2.0.0)
|
|
30
|
-
Requires-Dist: sentry-sdk (>=
|
|
30
|
+
Requires-Dist: sentry-sdk (>=2.10.0,<3.0.0)
|
|
31
31
|
Requires-Dist: sqlalchemy (>=1.4.46,<2.0.0)
|
|
32
32
|
Requires-Dist: str2bool (>=1.1,<2.0)
|
|
33
33
|
Requires-Dist: str2float (>=0.0.9,<0.0.10)
|
|
@@ -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.dev2099"
|
|
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"
|
|
@@ -26,7 +26,7 @@ minicli = "^0.5.0"
|
|
|
26
26
|
progressist = "^0.1.0"
|
|
27
27
|
python-magic = "^0.4.25"
|
|
28
28
|
redis = "^4.1.4"
|
|
29
|
-
sentry-sdk = "^
|
|
29
|
+
sentry-sdk = "^2.10.0"
|
|
30
30
|
aiocontextvars = "^0.2.2"
|
|
31
31
|
coloredlogs = "^15.0.1"
|
|
32
32
|
rq = "^1.11.1"
|
|
@@ -11,7 +11,7 @@ def to_json(value: str) -> str:
|
|
|
11
11
|
return value
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
def _parse_dt(value: str) -> datetime:
|
|
14
|
+
def _parse_dt(value: str) -> Union[datetime, None]:
|
|
15
15
|
"""For performance reasons, we try first with dateutil and fallback on dateparser"""
|
|
16
16
|
try:
|
|
17
17
|
return dateutil_parser(value)
|
|
@@ -24,5 +24,5 @@ def to_date(value: str) -> Union[date, None]:
|
|
|
24
24
|
return parsed.date() if parsed else None
|
|
25
25
|
|
|
26
26
|
|
|
27
|
-
def to_datetime(value: str) -> datetime:
|
|
27
|
+
def to_datetime(value: str) -> Union[datetime, None]:
|
|
28
28
|
return _parse_dt(value)
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
import os
|
|
3
|
+
from typing import Union
|
|
2
4
|
|
|
3
5
|
import coloredlogs
|
|
4
6
|
import sentry_sdk
|
|
@@ -6,6 +8,7 @@ from sentry_sdk.integrations.aiohttp import AioHttpIntegration
|
|
|
6
8
|
from sentry_sdk.integrations.rq import RqIntegration
|
|
7
9
|
|
|
8
10
|
from udata_hydra import config
|
|
11
|
+
from udata_hydra.utils.app_version import get_app_version
|
|
9
12
|
|
|
10
13
|
log = logging.getLogger("udata-hydra")
|
|
11
14
|
context = {"inited": False}
|
|
@@ -14,6 +17,10 @@ context = {"inited": False}
|
|
|
14
17
|
def setup_logging() -> logging.Logger:
|
|
15
18
|
if context.get("inited"):
|
|
16
19
|
return log
|
|
20
|
+
release = "hydra@unknown"
|
|
21
|
+
app_version: Union[str, None] = get_app_version()
|
|
22
|
+
if app_version:
|
|
23
|
+
release = f"hydra@{app_version}"
|
|
17
24
|
if config.SENTRY_DSN:
|
|
18
25
|
sentry_sdk.init(
|
|
19
26
|
dsn=config.SENTRY_DSN,
|
|
@@ -21,7 +28,15 @@ def setup_logging() -> logging.Logger:
|
|
|
21
28
|
AioHttpIntegration(),
|
|
22
29
|
RqIntegration(),
|
|
23
30
|
],
|
|
31
|
+
release=release,
|
|
32
|
+
environment=os.getenv("HYDRA_ENV", "unknown"),
|
|
33
|
+
# Set traces_sample_rate to 1.0 to capture 100%
|
|
34
|
+
# of transactions for performance monitoring.
|
|
35
|
+
# Sentry recommends adjusting this value in production.
|
|
36
|
+
traces_sample_rate=config.SENTRY_SAMPLE_RATE,
|
|
37
|
+
profiles_sample_rate=config.SENTRY_SAMPLE_RATE,
|
|
24
38
|
)
|
|
39
|
+
|
|
25
40
|
coloredlogs.install(level=config.LOG_LEVEL)
|
|
26
41
|
# silence urllib3 a bit
|
|
27
42
|
logging.getLogger("urllib3").setLevel("INFO")
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import Union
|
|
3
|
+
|
|
4
|
+
import toml
|
|
5
|
+
|
|
6
|
+
log = logging.getLogger("udata-hydra")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def get_app_version() -> Union[str, None]:
|
|
10
|
+
"""Get the app version from pyproject.toml"""
|
|
11
|
+
try:
|
|
12
|
+
pyproject: dict = toml.load("pyproject.toml")
|
|
13
|
+
app_version: str = pyproject["tool"]["poetry"]["version"]
|
|
14
|
+
return app_version
|
|
15
|
+
except Exception as e:
|
|
16
|
+
log.error(f"Error while getting app version: {e}")
|
|
17
|
+
return None
|
|
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
|