A template for anyone looking to do modern python experiment research work. This was born after lots of painful lessons were learned, so hopefully it saves you time and effort.
If you're using flywire, you might want to save all the data to one location and then symlink them, to avoid needing multiple copies of the data. Here's how you can do it, assuming that flywire_data is at the home directory:
ln -s /home/iq/flywire_data research/some_project/data/raw
where iq was my username, and the project was located in the home directory under research/some_project
- uv
- Have git installed, and have your SSH keys fully set up
- Run
python init_project.pyand follow the prompt(s) to initialize your project - Run
uv syncto install core dependencies (marimo, tqdm) - Run
uv run python main.pyto verify everything works - Run
uv add x, wherexis the name of the package you want to install
This template uses the modern src/ layout, which means your package code lives in src/{your_project_name}/. This prevents accidentally importing from the source directory and ensures you're testing the installed package.
Typically goes into the experiment folder. As the name says, this is more for rough experimentation. Ideally once you've got some groundwork laid you moved the code over into the appropriate src/...
See the data/README for more information, but TL;DR you will want to be cognizant of how you handle your data.