-
Notifications
You must be signed in to change notification settings - Fork 21
/
pyproject.toml
119 lines (106 loc) · 2.65 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
113
114
115
116
117
118
119
[tool.poetry]
name = "jira-bugzilla-integration"
version = "0"
description = "jira-bugzilla-integration"
authors = ["@mozilla/jbi-core"]
license = "MPL"
[tool.poetry.dependencies]
python = ">=3.12, <3.14"
fastapi = "^0.115.4"
pydantic = {version = "^2.9.2", extras = ["email"]}
uvicorn = {extras = ["standard"], version = "^0.32.0"}
atlassian-python-api = "^3.41.16"
dockerflow = {extras = ["fastapi"], version = "2024.4.2"}
Jinja2 = "^3.1.4"
sentry-sdk = {extras = ["fastapi"], version = "^2.18.0"}
pydantic-yaml = "^1.3.0"
backoff = "^2.2.1"
statsd = "^4.0.1"
requests = "^2.32.3"
pydantic-settings = "^2.6.1"
pypandoc = "^1.14"
[tool.poetry.group.dev.dependencies]
pre-commit = "^4.0.1"
coverage = {extras = ["toml"], version = "^7.6"}
mypy = "^1.13"
detect-secrets = "^1.5.0"
bandit = "^1.7.10"
pytest = "^8.3.3"
yamllint = "^1.35.1"
pytest-dotenv = "^0.5.2"
types-requests = "^2.32.0"
responses = "^0.25.3"
httpx = "^0.27.2"
factory-boy = "^3.3.1"
pytest-factoryboy = "^2.7.0"
ruff = "^0.7.3"
pytest-mock = "^3.14.0"
pytest-asyncio = "^0.24.0"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.ruff]
target-version = "py312"
lint.extend-select = ["I"]
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
[tool.pytest.ini_options]
testpaths = [
"tests/unit",
]
env_override_existing_values = true
env_files = [
".env.example"
]
markers = [
"no_mocked_bugzilla",
"no_mocked_jira",
]
[tool.mypy]
python_version = "3.13"
# Warn when returning Any from function with non-Any return
warn_return_any = true
plugins = "pydantic.mypy"
[[tool.mypy.overrides]]
module = ["ruamel", "bugzilla", "atlassian", "atlassian.rest_client", "statsd.defaults.env", "dockerflow.*"]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = [
"jbi.app"
]
disallow_any_generics = true
disallow_subclassing_any = true
disallow_untyped_calls = true
disallow_untyped_defs = true
disallow_incomplete_defs = true
check_untyped_defs = true
disallow_untyped_decorators = true
no_implicit_optional = true
warn_unused_ignores = true
warn_return_any = true
no_implicit_reexport = true
strict_equality = true
strict_concatenate = true
[tool.coverage]
# https://github.com/nedbat/coveragepy
[tool.coverage.run]
omit = [
'*/.local/*',
'/usr/*',
'*/.venv/*',
'*/.tox/*',
'*/virtualenvs/*',
]
[tool.coverage.report]
exclude_lines = [
"# noqa",
"raise NotImplementedError",
"pragma: no cover",
"def __repr__",
"if .debug:",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"logger.",
"from",
"import"
]