From 6d7f92ff9ae65a4c076dd21f86713b22dd57cc6c Mon Sep 17 00:00:00 2001 From: Tony Bartoletti Date: Thu, 12 Sep 2024 17:13:12 -0700 Subject: [PATCH 1/3] revised logger design post successful testing --- e3sm_to_cmip/__main__.py | 62 ++++++---- e3sm_to_cmip/_logger.py | 107 ++++++++++-------- e3sm_to_cmip/cmor_handlers/handler.py | 12 +- .../cmor_handlers/mpas_vars/areacello.py | 9 +- .../cmor_handlers/mpas_vars/fsitherm.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py | 9 +- .../cmor_handlers/mpas_vars/hfsifrazil.py | 9 +- .../cmor_handlers/mpas_vars/masscello.py | 10 +- e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py | 9 +- .../cmor_handlers/mpas_vars/mlotst.py | 9 +- .../cmor_handlers/mpas_vars/msftmz.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py | 9 +- .../cmor_handlers/mpas_vars/siconc.py | 9 +- .../cmor_handlers/mpas_vars/simass.py | 9 +- .../cmor_handlers/mpas_vars/sisnmass.py | 9 +- .../cmor_handlers/mpas_vars/sisnthick.py | 9 +- .../cmor_handlers/mpas_vars/sitemptop.py | 8 +- .../cmor_handlers/mpas_vars/sithick.py | 9 +- .../cmor_handlers/mpas_vars/sitimefrac.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/so.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py | 9 +- .../cmor_handlers/mpas_vars/thetao.py | 9 +- .../cmor_handlers/mpas_vars/thetaoga.py | 9 +- .../cmor_handlers/mpas_vars/thkcello.py | 10 +- e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py | 9 +- .../cmor_handlers/mpas_vars/volcello.py | 10 +- e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py | 9 +- e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py | 10 +- .../cmor_handlers/mpas_vars/zhalfo.py | 10 +- e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py | 9 +- e3sm_to_cmip/cmor_handlers/utils.py | 7 +- e3sm_to_cmip/cmor_handlers/vars/areacella.py | 13 ++- e3sm_to_cmip/cmor_handlers/vars/clisccp.py | 14 ++- e3sm_to_cmip/cmor_handlers/vars/orog.py | 15 +-- e3sm_to_cmip/cmor_handlers/vars/sftlf.py | 15 +-- e3sm_to_cmip/mpas.py | 31 +++-- e3sm_to_cmip/util.py | 10 +- 51 files changed, 456 insertions(+), 203 deletions(-) diff --git a/e3sm_to_cmip/__main__.py b/e3sm_to_cmip/__main__.py index 5ecf3504..1e7b7bd3 100755 --- a/e3sm_to_cmip/__main__.py +++ b/e3sm_to_cmip/__main__.py @@ -22,8 +22,12 @@ from tqdm import tqdm from e3sm_to_cmip import ROOT_HANDLERS_DIR, __version__, resources -from e3sm_to_cmip._logger import _setup_logger, _setup_root_logger +from datetime import datetime, timezone + +from e3sm_to_cmip import _logger + from e3sm_to_cmip.cmor_handlers.utils import ( + instantiate_h_utils_logger, MPAS_REALMS, REALMS, Frequency, @@ -33,7 +37,10 @@ derive_handlers, load_all_handlers, ) +from e3sm_to_cmip.cmor_handlers.handler import instantiate_handler_logger + from e3sm_to_cmip.util import ( + instantiate_util_logger, FREQUENCIES, _get_table_info, add_metadata, @@ -51,11 +58,6 @@ warnings.filterwarnings("ignore") -# Setup the root logger and this module's logger. -log_filename = _setup_root_logger() -logger = _setup_logger(__name__, propagate=True) - - @dataclass class CLIArguments: """A data class storing the command line arguments for e3sm_to_cmip. @@ -98,9 +100,19 @@ class CLIArguments: class E3SMtoCMIP: def __init__(self, args: Optional[List[str]] = None): + # logger assignment is moved into __init__ AFTER the call to _parse_args + # to prevent the default logfile directory being created whenever a call + # to "--help" or "--version" is invoked. Doing so, however, makes the + # logger unavailable to the functions in this class unless made global. + global logger + # A dictionary of command line arguments. parsed_args = self._parse_args(args) + # Setup this module's logger AFTER args are parsed in __init__, so that + # default log file is NOT created for "--help" or "--version" calls. + logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True) + # NOTE: The order of these attributes align with class CLIArguments. # ====================================================================== # Run Mode settings. @@ -141,6 +153,9 @@ def __init__(self, args: Optional[List[str]] = None): if self.precheck_path is not None: self._run_precheck() + self.handlers = self._get_handlers() + + def print_config(self): logger.info("--------------------------------------") logger.info("| E3SM to CMIP Configuration") logger.info("--------------------------------------") @@ -150,28 +165,24 @@ def __init__(self, args: Optional[List[str]] = None): logger.info(f" * precheck_path='{self.precheck_path}'") logger.info(f" * freq='{self.freq}'") logger.info(f" * realm='{self.realm}'") - logger.info(f" * Writing log output file to: {log_filename}") - - self.handlers = self._get_handlers() def run(self): - # Setup logger information and print out e3sm_to_cmip CLI arguments. + # If info_mode, call and then exit. # ====================================================================== - if self.output_path is not None: - self.new_metadata_path = os.path.join( - self.output_path, "user_metadata.json" - ) + if self.info_mode: + self._run_info_mode() + sys.exit(0) # Setup directories using the CLI argument paths (e.g., output dir). # ====================================================================== - if not self.info_mode: - self._setup_dirs_with_paths() + self._setup_dirs_with_paths() - # Run e3sm_to_cmip with info mode. + # Set new metadata path if output path was provided. # ====================================================================== - if self.info_mode: - self._run_info_mode() - sys.exit(0) + if self.output_path is not None: + self.new_metadata_path = os.path.join( + self.output_path, "user_metadata.json" + ) # Run e3sm_to_cmip to CMORize serially or in parallel. # ====================================================================== @@ -959,8 +970,17 @@ def _timeout_exit(self): def main(args: Optional[List[str]] = None): + app = E3SMtoCMIP(args) - app.run() + + # These calls allow module loggers that create default logfiles to avoid being + # instantiated by arguments "--help" or "--version" upon import. + instantiate_util_logger() + instantiate_h_utils_logger() + instantiate_handler_logger() + + app.print_config() + return app.run() if __name__ == "__main__": diff --git a/e3sm_to_cmip/_logger.py b/e3sm_to_cmip/_logger.py index 2e14df7c..84ee41a7 100644 --- a/e3sm_to_cmip/_logger.py +++ b/e3sm_to_cmip/_logger.py @@ -1,68 +1,77 @@ import logging import os -import time -from datetime import datetime +from datetime import datetime, timezone -from pytz import UTC +DEBUG = logging.DEBUG +INFO = logging.INFO +WARNING = logging.WARNING +ERROR = logging.ERROR +CRITICAL = logging.CRITICAL -def _setup_root_logger() -> str: # pragma: no cover - """Sets up the root logger. +DEFAULT_LOG_LEVEL = logging.DEBUG +DEFAULT_LOG_DIR = "e2c_logs" +DEFAULT_LOG = f"{DEFAULT_LOG_DIR}/e2c_root_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log" - The logger module will write to a log file and stream the console - simultaneously. - The log files are saved in a `/logs` directory relative to where - `e3sm_to_cmip` is executed. +def e2c_logger( + name=None, + logfilename=DEFAULT_LOG, + log_level=None, + to_console=False, + to_logfile=False, + propagate=False, +): + """Return a root or named logger with variable configuration. - Returns - ------- - str - The name of the logfile. + Parameters + ---------- + name : str + The name displayed for the logger in messages. + If name == None or name == "__main__", the root logger is returned + logfilename : str + If logfile handling is requested, any logfile may be specified, or else + the default (e2c_logs/dflt_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log) is used. + log_level : int + One of { logging.DEBUG (default), logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL } + as defined in the module "logging". + to_console : boolean + If True, a logging.StreamHandler is supplied. Default = False + to_logfile : boolean + If True, a logging.FileHandler is supplied. Default = False. + propagate : boolean + If True, messages logged are propagated to the root logger. Default = False. """ - os.makedirs("logs", exist_ok=True) - filename = f'logs/{UTC.localize(datetime.utcnow()).strftime("%Y%m%d_%H%M%S_%f")}' - log_format = "%(asctime)s_%(msecs)03d:%(levelname)s:%(funcName)s:%(message)s" + if to_logfile: + dn = os.path.dirname(logfilename) + if len(dn) and not os.path.exists(dn): + os.makedirs(dn) - # Setup the logging module. - logging.basicConfig( - filename=filename, - format=log_format, - datefmt="%Y%m%d_%H%M%S", - level=logging.DEBUG, - ) - logging.captureWarnings(True) - logging.Formatter.converter = time.gmtime + if name == None or name == "__main__": + logger = logger.root + else: + logger = logging.getLogger(name) - # Configure and add a console stream handler. - console_handler = logging.StreamHandler() - console_handler.setLevel(logging.INFO) - log_formatter = logging.Formatter(log_format) - console_handler.setFormatter(log_formatter) - logging.getLogger().addHandler(console_handler) + logger.propagate = propagate - return filename + if log_level == None: + log_level = DEFAULT_LOG_LEVEL + logger.setLevel(log_level) -def _setup_logger(name, propagate=True) -> logging.Logger: - """Sets up a logger object. + logger.handlers = [] - This function is intended to be used at the top-level of a module. + msgfmt = "%(asctime)s_%(msecs)03d:%(levelname)s:%(name)s:%(funcName)s:%(message)s" + datefmt = "%Y%m%d_%H%M%S" - Parameters - ---------- - name : str - Name of the file where this function is called. - propagate : bool, optional - Propogate this logger module's messages to the root logger or not, by - default True. + if to_console: + logStreamHandler = logging.StreamHandler() + logStreamHandler.setFormatter(logging.Formatter(msgfmt, datefmt=datefmt)) + logger.addHandler(logStreamHandler) - Returns - ------- - logging.Logger - The logger. - """ - logger = logging.getLogger(name) - logger.propagate = propagate + if to_logfile: + logFileHandler = logging.FileHandler(logfilename) + logFileHandler.setFormatter(logging.Formatter(msgfmt, datefmt=datefmt)) + logger.addHandler(logFileHandler) return logger diff --git a/e3sm_to_cmip/cmor_handlers/handler.py b/e3sm_to_cmip/cmor_handlers/handler.py index c7e4510f..a05f9346 100644 --- a/e3sm_to_cmip/cmor_handlers/handler.py +++ b/e3sm_to_cmip/cmor_handlers/handler.py @@ -1,7 +1,6 @@ from __future__ import annotations import json -import logging import os from typing import Any, Dict, KeysView, List, Literal, Optional, Tuple, TypedDict @@ -11,11 +10,14 @@ import xcdat as xc import yaml -from e3sm_to_cmip._logger import _setup_logger from e3sm_to_cmip.cmor_handlers import FILL_VALUE, _formulas from e3sm_to_cmip.util import _get_table_for_non_monthly_freq +from e3sm_to_cmip import _logger -logger = _setup_logger(__name__) +def instantiate_handler_logger(): + global logger + + logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=True) # The names for valid hybrid sigma levels. HYBRID_SIGMA_LEVEL_NAMES = [ @@ -289,7 +291,7 @@ def _all_vars_have_filepaths( """ for var, filepaths in vars_to_filespaths.items(): if len(filepaths) == 0: - logging.error(f"{var}: Unable to find input files for {var}") + logger.error(f"{var}: Unable to find input files for {var}") return False return True @@ -331,7 +333,7 @@ def _setup_cmor_module( cmor.dataset_json(metadata_path) cmor.load_table(self.table) - logging.info(f"{var_name}: CMOR setup complete") + logger.info(f"{var_name}: CMOR setup complete") def _get_var_time_dim(self, table_path: str) -> str | None: """Get the CMIP variable's time dimension, if it exists. diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py index dcd6f802..e4b72deb 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py @@ -2,7 +2,8 @@ compute Grid-Cell Area for Ocean Variables areacello """ -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -17,6 +18,10 @@ VAR_UNITS = "m2" TABLE = "CMIP6_Ofx.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -43,7 +48,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py index 235365ed..646787a8 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "kg m-2 s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -44,7 +49,7 @@ def handle(infiles, tables, user_input_path, **kwargs): print_message(f"Simple CMOR output not supported for {VAR_NAME}", "error") return None - logging.info(f"Starting {VAR_NAME}") + logger.info(f"Starting {VAR_NAME}") mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py index 47595ada..4cdc604f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "W m-2" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): print_message(f"Simple CMOR output not supported for {VAR_NAME}", "error") return None - logging.info(f"Starting {VAR_NAME}") + logger.info(f"Starting {VAR_NAME}") mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py index 455c3a4b..b5432ce9 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "W m-2" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -45,7 +50,7 @@ def handle(infiles, tables, user_input_path, **kwargs): print_message(f"Simple CMOR output not supported for {VAR_NAME}", "error") return None - logging.info(f"Starting {VAR_NAME}") + logger.info(f"Starting {VAR_NAME}") timeSeriesFiles = infiles["MPASO"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py index b691a5bc..2885fa59 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py @@ -4,8 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging - +import xarray +from e3sm_to_cmip import _logger import netCDF4 import xarray @@ -20,6 +20,10 @@ VAR_UNITS = "kg m-2" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) namelistFileName = infiles["MPASO_namelist"] meshFileName = infiles["MPAS_mesh"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py index 98d4e5b3..a2ee42ae 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "kg" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) namelistFileName = infiles["MPASO_namelist"] meshFileName = infiles["MPAS_mesh"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py index e128c29d..f80c8ebd 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py index bf16ab73..0a8fdddf 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "kg s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -49,7 +54,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py index 1e458004..0f108421 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "Pa" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -48,7 +53,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) namelistFileName = infiles["MPASO_namelist"] meshFileName = infiles["MPAS_mesh"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py index 52b005ac..adfc273f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "Pa" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) namelistFileName = infiles["MPASO_namelist"] meshFileName = infiles["MPAS_mesh"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py index ca69fdb3..07c10226 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "kg m-2 s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py index f7b8784c..ea00a51f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "%" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py index 224a86bf..870c4480 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -18,6 +19,10 @@ VAR_UNITS = "kg m-2" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -41,7 +46,7 @@ def handle(infiles, tables, user_input_path, **kwargs): the name of the processed variable after processing is complete """ msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py index 91c28fd4..18da2137 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "kg m-2" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py index 183200f7..5fce6b2a 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py index 12684368..44fe5a2c 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py @@ -4,7 +4,7 @@ from __future__ import absolute_import, division, print_function -import logging +from e3sm_to_cmip import _logger import xarray @@ -19,6 +19,10 @@ VAR_UNITS = "K" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py index 39efbe9b..b8e6723d 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py index 7d9e9a9a..8002bf85 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "1" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASSI"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py index 12f31da4..03ca05f1 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py index edd5d90b..5532064e 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_SImon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py index 7d16405d..fa085ef7 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py index 84af9492..3fb9f575 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -18,6 +19,10 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -45,7 +50,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py index c9685359..982e86ff 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py index ab4be65e..254ba3b0 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py index bfa23cec..76198866 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py index c1b6ae90..b14f228c 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "N m-2" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py index 570a431a..d12534be 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "N m-2" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py index 59781f99..f6a7c1a0 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py index 0ef0e1ce..95255995 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +52,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py index 389bc428..39027915 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py @@ -2,8 +2,8 @@ compute Ocean Model Cell Thickness, thkcello """ -import logging - +import xarray +from e3sm_to_cmip import _logger import netCDF4 import xarray @@ -18,6 +18,10 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -45,7 +49,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py index e1503232..cd5b63bd 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py index 3766a1f8..7fd20417 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py index 55853352..1a53800a 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py index 3f90cef4..c2421b30 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py index ed230a72..bedb5262 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py index 73b63287..6ed32f1b 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py @@ -2,8 +2,8 @@ compute Ocean Grid-Cell Volume, volcello """ -import logging - +import xarray +from e3sm_to_cmip import _logger import netCDF4 import xarray @@ -18,6 +18,10 @@ VAR_UNITS = "m3" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -45,7 +49,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py index 53058a48..ba5accd5 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m3" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py index ec982518..1cfdbe60 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "kg m-2 s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -48,7 +53,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) mappingFileName = infiles["MPAS_map"] timeSeriesFiles = infiles["MPASO"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py index b0136c43..264cb483 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py @@ -4,9 +4,9 @@ from __future__ import absolute_import, division, print_function -import logging - import xarray +from e3sm_to_cmip import _logger +import numpy from e3sm_to_cmip import mpas, util from e3sm_to_cmip.util import print_message @@ -19,6 +19,10 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +50,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py index dc26dac3..1239bcea 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py @@ -4,8 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging - +import xarray +from e3sm_to_cmip import _logger import numpy import xarray @@ -20,6 +20,10 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -47,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py index eb439a54..ad8f5dda 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py @@ -4,7 +4,8 @@ from __future__ import absolute_import, division, print_function -import logging +import xarray +from e3sm_to_cmip import _logger import xarray @@ -19,6 +20,10 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) + def handle(infiles, tables, user_input_path, **kwargs): """ @@ -46,7 +51,7 @@ def handle(infiles, tables, user_input_path, **kwargs): return msg = "Starting {name}".format(name=__name__) - logging.info(msg) + logger.info(msg) meshFileName = infiles["MPAS_mesh"] mappingFileName = infiles["MPAS_map"] diff --git a/e3sm_to_cmip/cmor_handlers/utils.py b/e3sm_to_cmip/cmor_handlers/utils.py index 8f946e8e..08f754de 100644 --- a/e3sm_to_cmip/cmor_handlers/utils.py +++ b/e3sm_to_cmip/cmor_handlers/utils.py @@ -11,11 +11,14 @@ LEGACY_HANDLER_DIR_PATH, MPAS_HANDLER_DIR_PATH, ) -from e3sm_to_cmip._logger import _setup_logger from e3sm_to_cmip.cmor_handlers.handler import VarHandler from e3sm_to_cmip.util import _get_table_for_non_monthly_freq +from e3sm_to_cmip import _logger -logger = _setup_logger(__name__) +def instantiate_h_utils_logger(): + global logger + + logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False) # Type aliases Frequency = Literal["mon", "day", "6hrLev", "6hrPlev", "6hrPlevPt", "3hr", "1hr"] diff --git a/e3sm_to_cmip/cmor_handlers/vars/areacella.py b/e3sm_to_cmip/cmor_handlers/vars/areacella.py index 9f0d50b8..ae52379e 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/areacella.py +++ b/e3sm_to_cmip/cmor_handlers/vars/areacella.py @@ -5,19 +5,20 @@ from __future__ import absolute_import, division, print_function, unicode_literals import json -import logging import os import cmor import numpy as np import xarray as xr -from e3sm_to_cmip import resources -from e3sm_to_cmip._logger import _setup_logger +import cmor +from e3sm_to_cmip import resources, _logger from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _setup_logger(__name__) +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) # list of raw variable names needed RAW_VARIABLES = [str("area")] @@ -66,7 +67,7 @@ def handle(infiles, tables, user_input_path, table, logdir): if len(infiles[variable]) == 0: msg = "{}: Unable to find input files for {}".format(VAR_NAME, variable) print_message(msg) - logging.error(msg) + logger.error(msg) zerofiles = True if zerofiles: return None @@ -128,7 +129,7 @@ def handle(infiles, tables, user_input_path, table, logdir): ] msg = "areacella: running CMOR" - logging.info(msg) + logger.info(msg) axis_ids = list() for axis in axes: diff --git a/e3sm_to_cmip/cmor_handlers/vars/clisccp.py b/e3sm_to_cmip/cmor_handlers/vars/clisccp.py index 5402ef72..81fb3d02 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/clisccp.py +++ b/e3sm_to_cmip/cmor_handlers/vars/clisccp.py @@ -6,17 +6,21 @@ from __future__ import absolute_import, annotations, division, unicode_literals -import logging +import os from typing import Dict, List, Union import cmor import numpy as np import xarray as xr -from e3sm_to_cmip._logger import _setup_logger +import cmor +from e3sm_to_cmip import resources, _logger +from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _setup_logger(__name__) +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) # list of raw variable names needed RAW_VARIABLES = [str("FISCCP1_COSP")] @@ -59,14 +63,14 @@ def handle( # noqa: C901 If CMORizing was successful, return the output CMIP variable name to indicate success. If failed, return None .""" - logging.info(f"Starting {VAR_NAME}") + logger.info(f"Starting {VAR_NAME}") nonzero = False for variable in RAW_VARIABLES: if len(vars_to_filepaths[variable]) == 0: msg = f"{variable}: Unable to find input files for {RAW_VARIABLES}" print_message(msg) - logging.error(msg) + logger.error(msg) nonzero = True if nonzero: return None diff --git a/e3sm_to_cmip/cmor_handlers/vars/orog.py b/e3sm_to_cmip/cmor_handlers/vars/orog.py index 7de757df..8895a1aa 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/orog.py +++ b/e3sm_to_cmip/cmor_handlers/vars/orog.py @@ -5,19 +5,20 @@ from __future__ import absolute_import, division, print_function, unicode_literals import json -import logging import os import cmor import numpy as np import xarray as xr -from e3sm_to_cmip import resources -from e3sm_to_cmip._logger import _setup_logger +import cmor +from e3sm_to_cmip import resources, _logger from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _setup_logger(__name__) +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) # list of raw variable names needed RAW_VARIABLES = [str("PHIS")] @@ -66,7 +67,7 @@ def handle(infiles, tables, user_input_path, table, logdir): if len(infiles[variable]) == 0: msg = f"{VAR_NAME}: Unable to find input files for {variable}" print_message(msg) - logging.error(msg) + logger.error(msg) zerofiles = True if zerofiles: return None @@ -79,7 +80,7 @@ def handle(infiles, tables, user_input_path, table, logdir): ) msg = "{}: CMOR setup complete".format(VAR_NAME) - logging.info(msg) + logger.info(msg) # extract data from the input file msg = "orog: loading PHIS" @@ -120,7 +121,7 @@ def handle(infiles, tables, user_input_path, table, logdir): ] msg = "orog: running CMOR" - logging.info(msg) + logger.info(msg) axis_ids = list() for axis in axes: diff --git a/e3sm_to_cmip/cmor_handlers/vars/sftlf.py b/e3sm_to_cmip/cmor_handlers/vars/sftlf.py index 127f7788..3fe92324 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/sftlf.py +++ b/e3sm_to_cmip/cmor_handlers/vars/sftlf.py @@ -5,19 +5,20 @@ from __future__ import absolute_import, division, print_function, unicode_literals import json -import logging import os import cmor import numpy as np import xarray as xr -from e3sm_to_cmip import resources -from e3sm_to_cmip._logger import _setup_logger +import cmor +from e3sm_to_cmip import resources, _logger from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _setup_logger(__name__) +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) # list of raw variable names needed RAW_VARIABLES = [str("LANDFRAC")] @@ -65,7 +66,7 @@ def handle(infiles, tables, user_input_path, table, logdir): if len(infiles[variable]) == 0: msg = f"{VAR_NAME}: Unable to find input files for {variable}" print_message(msg) - logging.error(msg) + logger.error(msg) zerofiles = True if zerofiles: return None @@ -78,7 +79,7 @@ def handle(infiles, tables, user_input_path, table, logdir): ) msg = "{}: CMOR setup complete".format(VAR_NAME) - logging.info(msg) + logger.info(msg) # extract data from the input file msg = "sftlf: loading LANDFRAC" @@ -119,7 +120,7 @@ def handle(infiles, tables, user_input_path, table, logdir): ] msg = "sftlf: running CMOR" - logging.info(msg) + logger.info(msg) axis_ids = list() for axis in axes: diff --git a/e3sm_to_cmip/mpas.py b/e3sm_to_cmip/mpas.py index b3f101fa..4aadbaea 100644 --- a/e3sm_to_cmip/mpas.py +++ b/e3sm_to_cmip/mpas.py @@ -5,7 +5,6 @@ from __future__ import absolute_import, division, print_function import argparse -import logging import multiprocessing import os import re @@ -23,21 +22,25 @@ import xarray from dask.diagnostics import ProgressBar +from e3sm_to_cmip import _logger + +logger = _logger.e2c_logger( + name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False +) -def run_ncremap_cmd(args, env): - logtext = f"mpas.py: remap: ncremap args = {args}" - logging.info(logtext) +def run_ncremap_cmd(args, env): proc = subprocess.Popen( args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=env ) (out, err) = proc.communicate() - logging.info(out) + logger.info(out) if proc.returncode: - print("Error running ncremap command: {}".format(" ".join(args))) + arglist = " ".join(args) + logger.error(f"Error running ncremap command: {arglist}") print(err.decode("utf-8")) raise subprocess.CalledProcessError( # type: ignore - "ncremap returned {}".format(proc.returncode) # type: ignore + f"ncremap returned {proc.returncode}" # type: ignore ) @@ -55,6 +58,11 @@ def remap_seaice_sgs(inFileName, outFileName, mappingFileName, renorm_threshold= ds_in = xarray.open_dataset(inFileName, decode_times=False) outFilePath = f"{outFileName}sub" os.makedirs(outFilePath) + + logger.info( + f"Calling run_ncremap_cmd for each ds_slice in {range(ds_in.sizes['time'])}" + ) + for t_index in range(ds_in.sizes["time"]): ds_slice = ds_in.isel(time=slice(t_index, t_index + 1)) ds_slice.to_netcdf(f"{outFilePath}/temp_in{t_index}.nc") @@ -117,6 +125,7 @@ def remap(ds, pcode, mappingFileName): outFileName = _get_temp_path() if "depth" in ds.dims: + logger.info("Calling ds.transpose") ds = ds.transpose("time", "depth", "nCells", "nbnd") # missing_value_mask attribute has undesired impacts in ncremap @@ -143,8 +152,8 @@ def remap(ds, pcode, mappingFileName): # remove the temporary files keep_temp_files = False if keep_temp_files: - logging.info(f"Retaining inFileName {inFileName}") - logging.info(f"Retaining outFileName {outFileName}") + logger.info(f"Retaining inFileName {inFileName}") + logger.info(f"Retaining outFileName {outFileName}") else: os.remove(inFileName) os.remove(outFileName) @@ -189,6 +198,8 @@ def add_time(ds, dsIn, referenceDate="0001-01-01", offsetYears=0): dateStrings=xtimeEnd, referenceDate=referenceDate ) + logger.info(f"add_time: daysStart={daysStart} daysEnd={daysEnd}") + time_bnds = np.zeros((len(daysStart), 2)) time_bnds[:, 0] = daysStart time_bnds[:, 1] = daysEnd @@ -431,7 +442,7 @@ def write_cmor(axes, ds, varname, varunits, d2f=True, **kwargs): time_bnds=ds.time_bnds.values, ) except Exception as error: - logging.exception(f"Error in cmor.write for {varname}") + logger.exception(f"Error in cmor.write for {varname}") raise Exception(error) from error finally: cmor.close(varid) diff --git a/e3sm_to_cmip/util.py b/e3sm_to_cmip/util.py index 3627d9e5..e28fe376 100644 --- a/e3sm_to_cmip/util.py +++ b/e3sm_to_cmip/util.py @@ -14,10 +14,12 @@ import yaml from tqdm import tqdm -from e3sm_to_cmip._logger import _setup_logger +from e3sm_to_cmip import _logger -logger = _setup_logger(__name__) +def instantiate_util_logger(): + global logger + logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False) ATMOS_TABLES = [ "CMIP6_Amon.json", @@ -112,7 +114,7 @@ def setup_cmor(var_name, table_path, table_name, user_input_path): table_name = str(table_name) user_input_path = str(user_input_path) - logfile = os.path.join(os.getcwd(), "logs") + logfile = os.path.join(os.getcwd(), "cmor_logs") if not os.path.exists(logfile): os.makedirs(logfile) @@ -562,7 +564,7 @@ def find_mpas_files(component, path, map_path=None): # noqa: C901 pattern_v2 = "mocBasinsAndTransects" for infile in contents: if pattern_v1 in infile or pattern_v2 in infile: - logger.info(f"component mpas0_moc_regions found: {infile}") + logger.info(f"component mpaso_moc_regions found: {infile}") return os.path.abspath(os.path.join(path, infile)) raise IOError("Unable to find mpaso_moc_regions in the input directory") From 98523237c776f71a6dab7393bfa1e7c48e408d70 Mon Sep 17 00:00:00 2001 From: Tony Bartoletti Date: Thu, 26 Sep 2024 13:22:45 -0700 Subject: [PATCH 2/3] small logging/logger errors addressed --- e3sm_to_cmip/__main__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/e3sm_to_cmip/__main__.py b/e3sm_to_cmip/__main__.py index 1e7b7bd3..c3b203a3 100755 --- a/e3sm_to_cmip/__main__.py +++ b/e3sm_to_cmip/__main__.py @@ -240,6 +240,10 @@ def _get_handlers(self): elif self.realm in MPAS_REALMS: handlers = _get_mpas_handlers(self.var_list) + else: + logger.error(f"No such realm: {self.realm}") + sys.exit(0) + if len(handlers) == 0: logger.error( "No CMIP6 variable handlers were derived from the variables found " From 1a4b3ae439a399e457e174385bd585faf2b7703f Mon Sep 17 00:00:00 2001 From: Tom Vo Date: Wed, 16 Oct 2024 13:20:19 -0700 Subject: [PATCH 3/3] Rename e2c_logger to _logger and make INFO default level --- e3sm_to_cmip/__main__.py | 16 ++--- e3sm_to_cmip/_logger.py | 71 +++++++++---------- e3sm_to_cmip/cmor_handlers/handler.py | 6 +- .../cmor_handlers/mpas_vars/areacello.py | 9 +-- .../cmor_handlers/mpas_vars/fsitherm.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py | 9 +-- .../cmor_handlers/mpas_vars/hfsifrazil.py | 9 +-- .../cmor_handlers/mpas_vars/masscello.py | 8 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py | 9 +-- .../cmor_handlers/mpas_vars/mlotst.py | 9 +-- .../cmor_handlers/mpas_vars/msftmz.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py | 9 +-- .../cmor_handlers/mpas_vars/siconc.py | 9 +-- .../cmor_handlers/mpas_vars/simass.py | 9 +-- .../cmor_handlers/mpas_vars/sisnmass.py | 9 +-- .../cmor_handlers/mpas_vars/sisnthick.py | 9 +-- .../cmor_handlers/mpas_vars/sitemptop.py | 8 +-- .../cmor_handlers/mpas_vars/sithick.py | 9 +-- .../cmor_handlers/mpas_vars/sitimefrac.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/so.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py | 9 +-- .../cmor_handlers/mpas_vars/thetao.py | 9 +-- .../cmor_handlers/mpas_vars/thetaoga.py | 9 +-- .../cmor_handlers/mpas_vars/thkcello.py | 8 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py | 9 +-- .../cmor_handlers/mpas_vars/volcello.py | 8 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py | 9 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py | 8 +-- .../cmor_handlers/mpas_vars/zhalfo.py | 8 +-- e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py | 9 +-- e3sm_to_cmip/cmor_handlers/utils.py | 6 +- e3sm_to_cmip/cmor_handlers/vars/areacella.py | 7 +- e3sm_to_cmip/cmor_handlers/vars/clisccp.py | 9 +-- e3sm_to_cmip/cmor_handlers/vars/orog.py | 7 +- e3sm_to_cmip/cmor_handlers/vars/sftlf.py | 7 +- e3sm_to_cmip/mpas.py | 4 +- e3sm_to_cmip/util.py | 4 +- 51 files changed, 139 insertions(+), 361 deletions(-) diff --git a/e3sm_to_cmip/__main__.py b/e3sm_to_cmip/__main__.py index c3b203a3..9da65f83 100755 --- a/e3sm_to_cmip/__main__.py +++ b/e3sm_to_cmip/__main__.py @@ -21,13 +21,9 @@ import yaml from tqdm import tqdm -from e3sm_to_cmip import ROOT_HANDLERS_DIR, __version__, resources -from datetime import datetime, timezone - -from e3sm_to_cmip import _logger - +from e3sm_to_cmip import ROOT_HANDLERS_DIR, __version__, _logger, resources +from e3sm_to_cmip.cmor_handlers.handler import instantiate_handler_logger from e3sm_to_cmip.cmor_handlers.utils import ( - instantiate_h_utils_logger, MPAS_REALMS, REALMS, Frequency, @@ -35,12 +31,10 @@ Realm, _get_mpas_handlers, derive_handlers, + instantiate_h_utils_logger, load_all_handlers, ) -from e3sm_to_cmip.cmor_handlers.handler import instantiate_handler_logger - from e3sm_to_cmip.util import ( - instantiate_util_logger, FREQUENCIES, _get_table_info, add_metadata, @@ -48,6 +42,7 @@ find_atm_files, find_mpas_files, get_handler_info_msg, + instantiate_util_logger, precheck, print_debug, print_message, @@ -111,7 +106,7 @@ def __init__(self, args: Optional[List[str]] = None): # Setup this module's logger AFTER args are parsed in __init__, so that # default log file is NOT created for "--help" or "--version" calls. - logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True) + logger = _logger._logger(name=__name__, to_logfile=True) # NOTE: The order of these attributes align with class CLIArguments. # ====================================================================== @@ -974,7 +969,6 @@ def _timeout_exit(self): def main(args: Optional[List[str]] = None): - app = E3SMtoCMIP(args) # These calls allow module loggers that create default logfiles to avoid being diff --git a/e3sm_to_cmip/_logger.py b/e3sm_to_cmip/_logger.py index 84ee41a7..90b12c3b 100644 --- a/e3sm_to_cmip/_logger.py +++ b/e3sm_to_cmip/_logger.py @@ -1,77 +1,70 @@ +from __future__ import annotations + import logging import os from datetime import datetime, timezone - -DEBUG = logging.DEBUG -INFO = logging.INFO -WARNING = logging.WARNING -ERROR = logging.ERROR -CRITICAL = logging.CRITICAL - -DEFAULT_LOG_LEVEL = logging.DEBUG +DEFAULT_LOG_LEVEL = logging.INFO DEFAULT_LOG_DIR = "e2c_logs" -DEFAULT_LOG = f"{DEFAULT_LOG_DIR}/e2c_root_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log" +DEFAULT_LOGPATH = f"{DEFAULT_LOG_DIR}/e2c_root_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log" + +# Logger message and date formats. +MSGFMT = "%(asctime)s_%(msecs)03d:%(levelname)s:%(name)s:%(funcName)s:%(message)s" +DATEFMT = "%Y%m%d_%H%M%S" -def e2c_logger( - name=None, - logfilename=DEFAULT_LOG, - log_level=None, - to_console=False, - to_logfile=False, - propagate=False, +def _logger( + name: str | None = None, + log_filename: str = DEFAULT_LOGPATH, + log_level: int = DEFAULT_LOG_LEVEL, + to_console: bool = False, + to_logfile: bool = False, + propagate: bool = False, ): """Return a root or named logger with variable configuration. Parameters ---------- - name : str + name : str | None The name displayed for the logger in messages. If name == None or name == "__main__", the root logger is returned - logfilename : str - If logfile handling is requested, any logfile may be specified, or else - the default (e2c_logs/dflt_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log) is used. - log_level : int - One of { logging.DEBUG (default), logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL } - as defined in the module "logging". + log_filename : str + If logfile handling is requested, any logfile may be specified. + log_level : LogLevel + Either logging.DEBUG (10), logging.INFO (20), logging.WARNING (30), + logging.ERROR (40), logging.CRITICAL (50), by default logging.INFO. to_console : boolean - If True, a logging.StreamHandler is supplied. Default = False + If True, a logging.StreamHandler is supplied, by default False. to_logfile : boolean - If True, a logging.FileHandler is supplied. Default = False. + If True, a logging.FileHandler is supplied, by default False. propagate : boolean - If True, messages logged are propagated to the root logger. Default = False. + If True, messages logged are propagated to the root logger, by default + False. """ if to_logfile: - dn = os.path.dirname(logfilename) + dn = os.path.dirname(log_filename) if len(dn) and not os.path.exists(dn): os.makedirs(dn) - if name == None or name == "__main__": - logger = logger.root + if name is None or name == "__main__": + # FIXME: F821 Undefined name `logger` + logger = logger.root # noqa: F821 else: logger = logging.getLogger(name) logger.propagate = propagate - - if log_level == None: - log_level = DEFAULT_LOG_LEVEL - logger.setLevel(log_level) logger.handlers = [] - msgfmt = "%(asctime)s_%(msecs)03d:%(levelname)s:%(name)s:%(funcName)s:%(message)s" - datefmt = "%Y%m%d_%H%M%S" - if to_console: logStreamHandler = logging.StreamHandler() - logStreamHandler.setFormatter(logging.Formatter(msgfmt, datefmt=datefmt)) + logStreamHandler.setFormatter(logging.Formatter(MSGFMT, datefmt=DATEFMT)) logger.addHandler(logStreamHandler) if to_logfile: - logFileHandler = logging.FileHandler(logfilename) - logFileHandler.setFormatter(logging.Formatter(msgfmt, datefmt=datefmt)) + logFileHandler = logging.FileHandler(log_filename) + logFileHandler.setFormatter(logging.Formatter(MSGFMT, datefmt=DATEFMT)) logger.addHandler(logFileHandler) return logger diff --git a/e3sm_to_cmip/cmor_handlers/handler.py b/e3sm_to_cmip/cmor_handlers/handler.py index a05f9346..99a19285 100644 --- a/e3sm_to_cmip/cmor_handlers/handler.py +++ b/e3sm_to_cmip/cmor_handlers/handler.py @@ -10,14 +10,16 @@ import xcdat as xc import yaml +from e3sm_to_cmip import _logger from e3sm_to_cmip.cmor_handlers import FILL_VALUE, _formulas from e3sm_to_cmip.util import _get_table_for_non_monthly_freq -from e3sm_to_cmip import _logger + def instantiate_handler_logger(): global logger - logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=True) + logger = _logger._logger(name=__name__, to_logfile=True, propagate=True) + # The names for valid hybrid sigma levels. HYBRID_SIGMA_LEVEL_NAMES = [ diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py index e4b72deb..d3833aec 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py @@ -3,11 +3,8 @@ """ import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -18,9 +15,7 @@ VAR_UNITS = "m2" TABLE = "CMIP6_Ofx.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py index 646787a8..8d950f26 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "kg m-2 s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py index 4cdc604f..5275ac2f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "W m-2" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py index b5432ce9..7e13b0db 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "W m-2" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py index 2885fa59..a92ca946 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py @@ -4,12 +4,10 @@ from __future__ import absolute_import, division, print_function -import xarray -from e3sm_to_cmip import _logger import netCDF4 import xarray -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +18,7 @@ VAR_UNITS = "kg m-2" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py index a2ee42ae..57d710ff 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "kg" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py index f80c8ebd..48f37ccc 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py index 0a8fdddf..2ffc18ae 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/msftmz.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "kg s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py index 0f108421..6b64890f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/pbo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "Pa" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py index adfc273f..eaac827c 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/pso.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "Pa" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py index 07c10226..8b162e75 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sfdsi.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "kg m-2 s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py index ea00a51f..db0b9933 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/siconc.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "%" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py index 870c4480..ecc4bed9 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/simass.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util # 'MPAS' as a placeholder for raw variables needed RAW_VARIABLES = ["MPASSI", "MPAS_mesh", "MPAS_map"] @@ -19,9 +16,7 @@ VAR_UNITS = "kg m-2" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py index 18da2137..ede2a923 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnmass.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "kg m-2" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py index 5fce6b2a..5a9891da 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sisnthick.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py index 44fe5a2c..0edda0d5 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitemptop.py @@ -4,11 +4,9 @@ from __future__ import absolute_import, division, print_function -from e3sm_to_cmip import _logger - import xarray -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -19,9 +17,7 @@ VAR_UNITS = "K" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py index b8e6723d..26d414de 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sithick.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py index 8002bf85..1ba9ec06 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sitimefrac.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "1" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py index 03ca05f1..9b1eb8a1 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/siu.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py index 5532064e..0ef61b01 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/siv.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_SImon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py index fa085ef7..11a53aa9 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/so.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py index 3fb9f575..a7e26fea 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sob.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util # 'MPAS' as a placeholder for raw variables needed RAW_VARIABLES = ["MPASO", "MPAS_mesh", "MPAS_map"] @@ -19,9 +16,7 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py index 982e86ff..b3b8b717 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/soga.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py index 254ba3b0..d6a0b946 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sos.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py index 76198866..619bc14b 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/sosga.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "0.001" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py index b14f228c..3315dd3d 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauuo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "N m-2" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py index d12534be..84de5870 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tauvo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "N m-2" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py index f6a7c1a0..2a469a9f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetao.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py index 95255995..efdeaa5f 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/thetaoga.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py index 39027915..4d0fe196 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/thkcello.py @@ -2,12 +2,10 @@ compute Ocean Model Cell Thickness, thkcello """ -import xarray -from e3sm_to_cmip import _logger import netCDF4 import xarray -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -18,9 +16,7 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py index cd5b63bd..2bfcdeda 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tob.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py index 7fd20417..dab1c782 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tos.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py index 1a53800a..4c48c279 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/tosga.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "degC" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py index c2421b30..cf7bafa5 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/uo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py index bedb5262..698d1261 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/vo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py index 6ed32f1b..d29c81cf 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/volcello.py @@ -2,12 +2,10 @@ compute Ocean Grid-Cell Volume, volcello """ -import xarray -from e3sm_to_cmip import _logger import netCDF4 import xarray -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -18,9 +16,7 @@ VAR_UNITS = "m3" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py index ba5accd5..64c3cc82 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/volo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m3" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py index 1cfdbe60..3f47708a 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/wfo.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "kg m-2 s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py index 264cb483..c1bd2238 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/wo.py @@ -5,10 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import numpy -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -19,9 +17,7 @@ VAR_UNITS = "m s-1" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py index 1239bcea..5c092403 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/zhalfo.py @@ -4,12 +4,10 @@ from __future__ import absolute_import, division, print_function -import xarray -from e3sm_to_cmip import _logger import numpy import xarray -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +18,7 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py b/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py index ad8f5dda..1fbc3a9a 100644 --- a/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py +++ b/e3sm_to_cmip/cmor_handlers/mpas_vars/zos.py @@ -5,11 +5,8 @@ from __future__ import absolute_import, division, print_function import xarray -from e3sm_to_cmip import _logger -import xarray - -from e3sm_to_cmip import mpas, util +from e3sm_to_cmip import _logger, mpas, util from e3sm_to_cmip.util import print_message # 'MPAS' as a placeholder for raw variables needed @@ -20,9 +17,7 @@ VAR_UNITS = "m" TABLE = "CMIP6_Omon.json" -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def handle(infiles, tables, user_input_path, **kwargs): diff --git a/e3sm_to_cmip/cmor_handlers/utils.py b/e3sm_to_cmip/cmor_handlers/utils.py index 08f754de..15c55af8 100644 --- a/e3sm_to_cmip/cmor_handlers/utils.py +++ b/e3sm_to_cmip/cmor_handlers/utils.py @@ -10,15 +10,17 @@ HANDLER_DEFINITIONS_PATH, LEGACY_HANDLER_DIR_PATH, MPAS_HANDLER_DIR_PATH, + _logger, ) from e3sm_to_cmip.cmor_handlers.handler import VarHandler from e3sm_to_cmip.util import _get_table_for_non_monthly_freq -from e3sm_to_cmip import _logger + def instantiate_h_utils_logger(): global logger - logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False) + logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) + # Type aliases Frequency = Literal["mon", "day", "6hrLev", "6hrPlev", "6hrPlevPt", "3hr", "1hr"] diff --git a/e3sm_to_cmip/cmor_handlers/vars/areacella.py b/e3sm_to_cmip/cmor_handlers/vars/areacella.py index ae52379e..d5207f04 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/areacella.py +++ b/e3sm_to_cmip/cmor_handlers/vars/areacella.py @@ -11,14 +11,11 @@ import numpy as np import xarray as xr -import cmor -from e3sm_to_cmip import resources, _logger +from e3sm_to_cmip import _logger, resources from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) # list of raw variable names needed RAW_VARIABLES = [str("area")] diff --git a/e3sm_to_cmip/cmor_handlers/vars/clisccp.py b/e3sm_to_cmip/cmor_handlers/vars/clisccp.py index 81fb3d02..d077de2a 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/clisccp.py +++ b/e3sm_to_cmip/cmor_handlers/vars/clisccp.py @@ -6,21 +6,16 @@ from __future__ import absolute_import, annotations, division, unicode_literals -import os from typing import Dict, List, Union import cmor import numpy as np import xarray as xr -import cmor -from e3sm_to_cmip import resources, _logger -from e3sm_to_cmip.mpas import write_netcdf +from e3sm_to_cmip import _logger from e3sm_to_cmip.util import print_message, setup_cmor -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) # list of raw variable names needed RAW_VARIABLES = [str("FISCCP1_COSP")] diff --git a/e3sm_to_cmip/cmor_handlers/vars/orog.py b/e3sm_to_cmip/cmor_handlers/vars/orog.py index 8895a1aa..4741a0ef 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/orog.py +++ b/e3sm_to_cmip/cmor_handlers/vars/orog.py @@ -11,14 +11,11 @@ import numpy as np import xarray as xr -import cmor -from e3sm_to_cmip import resources, _logger +from e3sm_to_cmip import _logger, resources from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) # list of raw variable names needed RAW_VARIABLES = [str("PHIS")] diff --git a/e3sm_to_cmip/cmor_handlers/vars/sftlf.py b/e3sm_to_cmip/cmor_handlers/vars/sftlf.py index 3fe92324..56a0f593 100644 --- a/e3sm_to_cmip/cmor_handlers/vars/sftlf.py +++ b/e3sm_to_cmip/cmor_handlers/vars/sftlf.py @@ -11,14 +11,11 @@ import numpy as np import xarray as xr -import cmor -from e3sm_to_cmip import resources, _logger +from e3sm_to_cmip import _logger, resources from e3sm_to_cmip.mpas import write_netcdf from e3sm_to_cmip.util import print_message, setup_cmor -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) # list of raw variable names needed RAW_VARIABLES = [str("LANDFRAC")] diff --git a/e3sm_to_cmip/mpas.py b/e3sm_to_cmip/mpas.py index 4aadbaea..e7ed0123 100644 --- a/e3sm_to_cmip/mpas.py +++ b/e3sm_to_cmip/mpas.py @@ -24,9 +24,7 @@ from e3sm_to_cmip import _logger -logger = _logger.e2c_logger( - name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False -) +logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) def run_ncremap_cmd(args, env): diff --git a/e3sm_to_cmip/util.py b/e3sm_to_cmip/util.py index e28fe376..330cb0a0 100644 --- a/e3sm_to_cmip/util.py +++ b/e3sm_to_cmip/util.py @@ -16,10 +16,12 @@ from e3sm_to_cmip import _logger + def instantiate_util_logger(): global logger - logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False) + logger = _logger._logger(name=__name__, to_logfile=True, propagate=False) + ATMOS_TABLES = [ "CMIP6_Amon.json",