-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpyproject.toml
114 lines (100 loc) · 3.5 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
[tool.poetry]
name = "cmem-plugin-base"
version = "0.0.0"
license = "Apache-2.0"
description = "Base classes for developing eccenca Corporate Memory plugins."
authors = ["eccenca GmbH <[email protected]>"]
maintainers = [
"Sebastian Tramp <[email protected]>",
"Robert Isele <[email protected]>"
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Plugins",
"Topic :: Software Development :: Libraries :: Python Modules"
]
readme = "README-public.md"
keywords = [
"eccenca Corporate Memory", "plugins", "DataIntegration"
]
homepage = "https://github.com/eccenca/cmem-plugin-base"
[tool.poetry.dependencies]
python = "^3.11"
cmem-cmempy = ">=23.3.0"
python-ulid = "^2.2.0"
[tool.poetry.group.dev.dependencies]
genbadge = {extras = ["coverage"], version = "^1.1.1"}
mypy = "^1.11.1"
pip = "^24"
pytest = "^8.3.2"
pytest-cov = "^5.0.0"
pytest-dotenv = "^0.5.2"
pytest-html = "^4.1.1"
pytest-memray = { version = "^1.7.0", markers = "platform_system != 'Windows'" }
ruff = "^0.6.1"
safety = "^1.10.3"
types-requests = "^2.32.0.20240907"
[build-system]
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
build-backend = "poetry_dynamic_versioning.backend"
[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
dirty = true
bump = true
[tool.mypy]
warn_return_any = true
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = [
"cmem_plugin_base.dataintegration.context",
"cmem_plugin_base.dataintegration.plugins",
"cmem_plugin_base.dataintegration.types"
]
disable_error_code = "empty-body"
[tool.pytest.ini_options]
addopts = ""
[tool.coverage.report]
exclude_also = [
"def __repr__",
"if self.debug:",
"if settings.DEBUG",
"raise AssertionError",
"raise NotImplementedError",
"if TYPE_CHECKING:",
"class .*\\bProtocol\\):",
"@(abc\\.)?abstractmethod",
]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.format]
line-ending = "lf" # Use `\n` line endings for all files
[tool.ruff.lint]
select = ["ALL"]
ignore = [
"ANN101", # Missing type annotation for self in method
"ANN204", # Missing return type annotation for special method `__init__`
"COM812", # missing-trailing-comma
"D107", # Missing docstring in __init__
"D203", # [*] 1 blank line required before class docstring
"D211", # No blank lines allowed before class docstring
"D213", # Multi-line docstring summary should start at the second line
"D400", # First line should end with a period
"D415", # First line should end with a period, question mark, or exclamation point
"EM", # Exception texts - https://docs.astral.sh/ruff/rules/#flake8-errmsg-em
"FBT", # The Boolean Trap - https://docs.astral.sh/ruff/rules/#flake8-boolean-trap-fbt
"FIX002", # Allow to add TODO notes in the code
"G004", # Logging statement uses f-string
"ISC001", # single-line-implicit-string-concatenation
"PD", # opinionated linting for pandas code
"S101", # use of assert detected
"TRY003", # Avoid specifying long messages outside the exception class
"ARG002" # Checks for the presence of unused arguments in instance method definitions.
]
[tool.ruff.lint.per-file-ignores]
"**/{tests}/*" = [
"PLR2004", # Checks for the use of unnamed numerical constants ("magic") values in comparisons.
"PT009", # Use a regular `assert` instead of unittest-style `assertListEqual`
"PT027" # Use pytest.raises instead of unittest-style {assertion}
]