TODO A description of the project
This repo has a blank directory structure for an ARC Python project, including setting up:
poetry
- for dependencies (including development dependencies) and creating a Python package from your source codepre-commit
- to automatically run linters (flake8
,black
, andisort
) for style checks and auto-formatting- A GitHub actions workflow to automatically run linters and tests on pushes or pull requests to the
main
anddevelop
branches (by default)
poetry
- See https://python-poetry.org/docs/#installation for installation instructions
-
Create a new repo from this template (green button "Use this template" top right -> create new repository), with a name in the format
ARC-<project-name>
, and clone it locally -
Edit the lines with
TODO
comments inpyproject.toml
and.github/workflows/actions.yml
, including changing the name of thesrc/todo_packagename
directory. -
Update and install Poetry dependencies
poetry update poetry install
-
Update and install pre-commit hooks:
poetry run pre-commit autoupdate poetry run pre-commit install --install-hooks
-
Update the README with a description of the project and fill the other sections marked as TODO
-
Delete the "Using this template" section of this readme, and optionally the file
.github/workflows/update_template.yml
- e.g. to report and statement of work (if these can be shared)
-
Clone this repository
-
Install with
pip
:pip install .
TODO
-
Install dependencies with Poetry
poetry install
-
Install pre-commit hooks:
poetry run pre-commit install --install-hooks
-
To add dependencies to the poetry environment:
poetry add <PACKAGE_NAME>
See the poetry documentation for more details on specifying dependencies.
-
To run commands in the poetry virtual environment (in a terminal), either:
- Prefix the command you want to run with
poetry run
- e.g.
poetry run python myscript.py
- e.g.
- Enter the virtual environment with
poetry shell
and then run commands as normal- then exit the virtual environment with
exit
- then exit the virtual environment with
- Prefix the command you want to run with
-
To run tests:
poetry run pytest
-
To run linters:
-
If you have setup pre-commit
flake8
,black
, andisort
will run automatically before making commits -
Or you can run them manually:
poetry run black . poetry run isort . poetry run flake8
-
-
Your source code files should go in the
src/todo_packagename
directory (withtodo_packagename
replaced with the name of your package). These will be available as a python package, i.e. you can dofrom todo_mypackagename.myfile import myfunction
etc. -
Add tests (in files with names like
test_*.py
and with functions with names startingtest_*
) thetests/
directory.