Releases: tjorim/pyrail
Releases · tjorim/pyrail
🚂 pyRail v0.4.0: Streamlined and Smarter!
✨ What's New
- Improved Documentation & Code Clarity:
Enhanced theiRail
class documentation and refactored code for better readability and maintainability. #45 - README Updates:
Improved language selection and session management sections for a better user experience. #42 - Dependency Updates:
Bumpedruff
from 0.9.2 to 0.9.3 for the latest fixes and improvements. #44
⚠️ Breaking Changes
-
Data Models:
- Introduced
OccupancyName
enum, replacing string types for occupancy names. - Updated data structures to replace wrapper classes with direct lists:
LiveboardDepartures
→list[LiveboardDeparture]
LiveboardArrivals
→list[LiveboardArrival]
ConnectionStops
→list[ConnectionStop]
CompositionSegments
→list[Segment]
CompositionUnits
→list[Unit]
DescriptionLinks
→list[DescriptionLink]
- Introduced
-
Response Structure:
- Simplified nested responses for easier access:
LiveboardApiResponse.departures
andarrivals
are now optional (None
).- Removed nested access for lists (e.g.,
.departure
and.arrival
).
- Simplified nested responses for easier access:
-
Type Hint Changes:
- Modernized type hints throughout the codebase:
Dict
→dict
List
→list
- Modernized type hints throughout the codebase:
Full Changelog: v0.3.0...v0.4.0
🚀 PyRail v0.3.0 – Enhanced Model Support and Testing Improvements
✨ Key Updates
- 🌐 Support for External aiohttp Session: Added support for using an external
aiohttp
session to improve flexibility in HTTP requests. (#41 by @tjorim) - 🛠️ Improved Boolean Handling: Utilized previously implemented boolean handling in data models. (#39 by @silamon and @tjorim)
- 📅 Timestamp Handling Improvements:
- Renamed
timestamp_to_datetime
to_timestamp_to_datetime
to indicate it is a private function for internal use. - Added tests for timestamp and boolean field deserialization in models.
- Skipped timestamp tests due to timezone discrepancies and cleaned up test functions.
- Renamed
- 🚉 Liveboard Model Update: Enhanced the liveboard to support arrivals instead of the default departures, with the introduction of
LiveboardArrival
andLiveboardArrivals
models. - 🔔 Alert Model Updates:
- Added a description field to the
Alert
model. - Made the existing link in the
Alert
model optional, allowing for cases where it may not be present. (#38 by @silamon and @CodeRabbit)
- Added a description field to the
🌟 Contributors
🔗 Full Changelog: Compare v0.2.5...v0.3.0
🚀 PyRail v0.2.5 – Enhanced Data Models
✨ Key Updates
- 🔧 Typed Data Classes for iRail Station Endpoint: Added typed data classes for improved structure and readability. (#22 by @silamon)
- 📊 Expanded Data Models: Introduced additional data models to enhance response handling. (#23)
- 🛠️ Development Environment: Updated devcontainer to prevent Python overrides. (#31 by @silamon)
- 📦 Dependency Updates:
- 🔄 Bumped
pytest-asyncio
to v0.25.2. (#34 by @dependabot) - 🔄 Bumped
ruff
from v0.8.6 to v0.9.2 over two incremental updates. (#35 and #36 by @dependabot)
- 🔄 Bumped
🌟 New Contributors
🔗 Full Changelog: Compare v0.1.0...v0.2.4
🚑 Version 0.2.1-0.2.5 were published to fix an issue in the publishing workflow.
v0.1.1
0.1.0
Special Thanks
Features
- Added intelligent rate limiting and request throttling (#6)
- Modernized codebase with async/await support (#15)
- Added Docker development environment with VS Code integration
Dependencies & CI
- Updated requests package to 2.32.3
- Upgraded GitHub Actions (checkout v4, setup-python v5)
- Added automated dependency management