Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
8b380c1
Bump sphinx from 8.2.3 to 9.1.0
dependabot[bot] Jan 19, 2026
84db2aa
Bump doc8
adamtheturtle Jan 19, 2026
cf32a76
Support Python 3.14
adamtheturtle Jan 27, 2026
f1fb4bf
Merge remote-tracking branch 'origin/main' into support-python-3.14
adamtheturtle Jan 27, 2026
8d494ba
Don't bump Sphinx
adamtheturtle Jan 27, 2026
0642472
Fix secrets file lookup for multi-Python matrix
adamtheturtle Jan 27, 2026
bfc5cf0
Support only 3.14
adamtheturtle Jan 27, 2026
9a342f4
Fix ruff
adamtheturtle Jan 27, 2026
6276f37
Revert "Fix ruff"
adamtheturtle Jan 28, 2026
8514ff2
Ignore ruff TC rules until beartype supports TYPE_CHECKING
adamtheturtle Jan 28, 2026
152c09a
Remove runtime beartype application to test functions
adamtheturtle Jan 28, 2026
22a3e54
Merge branch 'main' into support-python-3.14
adamtheturtle Apr 25, 2026
bfbe2f4
Drop pytest-beartype-tests due to Python 3.14 annotation issue
adamtheturtle Apr 25, 2026
52afd25
[pre-commit.ci lite] apply automatic fixes
pre-commit-ci-lite[bot] Apr 25, 2026
a82561a
Apply ruff format (PEP 758 except syntax)
adamtheturtle Apr 25, 2026
5cbbc45
Restore pytest-beartype-tests; disable plugin in repeated pytest.main…
adamtheturtle Apr 25, 2026
559a438
Ignore .claude/scheduled_tasks.lock
adamtheturtle Apr 25, 2026
8efb08b
Add 'stringify' to spelling dict
adamtheturtle Apr 25, 2026
da57691
Merge remote-tracking branch 'origin/main' into support-python-3.14
adamtheturtle Apr 25, 2026
fbd452c
Use real subprocess for pytest collection to avoid plugin state accum…
adamtheturtle Apr 25, 2026
86d13cb
Add new tests to CI matrix; exclude meta-tests from collected-once check
adamtheturtle Apr 25, 2026
49b6aa0
Merge remote-tracking branch 'origin/main' into support-python-3.14
adamtheturtle Apr 25, 2026
dfadbc6
Restore Python 3.14 in test workflow matrix after merge
adamtheturtle Apr 25, 2026
41b05c2
Use real subprocess in test_custom_linters to avoid beartype state ac…
adamtheturtle Apr 25, 2026
d79bcdb
Add 'subprocess' to spelling dict
adamtheturtle Apr 26, 2026
84346a0
Merge remote-tracking branch 'origin/main' into support-python-3.14
adamtheturtle Apr 26, 2026
2165b37
Re-apply subprocess collection: in-process approach fails on Python 3…
adamtheturtle Apr 26, 2026
b1e4d68
Bump pytest-beartype-tests to 2026.4.26; revert subprocess workaround…
adamtheturtle Apr 26, 2026
fafd351
Run coverage tool on Python 3.14 to parse PEP 758 except syntax
adamtheturtle Apr 26, 2026
bffdd97
Set Python 3.14 via setup-uv python-version on coverage job
adamtheturtle Apr 26, 2026
9702313
Drop comment on coverage job python-version
adamtheturtle Apr 26, 2026
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
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
build:
strategy:
matrix:
python-version: ['3.13']
python-version: ['3.14']
platform: [ubuntu-latest, windows-latest]
hook-stage: [pre-commit, pre-push, manual]

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@ jobs:
with:
documentation_path: docs/source
pyproject_extras: dev
python_version: '3.13'
python_version: '3.14'
sphinx_build_options: -W
publish: ${{ github.ref_name == 'main' }}
7 changes: 4 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ['3.13']
python-version: ['3.14']
ci_pattern:
- tests/mock_vws/test_query.py::TestContentType
- tests/mock_vws/test_query.py::TestSuccess
Expand Down Expand Up @@ -191,7 +191,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.13']
python-version: ['3.14']
platform: [ubuntu-latest]

