X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=loctrkd%2Fcommon.py;h=941a93e008dbf793cad604d0df1fd86a81809b63;hb=77c191290dad765c5b2e09c60d2b7e38aff87565;hp=30a17194ffcb5f645bc01d43cf265261a718e339;hpb=b965fecb08f4149f6f91770e9d6bb6d79f53f11e;p=loctrkd.git diff --git a/loctrkd/common.py b/loctrkd/common.py index 30a1719..941a93e 100644 --- a/loctrkd/common.py +++ b/loctrkd/common.py @@ -80,9 +80,19 @@ def exposed_protos() -> List[Tuple[str, bool]]: return [item for pmod in pmods for item in pmod.exposed_protos()] -class Report(SimpleNamespace): +class Report: TYPE: str + def __repr__(self) -> str: + return ( + self.__class__.__name__ + + "(" + + ", ".join( + [f"{k}={v.__repr__()}" for k, v in self.__dict__.items()] + ) + + ")" + ) + @property def json(self) -> str: self.type = self.TYPE @@ -96,24 +106,22 @@ class CoordReport(Report): self, *, devtime: str, - battery_percentage: int, - accuracy: float, - altitude: float, - speed: float, - direction: float, + battery_percentage: Optional[int], + accuracy: Optional[float], + altitude: Optional[float], + speed: Optional[float], + direction: Optional[float], latitude: float, - longitude: float + longitude: float, ) -> None: - super().__init__( - devtime=devtime, - battery_percentage=battery_percentage, - accuracy=accuracy, - altitude=altitude, - speed=speed, - direction=direction, - latitude=latitude, - longitude=longitude, - ) + self.devtime = devtime + self.battery_percentage = battery_percentage + self.accuracy = accuracy + self.altitude = altitude + self.speed = speed + self.direction = direction + self.latitude = latitude + self.longitude = longitude class HintReport(Report): @@ -123,24 +131,22 @@ class HintReport(Report): self, *, devtime: str, - battery_percentage: int, + battery_percentage: Optional[int], mcc: int, mnc: int, gsm_cells: List[Tuple[int, int, int]], - wifi_aps: List[Tuple[str, str, int]] + wifi_aps: List[Tuple[str, str, int]], ) -> None: - super().__init__( - devtime=devtime, - battery_percentage=battery_percentage, - mcc=mcc, - mnc=mnc, - gsm_cells=gsm_cells, - wifi_aps=wifi_aps, - ) + self.devtime = devtime + self.battery_percentage = battery_percentage + self.mcc = mcc + self.mnc = mnc + self.gsm_cells = gsm_cells + self.wifi_aps = wifi_aps class StatusReport(Report): TYPE = "status" def __init__(self, *, battery_percentage: int) -> None: - super().__init__(battery_percentage=battery_percentage) + self.battery_percentage = battery_percentage