Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ build-backend = "flit_core.buildapi"

[dependency-groups]
docs = ["Sphinx", "sphinx-issues", "furo"]
lint = ["pre-commit>=3.5,<5.0"]
tests = [
"pytest",
"pytest-asyncio",
Expand Down Expand Up @@ -96,7 +97,12 @@ test-all-frameworks = [
{ include-group = "test-aiohttp" },
]

dev = ["tox", "pre-commit>=3.5,<5.0", { include-group = "tests" }]
dev = [
{ include-group = "tests" },
{ include-group = "lint" },
"tox",
"tox-uv",
]

[tool.uv]
exclude-newer = "1 week"
Expand Down
35 changes: 22 additions & 13 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
[tox]
requires = tox-uv
envlist=
lint
py{310,311,312,313,314}-marshmallow
Expand All @@ -7,29 +8,36 @@ envlist=
docs

[testenv]
runner = uv-venv-lock-runner
dependency_groups = test-all-frameworks
deps =
marshmallow: marshmallow>=4.0.0,<5.0.0
marshmallowdev: https://github.com/marshmallow-code/marshmallow/archive/dev.tar.gz
lowest: flask==3.1.0
lowest: Django==5.2.0
lowest: bottle==0.13.0
lowest: tornado==6.5.0
lowest: pyramid==2.0.2
lowest: falcon==4.1.0
lowest: aiohttp==3.13.0
lowest: marshmallow==4.0.0
commands = pytest {posargs}

[testenv:py314-marshmallowdev]
runner = uv-venv-runner
deps = https://github.com/marshmallow-code/marshmallow/archive/dev.tar.gz

[testenv:py310-lowest]
runner = uv-venv-runner
deps =
flask==3.1.0
Django==5.2.0
bottle==0.13.0
tornado==6.5.0
pyramid==2.0.2
falcon==4.1.0
aiohttp==3.13.0
marshmallow==4.0.0

[testenv:lint]
deps = pre-commit~=4.0
dependency_groups = lint
skip_install = true
commands = pre-commit run --all-files

# a separate `mypy` target which runs `mypy` in an environment with
# `webargs` and `marshmallow` both installed is a valuable safeguard against
# issues in which `mypy` running on every file standalone won't catch things
[testenv:mypy]
runner = uv-venv-runner
deps = mypy==1.11.0
extras = frameworks
commands = mypy src/ {posargs}
Expand All @@ -41,12 +49,13 @@ commands = sphinx-build docs/ {posargs:docs/_build}
; Below tasks are for development only (not run in CI)

[testenv:docs-serve]
runner = uv-venv-runner
deps = sphinx-autobuild
dependency_groups = docs
commands = sphinx-autobuild --port=0 --open-browser --delay=2 docs/ docs/_build {posargs} --watch src --watch README.rst

[testenv:readme-serve]
runner = uv-venv-runner
deps = restview
skip_install = true
commands = restview README.rst

60 changes: 59 additions & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.