Source code for aequilibrae.project.basic_table

import shapely.wkb
from shapely.geometry import Polygon

from aequilibrae.project.field_editor import FieldEditor
from aequilibrae.utils.db_utils import commit_and_close


[docs] class BasicTable: """ Basic resources used by all subclasses """ def __init__(self, project): self.project = project self.__table_type__ = ""
[docs] def extent(self) -> Polygon: """Queries the extent of the layer included in the model Returns: *model extent* (:obj:`Polygon`): Shapely polygon with the bounding box of the layer. """ with commit_and_close(self.project.connect()) as conn: data = conn.execute(f'Select ST_asBinary(GetLayerExtent("{self.__table_type__}"))').fetchone()[0] return shapely.wkb.loads(data)
@property def fields(self) -> FieldEditor: """Returns a FieldEditor class instance to edit the zones table fields and their metadata""" return FieldEditor(self.project, self.__table_type__) def __copy__(self): raise Exception(f"{self.__table_type__} object cannot be copied") def __deepcopy__(self, memodict=None): raise Exception(f"{self.__table_type__} object cannot be copied")