codeinabox@programming.dev to Python@programming.devEnglish · 1 个月前uv is the best thing to happen to the Python ecosystem in a decadeemily.spaceexternal-linkmessage-square21fedilinkarrow-up167arrow-down11cross-posted to: python@lemmy.sdf.org
arrow-up166arrow-down1external-linkuv is the best thing to happen to the Python ecosystem in a decadeemily.spacecodeinabox@programming.dev to Python@programming.devEnglish · 1 个月前message-square21fedilinkcross-posted to: python@lemmy.sdf.org
minus-squarelogging_strict@programming.devlinkfedilinkarrow-up1arrow-down1·edit-21 个月前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 *.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.