Its new home is https://github.com/uoft-networking/tools/
a python monorepo for all projects in the utsc-networking umbrella
External project requirements: pipenv
environment mgmt: pipenv
/ Pipfile
task mgmt: poethepoet
/ pyproject.toml
build frontend / backend: hatchling
/ pyproject.toml
release mgmt: hatch
- install pipenv and direnv
- install python3.10
pipenv install -d
direnv allow .
- config your editor to use
.venv/bin/python
as python interpreter (this should be automatically done in VSCode)
- create
src/utsc/<project>/__init__.py
- create
projects/<project>/pyproject.toml
(copy one of the existing ones) - create
projects/<project>/utsc
cd projects/<project>/utsc && ln -s ../../../src/utsc/<project> ./ && cd ../../..
pipenv install -e projects/<project>
- create
tests/<project>/__init__.py
and additional tests - (optionally) create
.github/workflows/<project>.yaml
- check to see if
utsc.core
needs a new release cd projects/<project>
pyproject.toml
: updateversion
andutsc.core
dependency versionpython -m build
hatch publish
Each project should implement its own typer cli in src/utsc/<project>/__main__.py
. Each project's pyproject file (ie projects/<project>/pyproject.toml
) should contain an entrypoint (or "script", as poetry calls them) that looks something like this:
[tool.poetry.scripts]
"utsc.<project>" = "utsc.<project>.__main__:cli"