Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion gtfs_flex_to_gofs/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def print_args_warnings(args):
parser.add_argument(
'--split-by-route', help='Split gofs by route', action='store_true')
parser.add_argument(
'--itineraries', help='read from transit\'s itinerary_cells format', type=bool, default=False)
'--itineraries', help='read from transit\'s itinerary_cells format', action='store_true')


args = parser.parse_args()
Expand Down
1 change: 0 additions & 1 deletion gtfs_flex_to_gofs/files/operation_rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
from ..gofs_data import GofsTransfer
from gtfs_loader.schema import PickupType, DropOffType

from gtfs_flex_to_gofs.utils import get_locations_group, get_zones
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unused

from enum import Enum

FILENAME = 'operating_rules'
Expand Down
15 changes: 8 additions & 7 deletions gtfs_flex_to_gofs/patch_gtfs.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
from gtfs_flex_to_gofs.gofs_data import GofsData
import gtfs_loader
from .files import operation_rules


def patch_gtfs(args, gtfs, itineraries=False):
clean_up_gtfs(gtfs, itineraries)

is_empty = len(gtfs.itinerary_cells) == 0 if itineraries else len(gtfs.stop_times) == 0
is_empty = len(gtfs.trips) == 0

if not is_empty:
gtfs_loader.patch(gtfs, args.gtfs_dir, args.out_gtfs_dir)
Expand All @@ -16,20 +15,22 @@ def patch_gtfs(args, gtfs, itineraries=False):


def clean_up_gtfs(gtfs, itineraries=False):
trip_ids_to_remove = []
for trip in gtfs.trips.values():
stop_times = gtfs.itinerary_cells[trip.itinerary_index] if itineraries else gtfs.stop_times[trip.trip_id]
if itineraries:
for i, st in enumerate(stop_times):
st.start_pickup_drop_off_window = trip.start_pickup_drop_off_windows[i]
st.end_pickup_drop_off_window = trip.end_pickup_drop_off_windows[i]

type_of_trip = operation_rules.get_type_of_itinerary_trip(trip)
type_of_trip = operation_rules.get_type_of_trip(stop_times)
if type_of_trip == operation_rules.TripType.OTHER:
print(f"WARNING : Trip {trip.trip_id} is not a normal gtfs trip, not microtransit and not deviated service only. We are not supproting this yet, it will be removed from the GTFS and not shown anywhere")

if type_of_trip == operation_rules.TripType.OTHER or type_of_trip == operation_rules.TripType.PURE_MICROTRANSIT:
del gtfs.trips[trip.trip_id]
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

raises runtime error, deletion during iteration

if itineraries and trip.itinerary_index in gtfs.itinerary_cells:
del gtfs.itinerary_cells[trip.itinerary_index]
else:
trip_ids_to_remove.append(trip.trip_id)
if not itineraries:
del gtfs.stop_times[trip.trip_id]

for trip_id in trip_ids_to_remove:
del gtfs.trips[trip_id]
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "GTFS-flex-to-GOFS"
version = "0.5.1"
version = "0.5.2"
description = "Convert GTFS Flex to GOFS"
readme = "README.md"
license = {text = "MIT"}
Expand Down
Loading
Loading