Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
main()
method toccm
scriptWhy Poetry
Poetry enables to do both dependency management and building in one package. Setuptools could be used as well, but I find Poetry easier to use and it solves both problems at once. It is a modern build system with nice features like dependency groups (so we dont need multiple requirements files) etc. It also has good IDE support, making installing and managing dependencies much easier than it is today.
How to use it
Main difference between using requirements files or setup.py and Poetry is that poetry by default installs everything into venv and manages that env as well. Local development can be setup with simple
poetry install
, then you can either usepoetry run <your_cmd>
for running anything inside the poetry venv or you can simply usepoetry shell
to get into venv shell.If you want to also install test dependencies you can use
poetry install --with=test
instead. Building is done throughpoetry build
andpoetry publish
and you can change CCM version withpoetry version
.More importantly, CCM can be installed with
pip install git+...
even if you dont have poetry installed, so this change should not break any existing workflows.TODO
poetry publish
pytest.ini
intopyproject.toml
Testing
Questions for reviewers