codeinabox@programming.dev to Python@programming.devEnglish · 3 days agouv is the best thing to happen to the Python ecosystem in a decadeemily.spaceexternal-linkmessage-square19fedilinkarrow-up120arrow-down11
arrow-up119arrow-down1external-linkuv is the best thing to happen to the Python ecosystem in a decadeemily.spacecodeinabox@programming.dev to Python@programming.devEnglish · 3 days agomessage-square19fedilink
minus-squarelogging_strict@programming.devlinkfedilinkarrow-up1·edit-221 hours agowreck can. It’s venv aware. Takes full advantage of hierarchical requirement files. Is intuitive. The learning curve is minimal. Written in Python. [[tool.wreck.venvs]] venv_base_path = '.venv' reqs = [ 'requirements/pip', 'requirements/pip-tools', 'requirements/prod', 'requirements/dev', 'requirements/manage', 'requirements/kit', 'requirements/mypy', 'requirements/tox', ] [[tool.wreck.venvs]] venv_base_path = '.doc/.venv' reqs = [ 'docs/requirements', 'docs/pip-tools', ] [tool.setuptools.dynamic] dependencies = { file = ['requirements/prod.unlock'] } optional-dependencies.pip = { file = ['requirements/pip.lock'] } optional-dependencies.pip_tools = { file = ['requirements/pip-tools.lock'] } optional-dependencies.dev = { file = ['requirements/dev.lock'] } optional-dependencies.manage = { file = ['requirements/manage.lock'] } optional-dependencies.docs = { file = ['docs/requirements.lock'] } reqs fix --venv-relpath='.venv' reqs fix --venv-relpath='.doc/.venv' From *.in requirements files would produce *.unlock and *.lock files for venv .venv. Package versions are sync’ed within all requirements files within that venv.
wreck can. It’s venv aware. Takes full advantage of hierarchical requirement files. Is intuitive. The learning curve is minimal. Written in Python.
[[tool.wreck.venvs]] venv_base_path = '.venv' reqs = [ 'requirements/pip', 'requirements/pip-tools', 'requirements/prod', 'requirements/dev', 'requirements/manage', 'requirements/kit', 'requirements/mypy', 'requirements/tox', ] [[tool.wreck.venvs]] venv_base_path = '.doc/.venv' reqs = [ 'docs/requirements', 'docs/pip-tools', ][tool.setuptools.dynamic] dependencies = { file = ['requirements/prod.unlock'] } optional-dependencies.pip = { file = ['requirements/pip.lock'] } optional-dependencies.pip_tools = { file = ['requirements/pip-tools.lock'] } optional-dependencies.dev = { file = ['requirements/dev.lock'] } optional-dependencies.manage = { file = ['requirements/manage.lock'] } optional-dependencies.docs = { file = ['docs/requirements.lock'] }reqs fix --venv-relpath='.venv'reqs fix --venv-relpath='.doc/.venv'From
*.inrequirements files would produce*.unlockand*.lockfiles for venv.venv. Package versions are sync’ed within all requirements files within that venv.