-
Notifications
You must be signed in to change notification settings - Fork 3
Release Notes
| Version | Description |
|---|---|
| 2027.1.0 | Introduced full support for the Next Generation Realtime Trains API. Released xx/06/2026 |
| 2026.1.0 | Cancelled |
| Version | Description |
|---|---|
| 2025.3.3 | Added a way to get the requested location. Released 14/08/2025 |
| 2025.3.2 | Updated dependency specification. Released 22/05/2025 |
| 2025.3.1 | Updated the get_live method. Released 01/05/2025 |
| 2025.3.0 | Introduced the get_live method. Released 30/04/2025 |
| 2025.2.2 | Updated display order of information in get_station. Released 03/03/2025 |
| 2025.2.1 | Fixed a bug causing departures and arrivals to duplicate in get_station. Released 18/02/2025 |
| 2025.2.0 | Introduced new get_station method. Released 01/02/2025 |
| 2025.1.0 | Introduced realtime-trains-py. Released 02/01/2025 |
For those that like to keep up with the latest features, our beta and release candidate releases will now be published to the realtime-trains-py Test PyPi. Check it out here.
Version 2027.1.0 (Launched on xx/06/2026 for all modes).
This release introduces full support for the Next Generation Realtime Trains API, replacing the legacy API implementation.
We've implemented a lot of new features in this update to improve performance and make realtime-trains-py easier to use. The introduction of data classes has meant we've had to remove support for Python 3.8 and Python 3.9. If you're still using either of these versions, upgrade to Python 3.10 or newer to use the latest version of realtime-trains-py.
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. We've also made a number of changes to improve performance.
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 also 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 a separate arrivals request. Theget_departuresmethod now features a similar functionality to the previousget_stationmethod. -
The
get_departuresmethod now hasfilter_fromandfilter_tofields. -
The
usernameandpasswordparameters have been replaced withrequest_token. -
Updated supported python versions (Python 3.8 and 3.9 no longer supported).
We apologise for any inconvenience these changes have made.
Check out the source code for this release.
We've noticed a lot of new downloads recently, which means realtime-trains-py is getting used in a lot more projects! We'd love to hear your suggestions for the future of realtime-trains-py, whatever your use case is. We've got some ideas of where to go from here, but your feedback will be invaluable in helping shape the future of this API wrapper.
If you have any suggestions, please create an issue or email us at anonymous4401.ad@gmail.com.
-
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)
- Implemented data classes
- Implemented literals
-
Code Enhancements
- Added a link to the wiki inside method information
- Added a new access token generator
- Added
filter_fromandfilter_toparameters - Complexity modes are now literals
- Moved error handling for validation into
utilities.py - Modes for
get_liveare literals - Moved setting up complex mode to a separate method
-
Error Handling
- Added new errors
-
Performance Improvements
- Implemented data classes for faster access
- Removed some duplicated code
-
Refactoring
- Minor code + formatting updates
- Removed some dormant code
- Removed status codes from return data
- Updated display order in
details.py - Updated example code and example data
- Updated file names for complex mode
- Updated return types
- Updated some code that could return errors
- Updated some comments
- Updated type notation
- 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
- Added quicklinks to README
- Beta releases will now be published to the realtime-trains-py Test PyPi. Check it out here
- realtime-trains-py now requires Python 3.10 or newer to run
- Updated example code
- Updated pyproject
- Added keywords
- Now requires Python 3.10+
- Updated project links
- Updated supported versions
- Fixed a bug causing
get_liveto stop after the request token expired - Fixed a bug causing methods to crash in example code snippets
- Fixed a bug causing Service UIDs, dates and times to be validated incorrectly
- Fixed a bug preventing departure data from saving when a date was provided in complex mode
- Fixed a bug preventing service data from outputting
- None
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.3...v2027.1.0
- Version 2027.1.0
- Version 2027.1.0 [RELEASE CANDIDATE]
- 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.
rtt = RealtimeTrainsPy(
request_token="YOUR_REQUEST_TOKEN", #
complexity="a"
# ^ change the "a" to "simple"
)"2026/05/2026"
# ^ ^
# Change to "-" insteadcomplexity="s" -> complexity="simple"
complexity="s.n" -> complexity="simple_normal"
complexity="c" -> complexity="complex"
Check individual documentation for each method for changes.
rtt.get_arrivals()
# ^^^^^^^^^^^^
# Change to get_departures instead
rtt.get_station()
# ^^^^^^^^^^^
# Change to get_departures instead...filter="SVG"...
# ^^^^^^
# Change any current filters to filter_tortt = RealtimeTrainsPy(
username="YOUR_USERNAME", # Remove
password="YOUR_PASSWORD", # Remove
request_token="YOUR_TOKEN"
# ^^^^^^^^^^^^^
# Replace old password and username fields
complexity="simple"
)Version 2025.3.3 (Launched on 14/08/2025 for all modes).
This release added a way to get the requested location.
Check out the source code for this release.
Warning
Breaking Change:
Boards (get_departures, get_arrivals, get_station) now require extra data unpacking.
See below:
arrivals = rtt.get_arrivals(tiploc="LDS", rows=5)
print(arrivals.location) # Use me to get the requested location ("Leeds" in this case).
for arrival in arrivals.board: # Use me to get the board details.
# ^^^^^
# Add .board
print(f"{arrival.gbtt_arrival} | {arrival.origin} to {arrival.terminus} | {arrival.platform} | {arrival.realtime_arrival} | {arrival.service_uid}")Official documentation has been updated to reflect this change.
In most cases, adding .board (as shown above) will fix any problems you run into.
-
New features
- Added a way to request the requested location for departure boards (#20)
-
Code Enhancements
- Updated formatting to reflect changes in #18
-
Error Handling
- None
-
Performance Improvements
- None
-
Refactoring
- Minor code updates.
- Removed some unneeded code.
- Updated some type notation.
- Updated documentation for setup.
- None
- #20
- None
- Update boards.py by @ww9980 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/18
- @ww9980 made their first contribution in https://github.com/realtime-trains-lang/realtime-trains-py/pull/18
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.2...v2025.3.3
None
Version 2025.3.2 (Launched on 22/05/2025 for all modes).
This release updated dependency specification in pyproject.toml.
Check out the source code for this release.
-
New features
- None
-
Code Enhancements
None
-
Error Handling
- Minor preparation for new error handling has started.
-
Performance Improvements
- None
-
Refactoring
- Updated some type notation.
- Updated documentation for setup.
- None
- None
- None
- Add dependency specification to pyproject.toml by @whi-tw in https://github.com/realtime-trains-lang/realtime-trains-py/pull/17
- @whi-tw made their first contribution in https://github.com/realtime-trains-lang/realtime-trains-py/pull/17
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.1...v2025.3.2
Version 2025.3.1 (Launched on 01/05/2025 for all modes).
This release updated the get_live method.
Check out the source code for this release.
-
New features
- Implemented
get_livefor all modes.- This provides you with a live departure board for a requested location.
- Implemented
-
Code Enhancements
-
get_livehas been implemented.- Details such as the platform number, departure time, expected departure and destination are shown.
- If no departures are found, a "check timetable for services" screen is shown.
- If there is only one calling point after the requested station, the board will show "only" after the destination.
- For example, at Huntingdon a service to Peterborough would say:
Calling at: Peterborough only.
- For example, at Huntingdon a service to Peterborough would say:
- Information shown has been altered slightly.
- Text formatting colours have been updated.
- "Cancelled" is written in red.
- "On time" is written in green.
- All other variations (early and delayed) are written in yellow.
- The board heading is written in blue.
- The board is now written in white.
- The board will show the next 3 departures at the station.
-
-
Error Handling
- Minor preparation for new error handling has started.
-
Performance Improvements
- Code removals.
- Redundant code has been removed.
- Removed a lot of duplicated code.
- Removed many unneeded loops.
- Removed many unneeded variables.
- Code removals.
-
Refactoring
- Added new comments.
- Removed some older comments.
- Some older comments have been updated.
- Some variables have been renamed.
- Updated file directory.
- Updated in-code documentation.
- Updated some errors.
- Added new documentation
get_live. - Added new examples for
get_live.
- Added information for
get_livein the README file. - Added new example code for
get_live.- You can find these here.
- Fixed a crash when less than three services are provided for
get_live.
- None
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.0...v2025.3.1
None
Version 2025.3.0 (Launched on 30/04/2025 for all modes).
This release introduced a new get_live method.
Check out the source code for this release.
-
New features
- Implemented
get_livefor all modes.- This provides you with a live departure board for a requested location.
- Implemented
-
Code Enhancements
-
get_livehas been implemented.- Details such as the platform number, departure time, expected departure and destination are shown.
- If no departures are found, a "check timetable for services" screen is shown.
- If there is only one calling point after the requested station, the board will show "only" after the destination.
- For example, at Huntingdon a service to Peterborough would say:
Calling at: Peterborough only.
- For example, at Huntingdon a service to Peterborough would say:
- Information shown has been altered slightly.
- Text formatting colours have been updated.
- "Cancelled" is written in red.
- "On time" is written in green.
- All other variations (early and delayed) are written in yellow.
- The board heading is written in blue.
- The board is now written in white.
- The board will show the next 3 departures at the station.
-
-
Error Handling
- Minor preparation for new error handling has started.
-
Performance Improvements
- Code removals.
- Redundant code has been removed.
- Removed a lot of duplicated code.
- Removed many unneeded loops.
- Removed many unneeded variables.
- Code removals.
-
Refactoring
- Added new comments.
- Removed some older comments.
- Some older comments have been updated.
- Some variables have been renamed.
- Updated file directory.
- Updated in-code documentation.
- Updated some errors.
- Added new documentation
get_live. - Added new examples for
get_live. - Updated
rowsdocumentation forget_station.
- Added information for
get_livein the README file. - Added new example code for
get_live.- You can find these here.
- Fixed a crash when the API returned an error in
get_live. - Fixed a TypeError causing a crash in
get_arrivals. - Fixed destination showing at the start of the calling points in
get_live.
- None
- Version 2025.3.0 [BETA 3] Pull Request by @anonymous44401 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/15
- Version 2025.3.0 [BETA 2] Pull Request by @anonymous44401 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/14
- Version 2025.3.0 [BETA 1] Pull Request by @anonymous44401 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/13
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.2.2...v2025.3.0
- V2025.3.0
- V2025.3.0 [Release Candidate 2]
- V2025.3.0 [Release Candidate 1]
- V2025.3.0 [BETA 3]
- V2025.3.0 [BETA 2]
- V2025.3.0 [BETA 1]
Version 2025.2.2 (Launched on 03/03/2025 for all modes).
This release updated the display order of information in the get_station method.
Check out the source code for this release.
- Refactoring
- Added new display order for
get_station. - Removed some redundant code.
- Added new display order for
- None
- None
- None
-
Bug #10 - Low Efficiency for
get_station-- Low priority
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.2.1...v2025.2.2
None
Version 2025.2.1 (Launched on 18/02/2025 for all modes).
This release fixed a bug causing departures and arrivals to duplicate on some boards in the get_station method.
Check out the source code for this release.
-
Performance Improvements
- Gathering data using
get_stationand providing arowsvalue
- Gathering data using
-
Refactoring
- Added new comments.
- Some older comments have been updated.
- Updated in-code documentation.
- None
- None
- Fixed a bug causing departures and arrivals to duplicate on some boards (#12).
-
Bug #10 - Low Efficiency for
get_station-- Low priority
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.2.0...v2025.2.1
None
Version 2025.2.0 (Launched on 01/02/2025 for all modes).
This release introduced a new get_station method which returns a combined departure + arrival board.
Check out the source code for this release.
Warning
This release features a breaking change. See the Refactoring section in the release notes.
-
New features
- Added an API connection tester.
- Checks your username and password before you send API requests.
- Implemented
get_stationfor all modes.- This provides you with a combined departure and arrival board.
- New status and error formats.
- Added an API connection tester.
-
Code Enhancements
- A full, ordered station board can now be returned.
- Added merge_sort for
get_station.
- Added merge_sort for
- Added new simple + advanced classes for
get_service. - Implementation of
get_stationfor advanced, simple & complex modes.
- A full, ordered station board can now be returned.
-
Error Handling
- All errors now provide status codes.
- Errors are now more specific to the actual error.
- Example:
400: Complexity not recognised. Select a valid type.
- Example:
- Errors can be found in the errors page.
- Status information has a new format
- Example:
200: Service data returned successfully.
- Example:
-
Performance Improvements
- Code removals.
- Redundant code has been removed.
- Enhanced efficiency across multiple areas.
- Added clearing in some methods for removing data that is no longer needed.
- Added new classes for data handling.
- Removed some unneeded loops.
- Removed some unneeded variables.
- Code removals.
-
Refactoring
- Added new comments.
- Moved empty objects to a
details.pyfile. - Some classes have been renamed.
- Some attributes inside classes have been renamed.
-
Breaking Change:
all_calling_pointsis now justcalling points.
-
Breaking Change:
- Some attributes inside classes have been renamed.
- Some files have been renamed.
- Some functions have been renamed.
- Some older comments have been updated.
- Some variables have been renamed.
- Updated file directory.
- Updated in-code documentation.
- Added a footer to the wiki.
- Added an errors page to the wiki.
- Added extra details to methods in various files.
- Added more data extraction documentation.
- Added new code examples.
- All pages have received minor and major changes.
- Corrected various spelling and grammar mistakes.
- Updated error formatting.
- Updated old code examples.
- Updated release notes for Version 2025.2.0.
- Updated sidebar links.
- Updated terminology to reflect the new update.
- Updated the setup guides.
- Added new example code for simple and complex modes.
- You can find these here
- Release notes now have a new format.
- You can see it here.
- Updated the README file.
- Corrected spelling.
- Updated code examples.
- Updated the supported versions in the security policy.
- V1.x.xbx has been removed from the supported list.
- V2025.x.xbx has been added to the supported list.
- Fixed a bug causing imports to fail.
- Fixed a bug causing no data to be returned when providing only a time and TIPLOC in
get_station,get_arrivalsandget_departures. - Fixed a bug causing times in
get_stationto order incorrectly.- 00:xx times will always show at the top of the board regardless.
- Fixed a bug causing times to validate incorrectly.
- Fixed some code formatting bugs.
-
Bug #10 - Low Efficiency for
get_station-- Low priority
- Version 2025.2.0 [BETA 3] Pull Request by @anonymous44401 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/11
- Version 2025.2.0 [BETA 2] Pull Request by @anonymous44401 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/9
- Version 2025.2.0 [BETA 1] Pull Request by @anonymous44401 in https://github.com/realtime-trains-lang/realtime-trains-py/pull/8
Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.1.0...v2025.2.0
Version 2025.1.0 (Launched on 02/01/2025 for all modes).
This release introduced realtime-trains-py for the first time.
Check out the source code for this release.
-
New features
- Implemented
get_departuresfor all modes.- This provides you with a departure board.
- Implemented
get_arrivalsfor all modes.- This provides you with an arrival board.
- Implemented
get_servicefor all modes.- This provides you with service information.
- Implemented
-
Code Enhancements
- None
-
Error Handling
- None
-
Performance Improvements
- None
-
Refactoring
- Added comments.
- Added in-code documentation.
- Added new pages.
- Added example code for some modes.
- Added the license file.
- Added the README file.
- Added the security policy.
- None
- None
All of our data is kindly provided by Realtime Trains.