From b97862cb9fe2f556c13a2a7da7a33943a56c8016 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Wed, 20 Oct 2021 12:10:05 -0400 Subject: [PATCH] Python 3.10 (#520) * Add GA test and linter jobs * Remove not used async run() functions from tests * Update aiohttp ext test * Add botocore warning ignores * Update changelog * Update publishing job config for testing * Publishing test #1 * Update GA tests-and-linters job to use latest ubuntu for tests * Update publishing GA job --- .github/workflows/publishing.yml | 33 ++++++++++++++----------- .github/workflows/tests-and-linters.yml | 8 +++--- docs/main/changelog.rst | 1 + setup.py | 1 + tests/.configs/pytest-py27.ini | 3 ++- tests/.configs/pytest-py35.ini | 3 ++- tests/.configs/pytest.ini | 1 + tox.ini | 4 +-- 8 files changed, 31 insertions(+), 23 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 7dd72536..24d39b46 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -9,20 +9,20 @@ jobs: tests: name: Run tests - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.10" - run: pip install tox - run: tox env: - TOXENV: 3.9 + TOXENV: "3.10" linters: name: Run linters - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: toxenv: [flake8, pydocstyle, mypy, pylint] @@ -30,7 +30,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.10" - run: pip install tox - run: tox env: @@ -39,12 +39,12 @@ jobs: build-sdist: name: Build source tarball needs: [tests, linters] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.10" - run: python setup.py sdist - uses: actions/upload-artifact@v2 with: @@ -56,15 +56,15 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-18.04, windows-latest, macos-latest] + os: [ubuntu-20.04, windows-2019, macOS-10.15] env: CIBW_SKIP: cp27-win* steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 - - run: pip install cibuildwheel==1.8.0 + python-version: "3.10" + - run: pip install cibuildwheel==2.1.3 - run: cibuildwheel --output-dir wheelhouse - uses: actions/upload-artifact@v2 with: @@ -73,15 +73,15 @@ jobs: build-wheels-linux-aarch64: name: Build wheels (ubuntu-latest-aarch64) needs: [tests, linters] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - uses: actions/setup-python@v2 with: - python-version: 3.9 - - run: pip install cibuildwheel==1.8.0 + python-version: "3.10" + - run: pip install cibuildwheel==2.1.3 - run: cibuildwheel --archs aarch64 --output-dir wheelhouse - uses: actions/upload-artifact@v2 with: @@ -90,7 +90,7 @@ jobs: publish: name: Publish on PyPI needs: [build-sdist, build-wheels, build-wheels-linux-aarch64] - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/download-artifact@v2 with: @@ -100,6 +100,9 @@ jobs: 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/ publish-docs: name: Publish docs @@ -109,7 +112,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.10" - run: pip install -r requirements-doc.txt - run: pip install awscli - run: pip install -e . diff --git a/.github/workflows/tests-and-linters.yml b/.github/workflows/tests-and-linters.yml index 635b968a..213fb543 100644 --- a/.github/workflows/tests-and-linters.yml +++ b/.github/workflows/tests-and-linters.yml @@ -6,10 +6,10 @@ jobs: test-on-different-versions: name: Run tests - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest strategy: matrix: - python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, pypy2, pypy3] + python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, "3.10", pypy2, pypy3] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 @@ -31,7 +31,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.10" - run: pip install tox cython - run: make cythonize - run: tox @@ -48,7 +48,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 with: - python-version: 3.9 + python-version: "3.10" - run: pip install tox - run: tox env: diff --git a/docs/main/changelog.rst b/docs/main/changelog.rst index 6005b270..0cb46a90 100644 --- a/docs/main/changelog.rst +++ b/docs/main/changelog.rst @@ -9,6 +9,7 @@ follows `Semantic versioning`_ Develop ------- +- Add support of Python 3.10. - Improve wiring with adding importing modules and packages from a string ``container.wire(modules=["yourapp.module1"])``. - Add container wiring configuration ``wiring_config = containers.WiringConfiguration()``. diff --git a/setup.py b/setup.py index 6cdedd2b..6fb33ed3 100644 --- a/setup.py +++ b/setup.py @@ -101,6 +101,7 @@ setup(name="dependency-injector", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Framework :: AsyncIO", diff --git a/tests/.configs/pytest-py27.ini b/tests/.configs/pytest-py27.ini index 14d76ae7..300291b1 100644 --- a/tests/.configs/pytest-py27.ini +++ b/tests/.configs/pytest-py27.ini @@ -1,6 +1,7 @@ [pytest] -testpaths = tests/unit +testpaths = tests/unit/ python_files = test_*_py2_py3.py filterwarnings = ignore:Module \"dependency_injector.ext.aiohttp\" is deprecated since version 4\.0\.0:DeprecationWarning ignore:Module \"dependency_injector.ext.flask\" is deprecated since version 4\.0\.0:DeprecationWarning + ignore:ssl\.PROTOCOL_TLS is deprecated:DeprecationWarning:botocore.* diff --git a/tests/.configs/pytest-py35.ini b/tests/.configs/pytest-py35.ini index 81330704..4cb03f29 100644 --- a/tests/.configs/pytest-py35.ini +++ b/tests/.configs/pytest-py35.ini @@ -1,6 +1,7 @@ [pytest] -testpaths = tests/unit +testpaths = tests/unit/ python_files = test_*_py3.py filterwarnings = ignore:Module \"dependency_injector.ext.aiohttp\" is deprecated since version 4\.0\.0:DeprecationWarning ignore:Module \"dependency_injector.ext.flask\" is deprecated since version 4\.0\.0:DeprecationWarning + ignore:ssl\.PROTOCOL_TLS is deprecated:DeprecationWarning:botocore.* diff --git a/tests/.configs/pytest.ini b/tests/.configs/pytest.ini index 53643540..ebdb3d40 100644 --- a/tests/.configs/pytest.ini +++ b/tests/.configs/pytest.ini @@ -4,3 +4,4 @@ python_files = test_*_py3*.py filterwarnings = ignore:Module \"dependency_injector.ext.aiohttp\" is deprecated since version 4\.0\.0:DeprecationWarning ignore:Module \"dependency_injector.ext.flask\" is deprecated since version 4\.0\.0:DeprecationWarning + ignore:ssl\.PROTOCOL_TLS is deprecated:DeprecationWarning:botocore.* diff --git a/tox.ini b/tox.ini index e1b2fcdb..726e77bc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] envlist= - coveralls, pylint, flake8, pydocstyle, 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, pypy2, pypy3 + coveralls, pylint, flake8, pydocstyle, 2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, pypy2, pypy3 [testenv] deps= @@ -24,7 +24,7 @@ python_files = test_*_py3*.py [testenv:coveralls] passenv = GITHUB_* COVERALLS_* -basepython=python3.9 +basepython=python3.10 usedevelop=True deps= {[testenv]deps}