Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .claude/rules/uv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
description: Enforce uv as the package manager for all Python operations
globs:
- "**/*.py"
- "**/pyproject.toml"
---

- Always use `uv run` to execute commands — never bare `python`, `pytest`, `ruff`, or other tools.
- Never use `pip install` — use `uv sync` (with `--group` flags) to manage dependencies.
- The `uv.lock` file is the source of truth for resolved dependency versions.
- When adding dependencies, add them to `pyproject.toml` and run `uv sync`.
- HSSM uses PEP 735 dependency groups: `--group dev`, `--group notebook`, `--group docs`.
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ ENV/

# Also ignore lock files
poetry.lock
uv.lock

# Editor cruft
.idea/
Expand All @@ -88,7 +87,6 @@ hssm_paper/

*.so
.python-version
uv.lock
explorations/
*.nbconvert.ipynb
pypi-token
Expand Down
20 changes: 14 additions & 6 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.14.13
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: ^mkdocs\.yml$
- id: check-added-large-files
args: ['--maxkb=99900']
- id: check-merge-conflict

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.19.1 # Use the sha / tag you want to point at
rev: v1.19.1
hooks:
- id: mypy
args: [--no-strict-optional, --ignore-missing-imports]
additional_dependencies: [types-PyYAML]
3 changes: 2 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What is HSSM?

HSSM (Hierarchical Sequential Sampling Models) is a Python package for Bayesian inference on sequential sampling models (DDM, LBA, etc.) using PyMC and bambi. It provides a high-level API for defining, fitting, and analyzing these models.
HSSM (Hierarchical Sequential Sampling Models) is a Python package for Bayesian inference on sequential sampling models (DDM, LBA, etc.) using PyMC and bambi. It provides a high-level API for defining, fitting, and analyzing these models. This is the user-facing package in the HSSM ecosystem. For ecosystem-wide context, see the HSSMSpine repo.

## Project Structure

Expand Down Expand Up @@ -100,6 +100,7 @@ Two separate skip mechanisms for notebooks:
| `coverage.yml` | Code coverage |
| `build_docs.yml` | Build documentation |
| `build_and_publish.yml` | Release to PyPI (triggered on release publish) |
| `prepare-release.yml` | Release preparation automation |

## Known Issues / Notes

Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@ dev = [
"pytest-rerunfailures>=15.0",
"pytest-timeout>=2.3.1",
"ruff>=0.15.0",
"types-PyYAML",
"pre-commit>=4.1.0",
"onnxruntime>=1.17.1",
]
Expand Down
2 changes: 1 addition & 1 deletion tests/test_rlssm_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ class TestRLSSMConfigCreation:
{"v": "subject_wise_function"},
)

testcase2 = (
testcase2: tuple = (
"minimal_rlssm",
minimal_rlssm_config,
"minimal_rlssm",
Expand Down
4,367 changes: 4,367 additions & 0 deletions uv.lock

Large diffs are not rendered by default.

Loading