From 1f01f448542e4c258dfa1ed5ea84eab655ddc43b Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Tue, 5 Nov 2024 14:21:20 +0000 Subject: [PATCH] Replace pip-compile with uv pip compile (#419) --- .config/constraints.txt | 359 +++++++++-------------------------- .config/requirements-test.in | 2 +- .pre-commit-config.yaml | 8 +- pyproject.toml | 5 + tox.ini | 4 +- 5 files changed, 100 insertions(+), 278 deletions(-) diff --git a/.config/constraints.txt b/.config/constraints.txt index 17f80d3b..5397e221 100644 --- a/.config/constraints.txt +++ b/.config/constraints.txt @@ -1,275 +1,90 @@ -# -# This file is autogenerated by pip-compile with Python 3.10 -# by the following command: -# -# pip-compile --all-extras --output-file=.config/constraints.txt --strip-extras --unsafe-package=ansible-core --unsafe-package=resolvelib --unsafe-package=typing_extensions pyproject.toml -# -argparse-manpage==4.5 - # via ansible-compat (pyproject.toml) -attrs==23.2.0 - # via - # jsonschema - # referencing -babel==2.15.0 - # via mkdocs-material -beautifulsoup4==4.12.3 - # via - # linkchecker - # mkdocs-htmlproofer-plugin -black==24.4.2 - # via ansible-compat (pyproject.toml) -build==1.2.1 - # via pip-tools -cairocffi==1.7.0 - # via cairosvg -cairosvg==2.7.1 - # via mkdocs-ansible -certifi==2024.2.2 - # via requests -cffi==1.16.0 - # via - # cairocffi - # cryptography -charset-normalizer==3.3.2 - # via requests -click==8.1.7 - # via - # black - # mkdocs - # mkdocstrings - # pip-tools -colorama==0.4.6 - # via - # griffe - # mkdocs-material -coverage==7.5.1 - # via ansible-compat (pyproject.toml) -cryptography==42.0.7 - # via ansible-core -csscompressor==0.9.5 - # via mkdocs-minify-plugin -cssselect2==0.7.0 - # via cairosvg -defusedxml==0.7.1 - # via cairosvg -dnspython==2.6.1 - # via linkchecker -exceptiongroup==1.2.1 - # via pytest -ghp-import==2.1.0 - # via mkdocs -griffe==0.44.0 - # via mkdocstrings-python -htmlmin2==0.1.13 - # via mkdocs-minify-plugin -idna==3.7 - # via requests -iniconfig==2.0.0 - # via pytest -jinja2==3.1.4 - # via - # ansible-core - # mkdocs - # mkdocs-macros-plugin - # mkdocs-material - # mkdocstrings -jsmin==3.0.1 - # via mkdocs-minify-plugin -jsonschema==4.22.0 - # via ansible-compat (pyproject.toml) -jsonschema-specifications==2023.12.1 - # via jsonschema -linkchecker==10.4.0 - # via mkdocs-ansible -markdown==3.6 - # via - # markdown-include - # mkdocs - # mkdocs-autorefs - # mkdocs-htmlproofer-plugin - # mkdocs-material - # mkdocstrings - # pymdown-extensions -markdown-exec==1.8.1 - # via mkdocs-ansible -markdown-include==0.8.1 - # via mkdocs-ansible -markupsafe==2.1.5 - # via - # jinja2 - # mkdocs - # mkdocs-autorefs - # mkdocstrings -mergedeep==1.3.4 - # via - # mkdocs - # mkdocs-get-deps -mkdocs==1.6.0 - # via - # mkdocs-ansible - # mkdocs-autorefs - # mkdocs-gen-files - # mkdocs-htmlproofer-plugin - # mkdocs-macros-plugin - # mkdocs-material - # mkdocs-minify-plugin - # mkdocs-monorepo-plugin - # mkdocstrings -mkdocs-ansible==24.3.1 - # via ansible-compat (pyproject.toml) -mkdocs-autorefs==1.0.1 - # via mkdocstrings -mkdocs-gen-files==0.5.0 - # via mkdocs-ansible -mkdocs-get-deps==0.2.0 - # via mkdocs -mkdocs-htmlproofer-plugin==1.2.1 - # via mkdocs-ansible -mkdocs-macros-plugin==1.0.5 - # via mkdocs-ansible -mkdocs-material==9.5.21 - # via mkdocs-ansible -mkdocs-material-extensions==1.3.1 - # via - # mkdocs-ansible - # mkdocs-material -mkdocs-minify-plugin==0.8.0 - # via mkdocs-ansible -mkdocs-monorepo-plugin==1.1.0 - # via mkdocs-ansible -mkdocstrings==0.25.1 - # via - # mkdocs-ansible - # mkdocstrings-python -mkdocstrings-python==1.10.0 - # via mkdocs-ansible -mypy-extensions==1.0.0 - # via black -packaging==24.0 - # via - # ansible-compat (pyproject.toml) - # ansible-core - # black - # build - # mkdocs - # pipdeptree - # pytest -paginate==0.5.6 - # via mkdocs-material -pathspec==0.12.1 - # via - # black - # mkdocs -pillow==10.3.0 - # via - # cairosvg - # mkdocs-ansible -pip==24.0 - # via - # pip-tools - # pipdeptree -pip-tools==7.4.1 - # via ansible-compat (pyproject.toml) -pipdeptree==2.20.0 - # via mkdocs-ansible -platformdirs==4.2.1 - # via - # black - # mkdocs-get-deps - # mkdocstrings -pluggy==1.5.0 - # via pytest -pycparser==2.22 - # via cffi -pygments==2.18.0 - # via mkdocs-material -pymdown-extensions==10.8.1 - # via - # markdown-exec - # mkdocs-ansible - # mkdocs-material - # mkdocstrings -pyproject-hooks==1.1.0 - # via - # build - # pip-tools -pytest==8.2.0 - # via - # ansible-compat (pyproject.toml) - # pytest-mock - # pytest-plus -pytest-mock==3.14.0 - # via ansible-compat (pyproject.toml) -pytest-plus==0.7.0 - # via ansible-compat (pyproject.toml) -python-dateutil==2.9.0.post0 - # via - # ghp-import - # mkdocs-macros-plugin -python-slugify==8.0.4 - # via mkdocs-monorepo-plugin -pyyaml==6.0.1 - # via - # ansible-compat (pyproject.toml) - # ansible-core - # mkdocs - # mkdocs-get-deps - # mkdocs-macros-plugin - # pymdown-extensions - # pyyaml-env-tag -pyyaml-env-tag==0.1 - # via mkdocs -referencing==0.35.1 - # via - # jsonschema - # jsonschema-specifications -regex==2024.4.28 - # via mkdocs-material -requests==2.31.0 - # via - # linkchecker - # mkdocs-htmlproofer-plugin - # mkdocs-material -rpds-py==0.18.1 - # via - # jsonschema - # referencing -setuptools==69.5.1 - # via pip-tools -six==1.16.0 - # via python-dateutil -soupsieve==2.5 - # via beautifulsoup4 -subprocess-tee==0.4.1 - # via ansible-compat (pyproject.toml) -termcolor==2.4.0 - # via mkdocs-macros-plugin -text-unidecode==1.3 - # via python-slugify -tinycss2==1.3.0 - # via - # cairosvg - # cssselect2 -tomli==2.0.1 - # via - # argparse-manpage - # black - # build - # pip-tools - # pytest -typing-extensions==4.11.0 - # via black -urllib3==2.2.1 - # via requests -watchdog==4.0.0 - # via mkdocs -webencodings==0.5.1 - # via - # cssselect2 - # tinycss2 -wheel==0.43.0 - # via pip-tools +# This file was autogenerated by uv via the following command: +# tox run deps +argparse-manpage==4.6 # via ansible-compat (pyproject.toml) +attrs==24.2.0 # via jsonschema, referencing +babel==2.16.0 # via mkdocs-material +beautifulsoup4==4.12.3 # via linkchecker, mkdocs-htmlproofer-plugin +black==24.10.0 # via ansible-compat (pyproject.toml) +cairocffi==1.7.1 # via cairosvg +cairosvg==2.7.1 # via mkdocs-ansible +certifi==2024.8.30 # via requests +cffi==1.17.1 # via cairocffi, cryptography +charset-normalizer==3.4.0 # via requests +click==8.1.7 # via black, mkdocs, mkdocstrings +colorama==0.4.6 # via griffe, mkdocs-material +coverage==7.6.4 # via ansible-compat (pyproject.toml) +cryptography==43.0.3 # via ansible-core +csscompressor==0.9.5 # via mkdocs-minify-plugin +cssselect2==0.7.0 # via cairosvg +defusedxml==0.7.1 # via cairosvg +dnspython==2.7.0 # via linkchecker +exceptiongroup==1.2.2 # via pytest +ghp-import==2.1.0 # via mkdocs +griffe==1.5.1 # via mkdocstrings-python +hjson==3.1.0 # via mkdocs-macros-plugin, super-collections +htmlmin2==0.1.13 # via mkdocs-minify-plugin +idna==3.10 # via requests +iniconfig==2.0.0 # via pytest +jinja2==3.1.4 # via ansible-core, mkdocs, mkdocs-macros-plugin, mkdocs-material, mkdocstrings +jsmin==3.0.1 # via mkdocs-minify-plugin +jsonschema==4.23.0 # via ansible-compat (pyproject.toml) +jsonschema-specifications==2024.10.1 # via jsonschema +linkchecker==10.5.0 # via mkdocs-ansible +markdown==3.7 # via markdown-include, mkdocs, mkdocs-autorefs, mkdocs-htmlproofer-plugin, mkdocs-material, mkdocstrings, pymdown-extensions +markdown-exec==1.9.3 # via mkdocs-ansible +markdown-include==0.8.1 # via mkdocs-ansible +markupsafe==3.0.2 # via jinja2, mkdocs, mkdocs-autorefs, mkdocstrings +mergedeep==1.3.4 # via mkdocs, mkdocs-get-deps +mkdocs==1.6.1 # via mkdocs-ansible, mkdocs-autorefs, mkdocs-gen-files, mkdocs-htmlproofer-plugin, mkdocs-macros-plugin, mkdocs-material, mkdocs-minify-plugin, mkdocs-monorepo-plugin, mkdocstrings +mkdocs-ansible==24.3.1 # via ansible-compat (pyproject.toml) +mkdocs-autorefs==1.2.0 # via mkdocstrings, mkdocstrings-python +mkdocs-gen-files==0.5.0 # via mkdocs-ansible +mkdocs-get-deps==0.2.0 # via mkdocs +mkdocs-htmlproofer-plugin==1.3.0 # via mkdocs-ansible +mkdocs-macros-plugin==1.3.7 # via mkdocs-ansible +mkdocs-material==9.5.43 # via mkdocs-ansible +mkdocs-material-extensions==1.3.1 # via mkdocs-ansible, mkdocs-material +mkdocs-minify-plugin==0.8.0 # via mkdocs-ansible +mkdocs-monorepo-plugin==1.1.0 # via mkdocs-ansible +mkdocstrings==0.26.2 # via mkdocs-ansible, mkdocstrings-python +mkdocstrings-python==1.12.2 # via mkdocs-ansible +mypy-extensions==1.0.0 # via black +packaging==24.1 # via ansible-core, black, mkdocs, mkdocs-macros-plugin, pipdeptree, pytest, ansible-compat (pyproject.toml) +paginate==0.5.7 # via mkdocs-material +pathspec==0.12.1 # via black, mkdocs, mkdocs-macros-plugin +pillow==11.0.0 # via cairosvg, mkdocs-ansible +pipdeptree==2.23.4 # via mkdocs-ansible +platformdirs==4.3.6 # via black, mkdocs-get-deps, mkdocstrings +pluggy==1.5.0 # via pytest +pycparser==2.22 # via cffi +pygments==2.18.0 # via mkdocs-material +pymdown-extensions==10.12 # via markdown-exec, mkdocs-ansible, mkdocs-material, mkdocstrings +pytest==8.3.3 # via pytest-mock, pytest-plus, ansible-compat (pyproject.toml) +pytest-mock==3.14.0 # via ansible-compat (pyproject.toml) +pytest-plus==0.7.0 # via ansible-compat (pyproject.toml) +python-dateutil==2.9.0.post0 # via ghp-import, mkdocs-macros-plugin +python-slugify==8.0.4 # via mkdocs-monorepo-plugin +pyyaml==6.0.2 # via ansible-core, mkdocs, mkdocs-get-deps, mkdocs-macros-plugin, pymdown-extensions, pyyaml-env-tag, ansible-compat (pyproject.toml) +pyyaml-env-tag==0.1 # via mkdocs +referencing==0.35.1 # via jsonschema, jsonschema-specifications +regex==2024.9.11 # via mkdocs-material +requests==2.32.3 # via linkchecker, mkdocs-htmlproofer-plugin, mkdocs-material +rpds-py==0.20.1 # via jsonschema, referencing +six==1.16.0 # via python-dateutil +soupsieve==2.6 # via beautifulsoup4 +subprocess-tee==0.4.2 # via ansible-compat (pyproject.toml) +super-collections==0.5.3 # via mkdocs-macros-plugin +termcolor==2.5.0 # via mkdocs-macros-plugin +text-unidecode==1.3 # via python-slugify +tinycss2==1.4.0 # via cairosvg, cssselect2 +tomli==2.0.2 # via argparse-manpage, black, pytest +urllib3==2.2.3 # via requests +watchdog==6.0.0 # via mkdocs +webencodings==0.5.1 # via cssselect2, tinycss2 -# The following packages are considered to be unsafe in a requirements file: +# The following packages were excluded from the output: # ansible-core +# pip # resolvelib +# typing-extensions +# uv diff --git a/.config/requirements-test.in b/.config/requirements-test.in index 85d4c2dd..28aeb3f9 100644 --- a/.config/requirements-test.in +++ b/.config/requirements-test.in @@ -1,5 +1,5 @@ coverage -pip-tools pytest-mock pytest-plus>=0.6.1 pytest>=7.2.0 +uv>=0.4.30 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5dc311ab..aedc0894 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -105,20 +105,20 @@ repos: name: Upgrade constraints files and requirements files: ^(pyproject\.toml|requirements\.txt)$ language: python - entry: python3 -m piptools compile --resolver=backtracking --upgrade -q --strip-extras --all-extras --output-file=.config/constraints.txt pyproject.toml --unsafe-package ansible-core --unsafe-package resolvelib --unsafe-package typing_extensions + entry: python3 -m uv pip compile -q --all-extras --output-file=.config/constraints.txt pyproject.toml --upgrade pass_filenames: false stages: - manual additional_dependencies: - - pip-tools>=7.4.1 + - uv>=0.4.3 - id: pip-compile name: Check constraints files and requirements files: ^(pyproject\.toml|requirements\.txt)$ language: python - entry: python3 -m piptools compile --resolver=backtracking -q --strip-extras --all-extras --output-file=.config/constraints.txt pyproject.toml --unsafe-package ansible-core --unsafe-package resolvelib --unsafe-package typing_extensions + entry: python3 -m uv pip compile -q --all-extras --output-file=.config/constraints.txt pyproject.toml pass_filenames: false additional_dependencies: - - pip-tools>=7.4.1 + - uv>=0.4.3 - repo: https://github.com/packit/pre-commit-hooks rev: v1.2.0 hooks: diff --git a/pyproject.toml b/pyproject.toml index 98f12cc4..f1b1d39c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -397,3 +397,8 @@ git_describe_command = [ "--match", "v*.*", ] + +[tool.uv.pip] +annotation-style = "line" +no-emit-package = ["ansible-core", "pip", "resolvelib", "typing_extensions", "uv"] +custom-compile-command = "tox run deps" diff --git a/tox.ini b/tox.ini index 25403400..cdc581ef 100644 --- a/tox.ini +++ b/tox.ini @@ -100,7 +100,9 @@ description = Run all linters # locked basepython is needed because to keep constrains.txt predictable basepython = python3.10 deps = - pre-commit>=2.6.0 + pip + pre-commit>=4.0.1 + pre-commit-uv>=1.15.0 skip_install = true usedevelop = false commands =