From 7cbe6fd2d295b7a7125397fa4c292ab203c72b98 Mon Sep 17 00:00:00 2001 From: Viacheslav Greshilov Date: Sun, 21 Feb 2021 17:03:37 +0200 Subject: [PATCH] Complete pip-tools setup --- .pre-commit-config.yaml | 2 +- CHANGES/5470.bugfix | 1 + Makefile | 18 ++++--- requirements/cython.in | 3 ++ requirements/cython.txt | 13 ++++- requirements/dev.txt | 77 +++++++++++++++++++++------- requirements/doc-spelling.in | 2 + requirements/doc-spelling.txt | 94 ++++++++++++++++++++++++++++++++++- requirements/lint.in | 7 +++ requirements/lint.txt | 86 ++++++++++++++++++++++++++++++-- 10 files changed, 268 insertions(+), 35 deletions(-) create mode 100644 CHANGES/5470.bugfix create mode 100644 requirements/cython.in create mode 100644 requirements/doc-spelling.in create mode 100644 requirements/lint.in diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bffb2972336..ba83762c34f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,7 +31,7 @@ repos: ^docs/[^/]*\.svg$ - id: requirements-txt-fixer exclude: >- - ^requirements/dev.txt$ + ^requirements/(cython|dev|doc-spelling|lint).txt$ - id: trailing-whitespace - id: file-contents-sorter files: | diff --git a/CHANGES/5470.bugfix b/CHANGES/5470.bugfix new file mode 100644 index 00000000000..bc8fa84a4e3 --- /dev/null +++ b/CHANGES/5470.bugfix @@ -0,0 +1 @@ +Complete pip-tools setup. diff --git a/Makefile b/Makefile index 12572c65042..e02cca2635d 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,9 @@ CS := $(wildcard aiohttp/*.c) PYS := $(wildcard aiohttp/*.py) REQS := $(wildcard requirements/*.txt) ALLS := $(sort $(CYS) $(CS) $(PYS) $(REQS)) +IN := doc-spelling lint cython dev +REQIN := $(foreach fname,$(IN),requirements/$(fname).in) + .PHONY: all all: test @@ -45,9 +48,11 @@ endif # Enumerate intermediate files to don't remove them automatically. .SECONDARY: $(call to-hash,$(ALLS)) +.update-pip: + @pip install -U 'pip' -.install-cython: $(call to-hash,requirements/cython.txt) - pip install -r requirements/cython.txt +.install-cython: .update-pip $(call to-hash,requirements/cython.txt) + @pip install -r requirements/cython.txt @touch .install-cython aiohttp/_find_header.c: $(call to-hash,aiohttp/hdrs.py ./tools/gen.py) @@ -62,7 +67,7 @@ aiohttp/%.c: aiohttp/%.pyx $(call to-hash,$(CYS)) aiohttp/_find_header.c cythonize: .install-cython $(PYXS:.pyx=.c) .install-deps: .install-cython $(PYXS:.pyx=.c) $(call to-hash,$(CYS) $(REQS)) - pip install -r requirements/dev.txt + @pip install -r requirements/dev.txt @touch .install-deps .PHONY: lint @@ -135,17 +140,14 @@ doc: doc-spelling: @make -C docs spelling SPHINXOPTS="-W -E" -.update-pip: - @pip install -U 'pip' - .PHONY: compile-deps compile-deps: .update-pip @pip install pip-tools - @pip-compile --allow-unsafe -q requirements/dev.in + @$(foreach fname,$(REQIN),pip-compile --allow-unsafe -q $(fname);) .PHONY: install install: .update-pip - @pip install -r requirements/dev.in -c requirements/dev.txt + @pip install -r requirements/dev.txt .PHONY: install-dev install-dev: .develop diff --git a/requirements/cython.in b/requirements/cython.in new file mode 100644 index 00000000000..2d3627402e8 --- /dev/null +++ b/requirements/cython.in @@ -0,0 +1,3 @@ +-r multidict.txt +cython==0.29.21 +typing_extensions==3.7.4.3 # required for parsing aiohttp/hdrs.py by tools/gen.py diff --git a/requirements/cython.txt b/requirements/cython.txt index 2d3627402e8..4745e75f304 100644 --- a/requirements/cython.txt +++ b/requirements/cython.txt @@ -1,3 +1,12 @@ --r multidict.txt +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --allow-unsafe requirements/cython.in +# cython==0.29.21 -typing_extensions==3.7.4.3 # required for parsing aiohttp/hdrs.py by tools/gen.py + # via -r requirements/cython.in +multidict==5.1.0 + # via -r requirements/multidict.txt +typing_extensions==3.7.4.3 + # via -r requirements/cython.in diff --git a/requirements/dev.txt b/requirements/dev.txt index 32da97b0adb..9ac9cd2840b 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -14,12 +14,14 @@ alabaster==0.7.12 # via sphinx appdirs==1.4.4 # via + # -r requirements/lint.txt # black # virtualenv async-timeout==4.0.0a3 # via -r requirements/base.txt attrs==20.3.0 # via + # -r requirements/lint.txt # flake8-pyi # pytest babel==2.9.0 @@ -41,7 +43,9 @@ cffi==1.14.4 # cryptography # pycares cfgv==3.2.0 - # via pre-commit + # via + # -r requirements/lint.txt + # pre-commit chardet==4.0.0 # via # -r requirements/base.txt @@ -50,6 +54,7 @@ cherry_picker==1.3.2 ; python_version >= "3.6" # via -r requirements/dev.in click==7.1.2 # via + # -r requirements/lint.txt # black # cherry-picker # towncrier @@ -62,11 +67,15 @@ cryptography==3.3.1 # pyjwt # trustme distlib==0.3.1 - # via virtualenv + # via + # -r requirements/lint.txt + # virtualenv docutils==0.16 # via sphinx filelock==3.0.12 - # via virtualenv + # via + # -r requirements/lint.txt + # virtualenv flake8-pyi==20.10.0 # via -r requirements/lint.txt flake8==3.8.4 @@ -85,8 +94,10 @@ gidgethub==5.0.0 # via cherry-picker gunicorn==20.0.4 # via -r requirements/base.txt -identify==1.5.12 - # via pre-commit +identify==1.5.14 + # via + # -r requirements/lint.txt + # pre-commit idna==2.10 # via # requests @@ -97,7 +108,9 @@ imagesize==1.2.0 incremental==17.5.0 # via towncrier iniconfig==1.1.1 - # via pytest + # via + # -r requirements/lint.txt + # pytest isort==5.7.0 # via -r requirements/lint.txt jinja2==2.11.2 @@ -107,13 +120,16 @@ jinja2==2.11.2 markupsafe==1.1.1 # via jinja2 mccabe==0.6.1 - # via flake8 + # via + # -r requirements/lint.txt + # flake8 multidict==5.1.0 # via # -r requirements/multidict.txt # yarl mypy-extensions==0.4.3 ; implementation_name == "cpython" # via + # -r requirements/lint.txt # -r requirements/test.txt # black # mypy @@ -122,29 +138,41 @@ mypy==0.790 ; implementation_name == "cpython" # -r requirements/lint.txt # -r requirements/test.txt nodeenv==1.5.0 - # via pre-commit -packaging==20.8 # via + # -r requirements/lint.txt + # pre-commit +packaging==20.9 + # via + # -r requirements/lint.txt # pytest # sphinx pathspec==0.8.1 - # via black + # via + # -r requirements/lint.txt + # black pillow==8.1.0 # via blockdiag pluggy==0.13.1 - # via pytest + # via + # -r requirements/lint.txt + # pytest pre-commit==2.9.3 # via -r requirements/lint.txt py==1.10.0 - # via pytest + # via + # -r requirements/lint.txt + # pytest pycares==3.1.1 # via aiodns pycodestyle==2.6.0 - # via flake8 + # via + # -r requirements/lint.txt + # flake8 pycparser==2.20 # via cffi pyflakes==2.2.0 # via + # -r requirements/lint.txt # flake8 # flake8-pyi pygments==2.8.0 @@ -154,7 +182,9 @@ pygments==2.8.0 pyjwt[crypto]==2.0.0 # via gidgethub pyparsing==2.4.7 - # via packaging + # via + # -r requirements/lint.txt + # packaging pytest-cov==2.11.1 # via -r requirements/test.txt pytest-mock==3.5.1 @@ -169,12 +199,15 @@ python-dateutil==2.8.1 # via freezegun pytz==2020.5 # via babel -pyyaml==5.3.1 - # via pre-commit +pyyaml==5.4.1 + # via + # -r requirements/lint.txt + # pre-commit re-assert==1.1.0 # via -r requirements/test.txt regex==2020.11.13 # via + # -r requirements/lint.txt # black # re-assert requests==2.25.1 @@ -185,12 +218,13 @@ setuptools-git==1.2 # via -r requirements/test.txt six==1.15.0 # via + # -r requirements/lint.txt # cryptography # python-dateutil # virtualenv snowballstemmer==2.0.0 # via sphinx -sphinx==3.5.0 +sphinx==3.5.1 # via # -r requirements/doc.txt # sphinxcontrib-asyncio @@ -213,6 +247,7 @@ sphinxcontrib-serializinghtml==1.1.4 # via sphinx toml==0.10.2 # via + # -r requirements/lint.txt # black # cherry-picker # pre-commit @@ -224,11 +259,13 @@ trustme==0.7.0 ; platform_machine != "i686" # via -r requirements/test.txt typed-ast==1.4.2 # via + # -r requirements/lint.txt # black # mypy typing-extensions==3.7.4.3 # via # -r requirements/base.txt + # -r requirements/lint.txt # async-timeout # black # mypy @@ -236,8 +273,10 @@ uritemplate==3.0.1 # via gidgethub urllib3==1.26.2 # via requests -virtualenv==20.3.1 - # via pre-commit +virtualenv==20.4.2 + # via + # -r requirements/lint.txt + # pre-commit webcolors==1.11.1 # via blockdiag yarl==1.6.3 diff --git a/requirements/doc-spelling.in b/requirements/doc-spelling.in new file mode 100644 index 00000000000..699f7e3f49e --- /dev/null +++ b/requirements/doc-spelling.in @@ -0,0 +1,2 @@ +-r doc.txt +sphinxcontrib-spelling==7.1.0; platform_system!="Windows" # We only use it in Travis CI diff --git a/requirements/doc-spelling.txt b/requirements/doc-spelling.txt index 699f7e3f49e..c988d191c73 100644 --- a/requirements/doc-spelling.txt +++ b/requirements/doc-spelling.txt @@ -1,2 +1,92 @@ --r doc.txt -sphinxcontrib-spelling==7.1.0; platform_system!="Windows" # We only use it in Travis CI +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --allow-unsafe requirements/doc-spelling.in +# +aiohttp-theme==0.1.6 + # via -r requirements/doc.txt +alabaster==0.7.12 + # via sphinx +babel==2.9.0 + # via sphinx +blockdiag==2.0.1 + # via sphinxcontrib-blockdiag +certifi==2020.12.5 + # via requests +chardet==4.0.0 + # via requests +click==7.1.2 + # via towncrier +docutils==0.16 + # via sphinx +funcparserlib==0.3.6 + # via blockdiag +idna==2.10 + # via requests +imagesize==1.2.0 + # via sphinx +incremental==17.5.0 + # via towncrier +jinja2==2.11.3 + # via + # sphinx + # towncrier +markupsafe==1.1.1 + # via jinja2 +packaging==20.9 + # via sphinx +pillow==8.1.0 + # via blockdiag +pyenchant==3.2.0 + # via sphinxcontrib-spelling +pygments==2.8.0 + # via + # -r requirements/doc.txt + # sphinx +pyparsing==2.4.7 + # via packaging +pytz==2021.1 + # via babel +requests==2.25.1 + # via sphinx +snowballstemmer==2.1.0 + # via sphinx +sphinx==3.5.1 + # via + # -r requirements/doc.txt + # sphinxcontrib-asyncio + # sphinxcontrib-blockdiag + # sphinxcontrib-spelling +sphinxcontrib-applehelp==1.0.2 + # via sphinx +sphinxcontrib-asyncio==0.3.0 + # via -r requirements/doc.txt +sphinxcontrib-blockdiag==2.0.0 + # via -r requirements/doc.txt +sphinxcontrib-devhelp==1.0.2 + # via sphinx +sphinxcontrib-htmlhelp==1.0.3 + # via sphinx +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-qthelp==1.0.3 + # via sphinx +sphinxcontrib-serializinghtml==1.1.4 + # via sphinx +sphinxcontrib-spelling==7.1.0 ; platform_system != "Windows" + # via -r requirements/doc-spelling.in +toml==0.10.2 + # via towncrier +towncrier==19.2.0 + # via -r requirements/doc.txt +urllib3==1.26.3 + # via requests +webcolors==1.11.1 + # via blockdiag + +# The following packages are considered to be unsafe in a requirements file: +setuptools==53.0.0 + # via + # blockdiag + # sphinx diff --git a/requirements/lint.in b/requirements/lint.in new file mode 100644 index 00000000000..01611ba5e67 --- /dev/null +++ b/requirements/lint.in @@ -0,0 +1,7 @@ +black==20.8b1; implementation_name=="cpython" +flake8==3.8.4 +flake8-pyi==20.10.0 +isort==5.7.0 +mypy==0.790; implementation_name=="cpython" +pre-commit==2.9.3 +pytest==6.2.2 diff --git a/requirements/lint.txt b/requirements/lint.txt index 01611ba5e67..b9b500d1e7c 100644 --- a/requirements/lint.txt +++ b/requirements/lint.txt @@ -1,7 +1,87 @@ -black==20.8b1; implementation_name=="cpython" -flake8==3.8.4 +# +# This file is autogenerated by pip-compile +# To update, run: +# +# pip-compile --allow-unsafe requirements/lint.in +# +appdirs==1.4.4 + # via + # black + # virtualenv +attrs==20.3.0 + # via + # flake8-pyi + # pytest +black==20.8b1 ; implementation_name == "cpython" + # via -r requirements/lint.in +cfgv==3.2.0 + # via pre-commit +click==7.1.2 + # via black +distlib==0.3.1 + # via virtualenv +filelock==3.0.12 + # via virtualenv flake8-pyi==20.10.0 + # via -r requirements/lint.in +flake8==3.8.4 + # via + # -r requirements/lint.in + # flake8-pyi +identify==1.5.14 + # via pre-commit +iniconfig==1.1.1 + # via pytest isort==5.7.0 -mypy==0.790; implementation_name=="cpython" + # via -r requirements/lint.in +mccabe==0.6.1 + # via flake8 +mypy-extensions==0.4.3 + # via + # black + # mypy +mypy==0.790 ; implementation_name == "cpython" + # via -r requirements/lint.in +nodeenv==1.5.0 + # via pre-commit +packaging==20.9 + # via pytest +pathspec==0.8.1 + # via black +pluggy==0.13.1 + # via pytest pre-commit==2.9.3 + # via -r requirements/lint.in +py==1.10.0 + # via pytest +pycodestyle==2.6.0 + # via flake8 +pyflakes==2.2.0 + # via + # flake8 + # flake8-pyi +pyparsing==2.4.7 + # via packaging pytest==6.2.2 + # via -r requirements/lint.in +pyyaml==5.4.1 + # via pre-commit +regex==2020.11.13 + # via black +six==1.15.0 + # via virtualenv +toml==0.10.2 + # via + # black + # pre-commit + # pytest +typed-ast==1.4.2 + # via + # black + # mypy +typing-extensions==3.7.4.3 + # via + # black + # mypy +virtualenv==20.4.2 + # via pre-commit