diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65d5d4b..af130d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,7 +47,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.12", "3.13", "3.14"] + python-version: ["3.11", "3.12", "3.13", "3.14"] fail-fast: false steps: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3d73a16..caa82ee 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ poetry install **Requirements:** -- Python 3.12+ +- Python 3.11+ - Poetry ## Code Quality @@ -31,7 +31,7 @@ This runs: - Type checking (mypy) - Tests with coverage -**CI runs automatically on GitHub** when you push or open a PR, testing on Python 3.12, 3.13, and 3.14. +**CI runs automatically on GitHub** when you push or open a PR, testing on Python 3.11, 3.12, 3.13, and 3.14. ## Testing diff --git a/README.md b/README.md index 3ac6798..44ed22a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ # Rheo +[![CI](https://github.com/plutopulp/rheo/workflows/CI/badge.svg)](https://github.com/plutopulp/rheo/actions) +[![codecov](https://codecov.io/gh/plutopulp/rheo/branch/main/graph/badge.svg)](https://codecov.io/gh/plutopulp/rheo) [![PyPI](https://img.shields.io/pypi/v/rheopy)](https://pypi.org/project/rheopy/) [![Python](https://img.shields.io/pypi/pyversions/rheopy)](https://pypi.org/project/rheopy/) [![License](https://img.shields.io/pypi/l/rheopy)](https://github.com/plutopulp/rheo/blob/main/LICENSE) -[![CI](https://github.com/plutopulp/rheo/workflows/CI/badge.svg)](https://github.com/plutopulp/rheo/actions) -[![codecov](https://codecov.io/gh/plutopulp/rheo/branch/main/graph/badge.svg)](https://codecov.io/gh/plutopulp/rheo) +[![Commits since release](https://img.shields.io/github/commits-since/plutopulp/rheo/latest)](https://github.com/plutopulp/rheo/compare/latest...main) Concurrent HTTP download orchestration with async I/O @@ -112,7 +113,7 @@ Check [`examples/`](https://github.com/plutopulp/rheo/tree/main/examples) for wo **Alpha** - Core functionality works, but API may change before 1.0. -- Python: 3.12+ +- Python: 3.11+ - License: MIT ## Questions? diff --git a/examples/README.md b/examples/README.md index 2db93a6..41e5f43 100755 --- a/examples/README.md +++ b/examples/README.md @@ -4,7 +4,7 @@ Self-contained, runnable examples demonstrating common use cases for Rheo. ## Requirements -- Python 3.12+ +- Python 3.11+ - Rheo installed: `pip install rheopy` (or `poetry install` for development) - **Internet connection** (examples use proof.ovh.net for testing) diff --git a/poetry.lock b/poetry.lock index b9dd0b7..8e0639d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1768,5 +1768,5 @@ dev = ["aioresponses", "black", "blockbuster", "flake8", "isort", "mypy", "pytes [metadata] lock-version = "2.1" -python-versions = ">=3.12,<4.0" -content-hash = "143821edeb3f9821b4cd59a7355fd82b36c801ff8eef01ec6e088537b5d41ea3" +python-versions = ">=3.11,<4.0" +content-hash = "fdc68f5e26f34d97838a5f3af9f87c7dc57e6699616aac7ad229c5478254a0f4" diff --git a/pyproject.toml b/pyproject.toml index 78be67a..5d69666 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ authors = [ ] readme = "README.md" license = {text = "MIT"} -requires-python = ">=3.12,<4.0" +requires-python = ">=3.11,<4.0" keywords = [ "async", "asyncio", @@ -23,6 +23,7 @@ classifiers = [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", @@ -83,9 +84,9 @@ markers = [ addopts = "-m 'not network'" [tool.mypy] -# Since project should be compatible with 3.12 or later, -# we pin it to 3.12 to avoid using features newer than 3.12 -python_version = "3.12" +# Since project should be compatible with 3.11 or later, +# we pin it to 3.11 to avoid using features newer than 3.11 +python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true