Coverage for src/app.py: 0%
9 statements
« prev ^ index » next coverage.py v7.6.8, created at 2024-11-24 19:24 +0900
« prev ^ index » next coverage.py v7.6.8, created at 2024-11-24 19:24 +0900
1#!/usr/bin/env python3
2"""
3水槽の自動管理を行います.
5Usage:
6 rasp-aqua.py [-c CONFIG] [-d]
8Options:
9 -c CONFIG : CONFIG を設定ファイルとして読み込んで実行します.[default: config.yaml]
10 -d : デバッグモードで動作します.
11"""
13import logging
14import signal
16import rasp_aqua.control
17import rasp_aqua.scheduler
19SCHEMA_CONFIG = "config.schema"
22def sig_handler(num, frame): # noqa: ARG001
23 global should_terminate
25 logging.warning("receive signal %d", num)
27 if num == signal.SIGTERM:
28 rasp_aqua.control.term()
31######################################################################
32if __name__ == "__main__":
33 import pathlib
35 import docopt
36 import my_lib.config
37 import my_lib.logger
39 args = docopt.docopt(__doc__)
41 config_file = args["-c"]
42 debug_mode = args["-d"]
44 my_lib.logger.init("hems.rasp-water", level=logging.DEBUG if debug_mode else logging.INFO)
46 config = my_lib.config.load(config_file, pathlib.Path(SCHEMA_CONFIG))
48 rasp_aqua.control.execute(config)
50 signal.signal(signal.SIGTERM, sig_handler)