Skip to content

Commit 35dae44

Browse files
committed
Rename e2c_logger to _logger and make INFO default level
1 parent 7798ca7 commit 35dae44

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+163
-361
lines changed

e3sm_to_cmip/__main__.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,33 +21,28 @@
2121
import yaml
2222
from tqdm import tqdm
2323

24-
from e3sm_to_cmip import ROOT_HANDLERS_DIR, __version__, resources
25-
from datetime import datetime, timezone
26-
27-
from e3sm_to_cmip import _logger
28-
24+
from e3sm_to_cmip import ROOT_HANDLERS_DIR, __version__, _logger, resources
25+
from e3sm_to_cmip.cmor_handlers.handler import instantiate_handler_logger
2926
from e3sm_to_cmip.cmor_handlers.utils import (
30-
instantiate_h_utils_logger,
3127
MPAS_REALMS,
3228
REALMS,
3329
Frequency,
3430
MPASRealm,
3531
Realm,
3632
_get_mpas_handlers,
3733
derive_handlers,
34+
instantiate_h_utils_logger,
3835
load_all_handlers,
3936
)
40-
from e3sm_to_cmip.cmor_handlers.handler import instantiate_handler_logger
41-
4237
from e3sm_to_cmip.util import (
43-
instantiate_util_logger,
4438
FREQUENCIES,
4539
_get_table_info,
4640
add_metadata,
4741
copy_user_metadata,
4842
find_atm_files,
4943
find_mpas_files,
5044
get_handler_info_msg,
45+
instantiate_util_logger,
5146
precheck,
5247
print_debug,
5348
print_message,
@@ -111,7 +106,7 @@ def __init__(self, args: Optional[List[str]] = None):
111106

112107
# Setup this module's logger AFTER args are parsed in __init__, so that
113108
# default log file is NOT created for "--help" or "--version" calls.
114-
logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True)
109+
logger = _logger._logger(name=__name__, to_logfile=True)
115110

116111
# NOTE: The order of these attributes align with class CLIArguments.
117112
# ======================================================================
@@ -974,7 +969,6 @@ def _timeout_exit(self):
974969

975970

976971
def main(args: Optional[List[str]] = None):
977-
978972
app = E3SMtoCMIP(args)
979973

980974
# These calls allow module loggers that create default logfiles to avoid being

e3sm_to_cmip/_logger.py

Lines changed: 32 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,70 @@
1+
from __future__ import annotations
2+
13
import logging
24
import os
35
from datetime import datetime, timezone
46

5-
6-
DEBUG = logging.DEBUG
7-
INFO = logging.INFO
8-
WARNING = logging.WARNING
9-
ERROR = logging.ERROR
10-
CRITICAL = logging.CRITICAL
11-
12-
DEFAULT_LOG_LEVEL = logging.DEBUG
7+
DEFAULT_LOG_LEVEL = logging.INFO
138
DEFAULT_LOG_DIR = "e2c_logs"
14-
DEFAULT_LOG = f"{DEFAULT_LOG_DIR}/e2c_root_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log"
9+
DEFAULT_LOGPATH = f"{DEFAULT_LOG_DIR}/e2c_root_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log"
10+
11+
# Logger message and date formats.
12+
MSGFMT = "%(asctime)s_%(msecs)03d:%(levelname)s:%(name)s:%(funcName)s:%(message)s"
13+
DATEFMT = "%Y%m%d_%H%M%S"
1514

1615

