Version 2027.1.0 [BETA 3]
Pre-releaseRelease Notes
Version 2027.1.0 [BETA 3] (Launched on 29/05/2026 for all modes).
(Test release for Test PyPi)
Beta releases will now be published to Test PyPi. Check it out here.
This release introduces full support for the Next Generation Realtime Trains API, replacing the legacy API implementation.
Warning
Multiple Breaking Changes
Unfortunately, due to the API data requirements changing, we've had to make a number of internal code changes to support these.
These include:
- Advanced mode has been removed since the data provided by the API is too basic to warrant a different mode for it.
- Complexity modes are now literals. Their names have been changed - for example,
s.nis nowsimple_normal. - Some data within objects has been changed to better reflect the data of the API.
- The date format has changed from YYYY/MM/DD to YYYY-MM-DD. Time format has remained unchanged.
- The
get_arrivalsandget_stationmethods have been removed since the API doesn't support an arrivals request anymore. Theget_departuresmethod now features the same functionality as the previousget_stationmethod. - The
get_departuresmethod now hasfilter_fromandfilter_tofields. - The
usernameandpasswordparameters have been replaced withrequest_token.
We apologise for any inconvenience these changes have made.
Check out the source code for this release.
Please note that the wiki is not updated for this version. If you're unsure about anything, open a discussion or create an issue.
Code Changes:
-
New features
- Added new error handlers
- Added support for the next generation RTT API
- Added three customisation options for Live Boards:
- LCD (Liquid Crystal Display) - default
- DMI (Yellow) (Display Machine Interface - Yellow)
- DMI (White) (Display Machine Interface - White)
- Changed empty classes to data classes
- Implemented literals
-
Code Enhancements
- Added a link to the wiki inside method information
- Added a new access token generator
- Moved error handling for validation into
utilities.py - Added
filter_fromandfilter_toparameters - Complexity modes are now literals
- Modes for
get_liveare literals - Moved setting up complex mode to a separate method
-
Error Handling
- Added new errors
-
Performance Improvements
- Removed some duplicated code
-
Refactoring
- Minor code updates
- Removed some unneeded code
- Removed status codes from return data
- Updated display order in
details.py - Updated example code and example data
- Updated return types
- Updated some code that could return errors
- Updated some comments
- Updated type notation
Wiki Changes:
- Added contents pages to some pages
- Added new documentation for error handling
- Removed documentation for
get_arrivalsandget_station - Updated complexity documentation
- Updated documentation for
get_departures,get_service&get_live - Various QOL updates to the Wiki
- Various readability updates to documentation
- Various spelling & grammar changes
Other Changes:
- Updated example code
- Updated supported versions
Bugs
Fixes:
- Fixed a bug causing methods to crash in example code snippets.
Awaiting Allocation:
- None
What's Changed
Full Changelog: v2025.3.3...v2027.1.0-beta.3
Other associated releases
- Version 2027.1.0 [BETA 3]
- Version 2027.1.0 [BETA 2]
- Version 2027.1.0 [BETA 1]
- Version 2026.1.0 [BETA 2]
- Version 2026.1.0 [BETA 1]
Version 2026.1.0 was cancelled, so beta versions of version 2026.1.0 are included as associated releases.
How to Solve Problems from Breaking Changes
Advanced mode removed
rtt = RealtimeTrainsPy(
request_token="YOUR_REQUEST_TOKEN", #
complexity="a"
# ^ change the "a" to "s"
)
Date format has changed
2026/05/2026
# ^ ^
# Change to "-" instead
Complexity Modes: Literals
complexity="s" # now complexity="simple"
complexity="s.n" # now complexity="simple_normal"
complexity="c" # now complexity="complex"
Data Within Objects Changed
Check individual documentation for each method for any changes.
The get_arrivals and get_station methods removed
get_arrivals()
# ^^^^^^^^
# Change to "departures" instead
get_station()
# ^^^^^^^
# Change to "departures" instead
The get_departures method now has filter_from and filter_to fields.
...filter="SVG"...
# ^^^^^^
# Change any current filters to filter_to
username and password parameters have been replaced
rtt = RealtimeTrainsPy(
request_token="YOUR_REQUEST_TOKEN",
# ^^^^^^^^^^^^^
# Remove old password and username fields
complexity="s.n"
)