Thanks to visit codestin.com
Credit goes to github.com

Skip to content

mecha-health/python-tooling

 
 

Repository files navigation

UCL ARC Python tooling logo

Mecha Health Python Recommendations

This repository collects the standard Mecha Health recommendations for a research software project in Python, derived from UCL ARC's recommendation. It contains a template for new Python packages.

🍪 The template is a cookiecutter template which automatically creates new Python packages with our recommended tooling set up and ready to go.

Using the template

If you have uv installed, you can use our template with the following one-liner:

uvx cookiecutter gh:mecha-health/python-tooling

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:

cookiecutter gh:mecha-health/python-tooling

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 pip install -e ".[dev]"

About

Python package template for new research software projects

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%