17-
def e2c_logger(
18-
name=None,
19-
logfilename=DEFAULT_LOG,
20-
log_level=None,
21-
to_console=False,
22-
to_logfile=False,
23-
propagate=False,
16+
def _logger(
17+
name: str | None = None,
18+
log_filename: str = DEFAULT_LOGPATH,
19+
log_level: int = DEFAULT_LOG_LEVEL,
20+
to_console: bool = False,
21+
to_logfile: bool = False,
22+
propagate: bool = False,
2423
):
2524
"""Return a root or named logger with variable configuration.
2625
2726
Parameters
2827
----------
29-
name : str
28+
name : str | None
3029
The name displayed for the logger in messages.
3130
If name == None or name == "__main__", the root logger is returned
32-
logfilename : str
33-
If logfile handling is requested, any logfile may be specified, or else
34-
the default (e2c_logs/dflt_log-{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S_%f')}.log) is used.
35-
log_level : int
36-
One of { logging.DEBUG (default), logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL }
37-
as defined in the module "logging".
31+
log_filename : str
32+
If logfile handling is requested, any logfile may be specified.
33+
log_level : LogLevel
34+
Either logging.DEBUG (10), logging.INFO (20), logging.WARNING (30),
35+
logging.ERROR (40), logging.CRITICAL (50), by default logging.INFO.
3836
to_console : boolean
39-
If True, a logging.StreamHandler is supplied. Default = False
37+
If True, a logging.StreamHandler is supplied, by default False.
4038
to_logfile : boolean
41-
If True, a logging.FileHandler is supplied. Default = False.
39+
If True, a logging.FileHandler is supplied, by default False.
4240
propagate : boolean
43-
If True, messages logged are propagated to the root logger. Default = False.
41+
If True, messages logged are propagated to the root logger, by default
42+
False.
4443
"""
4544
if to_logfile:
46-
dn = os.path.dirname(logfilename)
45+
dn = os.path.dirname(log_filename)
4746
if len(dn) and not os.path.exists(dn):
4847
os.makedirs(dn)
4948

50-
if name == None or name == "__main__":
51-
logger = logger.root
49+
if name is None or name == "__main__":
50+
# FIXME: F821 Undefined name `logger`
51+
logger = logger.root # noqa: F821
5252
else:
5353
logger = logging.getLogger(name)
5454

5555
logger.propagate = propagate
56-
57-
if log_level == None:
58-
log_level = DEFAULT_LOG_LEVEL
59-
6056
logger.setLevel(log_level)
6157

6258
logger.handlers = []
6359

64-
msgfmt = "%(asctime)s_%(msecs)03d:%(levelname)s:%(name)s:%(funcName)s:%(message)s"
65-
datefmt = "%Y%m%d_%H%M%S"
66-
6760
if to_console:
6861
logStreamHandler = logging.StreamHandler()
69-
logStreamHandler.setFormatter(logging.Formatter(msgfmt, datefmt=datefmt))
62+
logStreamHandler.setFormatter(logging.Formatter(MSGFMT, datefmt=DATEFMT))
7063
logger.addHandler(logStreamHandler)
7164

7265
if to_logfile:
73-
logFileHandler = logging.FileHandler(logfilename)
74-
logFileHandler.setFormatter(logging.Formatter(msgfmt, datefmt=datefmt))
66+
logFileHandler = logging.FileHandler(log_filename)
67+
logFileHandler.setFormatter(logging.Formatter(MSGFMT, datefmt=DATEFMT))
7568
logger.addHandler(logFileHandler)
7669

7770
return logger

e3sm_to_cmip/cmor_handlers/handler.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@
1010
import xcdat as xc
1111
import yaml
1212

13+
from e3sm_to_cmip import _logger
1314
from e3sm_to_cmip.cmor_handlers import FILL_VALUE, _formulas
1415
from e3sm_to_cmip.util import _get_table_for_non_monthly_freq
15-
from e3sm_to_cmip import _logger
16+
1617

1718
def instantiate_handler_logger():
1819
global logger
1920

20-
logger = _logger.e2c_logger(name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=True)
21+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=True)
22+
2123

