No description
Find a file
Edward Betts 2440fb3f02 Add GWR fare API sample responses for BRI, CDF, OXF, PLY
Reference JSON showing ticket types returned by the GWR journey
search API for four representative stations: Bristol Temple Meads
(SSS/SVS/SDS), Cardiff Central (SVS/SDS), Oxford (CDS/SDS), and
Plymouth (SVS/SDS). Documents that no restriction codes are exposed
in the API response.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 14:28:11 +01:00
config Add config system with TFL_DATA_DIR and CACHE_DIR 2026-04-04 13:37:44 +01:00
data Add multi-station support, GWR fares API, and Circle line improvements 2026-04-06 20:22:44 +01:00
scraper Add GWR fare API sample responses for BRI, CDF, OXF, PLY 2026-04-07 14:28:11 +01:00
templates Add multi-station support, GWR fares API, and Circle line improvements 2026-04-06 20:22:44 +01:00
tests Add multi-station support, GWR fares API, and Circle line improvements 2026-04-06 20:22:44 +01:00
.gitignore Add config system with TFL_DATA_DIR and CACHE_DIR 2026-04-04 13:37:44 +01:00
app.py Add multi-station support, GWR fares API, and Circle line improvements 2026-04-06 20:22:44 +01:00
cache.py Add config system with TFL_DATA_DIR and CACHE_DIR 2026-04-04 13:37:44 +01:00
circle_line.py Add multi-station support, GWR fares API, and Circle line improvements 2026-04-06 20:22:44 +01:00
pyproject.toml Initial commit. 2026-03-30 19:34:46 +01:00
README.md Move inline styles to CSS classes; update README 2026-04-04 15:39:04 +01:00
requirements.txt Initial commit. 2026-03-30 19:34:46 +01:00
trip_planner.py Add multi-station support, GWR fares API, and Circle line improvements 2026-04-06 20:22:44 +01:00

Bristol Eurostar

Source: https://git.4angle.com/edward/bristol-eurostar

Plan a trip from Bristol Temple Meads to Europe via Eurostar.

Combines GWR trains (Bristol → Paddington) with Eurostar services (St Pancras → destination) and shows all valid same-day connections, including Circle Line times for the Paddington → St Pancras transfer. Displays GWR walk-on fares, Eurostar Standard prices, seat availability, and total journey cost.

Destinations

  • Paris Gare du Nord
  • Brussels Midi
  • Lille Europe
  • Amsterdam Centraal
  • Rotterdam Centraal
  • Cologne Hbf

How it works

Train times and prices are fetched from two sources:

  • GWR — scraped from Realtime Trains using httpx
  • Eurostar — fetched from the Eurostar GraphQL API (single call returns timetable, Standard fares, and seat availability)

The Paddington → St Pancras transfer uses a real Circle Line timetable parsed from a TfL TransXChange XML file, accounting for walk time to the platform at Paddington and walk time from the platform to the St Pancras check-in.

Results are cached to disk by date and destination.

Connection constraints

Configurable via the search form. Defaults:

Minimum Paddington → St Pancras 50 min
Maximum Paddington → St Pancras 110 min

Valid range: 45120 min (min), 60180 min (max).

GWR fares

Walk-on single fares for Bristol Temple Meads → Paddington, selected automatically by departure time:

Ticket Price Restriction (weekdays)
Super Off-Peak £45.00 Not valid 05:0509:57
Off-Peak £63.60 Not valid before 08:26
Anytime £138.70 No restriction

Weekends always use Super Off-Peak.

Setup

pip install -e ".[dev]"

Configuration

Copy or create config/local.py (gitignored) to override defaults:

CACHE_DIR      = '/var/cache/bristol-eurostar'
CIRCLE_LINE_XML = '/path/to/output_txc_01CIR_.xml'

Defaults (in config/default.py) use ~/lib/data/tfl/.

The Circle Line XML is a TfL TransXChange timetable file. The Paddington (H&C Line) stop is 9400ZZLUPAH1; the King's Cross St Pancras stop is 9400ZZLUKSX3.

Running

flask --app app run

Then open http://localhost:5000.

Tests

pytest

License

MIT