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/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

### Technology Stack

- **Python**: 3.9+ (`from __future__ import annotations`)
- **Python**: 3.10+ (`from __future__ import annotations`)
- **Core**: NumPy (≥1.22), h5py (≥3.6), QtPy (≥1.9)
- **GUI**: Qt via QtPy (PyQt5/PyQt6/PySide6)
- **Testing**: pytest
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_pyqt5.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.11", "3.14"]
python-version: ["3.10", "3.11", "3.14"]

steps:
- uses: actions/checkout@v7
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_pyqt6.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.11", "3.14"]
python-version: ["3.10", "3.11", "3.14"]

steps:
- uses: actions/checkout@v7
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/test_pyside6.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.11", "3.14"]
python-version: ["3.10", "3.11", "3.14"]

steps:
- uses: actions/checkout@v7
Expand All @@ -36,7 +36,8 @@ jobs:
/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -screen 0 1920x1200x24 -ac +extension GLX
python -m pip install --upgrade pip
python -m pip install ruff pytest
pip install PySide6
# PySide6 6.12.0 drops a reference to None on each void call: fatal before Python 3.12
pip install "PySide6!=6.12.0; python_version < '3.12'" "PySide6; python_version >= '3.12'"
pip install .
- name: Lint with Ruff
run: ruff check --output-format=github guidata
Expand Down
4 changes: 4 additions & 0 deletions doc/release_notes/release_3.16.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Version 3.16 #

## Unreleased ##

* Python 3.10 or later is now required. Python 3.9 users must keep an earlier compatible release.

## guidata Version 3.16.0 ##

✨ New features:
Expand Down
2 changes: 1 addition & 1 deletion doc/requirements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ The `guidata` package requires the following Python modules:
- Version
- Summary
* - Python
- >=3.9, <4
- >=3.10, <4
- Python programming language
* - h5py
- >= 3.6
Expand Down
8 changes: 2 additions & 6 deletions guidata/widgets/arrayeditor/arrayhandler.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,11 @@
from __future__ import annotations

import copy
from typing import Any, Generic, TypeVar, Union, cast
from typing import Any, Generic, TypeVar, cast

import numpy as np

# TODO: (When Python 3.8-3.9 support is dropped) Use `np.ndarray | np.ma.MaskedArray`
# instead of `Union[np.ndarray, np.ma.MaskedArray]`
AnySupportedArray = TypeVar(
"AnySupportedArray", bound=Union[np.ndarray, np.ma.MaskedArray]
)
AnySupportedArray = TypeVar("AnySupportedArray", bound=np.ndarray | np.ma.MaskedArray)
AnyArrayHandler = TypeVar("AnyArrayHandler", bound="BaseArrayHandler")


Expand Down
5 changes: 2 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ classifiers = [
"Operating System :: Microsoft :: Windows :: Windows 10",
"Operating System :: Microsoft :: Windows :: Windows 11",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand All @@ -37,7 +36,7 @@ classifiers = [
"Topic :: Software Development :: Widget Sets",
"Topic :: Utilities",
]
requires-python = ">=3.9, <4"
requires-python = ">=3.10, <4"
dependencies = ["h5py >= 3.6", "NumPy >= 1.22", "QtPy >= 1.9", "requests", "tomli; python_version < '3.11'"]
dynamic = ["version"]

Expand Down Expand Up @@ -88,7 +87,7 @@ addopts = "guidata --import-mode=importlib"
exclude = [".git", ".vscode", "build", "dist", "guidata/external","venv*",".venv*"]
line-length = 88 # Same as Black.
indent-width = 4 # Same as Black.
target-version = "py39" # Assume Python 3.9.
target-version = "py310" # Assume Python 3.10.

[tool.ruff.lint]
# all rules can be found here: https://beta.ruff.rs/docs/rules/
Expand Down
Loading