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
4 changes: 4 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ jobs:
strategy:
matrix:
include:
- toxenv: "python3.8"
py: "3.8"
- toxenv: "python3.9"
py: "3.9"
- toxenv: "python3.10"
Expand All @@ -52,6 +54,8 @@ jobs:
py: "3.12"
- toxenv: "python3.13"
py: "3.13"
- toxenv: "python3.14"
py: "3.14"
steps:
- uses: actions/checkout@v5
- name: Set up Python ${{ matrix.py }}
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ related to the project.

## Python version support

Currently, the package supports Python versions 3.9 and above. Once a new Python version is released, we will aim to
Currently, the package supports Python versions 3.8 and above. Once a new Python version is released, we will aim to
support it as soon as possible. If you encounter any issues with a new Python version, please create an issue in the
repository.

Expand Down
14 changes: 8 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description = "A query string encoding and decoding library for Python. Ported f
readme = { file = "README.rst", content-type = "text/x-rst" }
license = "BSD-3-Clause"
license-files = ["LICENSE"]
requires-python = ">=3.9"
requires-python = ">=3.8"
authors = [
{ name = "Klemen Tusar", email = "techouse@gmail.com" },
]
Expand All @@ -25,11 +25,13 @@ classifiers = [
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: Implementation :: CPython",
"Topic :: Internet :: WWW/HTTP",
Expand All @@ -49,9 +51,9 @@ PayPal = "https://paypal.me/ktusar"

[project.optional-dependencies]
dev = [
"pytest>=8.3.5",
"pytest-cov>=6.0.0",
"mypy>=1.15.0",
"pytest>=8.1.2",
"pytest-cov>=5.0.0",
"mypy>=1.10.0",
"toml>=0.10.2",
"tox",
"black",
Expand All @@ -78,7 +80,7 @@ include = ["src/qs_codec/py.typed"]

[tool.black]
line-length = 120
target-version = ["py39", "py310", "py311", "py312", "py313"]
target-version = ["py38", "py39", "py310", "py311", "py312", "py313", "py314"]
include = '\.pyi?$'
exclude = '''
(
Expand Down Expand Up @@ -116,7 +118,7 @@ markers = []

[tool.mypy]
mypy_path = "src"
python_version = "3.9"
python_version = "3.8"
exclude = [
"tests",
"docs",
Expand Down
6 changes: 3 additions & 3 deletions requirements_dev.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
pytest>=8.3.5
pytest-cov>=6.0.0
mypy>=1.15.0
pytest>=8.1.2
pytest-cov>=5.0.0
mypy>=1.10.0
toml>=0.10.2
tox
black
Expand Down
2 changes: 2 additions & 0 deletions src/qs_codec/decode.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
so that behavior across ports stays predictable and easy to verify with shared test vectors.
"""

from __future__ import annotations

import re
import typing as t
from collections.abc import Mapping
Expand Down
2 changes: 2 additions & 0 deletions src/qs_codec/models/weak_wrapper.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
"""Weakly wrap *any* object with identity equality and deep content hashing."""

from __future__ import annotations

import reprlib
import typing as t
from threading import RLock
Expand Down
4 changes: 4 additions & 0 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,23 +1,27 @@
[tox]
isolated_build = true
envlist =
python3.8,
python3.9,
python3.10,
python3.11,
python3.12,
python3.13,
python3.14,
black,
flake8,
linters,
skip_missing_interpreters = true

[gh-actions]
python =
3.8: python3.8
3.9: python3.9
3.10: python3.10
3.11: python3.11
3.12: python3.12
3.13: python3.13
3.14: python3.14

[testenv]
deps =
Expand Down