diff --git a/doc/release_notes.rst b/doc/release_notes.rst index e5b7033f..7883db82 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -60,6 +60,7 @@ Most users should keep calling ``model.solve(...)``. If you want more control, y * ``available_solvers`` now lists all *installed* solvers, even ones without a working license. If you used it to decide "can I actually solve with X?", switch to ``linopy.licensed_solvers`` or ``SolverClass.license_status()``. * ``Model.solver_model`` and ``Model.solver_name`` are now read-only properties that delegate to ``model.solver``. You can't reassign them (only ``= None`` is allowed, which closes the solver), and ``solver_name`` is ``None`` before the first solve. * ``result.solution.primal`` and ``result.solution.dual`` are now ``numpy`` arrays indexed by linopy's integer labels (with ``NaN`` for slots without a value), instead of pandas Series keyed by variable/constraint name. If you accessed them by name, use ``model.variables[name].solution`` (or ``model.constraints[name].dual``) instead. +* Drop Python 3.10 support. Minimum supported version is now Python 3.11. **Internal** diff --git a/linopy/remote/oetc.py b/linopy/remote/oetc.py index beef5873..74f8a9a5 100644 --- a/linopy/remote/oetc.py +++ b/linopy/remote/oetc.py @@ -9,7 +9,7 @@ import time from dataclasses import dataclass, field from datetime import datetime, timedelta -from enum import Enum +from enum import StrEnum from typing import TYPE_CHECKING, Any, Literal if TYPE_CHECKING: @@ -34,7 +34,7 @@ logger = logging.getLogger(__name__) -class ComputeProvider(str, Enum): +class ComputeProvider(StrEnum): GCP = "GCP" diff --git a/pyproject.toml b/pyproject.toml index 67297677..19d0abb3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,6 @@ maintainers = [ ] license = { file = "LICENSE" } classifiers = [ - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -27,10 +26,9 @@ classifiers = [ "Operating System :: OS Independent", ] -requires-python = ">=3.10" +requires-python = ">=3.11" dependencies = [ - "numpy; python_version > '3.10'", - "numpy<2; python_version <= '3.10'", + "numpy", "scipy", "bottleneck", "toolz",