Describe your project here
-
Maintain a append-only
LOGBOOK.mdfile for each iteration, with the following structure in antichronological order:## <Brief description of the iteration> - YYYY-MM-DD <Brief summary of the hypotheses being tested> <Description of the methods and implementation> <Highlight of the key results> <Next steps> -
Maintain a
RESULTS.mdthat compiles the (comparable) results obtained so far. It should be an up-to-date version of the key results found inLOGBOOK.md.
Reports are written in quarto. All plots should be generated with Python cells (not copied from elsewhere), ideally from cached results to minimize the generation time. Reporting code should be re-usable, so favor functions instead of throwaway code.
- Use
uvto run scripts - Use
uv ruff checkto lint the code anduvx ty checkto type check it. - Always use
uv ruff formatto format the code according to our guidelines after you are done editing a file. - All functions must have type hints for their arguments and return values
- All functions should have docstings (numpy style), the docstring should be short and simple, avoid notes sections and exemples sections in docstrings unless strictly necessary.
- Code should focus on simplicity and clarity, avoid scope creep, avoid implementing non-necessary options.
- Polars should be prefered over pandas unless really necessary (e.g., geopandas).
- Project configurations and data paths are defined in
src/package_name/data/config.yamlandsrc/package_name/config.py, data folder paths should not be hardcoded in scripts, rather they should be loaded from configurations. - Tests live in
tests/, are run withuv run pytest, and follow the same style rules as the rest of the code (type hints, short numpy-style docstrings).