bf-schedule-creator (Plan Role)¶
What this service is¶
bf-schedule-creator is the schedule parsing/conversion backend for Plan. It transforms raw operator schedules plus enrichment data (GTFS/TXC/TIMS-style inputs) into modelling-ready outputs.
Code anatomy¶
src/main.py: FastAPI app factory and route wiring.src/service_schedule_creator/*: application-level schedule creation services.src/service_schedule_creator/gtfsandsrc/service_schedule_creator/schedule: GTFS-specific and schedule orchestration modules.src/lib/formatter/*: input normalization/format standardization.src/lib/plugins/*: enrichment plugin abstraction boundary.src/transxchange/*: TransXChange parsing adapters.
Architectural characteristics¶
- Plugin-based enrichment architecture allowing multiple data source formats.
- Clear separation between formatter, parser/plugin, and output generation concerns.
Documentation and tests in-repo¶
- README contains extensive parsing terminology, assumptions, and flow diagrams.
- Deep fixture-driven parser tests across GTFS/TXC/lib/middleware/schedule areas.
Internal request lifecycle¶
sequenceDiagram
participant Client
participant Api as creator api
participant Formatter as formatter layer
participant Parser as parser layer
participant Plugin as enrichment plugin
participant S3 as aws s3
Client->>Api: upload or parse request
Api->>Formatter: normalize input format
Formatter->>Parser: provide normalized schedule rows
Parser->>Plugin: request enrichment data
Plugin-->>Parser: route and stop enrichment
Parser->>S3: persist parsed outputs and supporting payloads
Parser-->>Api: schedule outputs
Api-->>Client: output files or response payload