Add re-timing, minimum dt robustness

This commit is contained in:
Balakumar Sundaralingam
2024-04-25 12:24:17 -07:00
parent d6e600c88c
commit 7362ccd4c2
54 changed files with 4773 additions and 2189 deletions

View File

@@ -8,11 +8,26 @@
# without an express license agreement from NVIDIA CORPORATION or
# its affiliates is strictly prohibited.
#
"""
This module provides logging API, wrapping :py:class:`logging.Logger`. These functions are used
to log messages in the cuRobo package. The functions can also be used in other packages by
creating a new logger (:py:meth:`setup_logger`) with the desired name.
"""
# Standard Library
import logging
import sys
def setup_curobo_logger(level="info"):
def setup_logger(level="info", logger_name: str = "curobo"):
"""Set up logger level.
Args:
level: Log level. Default is "info". Other options are "debug", "warning", "error".
logger_name: Name of the logger. Default is "curobo".
Raises:
ValueError: If log level is not one of [info, debug, warning, error].
"""
FORMAT = "[%(levelname)s] [%(name)s] %(message)s"
if level == "info":
level = logging.INFO
@@ -25,21 +40,64 @@ def setup_curobo_logger(level="info"):
else:
raise ValueError("Log level should be one of [info,debug, warn, error]")
logging.basicConfig(format=FORMAT, level=level)
logger = logging.getLogger("curobo")
logger = logging.getLogger(logger_name)
logger.setLevel(level=level)
def log_warn(txt: str, *args, **kwargs):
logger = logging.getLogger("curobo")
def setup_curobo_logger(level="info"):
"""Set up logger level for curobo package. Deprecated. Use :py:meth:`setup_logger` instead."""
return setup_logger(level, "curobo")
def log_warn(txt: str, logger_name: str = "curobo", *args, **kwargs):
"""Log warning message. Also see :py:meth:`logging.Logger.warning`.
Args:
txt: Warning message.
logger_name: Name of the logger. Default is "curobo".
"""
logger = logging.getLogger(logger_name)
logger.warning(txt, *args, **kwargs)
def log_info(txt: str, *args, **kwargs):
logger = logging.getLogger("curobo")
def log_info(txt: str, logger_name: str = "curobo", *args, **kwargs):
"""Log info message. Also see :py:meth:`logging.Logger.info`.
Args:
txt: Info message.
logger_name: Name of the logger. Default is "curobo".
"""
logger = logging.getLogger(logger_name)
logger.info(txt, *args, **kwargs)
def log_error(txt: str, exc_info=True, stack_info=True, *args, **kwargs):
logger = logging.getLogger("curobo")
logger.error(txt, exc_info=exc_info, stack_info=stack_info, *args, **kwargs)
raise
def log_error(
txt: str,
logger_name: str = "curobo",
exc_info=True,
stack_info=False,
stacklevel: int = 2,
*args,
**kwargs
):
"""Log error and raise ValueError.
Args:
txt: Helpful message that conveys the error.
logger_name: Name of the logger. Default is "curobo".
exc_info: Add exception info to message. See :py:meth:`logging.Logger.error`.
stack_info: Add stacktracke to message. See :py:meth:`logging.Logger.error`.
stacklevel: See :py:meth:`logging.Logger.error`. Default value of 2 removes this function
from the stack trace.
Raises:
ValueError: Error message with exception.
"""
logger = logging.getLogger(logger_name)
if sys.version_info.major == 3 and sys.version_info.minor <= 7:
logger.error(txt, exc_info=exc_info, stack_info=stack_info, *args, **kwargs)
else:
logger.error(
txt, exc_info=exc_info, stack_info=stack_info, stacklevel=stacklevel, *args, **kwargs
)
raise ValueError(txt)