From 23898d9ea453d87a9421be511fd213dbcb81ea61 Mon Sep 17 00:00:00 2001 From: Sviatoslav Sydorenko Date: Wed, 2 Aug 2023 01:09:58 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=91=B7=20Divide=20pip=20constraints=20int?= =?UTF-8?q?o=20distinct=20pairs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The in+txt key pairs can be managed by pip-tools and upgraded by Dependabot natively. --- .github/workflows/ci-cd.yml | 30 +-- .github/workflows/post-dependabot.yml | 49 ----- .github/workflows/update-pre-commit.yml | 5 +- .pip-tools.toml | 4 + .pre-commit-config.yaml | 2 +- .readthedocs.yml | 12 +- Makefile | 22 +- requirements/base.in | 5 + requirements/base.txt | 21 +- requirements/broken-projects.in | 2 + requirements/constraints.in | 8 +- requirements/constraints.txt | 268 +----------------------- requirements/cython.in | 4 + requirements/cython.txt | 11 +- requirements/dev.in | 6 + requirements/dev.txt | 13 +- requirements/doc-spelling.in | 3 + requirements/doc-spelling.txt | 10 +- requirements/doc.in | 7 + requirements/doc.txt | 15 +- requirements/lint.in | 8 + requirements/lint.txt | 15 +- requirements/multidict.in | 1 + requirements/multidict.txt | 7 + requirements/runtime-deps.in | 11 + requirements/runtime-deps.txt | 8 + requirements/test.in | 15 ++ requirements/test.txt | 22 +- requirements/typing-extensions.in | 1 + requirements/typing-extensions.txt | 9 +- setup.cfg | 8 +- 31 files changed, 202 insertions(+), 400 deletions(-) delete mode 100644 .github/workflows/post-dependabot.yml create mode 100644 .pip-tools.toml create mode 100644 requirements/base.in create mode 100644 requirements/broken-projects.in create mode 100644 requirements/cython.in create mode 100644 requirements/dev.in create mode 100644 requirements/doc-spelling.in create mode 100644 requirements/doc.in create mode 100644 requirements/lint.in create mode 100644 requirements/multidict.in create mode 100644 requirements/runtime-deps.in create mode 100644 requirements/runtime-deps.txt create mode 100644 requirements/test.in create mode 100644 requirements/typing-extensions.in diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml index e6aa3e3c3d0..852f352e067 100644 --- a/.github/workflows/ci-cd.yml +++ b/.github/workflows/ci-cd.yml @@ -38,6 +38,13 @@ jobs: uses: actions/checkout@v3 with: submodules: true + - name: >- + Verify that `requirements/runtime-deps.in` + is in sync with `setup.cfg` + run: | + set -eEuo pipefail + make sync-direct-runtime-deps + git diff --exit-code -- requirements/runtime-deps.in - name: Setup Python uses: actions/setup-python@v4 with: @@ -54,10 +61,10 @@ jobs: python -m pip install -U pip wheel setuptools build twine - name: Install dependencies run: | - python -m pip install -r requirements/lint.txt -c requirements/constraints.txt + python -m pip install -r requirements/lint.in -c requirements/lint.txt - name: Install self run: | - python -m pip install . + python -m pip install . -c requirements/runtime-deps.txt env: AIOHTTP_NO_EXTENSIONS: 1 - name: Run mypy @@ -67,14 +74,14 @@ jobs: run: | # Some extra requirements are needed to ensure all modules # can be scanned by slotscheck. - pip install -r requirements/base.txt -c requirements/constraints.txt + pip install -r requirements/base.in -c requirements/base.txt slotscheck -v -m aiohttp - name: Install libenchant run: | sudo apt install libenchant-2-dev - name: Install spell checker run: | - pip install -r requirements/doc-spelling.txt -c requirements/constraints.txt + pip install -r requirements/doc-spelling.in -c requirements/doc-spelling.txt - name: Run docs spelling run: | # towncrier --yes # uncomment me after publishing a release @@ -203,7 +210,7 @@ jobs: python -m pip install -U pip wheel setuptools build twine - name: Install dependencies run: | - python -m pip install -r requirements/test.txt -c requirements/constraints.txt + python -m pip install -r requirements/test.in -c requirements/test.txt - name: Cythonize if: ${{ matrix.no-extensions == '' }} run: | @@ -294,8 +301,9 @@ jobs: run: | python -m pip install -U pip wheel setuptools build twine - name: Install cython - run: | - python -m pip install -r requirements/cython.txt -c requirements/constraints.txt + run: >- + python -m + pip install -r requirements/cython.in -c requirements/cython.txt - name: Restore llhttp generated files uses: actions/download-artifact@v3 with: @@ -359,8 +367,9 @@ jobs: run: | python -m pip install -U pip wheel setuptools build twine - name: Install cython - run: | - python -m pip install -r requirements/cython.txt -c requirements/constraints.txt + run: >- + python -m + pip install -r requirements/cython.in -c requirements/cython.txt - name: Restore llhttp generated files uses: actions/download-artifact@v3 with: @@ -396,9 +405,6 @@ jobs: uses: actions/checkout@v3 with: submodules: true - - name: Update pip, wheel, setuptools, build, twine - run: | - python -m pip install -U pip wheel setuptools build twine - name: Login run: | echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token diff --git a/.github/workflows/post-dependabot.yml b/.github/workflows/post-dependabot.yml deleted file mode 100644 index de9c2b43da7..00000000000 --- a/.github/workflows/post-dependabot.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Dependabot post-update -on: - pull_request_target: - action: [opened, synchronize, reopened] - branches: - - 'master' - - '[0-9].[0-9]+' - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number }} - cancel-in-progress: true - -permissions: {} -jobs: - post-update: - permissions: - pull-requests: read # for gh pr checkout - contents: write # to push code in repo (stefanzweifel/git-auto-commit-action) - - if: ${{ github.actor == 'dependabot[bot]' }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Login - run: | - echo "${{ secrets.GITHUB_TOKEN }}" | gh auth login --with-token - - name: Checkout - run: | - gh pr checkout ${{ github.event.pull_request.number }} - - name: Setup Python - uses: actions/setup-python@v4 - - name: Cache PyPI - uses: actions/cache@v3.0.4 - with: - key: post-update - path: ~/.cache/pip - restore-keys: | - post-update- - - name: Update pip-tools - run: | - python -m pip install -U pip-tools - - name: Run pip-compile - run: | - make compile-deps - - name: Commit and push if needed - uses: stefanzweifel/git-auto-commit-action@v4 - with: - commit_message: Recompile requirements/constraints.txt diff --git a/.github/workflows/update-pre-commit.yml b/.github/workflows/update-pre-commit.yml index e4226d31f82..a0a4fdb4d50 100644 --- a/.github/workflows/update-pre-commit.yml +++ b/.github/workflows/update-pre-commit.yml @@ -14,9 +14,8 @@ jobs: with: python-version: 3.8 - name: Install dependencies - uses: py-actions/py-dependency-install@v4 - with: - path: requirements/lint.txt + run: >- + pip install -r requirements/lint.in -c requirements/lint.txt - name: Run pre-commit autoupdate run: pre-commit autoupdate - id: generate_token diff --git a/.pip-tools.toml b/.pip-tools.toml new file mode 100644 index 00000000000..82737a2d4f6 --- /dev/null +++ b/.pip-tools.toml @@ -0,0 +1,4 @@ +[pip-tools] +allow-unsafe = true +resolver = "backtracking" +strip-extras = true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f41fbfe50ba..ef6096df36f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -46,7 +46,7 @@ repos: ^docs/[^/]*\.svg$ - id: requirements-txt-fixer exclude: >- - ^requirements/constraints[.]txt$ + ^requirements/.*\.txt$ - id: trailing-whitespace - id: file-contents-sorter args: ['--ignore-case'] diff --git a/.readthedocs.yml b/.readthedocs.yml index 022dd5c3f53..7e9c11160e5 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -15,9 +15,11 @@ build: tools: python: "3.11" -python: - install: - - method: pip - path: . - - requirements: requirements/doc.txt + jobs: + post_create_environment: + - >- + pip install + . -c requirements/runtime-deps.txt + -r requirements/doc.in -c requirements/doc.txt + ... diff --git a/Makefile b/Makefile index f899a12c802..103de1ec745 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ endif @python -m pip install --upgrade pip .install-cython: .update-pip $(call to-hash,requirements/cython.txt) - @python -m pip install -r requirements/cython.txt -c requirements/constraints.txt + @python -m pip install -r requirements/cython.in -c requirements/cython.txt @touch .install-cython aiohttp/_find_header.c: $(call to-hash,aiohttp/hdrs.py ./tools/gen.py) @@ -74,7 +74,7 @@ generate-llhttp: .llhttp-gen cythonize: .install-cython $(PYXS:.pyx=.c) .install-deps: .install-cython $(PYXS:.pyx=.c) $(call to-hash,$(CYS) $(REQS)) - @python -m pip install -r requirements/dev.txt -c requirements/constraints.txt + @python -m pip install -r requirements/dev.in -c requirements/dev.txt @touch .install-deps .PHONY: lint @@ -89,7 +89,7 @@ mypy: mypy .develop: .install-deps generate-llhttp $(call to-hash,$(PYS) $(CYS) $(CS)) - python -m pip install -e . -c requirements/constraints.txt + python -m pip install -e . -c requirements/runtime-deps.txt @touch .develop .PHONY: test @@ -177,15 +177,17 @@ doc: doc-spelling: @make -C docs spelling SPHINXOPTS="-W --keep-going -n -E" -.PHONY: compile-deps -compile-deps: .update-pip $(REQS) - pip-compile --no-header --allow-unsafe -q --strip-extras \ - -o requirements/constraints.txt \ - requirements/constraints.in - .PHONY: install install: .update-pip - @python -m pip install -r requirements/dev.txt -c requirements/constraints.txt + @python -m pip install -r requirements/dev.in -c requirements/dev.txt .PHONY: install-dev install-dev: .develop + +.PHONY: sync-direct-runtime-deps +sync-direct-runtime-deps: + @echo Updating 'requirements/runtime-deps.in' from 'setup.cfg'... >&2 + @echo '# Extracted from `setup.cfg` via `make sync-direct-runtime-deps`' > requirements/runtime-deps.in + @echo >> requirements/runtime-deps.in + @python -c 'from configparser import ConfigParser; from itertools import chain; from pathlib import Path; cfg = ConfigParser(); cfg.read_string(Path("setup.cfg").read_text()); print("\n".join(line.strip() for line in chain(cfg["options"].get("install_requires").splitlines(), "\n".join(cfg["options.extras_require"].values()).splitlines()) if line.strip()))' \ + >> requirements/runtime-deps.in diff --git a/requirements/base.in b/requirements/base.in new file mode 100644 index 00000000000..df67f78afde --- /dev/null +++ b/requirements/base.in @@ -0,0 +1,5 @@ +-r typing-extensions.in +-r runtime-deps.in + +gunicorn +uvloop; platform_system != "Windows" and implementation_name == "cpython" # MagicStack/uvloop#14 diff --git a/requirements/base.txt b/requirements/base.txt index 7b9b92c6792..cf5f4a2a033 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,13 +1,8 @@ --r multidict.txt --r typing-extensions.txt -# required c-ares will not build on windows -aiodns==3.0.0; sys_platform=="linux" or sys_platform=="darwin" -aiosignal==1.3.1 -async-timeout==4.0.2 -Brotli==1.0.9 -cchardet==2.1.7; python_version < "3.10" # Unmaintained: aio-libs/aiohttp#6819 -charset-normalizer==3.2.0 -frozenlist==1.4.0 -gunicorn==21.2.0 -uvloop==0.17.0; platform_system!="Windows" and implementation_name=="cpython" and python_version<"3.9" # MagicStack/uvloop#14 -yarl==1.9.2 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/base.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/broken-projects.in b/requirements/broken-projects.in new file mode 100644 index 00000000000..ec8af0724ba --- /dev/null +++ b/requirements/broken-projects.in @@ -0,0 +1,2 @@ +Pillow < 10 # https://github.com/blockdiag/sphinxcontrib-blockdiag/issues/26 +pydantic < 2 # looks like `python-on-whales` hasn't upgraded to support v2 diff --git a/requirements/constraints.in b/requirements/constraints.in index 7b166e59fa5..0d5180ddffc 100644 --- a/requirements/constraints.in +++ b/requirements/constraints.in @@ -1,4 +1,4 @@ --r cython.txt --r dev.txt --r doc-spelling.txt --r lint.txt +-r cython.in +-r dev.in +-r doc-spelling.in +-r lint.in diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 21ce665e56c..fce930bccaa 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -1,262 +1,8 @@ -aiodns==3.0.0 ; sys_platform == "linux" or sys_platform == "darwin" - # via -r requirements/base.txt -aiohttp-theme==0.1.6 - # via -r requirements/doc.txt -aioredis==2.0.1 - # via -r requirements/lint.txt -aiosignal==1.3.1 - # via -r requirements/base.txt -alabaster==0.7.12 - # via sphinx -async-timeout==4.0.2 - # via - # -r requirements/base.txt - # aioredis -babel==2.9.1 - # via sphinx -backports-entry-points-selectable==1.1.0 - # via virtualenv -blockdiag==2.0.1 - # via sphinxcontrib-blockdiag -brotli==1.0.9 - # via - # -r requirements/base.txt - # -r requirements/test.txt -build==0.10.0 - # via pip-tools -certifi==2022.12.7 - # via requests -cffi==1.15.0 - # via - # cryptography - # pycares -cfgv==3.3.1 - # via pre-commit -charset-normalizer==3.2.0 - # via - # -r requirements/base.txt - # requests -cherry-picker==2.1.0 - # via -r requirements/dev.txt -click==8.0.3 - # via - # cherry-picker - # click-default-group - # pip-tools - # slotscheck - # towncrier - # typer - # wait-for-it -click-default-group==1.2.2 - # via towncrier -coverage==7.2.7 - # via - # -r requirements/test.txt - # pytest-cov -cryptography==39.0.1 - # via - # pyjwt - # trustme -cython==3.0.0 - # via -r requirements/cython.txt -distlib==0.3.3 - # via virtualenv -docutils==0.20.1 - # via sphinx -exceptiongroup==1.1.2 - # via pytest -filelock==3.3.2 - # via virtualenv -freezegun==1.1.0 - # via -r requirements/test.txt -frozenlist==1.4.0 - # via - # -r requirements/base.txt - # aiosignal -funcparserlib==1.0.1 - # via - # -r requirements/doc.txt - # blockdiag -gidgethub==5.0.1 - # via cherry-picker -gunicorn==21.2.0 - # via -r requirements/base.txt -identify==2.3.3 - # via pre-commit -idna==3.3 - # via - # requests - # trustme - # yarl -imagesize==1.4.1 - # via sphinx -incremental==21.3.0 - # via towncrier -iniconfig==1.1.1 - # via pytest -jinja2==3.0.2 - # via - # sphinx - # towncrier -markupsafe==2.0.1 - # via jinja2 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/constraints.txt --strip-extras requirements/multidict.txt +# multidict==6.0.4 - # via - # -r requirements/multidict.txt - # yarl -mypy==1.4.1 ; implementation_name == "cpython" - # via - # -r requirements/lint.txt - # -r requirements/test.txt -mypy-extensions==1.0.0 - # via mypy -nodeenv==1.6.0 - # via pre-commit -packaging==21.2 - # via - # build - # gunicorn - # pytest - # sphinx -pillow==9.3.0 - # via blockdiag -pip-tools==7.1.0 - # via -r requirements/dev.txt -platformdirs==2.4.0 - # via virtualenv -pluggy==1.0.0 - # via pytest -pre-commit==3.3.3 - # via -r requirements/lint.txt -proxy-py==2.4.4rc4 - # via -r requirements/test.txt -pycares==4.3.0 - # via aiodns -pycparser==2.20 - # via cffi -pydantic==1.8.2 - # via python-on-whales -pyenchant==3.2.2 - # via sphinxcontrib-spelling -pygments==2.15.0 - # via sphinx -pyjwt==2.3.0 - # via gidgethub -pyparsing==2.4.7 - # via packaging -pyproject-hooks==1.0.0 - # via build -pytest==7.4.0 - # via - # -r requirements/lint.txt - # -r requirements/test.txt - # pytest-cov - # pytest-mock -pytest-cov==4.1.0 - # via -r requirements/test.txt -pytest-mock==3.11.1 - # via -r requirements/test.txt -python-dateutil==2.8.2 - # via freezegun -python-on-whales==0.63.0 - # via -r requirements/test.txt -pytz==2021.3 - # via babel -pyyaml==6.0.1 - # via pre-commit -re-assert==1.1.0 - # via -r requirements/test.txt -regex==2021.11.2 - # via re-assert -requests==2.31.0 - # via - # cherry-picker - # python-on-whales - # sphinx -setuptools-git==1.2 - # via -r requirements/test.txt -six==1.16.0 - # via - # python-dateutil - # virtualenv -slotscheck==0.16.5 - # via -r requirements/lint.txt -snowballstemmer==2.1.0 - # via sphinx -sphinx==7.1.1 - # via - # -r requirements/doc.txt - # sphinxcontrib-blockdiag - # sphinxcontrib-spelling - # sphinxcontrib-towncrier -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-blockdiag==3.0.0 - # via -r requirements/doc.txt -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==2.0.0 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.5 - # via sphinx -sphinxcontrib-spelling==8.0.0 ; platform_system != "Windows" - # via -r requirements/doc-spelling.txt -sphinxcontrib-towncrier==0.3.2a0 - # via -r requirements/doc.txt -toml==0.10.2 - # via cherry-picker -tomli==1.2.2 - # via - # build - # coverage - # mypy - # pip-tools - # pyproject-hooks - # pytest - # slotscheck - # towncrier -towncrier==23.6.0 - # via - # -r requirements/doc.txt - # sphinxcontrib-towncrier -tqdm==4.62.3 - # via python-on-whales -trustme==1.1.0 ; platform_machine != "i686" - # via -r requirements/test.txt -typer==0.6.1 - # via python-on-whales -typing-extensions==4.1.1 - # via - # -r requirements/typing-extensions.txt - # aioredis - # mypy - # pydantic - # python-on-whales -uritemplate==4.1.1 - # via gidgethub -urllib3==1.26.7 - # via requests -uvloop==0.17.0 ; platform_system != "Windows" - # via -r requirements/lint.txt -virtualenv==20.10.0 - # via pre-commit -wait-for-it==2.2.2 - # via -r requirements/test.txt -webcolors==1.11.1 - # via blockdiag -wheel==0.38.1 - # via pip-tools -yarl==1.9.2 - # via -r requirements/base.txt - -# The following packages are considered to be unsafe in a requirements file: -pip==23.2.1 - # via pip-tools -setuptools==68.0.0 - # via - # blockdiag - # pip-tools + # via -r requirements/multidict.txt diff --git a/requirements/cython.in b/requirements/cython.in new file mode 100644 index 00000000000..ee07533e17c --- /dev/null +++ b/requirements/cython.in @@ -0,0 +1,4 @@ +-r multidict.in +-r typing-extensions.in # required for parsing aiohttp/hdrs.py by tools/gen.py + +Cython diff --git a/requirements/cython.txt b/requirements/cython.txt index 3f996dbf400..0f761e5fc49 100644 --- a/requirements/cython.txt +++ b/requirements/cython.txt @@ -1,3 +1,8 @@ --r multidict.txt --r typing-extensions.txt # required for parsing aiohttp/hdrs.py by tools/gen.py -cython==3.0.0 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/cython.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/dev.in b/requirements/dev.in new file mode 100644 index 00000000000..780eae45f5e --- /dev/null +++ b/requirements/dev.in @@ -0,0 +1,6 @@ +-r lint.in +-r test.in +-r doc.in + +cherry_picker +pip-tools diff --git a/requirements/dev.txt b/requirements/dev.txt index e2260f720c8..c9f32a76e1c 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,5 +1,8 @@ --r lint.txt --r test.txt --r doc.txt -cherry_picker==2.1.0 -pip-tools==7.1.0 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/dev.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/doc-spelling.in b/requirements/doc-spelling.in new file mode 100644 index 00000000000..2468c2b5637 --- /dev/null +++ b/requirements/doc-spelling.in @@ -0,0 +1,3 @@ +-r doc.in + +sphinxcontrib-spelling; platform_system!="Windows" # We only use it in GitHub Actions CI/CD diff --git a/requirements/doc-spelling.txt b/requirements/doc-spelling.txt index 4f4b64425d3..1a54e1a3887 100644 --- a/requirements/doc-spelling.txt +++ b/requirements/doc-spelling.txt @@ -1,2 +1,8 @@ --r doc.txt -sphinxcontrib-spelling==8.0.0; platform_system!="Windows" # We only use it in Travis CI +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/doc-spelling.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/doc.in b/requirements/doc.in new file mode 100644 index 00000000000..1e0b6568724 --- /dev/null +++ b/requirements/doc.in @@ -0,0 +1,7 @@ +-c broken-projects.in + +aiohttp-theme +sphinx +sphinxcontrib-blockdiag +sphinxcontrib-towncrier +towncrier diff --git a/requirements/doc.txt b/requirements/doc.txt index 2460f9a930b..fc9caf3f5a4 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -1,7 +1,8 @@ -aiohttp-theme==0.1.6 -# Temp fix till updated: https://github.com/blockdiag/blockdiag/pull/148 -funcparserlib==1.0.1 -sphinx==7.1.1 -sphinxcontrib-blockdiag==3.0.0 -sphinxcontrib-towncrier==0.3.2a0 -towncrier==23.6.0 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/doc.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/lint.in b/requirements/lint.in new file mode 100644 index 00000000000..34616155912 --- /dev/null +++ b/requirements/lint.in @@ -0,0 +1,8 @@ +-r typing-extensions.in + +aioredis +mypy; implementation_name == "cpython" +pre-commit +pytest +slotscheck +uvloop; platform_system != "Windows" diff --git a/requirements/lint.txt b/requirements/lint.txt index 6a1f6e3fe9f..54277c28a26 100644 --- a/requirements/lint.txt +++ b/requirements/lint.txt @@ -1,7 +1,8 @@ --r typing-extensions.txt -aioredis==2.0.1 -mypy==1.4.1; implementation_name=="cpython" -pre-commit==3.3.3 -pytest==7.4.0 -slotscheck==0.16.5 -uvloop==0.17.0; platform_system!="Windows" +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/lint.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/multidict.in b/requirements/multidict.in new file mode 100644 index 00000000000..afcecdff082 --- /dev/null +++ b/requirements/multidict.in @@ -0,0 +1 @@ +multidict diff --git a/requirements/multidict.txt b/requirements/multidict.txt index 08a91b3d9ef..a8eb7064471 100644 --- a/requirements/multidict.txt +++ b/requirements/multidict.txt @@ -1 +1,8 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/multidict.txt --strip-extras requirements/multidict.in +# multidict==6.0.4 + # via -r requirements/multidict.in diff --git a/requirements/runtime-deps.in b/requirements/runtime-deps.in new file mode 100644 index 00000000000..711a3958020 --- /dev/null +++ b/requirements/runtime-deps.in @@ -0,0 +1,11 @@ +# Extracted from `setup.cfg` via `make sync-direct-runtime-deps` + +charset-normalizer >=2.0, < 4.0 +multidict >=4.5, < 7.0 +async-timeout >= 4.0, < 5.0 +yarl >= 1.0, < 2.0 +frozenlist >= 1.1.1 +aiosignal >= 1.1.2 +aiodns >= 1.1; sys_platform=="linux" or sys_platform=="darwin" +Brotli +cchardet; python_version < "3.10" diff --git a/requirements/runtime-deps.txt b/requirements/runtime-deps.txt new file mode 100644 index 00000000000..4e160932cf4 --- /dev/null +++ b/requirements/runtime-deps.txt @@ -0,0 +1,8 @@ +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/runtime-deps.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/test.in b/requirements/test.in new file mode 100644 index 00000000000..9e9161272bf --- /dev/null +++ b/requirements/test.in @@ -0,0 +1,15 @@ +-r base.in +-c broken-projects.in + +coverage +freezegun +mypy; implementation_name == "cpython" +proxy.py +pytest +pytest-cov +pytest-mock +python-on-whales +re-assert +setuptools-git +trustme; platform_machine != "i686" # no 32-bit wheels +wait-for-it diff --git a/requirements/test.txt b/requirements/test.txt index 48b5c4f6a1d..a1808598bcd 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -1,14 +1,8 @@ --r base.txt -Brotli==1.0.9 -coverage==7.2.7 -freezegun==1.1.0 -mypy==1.4.1; implementation_name=="cpython" -proxy.py==2.4.4rc4 -pytest==7.4.0 -pytest-cov==4.1.0 -pytest-mock==3.11.1 -python-on-whales==0.63.0 -re-assert==1.1.0 -setuptools-git==1.2 -trustme==1.1.0; platform_machine!="i686" # no 32-bit wheels -wait-for-it==2.2.2 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/test.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/requirements/typing-extensions.in b/requirements/typing-extensions.in new file mode 100644 index 00000000000..5fd4f05f341 --- /dev/null +++ b/requirements/typing-extensions.in @@ -0,0 +1 @@ +typing_extensions diff --git a/requirements/typing-extensions.txt b/requirements/typing-extensions.txt index 37e36b213d3..c8a07bb5e0b 100644 --- a/requirements/typing-extensions.txt +++ b/requirements/typing-extensions.txt @@ -1 +1,8 @@ -typing_extensions==4.1.1 +# +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: +# +# pip-compile --allow-unsafe --output-file=requirements/typing-extensions.txt --strip-extras requirements/multidict.txt +# +multidict==6.0.4 + # via -r requirements/multidict.txt diff --git a/setup.cfg b/setup.cfg index 622788bc5e2..cea5314177e 100644 --- a/setup.cfg +++ b/setup.cfg @@ -49,7 +49,7 @@ include_package_data = True install_requires = charset-normalizer >=2.0, < 4.0 multidict >=4.5, < 7.0 - async_timeout >= 4.0, < 5.0 + async-timeout >= 4.0, < 5.0 yarl >= 1.0, < 2.0 frozenlist >= 1.1.1 aiosignal >= 1.1.2 @@ -61,8 +61,10 @@ install_requires = [options.extras_require] speedups = - aiodns >= 1.1 + # required c-ares (aiodns' backend) will not build on windows + aiodns >= 1.1; sys_platform=="linux" or sys_platform=="darwin" Brotli + # cchardet is unmaintained: aio-libs/aiohttp#6819 cchardet; python_version < "3.10" [options.packages.find] @@ -93,7 +95,7 @@ per-file-ignores = # flake8-requirements known-modules = proxy.py:[proxy] -requirements-file = requirements/test.txt +requirements-file = requirements/test.in requirements-max-depth = 4 [isort]