-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject.toml
More file actions
101 lines (91 loc) · 3.3 KB
/
Copy pathpyproject.toml
File metadata and controls
101 lines (91 loc) · 3.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
[project]
name = "rdp-data-crawler"
version = "0.4.0"
description = "Data crawler that actively polls data sources and pushes the results to redis."
authors = [{name = "Michael Spiegel", email = "michael.spiegel@ait.ac.at"}]
readme = "README.md"
requires-python = ">=3.10,<4.0"
# The lower bounds denote the oldest supported release of each dependency, the upper bounds guard against the next
# breaking major version. The exact resolution is pinned in uv.lock.
dependencies = [
"requests>=2.31,<3",
"cachecontrol>=0,<1",
"lockfile>=0.12.2,<1",
# Deliberately kept below the 3.x series
"pandas>=2.2.0,<3",
"click>=8.1.7,<9",
"redis>=5.0,<9",
"hiredis>=2.3.2,<4",
"prometheus-client>=0,<1",
"pyrdp-commons @ git+https://github.com/AIT-RDP/pyrdp-commons@2c05eca009efa7d7fe8ecf95f489059e5cbac103",
"filelock>=3.13.1,<4",
"entsoe-py>=0,<1",
"pydantic>=2.6,<3",
"jsonpath-ng>=1.6.1,<2",
"aiofiles>=24.1.0,<26",
"influxdb-client>=1.50.0,<2",
]
[project.optional-dependencies]
modbus = [
"modbus-crawler @ git+https://github.com/AIT-RDP/rdp-modbus-crawler@da0134c7f1a19c02659ff789aa9bd38b86755a82",
# The lower bound is dictated by the pandera.pandas namespace, which was introduced in 0.24.0 and is used by
# data_crawler.shared.modbus and data_crawler.shared.opcua
"pandera>=0.24.0,<1",
]
numerics = [
"xarray>=2024.6.0,<2027",
# As of h5netcdf 1.8 the h5py backend is an optional extra and has to be requested explicitly
"h5netcdf[h5py]>=1.3.0,<2",
]
rest-server = [
"fastapi>=0.111.1,<1",
"uvicorn>=0.30.1,<1",
]
opcua = [
# Capped: newer asyncua releases (1.1.8 was checked) moved User and UserRole from asyncua.server.users to
# asyncua.crypto.permission_rules, which breaks the OPC UA test cases. Lift the cap together with the
# corresponding test adaptions.
"asyncua>=1.1.5,<1.1.6",
"pandera>=0.24.0,<1",
]
websocket = [
"websocket-client>=1.8.0,<2",
]
mqtt = [
"rdp-mqtt @ git+https://github.com/AIT-RDP/rdp-mqtt@5a991645b908d04857110fd285f8f4096fa8819d",
]
[project.scripts]
datacrawler = "data_crawler.cli:main"
# Development-only dependencies (PEP 735). They are installed by default via `uv sync` and can be excluded with
# `uv sync --no-dev` or `uv sync --no-group dev`.
[dependency-groups]
dev = [
"pytest>=7.2.1,<10",
"pytest-mock>=3.12.0,<4",
"pytest-asyncio>=0.23.7,<2",
"pytest-cov>=5.0.0,<8",
"tenacity>=8.5.0,<10",
]
[tool.pytest.ini_options]
# Both the project root and the test directory need to be importable. Configuring it here keeps plain `pytest`
# working identically in the IDE, on the command line and in the CI pipeline.
pythonpath = [".", "test"]
testpaths = ["test"]
asyncio_mode = "strict"
# Required as of pytest-asyncio 1.0. Every async fixture gets its own event loop, matching the previous default.
asyncio_default_fixture_loop_scope = "function"
[tool.coverage.paths]
source = ["data_crawler"]
[tool.coverage.run]
branch = true
source = ["data_crawler"]
[tool.coverage.report]
show_missing = true
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["data_crawler"]
[tool.hatch.metadata]
# Required to keep the git-based dependencies as direct references in the published package metadata
allow-direct-references = true