Source code for aequilibrae.project.network.safe_class

import shapely.wkb


[docs] class SafeClass: _srid = 4326 def __init__(self, data_set: dict, project) -> None: self.__dict__["__original__"] = {} self.__dict__["project"] = project self.__dict__["_logger"] = project.logger self.__dict__["_table"] = "" self.__dict__["__srid__"] = 4326 for k, v in data_set.items(): if k == "geometry" and v is not None: v = shapely.wkb.loads(v) self.__dict__[k] = v self.__original__[k] = v def __copy__(self): raise Exception("Object cannot be copied") def __deepcopy__(self, memodict=None): raise Exception("Object cannot be copied") def _save_new_with_geometry(self): data = [] up_keys = [] for key, val in self.__dict__.items(): if key not in self.__original__ or key == "geometry": continue up_keys.append(f'"{key}"') data.append(val) markers = ",".join(["?"] * len(up_keys)) + ",GeomFromWKB(?, ?)" up_keys.append("geometry") data.extend([self.geometry.wkb, self.__srid__]) sql = f'Insert into {self._table} ({",".join(up_keys)}) values({markers})' return data, sql
[docs] def connect_db(self): return self.project.connect()