-
Notifications
You must be signed in to change notification settings - Fork 0
/
pyproject.toml
112 lines (99 loc) · 2.91 KB
/
pyproject.toml
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
# SPDX-FileCopyrightText: Magenta ApS <https://magenta.dk>
# SPDX-License-Identifier: MPL-2.0
[tool.poetry]
name = "mo_ldap_import_export"
version = "0.0.0" # versioning handled by conventional commits
description = "Rammearkitektur AMQP service for making AMQP messages on changing effects in os2mo."
authors = ["Magenta ApS <info@magenta.dk>"]
license = "MPL-2.0"
[tool.poetry.dependencies]
python = "^3.11"
structlog = "^24.2.0"
fastramqpi = "^7.3.6"
pydantic = {version = "^1.10.15", extras = ["dotenv"]}
gql = "^3.5.0"
more-itertools = "^9.1.0"
uvicorn = "^0.30.1"
fastapi = ">=0.101"
ldap3 = "^2.9.1"
httpx = "^0.27.0"
# pycryptodome is needed due to https://github.com/cannatag/ldap3/issues/1051
pycryptodome = "^3.20.0"
jinja2 = "^3.1.4"
ramodels = ">=18.5.2,<23.0.0"
graphql-core = "^3.2.3"
[tool.poetry.group.pre-commit.dependencies]
mypy = "^1.8.0"
types-tqdm = "^4.66.0.20240106"
types-ldap3 = "^2.9.13.20240119"
types-pyyaml = "^6.0.12.12"
reorder-python-imports = "^3.12.0"
pre-commit = "^3.6.0"
pandas-stubs = "^2.1.4.231227"
ruff = "^0.2.1"
websockets = "^12.0"
deptry = "^0.14.2"
[tool.poetry.group.test.dependencies]
mergedeep = "^1.3.4"
pytest = "^7.4.3"
pytest-asyncio = "^0.19.0"
pytest-cov = "^4.1.0"
pytest-split = "^0.8.2"
pytest-xdist = "^3.5.0"
asgi-lifespan = "^2.1.0"
[tool.poetry.group.dev.dependencies]
debugpy = "^1.8.1"
ariadne-codegen = "0.7.1"
pytz = "^2024.1"
respx = "^0.21.1"
rich = "^13.7.1"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.pytest.ini_options]
asyncio_mode="auto"
[tool.mypy]
warn_return_any = "True"
warn_unused_configs = "True"
check_untyped_defs = "False" # TODO: Turn on
disallow_untyped_defs = "False" # TODO: Turn on
plugins = "pydantic.mypy"
[tool.flake8]
max-line-length = 999
exclude = [
".git", "__pycache__", ".mypy_cache", ".pytest_cache", ".venv", ".gitlab"
]
[tool.ariadne-codegen]
target_package_name = "autogenerated_graphql_client"
target_package_path = "mo_ldap_import_export/"
client_name = "GraphQLClient"
# Produced using: curl -O https://moradev.magentahosted.dk/graphql/v21/schema.graphql
schema_path = "schema.graphql"
queries_path = "queries.graphql"
plugins = [
# Return values directly when only a single top field is requested
"ariadne_codegen.contrib.shorter_results.ShorterResultsPlugin",
]
include_comments = false
[tool.ariadne-codegen.scalars.DateTime]
type = "datetime.datetime"
[tool.ariadne-codegen.scalars.UUID]
type = "uuid.UUID"
[tool.ariadne-codegen.scalars.CPR]
type = "..types.CPRNumber"
[tool.coverage.report]
omit = [
"mo_ldap_import_export/autogenerated_graphql_client/*",
"mo_ldap_import_export/depends.py",
]
[tool.deptry]
extend_exclude = [
"mo_ldap_import_export/autogenerated_graphql_client/*"
]
[tool.deptry.per_rule_ignores]
DEP002 = [
# pycryptodome is needed due to https://github.com/cannatag/ldap3/issues/1051
"pycryptodome",
# uvicorn is used by the Dockerfile
"uvicorn",
]