Wed, 29 Jul 2020 23:45:53 +0300
begin work on bus compiler
1 | 1 | import sqlalchemy.ext.declarative |
2 | GtfsBase = sqlalchemy.ext.declarative.declarative_base(name = 'GtfsBase') | |
3 | ||
4 | class GtfsRoute(GtfsBase): | |
5 | __tablename__ = 'routes' | |
6 | id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) | |
7 | reference = sqlalchemy.Column(sqlalchemy.String) | |
8 | description = sqlalchemy.Column(sqlalchemy.String) | |
9 | type = sqlalchemy.Column(sqlalchemy.Integer) | |
10 | ||
11 | class GtfsShape(GtfsBase): | |
12 | __tablename__ = 'shapes' | |
13 | id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) | |
14 | length = sqlalchemy.Column(sqlalchemy.Numeric, default = 0) | |
15 | shape_coordinates = sqlalchemy.Column(sqlalchemy.String) | |
16 | ||
17 | class GtfsTrip(GtfsBase): | |
18 | __tablename__ = 'trips' | |
19 | id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) | |
20 | route_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsRoute.id)) | |
21 | service = sqlalchemy.Column(sqlalchemy.String) | |
22 | shape_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsShape.id)) | |
23 | route = sqlalchemy.orm.relationship('GtfsRoute', foreign_keys = 'GtfsTrip.route_id') | |
24 | shape = sqlalchemy.orm.relationship('GtfsShape', foreign_keys = 'GtfsTrip.shape_id') | |
25 | ||
26 | class GtfsService(GtfsBase): | |
27 | __tablename__ = 'services' | |
28 | id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) | |
29 | ||
30 | class GtfsStop(GtfsBase): | |
31 | __tablename__ = 'stops' | |
32 | stop_id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) | |
33 | stop_name = sqlalchemy.Column(sqlalchemy.String) | |
34 | stop_latitude = sqlalchemy.Column(sqlalchemy.Numeric) | |
35 | stop_longitude = sqlalchemy.Column(sqlalchemy.Numeric) | |
36 | stop_region = sqlalchemy.Column(sqlalchemy.String) | |
37 | stop_region_major = sqlalchemy.Column(sqlalchemy.Boolean) | |
38 | ||
39 | class GtfsRegion(GtfsBase): | |
40 | # Not a gtfs data set, but the Gtfs prefix added for consistency | |
41 | __tablename__ = 'regions' | |
42 | region_name = sqlalchemy.Column(sqlalchemy.String, primary_key = True) | |
43 | region_name_sv = sqlalchemy.Column(sqlalchemy.String) | |
44 | region_name_en = sqlalchemy.Column(sqlalchemy.String) | |
45 | region_name_ja = sqlalchemy.Column(sqlalchemy.String) | |
46 | region_short_name = sqlalchemy.Column(sqlalchemy.String) | |
47 | region_short_name_sv = sqlalchemy.Column(sqlalchemy.String) | |
48 | region_short_name_en = sqlalchemy.Column(sqlalchemy.String) | |
49 | region_short_name_ja = sqlalchemy.Column(sqlalchemy.String) | |
50 | region_internal_name = sqlalchemy.Column(sqlalchemy.String) | |
51 | region_internal_name_sv = sqlalchemy.Column(sqlalchemy.String) | |
52 | region_internal_name_en = sqlalchemy.Column(sqlalchemy.String) | |
53 | region_internal_name_ja = sqlalchemy.Column(sqlalchemy.String) | |
54 | municipality = sqlalchemy.Column(sqlalchemy.String, nullable = False) | |
55 | external = sqlalchemy.Column(sqlalchemy.Boolean) |