📦 jsharpe
make installThis installs/updates uv, creates your virtual environment and installs dependencies.
Run this minimal, deterministic example to compute the Probabilistic Sharpe Ratio (PSR) from the package functions.
from jsharpe import probabilistic_sharpe_ratio
sr = 0.036 / 0.079
psr = probabilistic_sharpe_ratio(SR=sr, SR0=0, T=24, gamma3=-2.448, gamma4=10.164)
print(f"{psr:.3f}")0.987
make fmtInstalls hooks to maintain code quality and formatting.
make tests # Run test suite
make marimo # Start Marimo notebooks- 🍴 Fork the repository
- 🌿 Create your feature branch (git checkout -b feature/amazing-feature)
- 💾 Commit your changes (git commit -m 'Add some amazing feature')
- 🚢 Push to the branch (git push origin feature/amazing-feature)
- 🔍 Open a Pull Request
This project uses standardized configuration files from jebel-quant/rhiza, which provides a consistent development environment across multiple projects.
The following files are automatically synchronized from the template repository:
- Development Tools: .editorconfig, .pre-commit-config.yaml, Makefile, ruff.toml, pytest.ini
- GitHub Workflows: CI/CD pipelines in .github/workflows
- Documentation: CODE_OF_CONDUCT.md, CONTRIBUTING.md, LICENSE
- Configuration: .gitignore and other project setup files
The .github/template.yml file controls which files are synchronized from the template repository. To sync with the latest template updates:
make syncThis ensures the project benefits from improvements to the shared configuration without manual updates.
While most boilerplate files come from the template, the following are project-specific:
- README.md (this file)
- pyproject.toml (project dependencies and metadata)
- ruff.toml (extended but based on template)
- Source code in src/
- Project-specific tests (e.g.,
tests/test_sharpe.py)
Note: The tests/test_rhiza directory contains template-provided tests for validating the boilerplate configuration itself.