feat: final push for submission
This commit is contained in:
61
utils.py
Normal file
61
utils.py
Normal file
@@ -0,0 +1,61 @@
|
||||
import argparse
|
||||
import logging
|
||||
import os
|
||||
|
||||
|
||||
logger = logging.getLogger("utils")
|
||||
|
||||
# Common Args
|
||||
def get_common_args(prog: str):
|
||||
# Setup Args
|
||||
parser = argparse.ArgumentParser(prog=prog)
|
||||
|
||||
# Analysis settings
|
||||
parser.add_argument(
|
||||
"-D",
|
||||
"--data-dir",
|
||||
help="Directory for downloaded data",
|
||||
default=os.environ.get("DATA_DIRECTORY", "data")
|
||||
)
|
||||
|
||||
# Debug
|
||||
parser.add_argument(
|
||||
"-d",
|
||||
"--debug",
|
||||
default=False,
|
||||
action="store_true",
|
||||
help="Enable verbose logging",
|
||||
)
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
# LOGGING
|
||||
class Formatter(logging.Formatter):
|
||||
grey = "\x1b[37m"
|
||||
yellow = "\x1b[33m"
|
||||
red = "\x1b[31m"
|
||||
bold_red = "\x1b[1;31m"
|
||||
reset = "\x1b[0m"
|
||||
format = "%(asctime)s - %(name)-24s - %(levelname)-7s - %(message)s (%(filename)s:%(lineno)d)"
|
||||
|
||||
FORMATS = {
|
||||
logging.DEBUG: logging.Formatter(grey + format + reset),
|
||||
logging.INFO: logging.Formatter(format),
|
||||
logging.WARNING: logging.Formatter(yellow + format + reset),
|
||||
logging.ERROR: logging.Formatter(red + format + reset),
|
||||
logging.CRITICAL: logging.Formatter(bold_red + format + reset),
|
||||
}
|
||||
|
||||
def format(self, record):
|
||||
return self.FORMATS.get(record.levelno).format(record)
|
||||
|
||||
|
||||
def setup_logging(debug: bool = False):
|
||||
ch = logging.StreamHandler()
|
||||
ch.setFormatter(Formatter())
|
||||
|
||||
logging.basicConfig(
|
||||
handlers=[ch],
|
||||
level=logging.DEBUG if debug else logging.INFO,
|
||||
)
|
||||
Reference in New Issue
Block a user