Skip to content

Trips

Trips

Trips(lf: Optional[LazyFrame] = None, trip_ids: Optional[List[str]] = None)

A class to load and optionally filter GTFS trips data from one or more trips.txt files using Polars LazyFrame.

Attributes:

Name Type Description
paths List[Path]

List of directory paths containing trips.txt files.

lf LazyFrame

A Polars LazyFrame containing the (optionally filtered) trips data.

Wraps an already-loaded trips LazyFrame, or leaves it empty for load to fill in.

Parameters:

Name Type Description Default
lf Optional[LazyFrame]

Optional pre-loaded trips.txt LazyFrame.

None
trip_ids Optional[List[str]]

Optional pre-computed list of in-scope trip_ids.

None
Source code in pyGTFSHandler/models/trips.py
def __init__(self, lf: Optional[pl.LazyFrame] = None, trip_ids: Optional[List[str]] = None) -> None:
    """Wraps an already-loaded trips LazyFrame, or leaves it empty for `load` to fill in.

    Args:
        lf: Optional pre-loaded `trips.txt` LazyFrame.
        trip_ids: Optional pre-computed list of in-scope `trip_id`s.
    """
    self.lf = lf
    self.trip_ids = trip_ids

load

load(path: Union[str, Path, List[Union[str, Path]]], service_ids: Optional[List[str]] = None, trip_ids: Optional[List[str]] = None, route_ids: Optional[List[str] | LazyFrame | DataFrame] = None, check_files: bool = False, min_file_id=0, collision_registry=None)

Initializes the Trips class by reading and filtering the trips data.

Parameters:

Name Type Description Default
path str | Path | list[str | Path]

One or more paths to directories containing trips.txt files.

required
service_ids list[str]

List of service IDs to filter by.

None
trip_ids list[str]

List of trip IDs to filter by.

None
route_ids list[str]

List of route IDs to filter by.

None
Source code in pyGTFSHandler/models/trips.py
def load(
    self,
    path: Union[str, Path, List[Union[str, Path]]],
    service_ids: Optional[List[str]] = None,
    trip_ids: Optional[List[str]] = None,
    route_ids: Optional[List[str] | pl.LazyFrame | pl.DataFrame] = None,
    check_files:bool=False,
    min_file_id=0,
    collision_registry=None,
):
    """
    Initializes the Trips class by reading and filtering the trips data.

    Args:
        path (str | Path | list[str | Path]): One or more paths to directories containing `trips.txt` files.
        service_ids (list[str], optional): List of service IDs to filter by.
        trip_ids (list[str], optional): List of trip IDs to filter by.
        route_ids (list[str], optional): List of route IDs to filter by.
    """
    if isinstance(path, (str, Path)):
        paths = [Path(path)]
    else:
        paths = [Path(p) for p in path]

    self.lf = self._read_trips(paths,service_ids, trip_ids, route_ids, check_files=check_files, min_file_id=min_file_id, collision_registry=collision_registry)
    if (service_ids is not None) or (route_ids is not None):
        self.trip_ids = (
            self.lf.select("trip_id").unique().collect()["trip_id"].to_list()
        )
    else:
        self.trip_ids = trip_ids

    if (self.trip_ids is not None) and (len(self.trip_ids) > 0) and (self.trip_ids[0] is None):
        self.trip_ids = []