summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/python-pr-validation.yml12
-rw-r--r--.python-version2
-rw-r--r--CHANGELOG.md9
-rw-r--r--README.md2
-rw-r--r--pyproject.toml7
5 files changed, 23 insertions, 9 deletions
diff --git a/.github/workflows/python-pr-validation.yml b/.github/workflows/python-pr-validation.yml
index 611372b..081f7a8 100644
--- a/.github/workflows/python-pr-validation.yml
+++ b/.github/workflows/python-pr-validation.yml
@@ -10,14 +10,18 @@ permissions:
jobs:
validate:
runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ["3.11", "3.12", "3.13"]
steps:
- name: Checkout
uses: actions/checkout@v4
- - name: Set up Python 3.13
+ - name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
- python-version: "3.13"
+ python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@v3
@@ -25,7 +29,7 @@ jobs:
enable-cache: true
- name: Install dependencies
- run: uv sync --extra dev
+ run: uv sync --extra dev --python ${{ matrix.python-version }}
- name: Run tests
- run: uv run pytest -v
+ run: uv run --python ${{ matrix.python-version }} pytest -v
diff --git a/.python-version b/.python-version
index 4eba2a6..24ee5b1 100644
--- a/.python-version
+++ b/.python-version
@@ -1 +1 @@
-3.13.0
+3.13
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 13bc332..293a942 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,6 +26,15 @@ behavior**.
- Documented public API stability and deprecation timeline in `README.md`.
### Changed
+- `requires-python` lowered to `>=3.11` (was `>=3.13`). The codebase
+ does not use any 3.13-only syntax, and the lower floor makes the
+ package reachable for the typical VyOS automation environment. CI now
+ validates against 3.11, 3.12, and 3.13.
+- Runtime dependencies trimmed to `requests>=2.32.0,<3.0` only.
+ - `python-dotenv` was never imported by the library itself — it is now
+ a `dev` extra used by the bundled examples.
+ - `urllib3` was never used directly by `pyvyos` — it stays available
+ transitively through `requests`.
- `vagrant/` lab setup moved to `examples/vagrant/`.
- `pyvyos.core.*` is now the internal implementation layer; the supported
public API is `from pyvyos import VyDevice, ApiResponse`. The legacy
diff --git a/README.md b/README.md
index 96c1ec8..83dbd90 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ tooling, and integrations with configuration management systems.
pip install pyvyos
```
-Requires **Python 3.13 or newer**.
+Requires **Python 3.11 or newer**. Tested on 3.11, 3.12, and 3.13.
## Quick start
diff --git a/pyproject.toml b/pyproject.toml
index 1f35384..b266351 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -10,7 +10,7 @@ authors = [
]
description = "Python SDK for interacting with the VyOS HTTPS API"
readme = "README.md"
-requires-python = ">=3.13"
+requires-python = ">=3.11"
license = { file = "LICENSE" }
keywords = ["vyos", "networking", "sdk", "api", "router", "firewall"]
classifiers = [
@@ -20,6 +20,8 @@ classifiers = [
"Topic :: System :: Networking",
"Topic :: Software Development :: Libraries :: Python Modules",
"Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
@@ -27,12 +29,11 @@ classifiers = [
]
dependencies = [
"requests>=2.32.0,<3.0",
- "python-dotenv>=1.0.1,<2.0",
- "urllib3>=2.5.0",
]
[project.optional-dependencies]
dev = [
+ "python-dotenv>=1.0.1,<2.0",
"pytest>=8.0,<10.0",
"pytest-cov>=5.0,<7.0",
"pytest-env>=0.6.2,<1.3",