class StopTimeSerializer(PbNestedSerializer): arrival_time = TimeField() utc_arrival_time = TimeField() departure_time = TimeField() utc_departure_time = TimeField() headsign = jsonschema.Field(schema_type=str) journey_pattern_point = JourneyPatternPointSerializer() stop_point = StopPointSerializer()
class StopTimeSerializer(PbNestedSerializer): arrival_time = TimeField() utc_arrival_time = TimeField() departure_time = TimeField() utc_departure_time = TimeField() headsign = jsonschema.Field(schema_type=str) journey_pattern_point = JourneyPatternPointSerializer() stop_point = StopPointSerializer() pickup_allowed = BoolField() drop_off_allowed = BoolField() skipped_stop = BoolField()
class ImpactedStopSerializer(PbNestedSerializer): stop_point = jsonschema.MethodField(schema_type=lambda: StopPointSerializer()) base_arrival_time = TimeField(attr='base_stop_time.arrival_time') base_departure_time = TimeField(attr='base_stop_time.departure_time') amended_arrival_time = TimeField(attr='amended_stop_time.arrival_time') amended_departure_time = TimeField(attr='amended_stop_time.departure_time') cause = jsonschema.Field(schema_type=str, display_none=True) stop_time_effect = EnumField(attr='effect') departure_status = EnumField() arrival_status = EnumField() def get_stop_point(self, obj): if obj.HasField(str('stop_point')): return StopPointSerializer(obj.stop_point, display_none=False).data else: return None
class LineSerializer(PbGenericSerializer): code = jsonschema.Field(schema_type=str, display_none=True) color = jsonschema.Field(schema_type=str) text_color = jsonschema.Field(schema_type=str) comments = CommentSerializer(many=True, display_none=False) comment = FirstCommentField(attr='comments', display_none=False) codes = CodeSerializer(many=True, required=False) physical_modes = PhysicalModeSerializer(many=True) commercial_mode = CommercialModeSerializer(display_none=False) routes = RouteSerializer(many=True, display_none=False) network = NetworkSerializer(display_none=False) opening_time = TimeField() closing_time = TimeField() properties = PropertySerializer(many=True, display_none=False) geojson = MultiLineStringField(display_none=False) links = DisruptionLinkSerializer(attr='impact_uris', display_none=True) line_groups = LineGroupSerializer(many=True, display_none=False)
class VehicleJourneySerializer(PbGenericSerializer): journey_pattern = JourneyPatternSerializer(display_none=False) stop_times = StopTimeSerializer(many=True) comments = CommentSerializer(many=True, display_none=False) comment = FirstCommentField(attr='comments', display_none=False) codes = CodeSerializer(many=True, required=False) validity_pattern = ValidityPatternSerializer() calendars = CalendarSerializer(many=True) trip = TripSerializer() disruptions = DisruptionLinkSerializer(attr='impact_uris', display_none=True) start_time = TimeField(display_none=False) end_time = TimeField(display_none=False) headway_secs = jsonschema.MethodField(schema_type=int, display_none=False) def get_headway_secs(self, obj): if obj.HasField(str('headway_secs')): return obj.headway_secs else: return None