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
11 changes: 2 additions & 9 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ name: tests
jobs:

misc:
# name: "Linting configs and git"
name: "Linting configs"
runs-on: ubuntu-latest
steps:
Expand All @@ -28,16 +27,10 @@ jobs:
- name: "Lint YAMLs"
run: |
tox -e lint-yaml
# - name: "Lint git"
# run: |
# tox -e lint-git

lint:
# name: "Linting and type checking"
name: "Linting"
runs-on: ubuntu-24.04
# strategy:
# fail-fast: true
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand All @@ -49,7 +42,7 @@ jobs:
- name: "Lint formatting"
run: |
tox -e lint-py
# - name: "Type checking"
# - name: "Type checking" TODO(trin94): revisit linter config and re-enable
# run: |
# tox -e lint-mypy

Expand All @@ -74,7 +67,7 @@ jobs:
strategy:
fail-fast: true
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
Expand Down
3 changes: 3 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
python-inject changes
=====================

### 5.5.0 (unreleased)
- Drop Python 3.9 support (end of life). Minimum supported version is now 3.10.

### 5.4.1 (2026-07-27)
- Fix static typing of inject.attr(Cls), #136

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ Dependency injection the python way, the good way.
* Transparently integrates into tests.
* Autoparams leveraging type annotations.
* Supports type hinting in Python 3.5+.
* Supports Python 3.9+ (`v5.*`), 3.5-3.8 (`v4.*`) and Python 2.7–3.5 (`v3.*`).
* Supports context managers.

## Python Support

| Python | Inject Version |
|---------|----------------|
| 3.9+ | 5.0+ |
| 3.10+ | 5.5+ |
| 3.9 | 5.0 - 5.4 |
| 3.6-3.8 | 4.1+, < 5.0 |
| 3.5 | 4.0 |
| < 3.5 | 3.* |
Expand Down
56 changes: 2 additions & 54 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ classifiers = [
"Operating System :: OS Independent",
"Programming Language :: Python",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Expand All @@ -22,7 +21,7 @@ classifiers = [
"Topic :: Software Development :: Libraries :: Python Modules",
]

requires-python = ">=3.9"
requires-python = ">=3.10"
dependencies = []

[project.urls]
Expand Down Expand Up @@ -183,55 +182,6 @@ ban-relative-imports = "all"
quote-style = "double"
indent-style = "space"

#ignore = [
# "B027", # Allow non-abstract empty methods in abstract base classes
# "FBT003", # Allow boolean positional values in function calls, like `dict.get(... True)`
# # Ignore checks for possible passwords
# "S105",
# "S106",
# "S107",
# # Ignore complexity
# "C901",
# "PLR0911",
# "PLR0912",
# "PLR0913",
# "PLR0915",
# "PLC1901", # empty string comparisons
# "PLW2901", # `for` loop variable overwritten
# "SIM114", # Combine `if` branches using logical `or` operator
#]
#select = [
# "A",
# "B",
# "C",
# "DTZ",
# "E",
# "EM",
# "F",
# "FBT",
# "I",
# "ICN",
# "ISC",
# "N",
# "PLC",
# "PLE",
# "PLR",
# "PLW",
# "Q",
# "RUF",
# "S",
# "SIM",
# "T",
# "TID",
# "UP",
# "W",
# "YTT",
#]
#unfixable = [
# "F401", # Don't touch unused imports
#]


#### Pytest & Coverage ####
[tool.pytest.ini_options]
minversion = "8.4"
Expand Down Expand Up @@ -267,19 +217,18 @@ runner = "uv-venv-lock-runner"
skip_missing_interpreters = true

env_list = [
"py39",
"py310",
"py311",
"py312",
"py313",
"py314",
"fmt-py",
"fmt-toml",
"lint-py",
"lint-types",
#"lint-mypy", # TODO(pyctrl): make it green & uncomment
"lint-toml",
"lint-yaml",
#"lint-git",
"coverage",
]

Expand All @@ -294,7 +243,6 @@ lint = [
#"lint-mypy", # TODO(pyctrl): make it green & uncomment
"lint-toml",
"lint-yaml",
#"lint-git",
]

# default env
Expand Down
Loading