Skip to content

Routes

Routes

Routes(lf: Optional[LazyFrame] = None, route_ids: Optional[List[str]] = None)

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

Attributes:

Name Type Description
paths List[Path]

List of directory paths containing routes.txt files.

lf LazyFrame

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

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

Parameters:

Name Type Description Default
lf Optional[LazyFrame]

Optional pre-loaded routes.txt LazyFrame.

None
route_ids Optional[List[str]]

Optional pre-computed list of in-scope route_ids.

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

    Args:
        lf: Optional pre-loaded `routes.txt` LazyFrame.
        route_ids: Optional pre-computed list of in-scope `route_id`s.
    """
    self.lf = lf
    self.route_ids = route_ids

load

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

Initializes the Routes class by reading and filtering the routes data.

Parameters:

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

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

required
route_ids list[str]

List of route IDs to filter by.

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

    Args:
        path (str | Path | list[str | Path]): One or more paths to directories containing `routes.txt` files.
        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_routes(paths, route_ids, route_types, check_files=check_files, min_file_id=min_file_id, collision_registry=collision_registry)
    if self.lf is not None:
        if (route_ids is not None) or (route_types is not None):
            self.route_ids = (
                self.lf.select("route_id").unique().collect()["route_id"].to_list()
            )
            if (len(self.route_ids) > 0) and (self.route_ids[0] is None):
                self.route_ids = []
        else:
            self.route_ids = None
    else:
        self.route_ids = None