- New
CarpStudypublic API as the primary entrypoint for CARP study analysis - Modular service layout under
carp.core,participants,records,schema,export,frames,types,plotting, andcommandline - Self-contained pytest suite with committed multi-phase fixtures and optional
sleep-datasmoke coverage - 100% line and branch coverage enforcement for
src/carp - Sphinx documentation site with autodoc and Napoleon support
- GitHub Actions CI for linting, type-checking, tests, and docs builds
- Tag-driven CD workflow that validates version tags, publishes to PyPI, and creates GitHub releases
- Dedicated
testanddocsdependency groups
- Replaced the legacy method-heavy design with a thin
CarpStudycomposition root and focused services - Kept the
carpCLI command set stable while rewriting the implementation behind modular handlers - Switched plotting defaults to
dk.cachet.carp.location - Made parquet filenames namespace-aware to avoid same-name type collisions
- Added Google-style docstrings and expanded type annotations across the package
- Refreshed the README, example scripts, generated type example, and notebook to use the new API
- Normalized Ruff, MyPy, coverage, and documentation build configuration in
pyproject.toml
- Legacy
carp.readermonolith - Legacy
carp.plotting.map_vizmodule - Old
CarpDataStream-centric example usage and stale plotting/type-generation references
- Initial release of CARP Analytics Python library
CarpDataStreamclass for loading and processing CARP data streams- Streaming JSON parsing with
ijsonfor memory-efficient processing - Schema discovery and inference from data
- Parquet export for faster subsequent analysis
ParticipantManagerfor tracking participants across study phasesParticipantAccessorfluent API for accessing individual participant dataParticipantInfodataclass for participant metadata- Data grouping by field, participant, email, SSN, or name
- DataFrame integration with pandas
- Location visualization with Folium heatmaps
- Rich terminal output with progress bars and formatted tables
- CLI entry point (
carpcommand) for command-line usage - Support for Python 3.10, 3.11, 3.12, and 3.13
- Optional dependencies for pandas, visualization, and scientific computing
- Type hints with PEP 561 py.typed marker
- Core: ijson, rich, tqdm
- Optional pandas: pandas, pyarrow
- Optional viz: matplotlib, folium
- Optional science: numpy, scipy, scikit-learn