2224
# The names for valid hybrid sigma levels.
2325
HYBRID_SIGMA_LEVEL_NAMES = [

e3sm_to_cmip/cmor_handlers/mpas_vars/areacello.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,8 @@
33
"""
44

55
import xarray
6-
from e3sm_to_cmip import _logger
76

8-
import xarray
9-
10-
from e3sm_to_cmip import mpas, util
7+
from e3sm_to_cmip import _logger, mpas, util
118
from e3sm_to_cmip.util import print_message
129

1310
# 'MPAS' as a placeholder for raw variables needed
@@ -18,9 +15,7 @@
1815
VAR_UNITS = "m2"
1916
TABLE = "CMIP6_Ofx.json"
2017

21-
logger = _logger.e2c_logger(
22-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
23-
)
18+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2419

2520

2621
def handle(infiles, tables, user_input_path, **kwargs):

e3sm_to_cmip/cmor_handlers/mpas_vars/fsitherm.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
from __future__ import absolute_import, division, print_function
66

77
import xarray
8-
from e3sm_to_cmip import _logger
98

10-
import xarray
11-
12-
from e3sm_to_cmip import mpas, util
9+
from e3sm_to_cmip import _logger, mpas, util
1310
from e3sm_to_cmip.util import print_message
1411

1512
# 'MPAS' as a placeholder for raw variables needed
@@ -20,9 +17,7 @@
2017
VAR_UNITS = "kg m-2 s-1"
2118
TABLE = "CMIP6_Omon.json"
2219

23-
logger = _logger.e2c_logger(
24-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
25-
)
20+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2621

2722

2823
def handle(infiles, tables, user_input_path, **kwargs):

e3sm_to_cmip/cmor_handlers/mpas_vars/hfds.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
from __future__ import absolute_import, division, print_function
66

77
import xarray
8-
from e3sm_to_cmip import _logger
98

10-
import xarray
11-
12-
from e3sm_to_cmip import mpas, util
9+
from e3sm_to_cmip import _logger, mpas, util
1310
from e3sm_to_cmip.util import print_message
1411

1512
# 'MPAS' as a placeholder for raw variables needed
@@ -20,9 +17,7 @@
2017
VAR_UNITS = "W m-2"
2118
TABLE = "CMIP6_Omon.json"
2219

23-
logger = _logger.e2c_logger(
24-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
25-
)
20+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2621

2722

2823
def handle(infiles, tables, user_input_path, **kwargs):

e3sm_to_cmip/cmor_handlers/mpas_vars/hfsifrazil.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
from __future__ import absolute_import, division, print_function
66

77
import xarray
8-
from e3sm_to_cmip import _logger
98

10-
import xarray
11-
12-
from e3sm_to_cmip import mpas, util
9+
from e3sm_to_cmip import _logger, mpas, util
1310
from e3sm_to_cmip.util import print_message
1411

1512
# 'MPAS' as a placeholder for raw variables needed
@@ -20,9 +17,7 @@
2017
VAR_UNITS = "W m-2"
2118
TABLE = "CMIP6_Omon.json"
2219

23-
logger = _logger.e2c_logger(
24-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
25-
)
20+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2621

2722

2823
def handle(infiles, tables, user_input_path, **kwargs):

e3sm_to_cmip/cmor_handlers/mpas_vars/masscello.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@
44

55
from __future__ import absolute_import, division, print_function
66

7-
import xarray
8-
from e3sm_to_cmip import _logger
97
import netCDF4
108
import xarray
119

12-
from e3sm_to_cmip import mpas, util
10+
from e3sm_to_cmip import _logger, mpas, util
1311
from e3sm_to_cmip.util import print_message
1412

1513
# 'MPAS' as a placeholder for raw variables needed
@@ -20,9 +18,7 @@
2018
VAR_UNITS = "kg m-2"
2119
TABLE = "CMIP6_Omon.json"
2220

23-
logger = _logger.e2c_logger(
24-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
25-
)
21+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2622

2723

2824
def handle(infiles, tables, user_input_path, **kwargs):

e3sm_to_cmip/cmor_handlers/mpas_vars/masso.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
from __future__ import absolute_import, division, print_function
66

77
import xarray
8-
from e3sm_to_cmip import _logger
98

10-
import xarray
11-
12-
from e3sm_to_cmip import mpas, util
9+
from e3sm_to_cmip import _logger, mpas, util
1310
from e3sm_to_cmip.util import print_message
1411

1512
# 'MPAS' as a placeholder for raw variables needed
@@ -20,9 +17,7 @@
2017
VAR_UNITS = "kg"
2118
TABLE = "CMIP6_Omon.json"
2219

23-
logger = _logger.e2c_logger(
24-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
25-
)
20+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2621

2722

2823
def handle(infiles, tables, user_input_path, **kwargs):

e3sm_to_cmip/cmor_handlers/mpas_vars/mlotst.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,8 @@
55
from __future__ import absolute_import, division, print_function
66

77
import xarray
8-
from e3sm_to_cmip import _logger
98

10-
import xarray
11-
12-
from e3sm_to_cmip import mpas, util
9+
from e3sm_to_cmip import _logger, mpas, util
1310
from e3sm_to_cmip.util import print_message
1411

1512
# 'MPAS' as a placeholder for raw variables needed
@@ -20,9 +17,7 @@
2017
VAR_UNITS = "m"
2118
TABLE = "CMIP6_Omon.json"
2219

23-
logger = _logger.e2c_logger(
24-
name=__name__, log_level=_logger.INFO, to_logfile=True, propagate=False
25-
)
20+
logger = _logger._logger(name=__name__, to_logfile=True, propagate=False)
2621

2722

2823
def handle(infiles, tables, user_input_path, **kwargs):

0 commit comments

Comments
 (0)