Coverage for src/app.py: 0%

9 statements  

« prev     ^ index     » next       coverage.py v7.6.8, created at 2024-11-24 19:24 +0900

1#!/usr/bin/env python3 

2""" 

3水槽の自動管理を行います. 

4 

5Usage: 

6 rasp-aqua.py [-c CONFIG] [-d] 

7 

8Options: 

9 -c CONFIG : CONFIG を設定ファイルとして読み込んで実行します.[default: config.yaml] 

10 -d : デバッグモードで動作します. 

11""" 

12 

13import logging 

14import signal 

15 

16import rasp_aqua.control 

17import rasp_aqua.scheduler 

18 

19SCHEMA_CONFIG = "config.schema" 

20 

21 

22def sig_handler(num, frame): # noqa: ARG001 

23 global should_terminate 

24 

25 logging.warning("receive signal %d", num) 

26 

27 if num == signal.SIGTERM: 

28 rasp_aqua.control.term() 

29 

30 

31###################################################################### 

32if __name__ == "__main__": 

33 import pathlib 

34 

35 import docopt 

36 import my_lib.config 

37 import my_lib.logger 

38 

39 args = docopt.docopt(__doc__) 

40 

41 config_file = args["-c"] 

42 debug_mode = args["-d"] 

43 

44 my_lib.logger.init("hems.rasp-water", level=logging.DEBUG if debug_mode else logging.INFO) 

45 

46 config = my_lib.config.load(config_file, pathlib.Path(SCHEMA_CONFIG)) 

47 

48 rasp_aqua.control.execute(config) 

49 

50 signal.signal(signal.SIGTERM, sig_handler)