steps:
Expand Down Expand Up @@ -237,7 +237,7 @@ jobs:
runs-on: windows-latest
strategy:
matrix:
python-version: ['3.13']
python-version: ['3.14']

steps:
- uses: actions/checkout@v6
Expand Down Expand Up @@ -291,6 +291,7 @@ jobs:
with:
enable-cache: true
cache-dependency-glob: '**/pyproject.toml'
python-version: '3.14'

- uses: actions/download-artifact@v8
with:
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -76,4 +76,4 @@ This includes details on how to use the mock, options, and details of the differ
:target: https://github.com/VWS-Python/vws-python-mock/actions
.. |PyPI| image:: https://badge.fury.io/py/VWS-Python-Mock.svg
:target: https://badge.fury.io/py/VWS-Python-Mock
.. |minimum-python-version| replace:: 3.13
.. |minimum-python-version| replace:: 3.14
14 changes: 10 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ license = "MIT"
authors = [
{ name = "Adam Dangoor", email = "adamdangoor@gmail.com" },
]
requires-python = ">=3.13"
requires-python = ">=3.14"
classifiers = [
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Framework :: Pytest",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
Comment thread
adamtheturtle marked this conversation as resolved.
]
dynamic = [
"version",
Expand Down Expand Up @@ -76,7 +76,7 @@ optional-dependencies.dev = [
"pyright==1.1.409",
"pyroma==5.0.1",
"pytest==9.0.3",
"pytest-beartype-tests==2026.4.20",
"pytest-beartype-tests==2026.4.26",
"pytest-retry==1.7.0",
"pytest-xdist==3.8.0",
"pyyaml==6.0.3",
Expand Down Expand Up @@ -166,6 +166,12 @@ lint.ignore = [
# Ignore 'too-many-*' errors as they seem to get in the way more than
# helping.
"PLR0913",
# Beartype requires imports to be available at runtime, not just for type
# checking. See https://github.com/beartype/beartype/discussions/594
# for when beartype will support `if TYPE_CHECKING` imports.
"TC001",
"TC002",
"TC003",
]
lint.per-file-ignores."ci/test_custom_linters.py" = [
# Allow asserts in tests.
Expand Down Expand Up @@ -330,7 +336,7 @@ per_rule_ignores.DEP002 = [
[tool.pyproject-fmt]
indent = 4
keep_full_version = true
max_supported_python = "3.13"
max_supported_python = "3.14"

[tool.mypy]
strict = true
Expand Down
2 changes: 2 additions & 0 deletions spelling_private_dict.txt
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@ respx
rfc
rgb
str
stringify
subprocess
timestamp
todo
travis
Expand Down
2 changes: 1 addition & 1 deletion src/mock_vws/_flask_server/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/astral-sh/uv:0.10.4-python3.13-trixie-slim AS base
FROM ghcr.io/astral-sh/uv:0.11.7-python3.14-trixie-slim AS base
# We set this pretend version as we do not have Git in our path, and we do
# not care enough about having the version correct inside the Docker container
# to install it.
Expand Down
2 changes: 1 addition & 1 deletion src/mock_vws/_flask_server/healthcheck.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def flask_app_healthy(port: int) -> bool:
try:
conn.request(method="GET", url="/some-random-endpoint")
response = conn.getresponse()
except (TimeoutError, http.client.HTTPException, socket.gaierror):
except TimeoutError, http.client.HTTPException, socket.gaierror:
Comment thread
adamtheturtle marked this conversation as resolved.
return False
finally:
conn.close()
Expand Down
2 changes: 1 addition & 1 deletion src/mock_vws/target_raters.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def _get_brisque_target_tracking_rating(*, image_content: bytes) -> int:
image_tensor = image_tensor.permute(2, 0, 1).unsqueeze(dim=0)
try:
brisque_score = brisque(x=image_tensor, data_range=255)
except (AssertionError, IndexError):
except AssertionError, IndexError:
Comment thread
adamtheturtle marked this conversation as resolved.
return 0
return math.ceil(int(brisque_score.item()) / 20)

Expand Down
Loading