Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
121 lines (107 loc) · 2.89 KB
/
Copy pathpyproject.toml
File metadata and controls
121 lines (107 loc) · 2.89 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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# SPDX-FileCopyrightText: Magenta ApS <https://magenta.dk>
# SPDX-License-Identifier: MPL-2.0
[tool.poetry]
name = "os2mo-sdtool-plus"
version = "0.0.0" # versioning handled by conventional commits
description = "Synchronises MO with SD Løn"
authors = ["Magenta ApS <info@magenta.dk>"]
readme = "README.md"
homepage = "https://magenta.dk/"
repository = "https://git.magenta.dk/rammearkitektur/os2mo-sdtool-plus"
keywords = ["os2mo", "sd"]
license = "MPL-2.0"
[tool.poetry.dependencies]
python = "^3.11"
click = "^8"
gql = "^3"
anytree = "^2"
pydantic = {version = "^1", extras=["email"]}
more-itertools = "^9"
another-sd-client = "^5"
uvicorn = "^0.34"
structlog = "^25"
fastramqpi = "^17"
alembic = "^1"
psycopg2 = "^2"
websockets = "^13" # for ariadne
httpx = "^0.27"
SQLAlchemy = "^2"
fastapi = "^0.115"
starlette = "^0.41"
tenacity = "^8"
ramodels = "^39"
graphql-core = "^3"
aio-pika = "^9"
async-lru = "^2.0.5"
[tool.poetry.group.pre-commit.dependencies]
pre-commit = "^3"
ruff = "^0.9"
deptry = "^0.23"
mypy = "^1"
[tool.poetry.group.test.dependencies]
pytest = "^8.4"
pytest-asyncio = "^1.4"
pytest-cov = "^5"
pytest-split = "^0.9"
hypothesis = "^6"
freezegun = "^1"
time-machine = "^3"
asgi-lifespan = "^2.1"
[tool.poetry.group.dev.dependencies]
ariadne-codegen = "^0.7"
[tool.mypy]
plugins = "pydantic.mypy, pydantic.v1.mypy"
[[tool.mypy.overrides]]
# anytree ships no type information, and no stubs are published for it
module = "anytree.*"
ignore_missing_imports = true
[tool.ariadne-codegen]
target_package_name = "autogenerated_graphql_client"
target_package_path = "sdtoolplus/"
client_name = "GraphQLClient"
schema_path = "schema.graphql" # curl -O http://localhost:5000/graphql/v25/schema.graphql
queries_path = "queries.graphql"
include_all_inputs = false
include_all_enums = false
include_comments = false
plugins = [
# Return values directly when only a single top field is requested
"ariadne_codegen.contrib.shorter_results.ShorterResultsPlugin",
# Add UNSET and UnsetType to generated input types
"fastramqpi.ariadne.UnsetInputTypesPlugin",
]
[tool.ariadne-codegen.scalars.DateTime]
type = "datetime.datetime"
parse = "fastramqpi.ariadne.parse_graphql_datetime"
[tool.ariadne-codegen.scalars.UUID]
type = "uuid.UUID"
[tool.ariadne-codegen.scalars.CPR]
type = "..types.CPRNumber"
[tool.pytest.ini_options]
collect_imported_tests = false
asyncio_mode="auto"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.ruff]
target-version = "py311"
[tool.ruff.lint]
extend-select = [
# isort
"I"
]
ignore = [
# Allow function calls in arguments, like `Depends(...)`
"B008",
# Allow lines longer than 90 characters if ruff-format decides so
"E501"
]
[tool.ruff.lint.isort]
force-single-line = true
[tool.deptry.per_rule_ignores]
DEP002 = [
# uvicorn is used by the Dockerfile
"uvicorn",
# psycopg2 is used as a string in the postgres connector
"psycopg2",
]