top | item 16639118

Show HN: Poetry – Python dependency management and packaging made easy

7 points| sdispater | 8 years ago |poetry.eustace.io | reply

3 comments

order
[+] sdispater|8 years ago|reply
Poetry is a new tool to help you manage your Python projects.

It is both a dependency management tool and a packaging tool. Most of the reasons why I started this are detailed in the README (along with why I don’t want to use Pipenv) here: https://github.com/sdispater/poetry#why, but if you want to know the advantages of Poetry compared to existing tools, here are a few:

- Exhaustive dependency resolver

- Intuitive CLI (See https://poetry.eustace.io/docs/cli/)

- Emphasis on semantic versioning and constraint specification so that wildcard dependencies (`*`) will be considered bad practice

- Support for dependencies caret, tilde, wildcard, inequality and multiple requirements.

- Only one file: the standardised pyproject.toml which aims at being readable and clear.

- Mandatory compatible python versions specification.

Also, Poetry is Python 3.6+ only but can manage Python 2 projects without any problem.

And finally, Poetry is not completely stable yet so internally things can change but the CLI and commands are pretty much stable so backwards-incompatible changes should not happen too often.

[+] detaro|8 years ago|reply
Your example of the "better" dependency resolutions seems to violate one of the constraints pipenv sees. Does pipenv somehow assume a rule that isn't there or what's going on in that example?