datamodel.py

Thu, 30 Jul 2020 21:52:31 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Thu, 30 Jul 2020 21:52:31 +0300
changeset 2
7378b802ddf8
parent 1
f9788970fa46
permissions
-rw-r--r--

destination processing

1
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1 import sqlalchemy.ext.declarative
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
2 GtfsBase = sqlalchemy.ext.declarative.declarative_base(name = 'GtfsBase')
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
3
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
4 class GtfsRoute(GtfsBase):
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
5 __tablename__ = 'routes'
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
6 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
7 reference = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
8 description = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
9 type = sqlalchemy.Column(sqlalchemy.Integer)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
10
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
11 class GtfsShape(GtfsBase):
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
12 __tablename__ = 'shapes'
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
13 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
14 length = sqlalchemy.Column(sqlalchemy.Numeric, default = 0)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
15 shape_coordinates = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
16
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
17 class GtfsTrip(GtfsBase):
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
18 __tablename__ = 'trips'
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
19 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
20 route_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsRoute.id))
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
21 service = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
22 shape_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsShape.id))
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
23 route = sqlalchemy.orm.relationship('GtfsRoute', foreign_keys = 'GtfsTrip.route_id')
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
24 shape = sqlalchemy.orm.relationship('GtfsShape', foreign_keys = 'GtfsTrip.shape_id')
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
25
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
26 class GtfsService(GtfsBase):
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
27 __tablename__ = 'services'
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
28 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
29
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
30 class GtfsStop(GtfsBase):
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
31 __tablename__ = 'stops'
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
32 stop_id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
33 stop_name = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
34 stop_latitude = sqlalchemy.Column(sqlalchemy.Numeric)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
35 stop_longitude = sqlalchemy.Column(sqlalchemy.Numeric)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
36 stop_region = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
37 stop_region_major = sqlalchemy.Column(sqlalchemy.Boolean)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
38
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
39 class GtfsRegion(GtfsBase):
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
40 # Not a gtfs data set, but the Gtfs prefix added for consistency
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
41 __tablename__ = 'regions'
2
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
42 ref = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
43 region_name_fi = sqlalchemy.Column(sqlalchemy.String, nullable = False)
1
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
44 region_name_sv = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
45 region_name_en = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
46 region_name_ja = sqlalchemy.Column(sqlalchemy.String)
2
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
47 region_short_name_fi = sqlalchemy.Column(sqlalchemy.String)
1
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
48 region_short_name_sv = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
49 region_short_name_en = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
50 region_short_name_ja = sqlalchemy.Column(sqlalchemy.String)
2
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
51 region_internal_name_fi = sqlalchemy.Column(sqlalchemy.String)
1
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
52 region_internal_name_sv = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
53 region_internal_name_en = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
54 region_internal_name_ja = sqlalchemy.Column(sqlalchemy.String)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
55 municipality = sqlalchemy.Column(sqlalchemy.String, nullable = False)
f9788970fa46 begin work on bus compiler
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
56 external = sqlalchemy.Column(sqlalchemy.Boolean)
2
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
57
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
58 class GtfsStopTime(GtfsBase):
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
59 __tablename__ = 'stop_times'
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
60 trip_id = sqlalchemy.Column(
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
61 sqlalchemy.String,
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
62 sqlalchemy.ForeignKey(GtfsTrip.id),
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
63 primary_key = True,
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
64 )
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
65 stop_id = sqlalchemy.Column(
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
66 sqlalchemy.String,
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
67 sqlalchemy.ForeignKey(GtfsStop.stop_id),
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
68 nullable = False,
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
69 )
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
70 stop_sequence = sqlalchemy.Column(
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
71 sqlalchemy.Integer,
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
72 primary_key = True,
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
73 )
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
74 arrival_time = sqlalchemy.Column(sqlalchemy.Interval, nullable = False)
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
75 departure_time = sqlalchemy.Column(sqlalchemy.Interval, nullable = False)
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
76 shape_distance_traveled = sqlalchemy.Column(sqlalchemy.Numeric)
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
77 destination = sqlalchemy.Column(sqlalchemy.String)
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
78 stop = sqlalchemy.orm.relationship(
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
79 'GtfsStop',
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
80 foreign_keys = 'GtfsStopTime.stop_id',
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
81 )
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
82 trip = sqlalchemy.orm.relationship(
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
83 'GtfsTrip',
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
84 foreign_keys = 'GtfsStopTime.trip_id',
7378b802ddf8 destination processing
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
85 )

mercurial