mirror of
https://github.com/bckelley/tconnectsync.git
synced 2026-08-24 03:34:12 -05:00
ProcessAlarm.skip_event() read event.alarmId on every EventClass.ALARM event, but LidMalfunctionActivated (a sibling of LidAlarmActivated in that class) has no alarmId, so a malfunction alarm crashed the sync with AttributeError. - Narrow with isinstance before reading alarmId; malfunction events now upload as "Malfunction" as intended, and sync continues. - Type the alarm handlers against an explicit AlarmEvent union and add an assert_never exhaustiveness guard, so a type checker rejects unguarded subtype attribute access and flags any newly added ALARM event type. - Fix a latent None-leak: alarm_to_nsentry now always returns a dict. - Add mypy as a gradual-typing beachhead (setup.cfg [mypy], CI step, Pipfile typecheck script), scoped to process_alarm.py. This configuration fails on exactly the #156 class of bug. - Add regression tests: malfunction processing, mixed alarm batches, the event shape, and an AlarmEvent/EventClass.ALARM sync guard. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LpMTd5LzkqFLZTUKd3H8em
56 lines
1.2 KiB
INI
56 lines
1.2 KiB
INI
[metadata]
|
|
name = tconnectsync
|
|
version = 3.0.0
|
|
author = James Woglom
|
|
author_email = j@wogloms.net
|
|
description = Syncs Tandem Source (formerly t:connect) insulin pump data to Nightscout for the t:slim X2 and Tandem Mobi
|
|
long_description = file: README.md
|
|
long_description_content_type = text/markdown
|
|
url = https://github.com/jwoglom/tconnectsync
|
|
project_urls =
|
|
Bug Tracker = https://github.com/jwoglom/tconnectsync/issues
|
|
classifiers =
|
|
Programming Language :: Python :: 3
|
|
License :: OSI Approved :: MIT License
|
|
Operating System :: OS Independent
|
|
|
|
[options]
|
|
package_dir =
|
|
= .
|
|
packages = find:
|
|
python_requires = >=3.7
|
|
install_requires =
|
|
requests
|
|
bs4
|
|
arrow
|
|
lxml
|
|
python-dotenv
|
|
requests-mock
|
|
pysocks
|
|
urllib3
|
|
requests
|
|
requests-oidc
|
|
PyJWT==2.8.0
|
|
cryptography==43.0.1; python_version < "3.9"
|
|
cryptography; python_version >= "3.9"
|
|
dataclasses-json
|
|
cffi
|
|
typing-extensions
|
|
importlib-metadata; python_version < "3.8"
|
|
|
|
[options.packages.find]
|
|
where = .
|
|
exclude =
|
|
tests*
|
|
scripts*
|
|
|
|
[options.entry_points]
|
|
console_scripts =
|
|
tconnectsync = tconnectsync:main
|
|
|
|
[mypy]
|
|
files =
|
|
tconnectsync/sync/tandemsource/process_alarm.py
|
|
follow_imports = silent
|
|
ignore_missing_imports = True
|