Fri, 05 Feb 2021 12:16:29 +0200
update
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' | |
2 | 42 | ref = sqlalchemy.Column(sqlalchemy.String, primary_key = True) |
43 | region_name_fi = sqlalchemy.Column(sqlalchemy.String, nullable = False) | |
1 | 44 | region_name_sv = sqlalchemy.Column(sqlalchemy.String) |
45 | region_name_en = sqlalchemy.Column(sqlalchemy.String) | |
46 | region_name_ja = sqlalchemy.Column(sqlalchemy.String) | |
2 | 47 | region_short_name_fi = sqlalchemy.Column(sqlalchemy.String) |
1 | 48 | region_short_name_sv = sqlalchemy.Column(sqlalchemy.String) |
49 | region_short_name_en = sqlalchemy.Column(sqlalchemy.String) | |
50 | region_short_name_ja = sqlalchemy.Column(sqlalchemy.String) | |
2 | 51 | region_internal_name_fi = sqlalchemy.Column(sqlalchemy.String) |
1 | 52 | region_internal_name_sv = sqlalchemy.Column(sqlalchemy.String) |
53 | region_internal_name_en = sqlalchemy.Column(sqlalchemy.String) | |
54 | region_internal_name_ja = sqlalchemy.Column(sqlalchemy.String) | |
55 | municipality = sqlalchemy.Column(sqlalchemy.String, nullable = False) | |
56 | external = sqlalchemy.Column(sqlalchemy.Boolean) | |
2 | 57 | |
58 | class GtfsStopTime(GtfsBase): | |
59 | __tablename__ = 'stop_times' | |
60 | trip_id = sqlalchemy.Column( | |
61 | sqlalchemy.String, | |
62 | sqlalchemy.ForeignKey(GtfsTrip.id), | |
63 | primary_key = True, | |
64 | ) | |
65 | stop_id = sqlalchemy.Column( | |
66 | sqlalchemy.String, | |
67 | sqlalchemy.ForeignKey(GtfsStop.stop_id), | |
68 | nullable = False, | |
69 | ) | |
70 | stop_sequence = sqlalchemy.Column( | |
71 | sqlalchemy.Integer, | |
72 | primary_key = True, | |
73 | ) | |
74 | arrival_time = sqlalchemy.Column(sqlalchemy.Interval, nullable = False) | |
75 | departure_time = sqlalchemy.Column(sqlalchemy.Interval, nullable = False) | |
76 | shape_distance_traveled = sqlalchemy.Column(sqlalchemy.Numeric) | |
77 | destination = sqlalchemy.Column(sqlalchemy.String) | |
78 | stop = sqlalchemy.orm.relationship( | |
79 | 'GtfsStop', | |
80 | foreign_keys = 'GtfsStopTime.stop_id', | |
81 | ) | |
82 | trip = sqlalchemy.orm.relationship( | |
83 | 'GtfsTrip', | |
84 | foreign_keys = 'GtfsStopTime.trip_id', | |
85 | ) |