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
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,4 @@ Search open/closed issues before submitting. Someone may have reported the same
* Operating system and version: [e.g. Windows 11 24H2, Ubuntu Linux 24.04]
* NI-DAQmx version: [e.g. 2024 Q4]
* `nidaqmx-python` version: [e.g. 1.0.1]
* Python version [e.g. 3.9]
* Python version [e.g. 3.11]
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ jobs:
uses: ni/python-actions/setup-python@9768589f3e50672173dad75a6fc181e4a85d33fa # v0.7.0
id: setup-python
with:
# The codegen scripts require Python 3.9 or later.
python-version: "3.9"
# The codegen scripts require Python 3.10 or later.
python-version: "3.10"
- name: Set up Poetry
uses: ni/python-actions/setup-poetry@9768589f3e50672173dad75a6fc181e4a85d33fa # v0.7.0
- name: Cache virtualenv (all extras)
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/run_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "pypy3.10", "pypy3.11"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "pypy3.10", "pypy3.11"]
# Fail-fast skews the pass/fail ratio and seems to make pytest produce
# incomplete JUnit XML results.
fail-fast: false
Expand Down Expand Up @@ -51,7 +51,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
python-version: ["3.9", "3.13", "pypy3.11"]
python-version: ["3.10", "3.13", "pypy3.11"]
steps:
- name: Check out repo
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ All notable changes to this project will be documented in this file.
* ...

* ### Major Changes
* ...
* Removed support for Python 3.9.

* ### Known Issues
* ...
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ through our [GitHub issues page](http://github.com/ni/nidaqmx-python/issues).
6. Make your change.
7. Once the necessary changes are done, update the auto-generated code using `poetry run python src/codegen --dest generated/nidaqmx`. This will ensure that the latest files are present in the ``generated`` folder.
> **Note**
> The codegen scripts require Python 3.9 or later.
> The codegen scripts require Python 3.10 or later.
8. Run all the regression tests again (including the tests you just added), and confirm that they all
pass.
9. Run `poetry run ni-python-styleguide lint` to check that the updated code follows NI's Python coding
Expand Down Expand Up @@ -91,7 +91,7 @@ $ poetry run pytest -v tests/benchmark --device Dev1

Or you can use tox (which skips the gRPC variants):
```
poetry run -- tox -e py39-base-benchmark -- --device Dev1
poetry run -- tox -e py310-base-benchmark -- --device Dev1
```

The benchmarks are designed to run on a 6363 device. If you don't specify a specific
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ system.
Python Version Support
----------------------

**nidaqmx** supports CPython 3.9+.
**nidaqmx** supports CPython 3.10+.

**nidaqmx** supports PyPy3 for non-gRPC use cases. For the status of PyPy support for gRPC,
see `PyPy support (grpc/grpc#4221) <https://github.com/grpc/grpc/issues/4221>`_.
Expand Down
654 changes: 8 additions & 646 deletions poetry.lock

Large diffs are not rendered by default.

20 changes: 6 additions & 14 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ classifiers = [
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand All @@ -31,7 +30,7 @@ maintainers = [
{name = "Maxx Boehme", email = "[email protected]"},
{name = "Brad Keryan", email = "[email protected]"},
]
requires-python = '>=3.9,<4.0'
requires-python = '>=3.10,<4.0'

[project.urls]
repository = "https://github.com/ni/nidaqmx-python"
Expand All @@ -52,7 +51,7 @@ requires-poetry = '>=2.1,<3.0'
[tool.poetry.dependencies]
# NumPy 2.0.x is the last version that supports Python 3.9, but it crashes with Python 3.13.
numpy = [
{ version = ">=1.22", python = ">=3.9,<3.13" },
{ version = ">=1.22", python = ">=3.10,<3.13" },
{ version = ">=2.1", python = "^3.13" }
]
deprecation = ">=2.1"
Expand All @@ -68,7 +67,7 @@ nitypes = {version=">=0.1.0dev10", allow-prereleases=true}
[tool.poetry.group.codegen.dependencies]
Mako = "^1.2"
grpcio-tools = [
{ version = "1.49.1", python = ">=3.9,<3.12" },
{ version = "1.49.1", python = ">=3.10,<3.12" },
{ version = "1.59.0", python = ">=3.12,<3.13" },
{ version = "1.67.0", python = ">=3.13,<3.14" },
{ version = "1.75.1", python = "^3.14" },
Expand All @@ -81,7 +80,6 @@ optional = true
[tool.poetry.group.docs.dependencies]
# The latest Sphinx requires a recent Python version.
Sphinx = [
{ version = ">=7.4", python = ">=3.9,<3.10" },
{ version = ">=8.1", python = ">=3.10,<3.11" },
{ version = ">=8.2", python = "^3.11" },
]
Expand All @@ -93,10 +91,7 @@ toml = ">=0.10.2"
optional = true

[tool.poetry.group.examples.dependencies]
matplotlib = [
{ version = ">=3.9.0,<3.10.0", python = ">=3.9,<3.10" },
{ version = ">=3.9.0", python = "^3.10" },
]
matplotlib = ">=3.9.0"
nptdms = ">=1.9.0"

[tool.poetry.group.lint.dependencies]
Expand All @@ -114,13 +109,10 @@ pytest-cov = ">=4.0"
pytest-mock = ">=3.0"
pykka = ">=3.0"
tox = ">=3.24"
click = [
{ version = ">=8.0.0,<8.2.0", python = ">=3.9,<3.10" },
{ version = ">=8.0.0", python = "^3.10" },
]
click = ">=8.0.0"
# Specify additional NumPy version constraints to speed up locking and test with binary wheels that support PyPy.
numpy = [
{ version = ">=1.22", python = ">=3.9,<3.12", markers = "implementation_name != 'pypy'" },
{ version = ">=1.22", python = ">=3.10,<3.12", markers = "implementation_name != 'pypy'" },
{ version = ">=1.26", python = ">=3.12,<3.13", markers = "implementation_name != 'pypy'" },
{ version = ">=2.1", python = "^3.13", markers = "implementation_name != 'pypy'" },
{ version = ">=2.1", python = ">=3.10,<3.11", markers = "implementation_name == 'pypy'" },
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ isolated_build = true
# grpcio does not have binary wheels for pypy or free-threading, as of version 1.75.1.
# nidaqmxbot does not have pypy yet.
# TODO: Get system tests running on Python 3.14t (free-threaded) - https://github.com/ni/nidaqmx-python/issues/853
envlist = clean, py{39,310,311,312,313,314,314}-base, py{39,310,311,312,313,314}-grpc, py39-base-nicaiu, py39-base-nicai_utf8, py39-base-benchmark, report, docs
envlist = clean, py{310,311,312,313,314,314}-base, py{310,311,312,313,314}-grpc, py310-base-nicaiu, py310-base-nicai_utf8, py310-base-benchmark, report, docs

[testenv]
skip_install = true
Expand Down