Skip to content

Release Notes

anonymous44401 edited this page Jun 3, 2026 · 23 revisions

Contents

2026 Releases

Version Description
2027.1.0 Introduced full support for the Next Generation Realtime Trains API. Released xx/06/2026
2026.1.0 Cancelled

2025 Releases

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

Release Notes

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.n is now simple_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_arrivals and get_station methods have been removed since the API doesn't support a separate arrivals request. The get_departures method now features a similar functionality to the previous get_station method.

  • The get_departures method now has filter_from and filter_to fields.

  • The username and password parameters have been replaced with request_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.

A Quick Message...

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.

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)
    • Implemented data classes
    • Implemented literals
  • Code Enhancements

    • Added a link to the wiki inside method information
    • Added a new access token generator
    • Added filter_from and filter_to parameters
    • Complexity modes are now literals
    • Moved error handling for validation into utilities.py
    • Modes for get_live are literals
    • Moved setting up complex mode to a separate method
  • Error Handling

  • 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

Wiki Changes:

  • Added contents pages to some pages
  • Added new documentation for error handling
  • Removed documentation for get_arrivals and get_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:

  • 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

Bugs

Fixes:

  • Fixed a bug causing get_live to 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

Awaiting Allocation:

  • None

What's Changed

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.3...v2027.1.0

Other associated releases

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 "simple"
)

Date format has changed

"2026/05/2026"
#    ^  ^ 
#    Change to "-" instead

Complexity Modes: Literals

complexity="s"    ->  complexity="simple"
complexity="s.n"  ->  complexity="simple_normal"
complexity="c"    ->  complexity="complex"

Data Within Objects Changed

Check individual documentation for each method for changes.

The get_arrivals and get_station methods removed

rtt.get_arrivals()
#   ^^^^^^^^^^^^ 
#   Change to get_departures instead

rtt.get_station()
#   ^^^^^^^^^^^
#   Change to get_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(
    username="YOUR_USERNAME", #  Remove
    password="YOUR_PASSWORD", #  Remove
    request_token="YOUR_TOKEN"
#   ^^^^^^^^^^^^^
#   Replace old password and username fields
    complexity="simple"
)

Version 2025.3.3

Release Notes

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.

Code Changes:

  • 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.

Wiki Changes:

  • Updated documentation for setup.

Other Changes:

  • None

Bugs

Fixes:

  • #20

Awaiting Allocation:

  • None

What's Changed

New Contributors

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.2...v2025.3.3

Other associated releases

None


Version 2025.3.2

Release Notes

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.

Code Changes:

  • New features

    • None
  • Code Enhancements

    • None
  • Error Handling

    • Minor preparation for new error handling has started.
  • Performance Improvements

    • None
  • Refactoring

    • Updated some type notation.

Wiki Changes:

  • Updated documentation for setup.

Other Changes:

  • None

Bugs

Fixes:

  • None

Awaiting Allocation:

  • None

What's Changed

New Contributors

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.1...v2025.3.2


Version 2025.3.1

Release Notes

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.

Code Changes:

  • New features

    • Implemented get_live for all modes.
      • This provides you with a live departure board for a requested location.
  • Code Enhancements

    • get_live has 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.
      • 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.
  • 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.

Wiki Changes:

  • Added new documentation get_live.
  • Added new examples for get_live.

Other Changes:

  • Added information for get_live in the README file.
  • Added new example code for get_live.
    • You can find these here.

Bugs

Fixes:

  • Fixed a crash when less than three services are provided for get_live.

Awaiting Allocation:

  • None

What's Changed

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.3.0...v2025.3.1

Other Associated Releases

None


Version 2025.3.0

Release Notes

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.

Code Changes:

  • New features

    • Implemented get_live for all modes.
      • This provides you with a live departure board for a requested location.
  • Code Enhancements

    • get_live has 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.
      • 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.
  • 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.

Wiki Changes:

  • Added new documentation get_live.
  • Added new examples for get_live.
  • Updated rows documentation for get_station.

Other Changes:

  • Added information for get_live in the README file.
  • Added new example code for get_live.
    • You can find these here.

Bugs

Fixes:

  • 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.

Awaiting Allocation:

  • None

What's Changed

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.2.2...v2025.3.0

Other Associated Releases


Version 2025.2.2

Release Notes

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.

Code Changes:

  • Refactoring
    • Added new display order for get_station.
    • Removed some redundant code.

Wiki Changes:

  • None

Other Changes:

  • None

Bugs

Fixes:

  • None

Awaiting Allocation:

What's Changed

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.2.1...v2025.2.2

Other Associated Releases

None


Version 2025.2.1

Release Notes

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.

Code Changes:

  • Performance Improvements

    • Gathering data using get_station and providing a rows value
  • Refactoring

    • Added new comments.
    • Some older comments have been updated.
    • Updated in-code documentation.

Wiki Changes:

  • None

Other Changes:

  • None

Bugs

Fixes:

  • Fixed a bug causing departures and arrivals to duplicate on some boards (#12).

Awaiting Allocation:

What's Changed

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.2.0...v2025.2.1

Other Associated Releases

None


Version 2025.2.0

Release Notes

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.

Code Changes:

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_station for all modes.
      • This provides you with a combined departure and arrival board.
    • New status and error formats.
  • Code Enhancements

    • A full, ordered station board can now be returned.
      • Added merge_sort for get_station.
    • Added new simple + advanced classes for get_service.
    • Implementation of get_station for advanced, simple & complex modes.
  • 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.
    • Errors can be found in the errors page.
    • Status information has a new format
      • Example: 200: Service data returned successfully.
  • 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.
  • Refactoring

    • Added new comments.
    • Moved empty objects to a details.py file.
    • Some classes have been renamed.
      • Some attributes inside classes have been renamed.
        • Breaking Change: all_calling_points is now just calling points.
    • 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.

Wiki Changes:

  • 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.

Other Changes:

  • 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.

Bugs

Fixes:

  • 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_arrivals and get_departures.
  • Fixed a bug causing times in get_station to 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.

Awaiting Allocation:

What's Changed

Full Changelog: https://github.com/realtime-trains-lang/realtime-trains-py/compare/v2025.1.0...v2025.2.0

Other Associated Releases


Version 2025.1.0

Release Notes

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.

Code Changes:

  • New features

    • Implemented get_departures for all modes.
      • This provides you with a departure board.
    • Implemented get_arrivals for all modes.
      • This provides you with an arrival board.
    • Implemented get_service for all modes.
      • This provides you with service information.
  • Code Enhancements

    • None
  • Error Handling

    • None
  • Performance Improvements

    • None
  • Refactoring

    • Added comments.
    • Added in-code documentation.

Wiki Changes:

  • Added new pages.

Other Changes:

  • Added example code for some modes.
  • Added the license file.
  • Added the README file.
  • Added the security policy.

Bugs

Fixes:

  • None

Awaiting Allocation:

  • None

What's Changed

Clone this wiki locally