跳转至

Development Guide

Environment

pip install -e ".[dev,viz]"

Tests

# All tests (parallel)
pytest tests/

# Sequential (debugging)
pytest tests/ --override-ini="addopts="

# With coverage
pytest tests/ --cov=fincore --cov-report=term-missing

Linting

ruff check fincore/ tests/
ruff format fincore/ tests/

Type Checking

python -m mypy fincore/core fincore/metrics fincore/plugin fincore/data \
    fincore/optimization fincore/attribution fincore/report fincore/risk \
    fincore/simulation fincore/utils fincore/viz fincore/empyrical.py \
    fincore/tearsheets fincore/pyfolio.py --ignore-missing-imports

Architecture

  • Lazy imports: import fincore ~0.04s
  • Registry-based methods: fincore/_registry.py auto-generates 100+ Empyrical class methods
  • Star import elimination: All __init__.py use explicit imports + __all__