Metadata-Version: 2.5
Name: fit-parse-core
Version: 0.1.0
Summary: Domain-neutral Garmin .FIT message extraction and session assembly
Project-URL: Homepage, https://github.com/ssim-baa/fit-parse-core
Project-URL: Source, https://github.com/ssim-baa/fit-parse-core
Author: ssim-baa
License: MIT
Keywords: fit,fitparse,garmin
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.9
Requires-Dist: fitparse>=1.2
Description-Content-Type: text/markdown

# fit-parse-core

Domain-neutral Garmin `.FIT` extraction and session assembly.

Deliberately thin. This package pulls messages out of a `.FIT` file and groups
multi-file recordings into sessions. It knows nothing about any particular
sport — swimming, freediving, hiking and skiing formulas belong in the domain
packages that consume this one.

That boundary is load-bearing. If domain knowledge leaks in, adding an activity
means editing the core, and this package deliberately carries **no contract
version axis** to be stamped against.

## Install

```
pip install fit-parse-core
```

## Use

```python
from fit_parse_core import read_fit, group_sessions

data = read_fit("ACTIVITY.fit", ("session", "lap", "record"))
```

`read_fit` takes the message names to extract, because which messages matter is
a domain question. `scaled()` divides Garmin's integer-scaled extension fields
and returns `None` for absent values so callers can honour the
unmeasured-null convention rather than coercing absence to zero.

## Consumers

- `swim-fit-parse` — lap swimming
- `dive-fit-parse` — freediving

MIT. Author `ssim-baa`.
