codeinabox@programming.dev to Python@programming.devEnglish · 4 months agouv is the best thing to happen to the Python ecosystem in a decadeemily.spaceexternal-linkmessage-square8fedilinkarrow-up13
arrow-up13external-linkuv is the best thing to happen to the Python ecosystem in a decadeemily.spacecodeinabox@programming.dev to Python@programming.devEnglish · 4 months agomessage-square8fedilink
minus-squarejust another dev@lemmy.my-box.devlinkfedilinkEnglisharrow-up0·4 months agoDoes it allow differentiating between dependencies and dev dependencies though? I couldn’t gather that from the article.
minus-squareEager Eagle@lemmy.worldlinkfedilinkEnglisharrow-up1·edit-24 months agoit does, I use it every day this is the standard https://packaging.python.org/en/latest/specifications/dependency-groups/
minus-squarelogging_strict@programming.devlinkfedilinkarrow-up0·edit-24 months 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.
Does it allow differentiating between dependencies and dev dependencies though? I couldn’t gather that from the article.
it does, I use it every day
this is the standard https://packaging.python.org/en/latest/specifications/dependency-groups/
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.