repo_poetry - A wrapper for Poetry

This pyproject.toml exists as a means to track our Poetry dependency within repo_man separate from the other libraries. Poetry is a heavy install and currently only used by the repo tools themselves, so there is no need for everyone to install Poetry all the time.

The pyproject.toml that sits next to this README enables repo to install Poetry with the correct dependencies for your active interpreter version. The static vendor-requirements.txt were generated against py37 and this static approach broke in 2024. The generated requirements_poetry.txt exists to facilitate security scans.

How do I use this?

As an example, the repo_man pyproject.toml that sits in the root of this repository contains all of the 3rd party dependencies for repo_man. Executing repo.{sh,bat} poetry in the root will cause repo_man to fire up a venv, by default at ${root}/.venv, install Poetry and its dependencies in that sandbox, and then use Poetry to generate a requirements.txt based off of your running Python interpreter and the dependencies in the pyproject.toml.

This can also be used in other projects that enable repo_poetry in their repo.toml config file. Those project’s pyproject.toml will be ingested and a requirements.txt spit out at ${root}/requirements.txt. For now interpreter versioning isn’t factored into this, at some point we’ll support a matrix of Python interpreter and OS type requirements.txt files.

TODO

  • Include Python interpreter version for the generated requirements.txt

  • Refactor all of this to not be proof of concept code

  • Tests?