aboutsummaryrefslogtreecommitdiff
path: root/scripts/rqtl2
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2024-10-24 15:54:24 -0500
committerFrederick Muriuki Muriithi2024-10-24 15:56:41 -0500
commita52401e7191850c4a6542da1af5f2b2769312871 (patch)
tree52a9622b2f8461ef4074bd775460b22963ae10a5 /scripts/rqtl2
parent80ae9ca56a34ae11c840bd6a7d24fbd9771c0c3e (diff)
downloadgn-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.
Diffstat (limited to 'scripts/rqtl2')
-rw-r--r--scripts/rqtl2/entry.py20
-rw-r--r--scripts/rqtl2/install_genotypes.py16
-rw-r--r--scripts/rqtl2/install_phenos.py17
-rw-r--r--scripts/rqtl2/phenotypes_qc.py14
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())