v2.0.6
·
7 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Release v2.0.6
Overview
This release focuses on code quality, stability, and developer experience. We have implemented Phase 1 of our Strict Typing Enforcement Plan, ensuring the core library is fully type-safe. Additionally, we have achieved 100% test coverage, ensuring robust handling of edge cases and deprecated methods.
Key Changes
🛡️ Strict Typing (Phase 1)
- Full Type Safety: The
fmd_apicore library (client.py,device.py,models.py) now passes strictmypychecks. - Improved Signatures: Public methods now have precise return types and generic type hints (e.g.,
List[Dict[str, Any]]), improving IDE autocompletion and static analysis for consumers. - Configuration: Updated
pyproject.tomlto enforce strict typing rules (disallowing untyped definitions and implicit optionals).
🧪 Test Coverage Improvements
- Full Coverage: Increased overall test coverage to 100%.
- Edge Case Handling: Added comprehensive tests for
Locationparsing, including scenarios with missing dates or invalid inputs. - Deprecation Verification: Added specific tests to ensure deprecated methods in
Device(liketake_front_photo,fetch_pictures) continue to function correctly while emitting appropriate warnings. - Command Sanitization: Verified that
Device.lock()correctly sanitizes and truncates messages.
📚 Documentation
- Roadmap: Added
docs/strict_typing_enforcement_plan.mdoutlining the roadmap for maintaining type safety.
Upgrade Guide
This release is fully backward compatible with v2.0.5. No code changes are required for consumers, though you may notice improved type checking results if you use mypy in your own projects.