Source code for aequilibrae.project.table_loader

from sqlite3 import Connection
from typing import List


[docs] class TableLoader: def __init__(self): self.fields = [] self.sql = ""
[docs] def load_table(self, conn: Connection, table_name: str) -> List[dict]: self.__get_table_struct(conn, table_name) return [dict(zip(self.fields, row)) for row in conn.execute(self.sql).fetchall()]
[docs] def load_structure(self, conn: Connection, table_name: str) -> None: self.__get_table_struct(conn, table_name)
def __get_table_struct(self, conn: Connection, table_name: str) -> None: dt = conn.execute(f"pragma table_info({table_name})").fetchall() self.fields = [x[1].lower() for x in dt if x[1].lower() != "ogc_fid"] keys = [f'"{fld}"' if fld != "geometry" else 'ST_AsBinary("geometry")' for fld in self.fields] self.sql = f'select {",".join(keys)} from "{table_name}"'