diff options
author | Frederick Muriuki Muriithi | 2024-10-24 15:54:24 -0500 |
---|---|---|
committer | Frederick Muriuki Muriithi | 2024-10-24 15:56:41 -0500 |
commit | a52401e7191850c4a6542da1af5f2b2769312871 (patch) | |
tree | 52a9622b2f8461ef4074bd775460b22963ae10a5 | |
parent | 80ae9ca56a34ae11c840bd6a7d24fbd9771c0c3e (diff) | |
download | gn-uploader-a52401e7191850c4a6542da1af5f2b2769312871.tar.gz |
Move logger creation to `build_main` function
Since the module-level loggers are built mostly the same, move the
creation of the logger to the more general function to reduce
repetition.
-rw-r--r-- | scripts/rqtl2/entry.py | 20 | ||||
-rw-r--r-- | scripts/rqtl2/install_genotypes.py | 16 | ||||
-rw-r--r-- | scripts/rqtl2/install_phenos.py | 17 | ||||
-rw-r--r-- | scripts/rqtl2/phenotypes_qc.py | 14 |
4 files changed, 22 insertions, 45 deletions
diff --git a/scripts/rqtl2/entry.py b/scripts/rqtl2/entry.py index 5c7e7e4..bc4cd9f 100644 --- a/scripts/rqtl2/entry.py +++ b/scripts/rqtl2/entry.py @@ -1,5 +1,5 @@ """Build common script-entry structure.""" -from logging import Logger +import logging from typing import Callable from argparse import Namespace @@ -12,12 +12,19 @@ from uploader.check_connections import check_db, check_redis from scripts.redis_logger import setup_redis_logger -def build_main(args: Namespace, - run_fn: Callable[[Connection, Namespace], int], - logger: Logger, - loglevel: str = "INFO") -> Callable[[],int]: +def build_main( + args: Namespace, + run_fn: Callable[[Connection, Namespace, logging.Logger], int], + loggername: str +) -> Callable[[],int]: """Build a function to be used as an entry-point for scripts.""" def main(): + logging.basicConfig( + format=( + "%(asctime)s - %(levelname)s %(name)s: " + "(%(pathname)s: %(lineno)d) %(message)s"), + level=args.loglevel) + logger = logging.getLogger(loggername) check_db(args.databaseuri) check_redis(args.redisuri) if not args.rqtl2bundle.exists(): @@ -32,7 +39,6 @@ def build_main(args: Namespace, fqjobid, f"{fqjobid}:log-messages", args.redisexpiry)) - logger.setLevel(loglevel) - return run_fn(dbconn, args) + return run_fn(dbconn, args, logger) return main diff --git a/scripts/rqtl2/install_genotypes.py b/scripts/rqtl2/install_genotypes.py index 6b89142..abc3f07 100644 --- a/scripts/rqtl2/install_genotypes.py +++ b/scripts/rqtl2/install_genotypes.py @@ -5,7 +5,7 @@ from pathlib import Path from zipfile import ZipFile from functools import reduce from typing import Iterator, Optional -from logging import Logger, getLogger, StreamHandler +from logging import Logger, getLogger import MySQLdb as mdb from MySQLdb.cursors import DictCursor @@ -19,6 +19,8 @@ from scripts.rqtl2.entry import build_main from scripts.rqtl2.cli_parser import add_common_arguments from scripts.cli_parser import init_cli_parser, add_global_data_arguments +__MODULE__ = "scripts.rqtl2.install_genotypes" + def insert_markers( dbconn: mdb.Connection, speciesid: int, @@ -253,15 +255,5 @@ if __name__ == "__main__": return parser.parse_args() - thelogger = getLogger("install_genotypes") - thelogger.addHandler(StreamHandler(stream=sys.stderr)) - main = build_main( - cli_args(), - lambda dbconn, args: install_genotypes(dbconn, - args.speciesid, - args.populationid, - args.datasetid, - args.rqtl2bundle), - thelogger, - "INFO") + main = build_main(cli_args(), install_genotypes, __MODULE__) sys.exit(main()) diff --git a/scripts/rqtl2/install_phenos.py b/scripts/rqtl2/install_phenos.py index b5cab8e..e96742f 100644 --- a/scripts/rqtl2/install_phenos.py +++ b/scripts/rqtl2/install_phenos.py @@ -4,7 +4,7 @@ import traceback from pathlib import Path from zipfile import ZipFile from functools import reduce -from logging import Logger, getLogger, StreamHandler +from logging import Logger, getLogger import MySQLdb as mdb from MySQLdb.cursors import DictCursor @@ -18,6 +18,8 @@ from r_qtl import r_qtl2_qc as rqc from functional_tools import take +__MODULE__ = "scripts.rqtl2.install_phenos" + def insert_probesets(dbconn: mdb.Connection, platformid: int, phenos: tuple[str, ...]) -> int: @@ -155,16 +157,5 @@ if __name__ == "__main__": return parser.parse_args() - thelogger = getLogger("install_phenos") - thelogger.addHandler(StreamHandler(stream=sys.stderr)) - main = build_main( - cli_args(), - lambda dbconn, args: install_pheno_files(dbconn, - args.speciesid, - args.platformid, - args.datasetid, - args.rqtl2bundle, - thelogger), - thelogger, - "DEBUG") + main = build_main(cli_args(), install_pheno_files, __MODULE__) sys.exit(main()) diff --git a/scripts/rqtl2/phenotypes_qc.py b/scripts/rqtl2/phenotypes_qc.py index ccd2110..4191df9 100644 --- a/scripts/rqtl2/phenotypes_qc.py +++ b/scripts/rqtl2/phenotypes_qc.py @@ -378,17 +378,5 @@ if __name__ == "__main__": type=Path) return parser.parse_args() - _logger = getLogger("phenotypes_qc") - _logger.addHandler(StreamHandler(stream=sys.stderr)) - - main = build_main( - cli_args(), - lambda dbconn, args: run_qc(dbconn, - args.rqtl2bundle, - args.working_dir, - args.speciesid, - args.populationid, - _logger), - _logger, - "DEBUG") + main = build_main(cli_args(), run_qc, __MODULE__) sys.exit(main()) |