From 2519e2df628f43a81002cf05b37aea9fa5e18c00 Mon Sep 17 00:00:00 2001 From: Elvis Pranskevichus Date: Fri, 6 Aug 2021 18:02:12 -0700 Subject: [PATCH] Python 3.10 support (#432) --- .flake8 | 2 +- .github/workflows/tests.yml | 10 +++++----- docs/conf.py | 19 ++++++++++++------- pytest.ini | 2 +- setup.py | 11 ++++++----- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/.flake8 b/.flake8 index 90336c4..30b7646 100644 --- a/.flake8 +++ b/.flake8 @@ -1,5 +1,5 @@ [flake8] -filename = *.py,*.pyx,*.pxd,*.pxi,*.pyi +filename = *.py,*.pyi ignore = E402,E731,D100,D101,D102,D103,D104,D105,W503,W504,E252 exclude = .git,__pycache__,build,dist,.eggs,postgres,vendor diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4a88998..3931bfe 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,27 +14,27 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - python-version: [3.7, 3.8, 3.9] + python-version: [3.7, 3.8, 3.9, 3.10.0-rc.1] os: [ubuntu-latest, macos-latest] steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v2 with: fetch-depth: 50 submodules: true - name: Check if release PR. uses: edgedb/action-release/validate-pr@master - continue-on-error: true id: release with: github_token: ${{ secrets.RELEASE_BOT_GITHUB_TOKEN }} + missing_version_ok: yes version_file: uvloop/_version.py version_line_pattern: | __version__\s*=\s*(?:['"])([[:PEP440:]])(?:['"]) - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v1 + uses: actions/setup-python@v2 if: steps.release.outputs.version == 0 with: python-version: ${{ matrix.python-version }} @@ -60,7 +60,7 @@ jobs: regression-tests: name: "Regression Tests" needs: [test] - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - run: echo OK diff --git a/docs/conf.py b/docs/conf.py index 0715ee7..5884d0f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -2,17 +2,22 @@ import alabaster import os -import re import sys sys.path.insert(0, os.path.abspath('..')) -with open(os.path.abspath('../setup.py'), 'rt') as f: - _m = re.search(r'''VERSION\s*=\s*(?P'|")(?P[\d\.]+)(?P=q)''', - f.read()) - if not _m: - raise RuntimeError('unable to read the version from setup.py') - version = _m.group('ver') +version_file = os.path.join(os.path.dirname(os.path.dirname(__file__)), + 'uvloop', '_version.py') + +with open(version_file, 'r') as f: + for line in f: + if line.startswith('__version__ ='): + _, _, version = line.partition('=') + version = version.strip(" \n'\"") + break + else: + raise RuntimeError( + 'unable to read the version from uvloop/_version.py') # -- General configuration ------------------------------------------------ diff --git a/pytest.ini b/pytest.ini index 4603e34..fcfb445 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,4 +1,4 @@ [pytest] -addopts = --capture=no --assert=plain --strict --tb native +addopts = --capture=no --assert=plain --strict-markers --tb native testpaths = tests filterwarnings = default diff --git a/setup.py b/setup.py index 07b6758..eceb35d 100644 --- a/setup.py +++ b/setup.py @@ -29,18 +29,18 @@ TEST_DEPENDENCIES = [ # their combination breaks too often # (example breakage: https://gitlab.com/pycqa/flake8/issues/427) 'aiohttp', - 'flake8~=3.8.4', + 'flake8~=3.9.2', 'psutil', - 'pycodestyle~=2.6.0', + 'pycodestyle~=2.7.0', 'pyOpenSSL~=19.0.0', 'mypy>=0.800', ] # Dependencies required to build documentation. DOC_DEPENDENCIES = [ - 'Sphinx~=1.7.3', - 'sphinxcontrib-asyncio~=0.2.0', - 'sphinx_rtd_theme~=0.2.4', + 'Sphinx~=4.1.2', + 'sphinxcontrib-asyncio~=0.3.0', + 'sphinx_rtd_theme~=0.5.2', ] EXTRA_DEPENDENCIES = { @@ -311,6 +311,7 @@ setup( 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', 'License :: OSI Approved :: Apache Software License', 'License :: OSI Approved :: MIT License', 'Intended Audience :: Developers',