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
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python: ["3.10", "3.11", "3.12", "3.13"]
python: ["3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v7
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
python: ["3.10", "3.11", "3.12", "3.13"]
python: ["3.11", "3.12", "3.13"]

steps:
- uses: actions/checkout@v7
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ See [readthedocs] for installation instructions that are automatically tested. Y

### Installation Notes

`labthings-fastapi` supports **Python 3.10, 3.11, 3.12, and 3.13**. The upper limit is strictly capped at 3.13 due to current `pydantic-core` dependencies.
`labthings-fastapi` supports **Python 3.11, 3.12, and 3.13**. The upper limit is strictly capped at 3.13 due to current `pydantic-core` dependencies.

> **Note: Windows Installations on devices with ARM processors**
>
Expand Down
123 changes: 75 additions & 48 deletions dev-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,13 @@ babel==2.18.0
# via sphinx
beautifulsoup4==4.15.0
# via sphinx-toolbox
boolean-py==5.0
# via license-expression
cachecontrol==0.14.4
# via sphinx-toolbox
certifi==2026.7.22
# via
# pip-audit
# sphinx-toolbox
certifi==2026.10.23
# via
# httpcore
# httpx
Expand All @@ -55,13 +59,17 @@ click==8.5.0
# uvicorn
codespell==2.4.3
# via labthings-fastapi
coverage==7.16.2
coverage==7.17.0
# via pytest-cov
cyclonedx-python-lib==11.12.0
# via pip-audit
defusedxml==0.7.1
# via py-serializable
detect-installer==0.2.1
# via fastapi-cloud-cli
dict2css==0.6.0
# via sphinx-toolbox
dnspython==2.8.0
dnspython==2.9.0
# via email-validator
docstring-parser-fork==0.0.16
# via pydoclint
Expand All @@ -74,7 +82,7 @@ docutils==0.21.2
# sphinx-rtd-theme
# sphinx-tabs
# sphinx-toolbox
domdf-python-tools==3.10.0
domdf-python-tools==3.11.0
# via
# apeye
# apeye-core
Expand All @@ -84,10 +92,6 @@ email-validator==2.3.0
# via
# fastapi
# pydantic
exceptiongroup==1.3.1
# via
# anyio
# pytest
fastapi==0.135.4
# via labthings-fastapi
fastapi-cli==0.0.32
Expand All @@ -96,7 +100,7 @@ fastapi-cloud-cli==0.26.0
# via fastapi-cli
fastar==0.12.0
# via fastapi-cloud-cli
filelock==4.0.12
filelock==4.2.4
# via
# cachecontrol
# sphinx-toolbox
Expand All @@ -122,15 +126,15 @@ html5lib==1.1
# via sphinx-toolbox
httpcore==1.0.9
# via httpx
httpcore2==2.13.1
httpcore2==2.16.0
# via httpx2
httptools==0.8.0
httptools==0.9.0
# via uvicorn
httpx==0.28.1
# via
# fastapi
# fastapi-cloud-cli
httpx2==2.13.1
httpx2==2.16.0
# via labthings-fastapi
idna==3.20
# via
Expand All @@ -156,6 +160,7 @@ jinja2==3.1.6
# sphinx
# sphinx-autoapi
# sphinx-jinja2-compat
# sphinx-prompt
jsonschema==4.26.0
# via
# labthings-fastapi
Expand All @@ -164,6 +169,8 @@ jsonschema-specifications==2025.9.1
# via jsonschema
librt==0.16.0
# via mypy
license-expression==30.4.4
# via cyclonedx-python-lib
markdown-it-py==3.0.0
# via
# mdit-py-plugins
Expand All @@ -179,7 +186,7 @@ mdit-py-plugins==0.6.1
# via myst-parser
mdurl==0.1.2
# via markdown-it-py
msgpack==1.2.3
msgpack==1.2.4
# via cachecontrol
mypy==1.20.2
# via labthings-fastapi
Expand All @@ -189,38 +196,54 @@ myst-parser==4.0.1
# via labthings-fastapi
natsort==8.4.0
# via domdf-python-tools
numpy==2.2.6
numpy==2.4.6
# via labthings-fastapi
packageurl-python==0.17.6
# via cyclonedx-python-lib
packaging==26.3
# via
# pip-audit
# pip-requirements-parser
# pytest
# sphinx
pathspec==1.1.1
# via mypy
pillow==12.3.0
pillow==13.0.0
# via labthings-fastapi
platformdirs==4.12.4
# via apeye
pluggy==1.6.0
pip==26.2.2
# via pip-api
pip-api==0.0.35
# via pip-audit
pip-audit==2.10.1
# via labthings-fastapi
pip-requirements-parser==32.0.1
# via pip-audit
platformdirs==4.13.6
# via
# apeye
# pip-audit
pluggy==1.7.0
# via
# pytest
# pytest-cov
py-serializable==2.1.0
# via cyclonedx-python-lib
pycodestyle==2.15.0
# via flake8
pydantic==2.14.0
pydantic==2.14.1
# via
# fastapi
# fastapi-cloud-cli
# labthings-fastapi
# pydantic-extra-types
# pydantic-settings
pydantic-core==2.50.0
pydantic-core==2.50.1
# via pydantic
pydantic-extra-types==2.11.1
# via fastapi
pydantic-settings==2.15.0
pydantic-settings==2.16.1
# via fastapi
pydoclint==0.11.0
pydoclint==0.11.1
# via labthings-fastapi
pyflakes==4.0.3
# via flake8
Expand All @@ -232,14 +255,16 @@ pygments==2.21.0
# sphinx
# sphinx-prompt
# sphinx-tabs
pytest==9.1.1
pyparsing==3.3.3
# via pip-requirements-parser
pytest==9.2.0
# via
# labthings-fastapi
# pytest-cov
# pytest-mock
pytest-cov==7.1.0
# via labthings-fastapi
pytest-mock==3.16.0
pytest-mock==3.17.0
# via labthings-fastapi
python-dotenv==1.2.4
# via
Expand All @@ -262,11 +287,14 @@ requests==2.34.2
# via
# apeye
# cachecontrol
# pip-audit
# sphinx
# sphinx-prompt
restructuredtext-lint==2.0.2
# via flake8-rst-docstrings
rich==15.0.0
# via
# pip-audit
# rich-toolkit
# typer
rich-toolkit==0.20.6
Expand All @@ -277,25 +305,31 @@ rignore==0.8.1
# via fastapi-cloud-cli
roman==5.2
# via sphinx-toolbox
rpds-py==0.30.0
roman-numerals==4.1.0
# via roman-numerals-py
roman-numerals-py==4.1.0
# via sphinx
rpds-py==2026.9.1
# via
# jsonschema
# referencing
ruamel-yaml==0.19.1
# via sphinx-toolbox
ruff==0.16.10
ruff==0.17.3
# via labthings-fastapi
sentry-sdk==2.71.0
sentry-sdk==2.73.0
# via fastapi-cloud-cli
shellingham==1.5.4
# via typer
six==1.17.0
# via html5lib
snowballstemmer==3.1.1
# via sphinx
soupsieve==2.10
sortedcontainers==2.4.0
# via cyclonedx-python-lib
soupsieve==3.0.4
# via beautifulsoup4
sphinx==8.1.3
sphinx==8.2.3
# via
# autodocsumm
# labthings-fastapi
Expand All @@ -309,11 +343,11 @@ sphinx==8.1.3
# sphinxcontrib-jquery
sphinx-autoapi==3.8.1
# via labthings-fastapi
sphinx-autodoc-typehints==3.0.1
sphinx-autodoc-typehints==3.5.2
# via sphinx-toolbox
sphinx-jinja2-compat==0.4.1
# via sphinx-toolbox
sphinx-prompt==1.9.0
sphinx-prompt==1.10.2
# via sphinx-toolbox
sphinx-rtd-theme==3.1.0
# via labthings-fastapi
Expand All @@ -329,31 +363,25 @@ sphinxcontrib-htmlhelp==2.1.0
# via sphinx
sphinxcontrib-jquery==4.1
# via sphinx-rtd-theme
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-jsmath==2.0.0
# via sphinx
sphinxcontrib-qthelp==2.0.0
# via sphinx
sphinxcontrib-serializinghtml==2.0.0
# via sphinx
sphobjinv==2.4
# via labthings-fastapi
starlette==1.7.0
starlette==1.10.0
# via fastapi
tabulate==0.10.0
# via sphinx-toolbox
tinycss2==1.5.1
# via dict2css
tomli==2.5.0
# via
# coverage
# fastapi-cli
# flake8-pyproject
# labthings-fastapi
# mypy
# pydoclint
# pytest
# sphinx
truststore==0.10.4
# via pip-audit
tomli-w==1.2.0
# via pip-audit
truststore==0.10.5
# via
# httpcore2
# httpx2
Expand All @@ -366,23 +394,22 @@ types-jsonschema==4.26.0.20261006
typing-extensions==4.16.0
# via
# anyio
# astroid
# beautifulsoup4
# cyclonedx-python-lib
# domdf-python-tools
# exceptiongroup
# fastapi
# httpx2
# labthings-fastapi
# mypy
# pydantic
# pydantic-core
# pydantic-extra-types
# pydantic-settings
# referencing
# rich-toolkit
# sphinx-toolbox
# starlette
# typing-inspection
# uvicorn
typing-inspection==0.4.4
# via
# fastapi
Expand All @@ -406,7 +433,7 @@ webencodings==0.6.1
# via
# html5lib
# tinycss2
websockets==16.1.1
websockets==17.3
# via uvicorn
zeroconf==0.151.5
# via labthings-fastapi
2 changes: 1 addition & 1 deletion docs/source/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Installation

``pip install labthings-fastapi``

``labthings-fastapi`` supports **Python 3.10, 3.11, 3.12, and 3.13**. The upper limit is strictly capped at 3.13 due to current ``pydantic-core`` dependencies.
``labthings-fastapi`` supports **Python 3.11, 3.12, and 3.13**. The upper limit is strictly capped at 3.13 due to current ``pydantic-core`` dependencies.

.. include:: _windows_arm_note.rst

Expand Down
2 changes: 1 addition & 1 deletion docs/source/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ You can find out more about contributing code in our [Contributor Guidelines].

Here is what the CI pipeline tests:

* **Matrix Testing:** We run the core test suite (`pytest`) and static type checks (`mypy`) across Python versions 3.10, 3.11, 3.12, and 3.13.
* **Matrix Testing:** We run the core test suite (`pytest`) and static type checks (`mypy`) across Python versions 3.11, 3.12, and 3.13.
* **Code Quality & Security:** The pipeline runs `ruff` (formatting and linting), `flake8` (docstrings), `codespell` (spelling), and a `pip-audit` to check for dependency vulnerabilities.
* **Coverage:** We track code coverage. A report is generated on your PR to show if your changes increased or decreased overall test coverage.
* **Dependency Checks:** We run the tests twice: once with pinned dependencies (`dev-requirements.txt`) for reproducibility, and once with unpinned dependencies (`.[dev]`) to catch upstream breakages early.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/tutorial/installing_labthings.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ It is also possible to install LabThings from source, by cloning the GitHub repo
Installation Notes
++++++++++++++++++

``labthings-fastapi`` supports **Python 3.10, 3.11, 3.12, and 3.13**. The upper limit is strictly capped at 3.13 due to current ``pydantic-core`` dependencies.
``labthings-fastapi`` supports **Python 3.11, 3.12, and 3.13**. The upper limit is strictly capped at 3.13 due to current ``pydantic-core`` dependencies.

.. include:: ../_windows_arm_note.rst

Expand Down
Loading
Loading