-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathpyproject.toml
More file actions
106 lines (95 loc) · 2.13 KB
/
pyproject.toml
File metadata and controls
106 lines (95 loc) · 2.13 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
[project]
name = "Finndersen.atlas-project-template"
description = "A project template for managing relational database schema migrations using the Atlas tool."
authors = [
{ name = "Finn Andersen" }
]
readme = "README.md"
requires-python = ">=3.11, <3.13"
dynamic = ["version"]
dependencies = [
"sqlalchemy>=2.0,<3.0",
"atlas-provider-sqlalchemy>=0.2.2",
"aws-xray-sdk==2.14.0",
"requests==2.32.2",
"aws-embedded-metrics==3.2.0",
"aws-lambda-powertools==3.1.0",
"boto3==1.35.45",
"psycopg[binary]==3.2.3",
]
[project.optional-dependencies]
dev = [
"pyright",
"cfn-lint",
"pytest",
"pytest-cov",
"pytest-dotenv",
"ruff",
"types-requests",
"testcontainers"
]
[project.urls]
repository = "https://github.com/Finndersen/atlas-project-template.git"
[build-system]
requires = ["setuptools>=64", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools.packages.find]
where = ["src"]
exclude = ["tests*", "deployment*"]
[tool.pytest.ini_options]
testpaths = [
"tests",
]
pythonpath = [
".", "src",
]
env_files = [
"tests/.test.env"
]
env_override_existing_values = 1
addopts = """\
--cov src \
--cov-fail-under 100 \
--cov-branch \
--cov-report term-missing \
--verbose
--import-mode=importlib
"""
[tool.pyright]
include = ["src"]
[tool.ruff]
line-length = 120
target-version = "py312"
src = ["src", "."]
[tool.ruff.lint]
select = [
# pycodestyle
"E",
"W",
# Pyflakes
"F",
# pyupgrade
"UP",
# flake8-bugbear
"B",
# flake8-simplify
"SIM",
# isort
"I",
# No implicit namespace packages
"INP001"
]
# A lot of rules are in preview, enabled for feature parity with flake8
preview = true
[tool.ruff.lint.per-file-ignores]
# Ignore `INP001` rule everywhere except for the `src/` and `tests/` directories.
"!**/{src,tests}/**/*.py" = ["INP001"]
# Ignore " Module level import not at top of file" in load_models.py
"load_models.py" = ["E402"]
[tool.coverage.report]
exclude_also = [
"@(abc\\.)?abstractmethod",
"class .*\\bProtocol(\\[.*\\])?\\):",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
]