FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

UCL-ARC/python-tooling: Python package template for new research software projects · GitHub

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 for this repo, and we welcome questions there or in the #helpme channel on the UCL research programming hub Slack.

🍪 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-Surgery), we recommend using their template instead of this one.

Using our Python package template

Some quick instructions for using our template are below. We also have a longer tutorial that has been presented in workshops for researchers at UCL. Slides from presentations we have given on the project are available in the python-tooling-presentations repository.

If you have uv installed, you can use our template with the following command:

uvx cookiecutter gh:ucl-arc/python-tooling --checkout latest

If you don't want to use uv you can install cookiecutter using pip, and run the above command without the leading uvx.

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:

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. The comments show how to do this in uv with uv venv:

cd example-research-software-project
git init
# uv venv
# source .venv/bin/activate
uv sync

Note that uv>=0.6.7 is required to use the --group option.

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

🐛 ️️️️♿️ 👀 🖋 📖

James Prime

️️️️♿️ 🤔

Andrii Tsapko

️️️️♿️ 💻

James Briant

🐛

Stella Prins

🐛 📖

Connor Aird

👀

Releases

Used by

Contributors

Languages


Back | FazBrowse Home | New Git URL