File: pyproject.toml

package info (click to toggle)
python-marshmallow-sqlalchemy 1.4.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 364 kB
  • sloc: python: 1,927; makefile: 13; sh: 8
file content (117 lines) | stat: -rw-r--r-- 4,216 bytes parent folder | download
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 = "sloria1@gmail.com" }]
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