Repository navigation
Expand file tree
/
Copy pathpyproject.toml
More file actions
108 lines (94 loc) · 2.14 KB
/
Copy pathpyproject.toml
File metadata and controls
108 lines (94 loc) · 2.14 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
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
[project]
name = "SOGo"
description = "SOGo 6 backend API server"
authors = [
{name = "Quentin Hivert", email = "quentin.hivert.fr@gmail.com"},
]
license = { text = "GPL-3.0-or-later" }
readme = "README.md"
dynamic = [ "version" ]
requires-python = ">=3.13,<4.0"
keywords = ["sogo", "webmail", "mail", "calendar"]
dependencies = [
"celery",
"click",
"cryptography",
"flask",
"flask-compress",
"flask-cors",
"flask-smorest",
"gunicorn",
"icalendar",
"marshmallow",
"mysql-connector-python",
"psycopg",
"pydantic",
"pydantic-settings",
"pyjwt",
"python-ldap",
"pytest-mock",
"redis",
"sievelib",
"types-smorest",
"yarl",
"passlib (>=1.7.4,<2.0.0)",
"argon2-cffi (>=25.1.0,<26.0.0)",
]
[tool.poetry]
version = "6.0.0-alpha2" # base version
packages = [
{ include = "app" },
]
exclude = ["tests"]
[tool.poetry.group.dev.dependencies]
pytest = "^9.0.0"
pytest-cov = "^7.0.0"
black = "^26.1"
pylint = "^4.0.0"
pre-commit = "^4.2.0"
mypy = "^1.17.1"
[tool.poetry.requires-plugins]
poetry-plugin-export = ">=1.8"
[tool.poetry.scripts]
# poetry run start
start = "app.run:main"
# poetry run agent
agent = "app.agent.run:main"
# poetry run agent-beat
agent-beat = "app.agent.run:beat"
[tool.pytest.ini_options]
testpaths = [
"tests"
]
[tool.pylint.basic]
module-naming-style="any"
class-naming-style="PascalCase"
method-naming-style="snake_case"
attr-naming-style="snake_case"
function-naming-style="snake_case"
variable-naming-style="snake_case"
argument-naming-style="snake_case"
disable= [
"missing-module-docstring",
"too-few-public-methods",
"pointless-string-statement",
"too-many-arguments",
"too-many-positional-arguments",
"unused-argument"
]
max-line-length=240
ignored-modules=["psycopg", "ldap"]
[tool.mypy]
disallow_untyped_defs = true
implicit_optional = true
disable_error_code = ["import-untyped"]
exclude = ["tests"]
[[tool.mypy.overrides]]
module = ["ldap.*"]
ignore_missing_imports = true
[tool.black]
line-length = 120
exclude = 'app/templates'