Metadata-Version: 2.3
Name: garminmaps
Version: 0.0.3
Summary: SDK for generating interactive leaflet.js maps from Garmin data.
Project-URL: Homepage, https://github.com/doorlay/garminmaps
Project-URL: Issues, https://github.com/doorlay/garminmaps/issues
Author-email: Nic Doorlay <ndoorlay@gmail.com>
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.8
Requires-Dist: folium==0.17.0
Requires-Dist: garminconnect==0.2.19
Requires-Dist: garth==0.4.46
Requires-Dist: gpxpy==1.6.2
Requires-Dist: pandas==2.2.2
Provides-Extra: dev
Requires-Dist: build==1.2.1; extra == 'dev'
Requires-Dist: ruff==0.5.3; extra == 'dev'
Requires-Dist: twine==5.1.1; extra == 'dev'
Description-Content-Type: text/markdown

## Usage
Run `pip install garminmaps` to install.

Example usage:
```
import garminmaps

"""Example: Plot all runs from June 2024 onto a leaflet.js map."""

# Login to Garmin Connect with OAuth2
garmin_client = garminmaps.login()

# Create a new empty leaflet.js map
running_map = garminmaps.create_map()

# Get data for all runs in June 2024
activites = garminmaps.get_activities(garmin_client, "running", "2024-06-01", "2024-06-30")
for activity in activites:
    activity.plot(running_map)

# Write the leaflet.js map to disk
running_map.save("runs.html")
```

## Contributing
Setting up your dev environment:
<!-- pip3 install garminmaps[dev] -->
1. `python3 -m venv .venv`
2. `source .venv/bin/activate`
3. `pip3 install -r requirements.txt`  

Commiting code:
1. `ruff format && ruff check`
2. Fork the repository, checkout a new branch on your forked version, and push changes.
3. Open a pull request in the [GitHub repository](https://github.com/doorlay/garminmaps/pulls).

Building & releasing (author only):
1. `python3 -m build`
2. `python3 -m twine upload dist/*`

<!-- ## Future Work
- Add support for range-based plotting
- Superimpose activity data onto the graph
- Use Wails to turn this into an actual application. Use in-browser SSO.
- Drop down menu in the upper left for each type of activity, color-coded. When you select a type, only those types are displayed
- For each activity type, group activities in a similar location and allow selection of that location. When selected, navigate to that region on the map.
- For each activity, display information on click. e.g. when you click on a run, you get distance, pace, bpm, calories burned, etc. 
- hand-roll GPX parsing to lower dependencies. Maybe the same for mapping, auth -->