Various
[python_utils.git] / presence.py
index 02f85d6bde44013260f791491e63b6e5981a10d6..682855d7491245a232e2d1ec3414e67eef5dae2a 100644 (file)
@@ -5,14 +5,10 @@ from collections import defaultdict
 import enum
 import logging
 import re
-import sys
 from typing import Dict, List
 
 import argparse_utils
-import bootstrap
 import config
-import dict_utils
-import exec_utils
 
 logger = logging.getLogger(__name__)
 
@@ -82,9 +78,13 @@ class PresenceDetection(object):
             Location, Dict[str, datetime.datetime]
         ] = defaultdict(dict)
         self.names_by_mac: Dict[str, str] = {}
+        self.update()
+
+    def update(self) -> None:
+        from exec_utils import cmd
         persisted_macs = config.config['presence_macs_file']
         self.read_persisted_macs_file(persisted_macs, Location.HOUSE)
-        raw = exec_utils.cmd(
+        raw = cmd(
             "ssh [email protected] 'cat /home/scott/cron/persisted_mac_addresses.txt'"
         )
         self.parse_raw_macs_file(raw, Location.CABIN)
@@ -141,6 +141,8 @@ class PresenceDetection(object):
         return False
 
     def where_is_person_now(self, name: Person) -> Location:
+        import dict_utils
+
         if name is Person.UNKNOWN:
             if self.weird_mac_at_cabin:
                 return Location.CABIN
@@ -168,20 +170,3 @@ class PresenceDetection(object):
             item = dict_utils.item_with_max_value(votes)
             return item[0]
         return Location.UNKNOWN
-
-
-def main() -> None:
-    config.parse()
-    p = PresenceDetection()
-
-    for loc in Location:
-        print(f'{loc}: {p.is_anyone_in_location_now(loc)}')
-
-    for u in Person:
-        print(f'{u}: {p.where_is_person_now(u)}')
-    sys.exit(0)
-
-
-if __name__ == '__main__':
-    main()