-
Notifications
You must be signed in to change notification settings - Fork 95
/
Copy pathpyproject.toml
117 lines (107 loc) · 4.12 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
[project]
name = "marshmallow-sqlalchemy"
version = "1.4.1"
description = "SQLAlchemy integration with the marshmallow (de)serialization library"
readme = "README.rst"
license = { file = "LICENSE" }
maintainers = [{ name = "Steven Loria", email = "[email protected]" }]
classifiers = [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
]
requires-python = ">=3.9"
dependencies = [
"marshmallow>=3.18.0",
"SQLAlchemy>=1.4.40,<3.0",
"typing-extensions; python_version < '3.10'",
]
[project.urls]
Changelog = "https://marshmallow-sqlalchemy.readthedocs.io/en/latest/changelog.html"
Funding = "https://opencollective.com/marshmallow"
Issues = "https://github.com/marshmallow-code/marshmallow-sqlalchemy/issues"
Source = "https://github.com/marshmallow-code/marshmallow-sqlalchemy"
[project.optional-dependencies]
docs = [
"furo==2024.8.6",
"sphinx-copybutton==0.5.2",
"sphinx-design==0.6.1",
"sphinx-issues==5.0.0",
"sphinx==8.1.3",
"sphinxext-opengraph==0.9.1",
]
tests = ["pytest<9", "pytest-lazy-fixtures"]
dev = ["marshmallow-sqlalchemy[tests]", "tox", "pre-commit>=3.5,<5.0"]
[build-system]
requires = ["flit_core<4"]
build-backend = "flit_core.buildapi"
[tool.flit.sdist]
include = ["docs/", "tests/", "CHANGELOG.rst", "CONTRIBUTING.rst", "tox.ini"]
exclude = ["docs/_build/"]
[tool.ruff]
src = ["src", "tests"]
fix = true
show-fixes = true
output-format = "full"
[tool.ruff.format]
docstring-code-format = true
[tool.ruff.lint]
# use all checks available in ruff except the ones explicitly ignored below
select = ["ALL"]
ignore = [
"A005", # "module {name} shadows a Python standard-library module"
"ANN", # let mypy handle annotation checks
"ARG", # unused arguments are common w/ interfaces
"C901", # don't enforce complexity level
"COM", # let formatter take care commas
"D", # don't require docstrings
"DTZ007", # ignore false positives due to https://github.com/astral-sh/ruff/issues/1306
"E501", # leave line-length enforcement to formatter
"EM", # allow string messages in exceptions
"FIX", # allow "FIX" comments in code
"INP001", # allow Python files outside of packages
"N804", # metaclass methods aren't properly handled by this rule
"N806", # allow uppercase variable names for variables that are classes
"PERF203", # allow try-except within loops
"PLR0912", # "Too many branches"
"PLR0913", # "Too many arguments"
"PLR2004", # "Magic value used in comparison"
"PTH", # don't require using pathlib instead of os
"RUF012", # allow mutable class variables
"SIM102", # Sometimes nested ifs are more readable than if...and...
"SIM105", # "Use `contextlib.suppress(...)` instead of `try`-`except`-`pass`"
"SIM108", # sometimes if-else is more readable than a ternary
"SLF001", # allow private member access
"TD", # allow TODO comments to be whatever we want
"TRY003", # allow long messages passed to exceptions
"TRY004", # allow ValueError for invalid argument types
]
[tool.ruff.lint.per-file-ignores]
"tests/*" = [
"ARG", # unused arguments are fine in tests
"C408", # allow dict() instead of dict literal
"DTZ", # allow naive datetimes
"FBT003", # allow boolean positional argument
"N802", # allow uppercasing in test names, e.g. test_convert_TSVECTOR
"N803", # fixture names might be uppercase
"PLR0915", # allow lots of statements
"PT007", # ignore false positives due to https://github.com/astral-sh/ruff/issues/14743
"PT011", # don't require match when using pytest.raises
"S", # allow asserts
"SIM117", # allow nested with statements because it's more readable sometimes
]
[tool.mypy]
files = ["src", "tests"]
ignore_missing_imports = true
warn_unreachable = true
warn_unused_ignores = true
warn_redundant_casts = true
no_implicit_optional = true
[[tool.mypy.overrides]]
module = "tests.*"
check_untyped_defs = true