Compare commits

...

9 Commits

Author SHA1 Message Date
ZipFile
6a04d79bdd Test build v4.47.0a3 2025-05-22 20:03:35 +00:00
ZipFile
84e7ac7bf0 Migrate to OIDC publishing 2025-05-22 20:02:39 +00:00
ZipFile
cb559c8b6a Enable ABI3 builds 2025-05-22 19:44:56 +00:00
ZipFile
7c5d0b21d8 Limit ABI3 builds to CPython only 2025-05-22 19:44:56 +00:00
ZipFile
d460e37128 Fix pytest-asyncio warning 2025-05-22 19:44:56 +00:00
ZipFile
cd1c227662 Require Cython>=3.1.1 2025-05-22 19:44:56 +00:00
ZipFile
beb1f30a48 Add wheelhouse to .gitignore 2025-05-22 19:44:56 +00:00
ZipFile
11cf80c6d0 Fix PyPy test runs in tox 2025-05-22 19:44:56 +00:00
ZipFile
d635708a2a Fix file inclusion warnings from MANIFEST.in 2025-05-22 19:44:56 +00:00
9 changed files with 43 additions and 38 deletions

View File

@ -62,20 +62,26 @@ jobs:
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm, windows-2019, macos-14]
env:
CIBW_SKIP: cp27-*
CIBW_ENABLE: pypy
CIBW_ENVIRONMENT: >-
PIP_CONFIG_SETTINGS="build_ext=-j4"
DEPENDENCY_INJECTOR_LIMITED_API="1"
steps:
- uses: actions/checkout@v3
- name: Build wheels
uses: pypa/cibuildwheel@v2.20.0
uses: pypa/cibuildwheel@v2.23.3
- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-x86-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl
publish:
name: Publish on PyPI
test-publish:
name: Upload release to TestPyPI
needs: [build-sdist, build-wheels]
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
environment: test-pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
@ -84,11 +90,22 @@ jobs:
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_API_TOKEN }}
# For publishing to Test PyPI, uncomment next two lines:
# password: ${{ secrets.TEST_PYPI_API_TOKEN }}
# repository_url: https://test.pypi.org/legacy/
repository-url: https://test.pypi.org/legacy/
publish:
name: Upload release to PyPI
needs: [build-sdist, build-wheels, test-publish]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
with:
pattern: cibw-*
path: dist
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
publish-docs:
name: Publish docs

View File

@ -44,7 +44,7 @@ jobs:
- uses: actions/setup-python@v4
with:
python-version: 3.12
- run: pip install tox 'cython>=3,<4'
- run: pip install tox
- run: tox -vv
env:
TOXENV: coveralls

1
.gitignore vendored
View File

@ -15,6 +15,7 @@ lib64/
parts/
sdist/
var/
wheelhouse/
*.egg-info/
.installed.cfg
*.egg

View File

@ -1,9 +1,7 @@
recursive-include src/dependency_injector *.py* *.c
recursive-include src/dependency_injector *.py* *.c py.typed
recursive-include tests *.py
include README.rst
include CONTRIBUTORS.rst
include LICENSE.rst
include requirements.txt
include setup.py
include tox.ini
include py.typed

View File

@ -1,5 +1,5 @@
[build-system]
requires = ["setuptools", "Cython"]
requires = ["setuptools", "Cython>=3.1.1"]
build-backend = "setuptools.build_meta"
[project]
@ -102,6 +102,7 @@ max-public-methods = 30
[tool.pytest.ini_options]
testpaths = ["tests/unit/"]
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "function"
markers = [
"pydantic: Tests with Pydantic as a dependency",
]

View File

@ -1,4 +1,4 @@
cython==3.1.0
cython==3.1.1
setuptools
pytest
pytest-asyncio
@ -13,7 +13,8 @@ mypy
pyyaml
httpx
fastapi
pydantic==1.10.17
pydantic
pydantic-settings
numpy
scipy
boto3

View File

@ -1,13 +1,17 @@
"""`Dependency injector` setup script."""
import os
import sys
from Cython.Build import cythonize
from Cython.Compiler import Options
from setuptools import Extension, setup
debug = os.environ.get("DEPENDENCY_INJECTOR_DEBUG_MODE") == "1"
limited_api = os.environ.get("DEPENDENCY_INJECTOR_LIMITED_API") == "1"
limited_api = (
os.environ.get("DEPENDENCY_INJECTOR_LIMITED_API") == "1"
and sys.implementation.name == "cpython"
)
defined_macros = []
options = {}
compiler_directives = {
@ -31,7 +35,7 @@ if debug:
if limited_api:
options.setdefault("bdist_wheel", {})
options["bdist_wheel"]["py_limited_api"] = "cp38"
defined_macros.append(("Py_LIMITED_API", 0x03080000))
defined_macros.append(("Py_LIMITED_API", "0x03080000"))
setup(
options=options,

View File

@ -1,6 +1,6 @@
"""Top-level package."""
__version__ = "4.46.0"
__version__ = "4.47.0a3"
"""Version number.
:type: str

19
tox.ini
View File

@ -1,7 +1,7 @@
[tox]
parallel_show_output = true
envlist=
coveralls, pylint, flake8, pydocstyle, pydantic-v1, pydantic-v2, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, pypy3.9, pypy3.10
coveralls, pylint, flake8, pydocstyle, pydantic-v1, pydantic-v2, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, pypy3.9, pypy3.10, pypy3.11
[testenv]
deps=
@ -20,7 +20,6 @@ deps=
extras=
yaml
commands = pytest
python_files = test_*_py3*.py
setenv =
COVERAGE_RCFILE = pyproject.toml
@ -61,22 +60,6 @@ commands=
coverage report
coveralls
[testenv:pypy3.9]
deps=
pytest
pytest-asyncio
httpx
flask
pydantic-settings
werkzeug
fastapi
boto3
mypy_boto3_s3
extras=
yaml
commands = pytest
[testenv:pylint]
deps=
pylint