https://github.com/ucl-arc/python-tooling
Python package template for new research software projects
https://github.com/ucl-arc/python-tooling
cookiecutter hacktoberfest python python-template python-templates python3 research-software research-software-engineering ucl
Last synced: 4 months ago
JSON representation
Python package template for new research software projects
- Host: GitHub
- URL: https://github.com/ucl-arc/python-tooling
- Owner: UCL-ARC
- License: mit
- Created: 2023-03-14T10:49:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-06-17T16:42:54.000Z (4 months ago)
- Last Synced: 2025-06-17T17:46:18.467Z (4 months ago)
- Topics: cookiecutter, hacktoberfest, python, python-template, python-templates, python3, research-software, research-software-engineering, ucl
- Language: Python
- Homepage: http://github-pages.arc.ucl.ac.uk/python-tooling/
- Size: 735 KB
- Stars: 49
- Watchers: 17
- Forks: 5
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
Awesome Lists containing this project
README
![]()
UCL ARC Python Recommendations
This repository collects the [UCL ARC] recommendations for a research software
project in Python. It contains a template for new Python packages and a
[website] documenting our recommendations. We've turned on
[discussions](https://github.com/UCL-ARC/python-tooling/discussions) for this
repo, and we welcome questions there or in the `#helpme` channel on the
[UCL research programming hub Slack](https://www.ucl.ac.uk/advanced-research-computing/community/ucl-research-programming-hub).πͺ Our template is a [cookiecutter] template which automatically creates new
Python packages with our recommended tooling set up and ready to go.> [!NOTE]
> If you're making a package within a community that has an existing
> package template (e.g., [`scikit-hep`](https://github.com/scikit-hep/cookie)),
> we recommend using their template instead of this one.## Tutorial
Some quick instructions for using our template are below.
We also have a [tutorial](./tutorial.md) that has been presented in a couple of workshops aimed at researchers at UCL.## Using our template
If you have [uv] installed, you can use our template with the following one-liner:
```sh
uvx cookiecutter gh:ucl-arc/python-tooling --checkout latest
```Alternatively you can [install cookiecutter] (following the recommended instructions).
Do this if you don't use [uv], or if you're likely to want to use cookiecutter again.Then you'll need to run cookiecutter with our template:
```sh
cookiecutter gh:ucl-arc/python-tooling --checkout latest
```When [cookiecutter] runs, it will ask you a series of questions to configure your project.
Type the answer or hit return without typing anything to use the default option (shown in parenthesis).
At the end, it will print some more follow-up information in the terminal for things like creating a remote repository and making a website for your package.It will have created a directory for your project.
You can see the structure with the `tree` command.
In our example we've called our project `example-research-software-project`:```sh
ls -ltr | tail -n1 # Shows the last directory that was created
tree example-research-software-project
```To work on your project, initialise a `git` repository and _install_ your new package editable mode.
You probably want to do this in a [virtual environment](./docs/pages/virtual.md).
The comments show how to do this in [uv] with `uv venv`:```sh
cd example-research-software-project
git init
# uv venv
# source .venv/bin/activate
uv pip install -e ".[dev]"
```[website]: https://github-pages.arc.ucl.ac.uk/python-tooling
[UCL ARC]: https://ucl.ac.uk/arc
[cookiecutter]: https://cookiecutter.readthedocs.io/en/stable
[install cookiecutter]: https://cookiecutter.readthedocs.io/en/stable/README.html#installation
[uv]: https://docs.astral.sh/uv## Contributors
Patrick J. Roddy
π€ π π» π π π π π¬ π π’ β οΈ
Sam Cunliffe
π€ π π» π π π π π¬ π π’ β οΈ
David Stansby
π€ π π» π π π π π β οΈ
Matt Graham
π π» π π π¨ π π π’ β οΈ
sfmig
π π» π π β οΈ
Paul Smith
π π» π π π¬ π β οΈ
Renovate Bot
π§
ruaridhg
π π» π π
Miguel Xochicale, PhD
π π» π π¨ π π
yidilozdemir
π β οΈ
Mosè Giordano
π π π
Tom Young
π π π
Alessandro Felder
π π
Adam Tyson
π
Will Graham
π π
nikk-nikaznan
π
Katie Buntic
π
Robert Vickerstaff
π
David PΓ©rez-SuΓ‘rez
π» π¬
llapira
π
pre-commit.ci
π§
Saransh Chopra
π π π§ π
Andrew Mitchell
π
Kimberly Meechan
π οΈοΈοΈοΈβΏοΈ π