+
+
+if __name__.endswith("__main__"):
+ from getopt import getopt
+ from json import loads
+ from logging import getLogger
+ from sys import argv
+ from . import common
+
+ def cell_list(s: str) -> List[Tuple[int, int, int]]:
+ return [(int(ac), int(ci), int(sg)) for [ac, ci, sg] in loads(s)]
+
+ def ap_list(s: str) -> List[Tuple[str, int]]:
+ return [(mac, int(sg)) for [mac, sg] in loads(s)]
+
+ log = getLogger("loctrkd/googlemaps")
+ opts, args = getopt(argv[1:], "c:d")
+ conf = common.init(log, opts=opts)
+ init(conf)
+ parms = {}
+ needed: Dict[str, Callable[[Any], Any]] = {
+ "mcc": int,
+ "mnc": int,
+ "gsm_cells": cell_list,
+ "wifi_aps": ap_list,
+ }
+ parms = {k: needed.pop(k)(v) for k, v in [arg.split("=") for arg in args]}
+ if needed:
+ raise ValueError(f"still needed: {needed}")
+ print(_lookup(**parms))