Wed, 29 Jul 2020 23:45:53 +0300
begin work on bus compiler
import sqlalchemy.ext.declarative GtfsBase = sqlalchemy.ext.declarative.declarative_base(name = 'GtfsBase') class GtfsRoute(GtfsBase): __tablename__ = 'routes' id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) reference = sqlalchemy.Column(sqlalchemy.String) description = sqlalchemy.Column(sqlalchemy.String) type = sqlalchemy.Column(sqlalchemy.Integer) class GtfsShape(GtfsBase): __tablename__ = 'shapes' id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) length = sqlalchemy.Column(sqlalchemy.Numeric, default = 0) shape_coordinates = sqlalchemy.Column(sqlalchemy.String) class GtfsTrip(GtfsBase): __tablename__ = 'trips' id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) route_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsRoute.id)) service = sqlalchemy.Column(sqlalchemy.String) shape_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsShape.id)) route = sqlalchemy.orm.relationship('GtfsRoute', foreign_keys = 'GtfsTrip.route_id') shape = sqlalchemy.orm.relationship('GtfsShape', foreign_keys = 'GtfsTrip.shape_id') class GtfsService(GtfsBase): __tablename__ = 'services' id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) class GtfsStop(GtfsBase): __tablename__ = 'stops' stop_id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) stop_name = sqlalchemy.Column(sqlalchemy.String) stop_latitude = sqlalchemy.Column(sqlalchemy.Numeric) stop_longitude = sqlalchemy.Column(sqlalchemy.Numeric) stop_region = sqlalchemy.Column(sqlalchemy.String) stop_region_major = sqlalchemy.Column(sqlalchemy.Boolean) class GtfsRegion(GtfsBase): # Not a gtfs data set, but the Gtfs prefix added for consistency __tablename__ = 'regions' region_name = sqlalchemy.Column(sqlalchemy.String, primary_key = True) region_name_sv = sqlalchemy.Column(sqlalchemy.String) region_name_en = sqlalchemy.Column(sqlalchemy.String) region_name_ja = sqlalchemy.Column(sqlalchemy.String) region_short_name = sqlalchemy.Column(sqlalchemy.String) region_short_name_sv = sqlalchemy.Column(sqlalchemy.String) region_short_name_en = sqlalchemy.Column(sqlalchemy.String) region_short_name_ja = sqlalchemy.Column(sqlalchemy.String) region_internal_name = sqlalchemy.Column(sqlalchemy.String) region_internal_name_sv = sqlalchemy.Column(sqlalchemy.String) region_internal_name_en = sqlalchemy.Column(sqlalchemy.String) region_internal_name_ja = sqlalchemy.Column(sqlalchemy.String) municipality = sqlalchemy.Column(sqlalchemy.String, nullable = False) external = sqlalchemy.Column(sqlalchemy.Boolean)