diff --git a/src/zenlib/__init__.py b/src/zenlib/__init__.py index 8f71eac..68ff4cf 100644 --- a/src/zenlib/__init__.py +++ b/src/zenlib/__init__.py @@ -1,7 +1,7 @@ -from .logging import ColorLognameFormatter, loggify -from .types import NoDupFlatList, validatedDataclass -from .util import colorize, check_dict, handle_plural, pretty_print, replace_file_line, update_init, walk_dict -from .namespace import nsexec +from zenlib.util import colorize, check_dict, handle_plural, pretty_print, replace_file_line, update_init, walk_dict +from zenlib.logging import ColorLognameFormatter, loggify +from zenlib.types import NoDupFlatList, validatedDataclass +from zenlib.namespace import nsexec __all__ = [ "colorize", diff --git a/src/zenlib/logging/__init__.py b/src/zenlib/logging/__init__.py index c0fdd45..35f5961 100644 --- a/src/zenlib/logging/__init__.py +++ b/src/zenlib/logging/__init__.py @@ -1,7 +1,7 @@ -from .colorlognameformatter import ColorLognameFormatter -from .classlogger import ClassLogger -from .loggify import loggify -from .loggermixin import LoggerMixIn -from .log_call import log_call +from zenlib.logging.colorlognameformatter import ColorLognameFormatter +from zenlib.logging.classlogger import ClassLogger +from zenlib.logging.loggify import loggify +from zenlib.logging.loggermixin import LoggerMixIn +from zenlib.logging.log_call import log_call __all__ = ["ColorLognameFormatter", "loggify", "LoggerMixIn", "log_call", "ClassLogger"] diff --git a/src/zenlib/logging/classlogger.py b/src/zenlib/logging/classlogger.py index 4ac359b..c8eabf5 100644 --- a/src/zenlib/logging/classlogger.py +++ b/src/zenlib/logging/classlogger.py @@ -1,7 +1,7 @@ __author__ = "desultory" __version__ = "3.0.0" -from .loggermixin import LoggerMixIn +from zenlib.logging.loggermixin import LoggerMixIn class ClassLogger(LoggerMixIn): diff --git a/src/zenlib/logging/loggermixin.py b/src/zenlib/logging/loggermixin.py index 7dfcfc7..1b6dd1e 100644 --- a/src/zenlib/logging/loggermixin.py +++ b/src/zenlib/logging/loggermixin.py @@ -3,7 +3,7 @@ from logging import Logger, getLogger -from .utils import add_handler_if_not_exists, handle_additional_logging, log_init +from zenlib.logging.utils import add_handler_if_not_exists, handle_additional_logging, log_init class LoggerMixIn: diff --git a/src/zenlib/logging/loggify.py b/src/zenlib/logging/loggify.py index 15f879e..1520f04 100644 --- a/src/zenlib/logging/loggify.py +++ b/src/zenlib/logging/loggify.py @@ -1,8 +1,8 @@ __author__ = "desultory" __version__ = "3.0.0" -from ..util import merge_class -from .loggermixin import LoggerMixIn +from zenlib.util import merge_class +from zenlib.logging.loggermixin import LoggerMixIn def loggify(cls): diff --git a/src/zenlib/logging/utils.py b/src/zenlib/logging/utils.py index 1796578..2e03d27 100644 --- a/src/zenlib/logging/utils.py +++ b/src/zenlib/logging/utils.py @@ -1,7 +1,12 @@ -from logging import Logger +from importlib.metadata import PackageNotFoundError, version +from logging import Logger, StreamHandler +from sys import modules + +from zenlib.logging.colorlognameformatter import ColorLognameFormatter + def _logger_has_handler(logger): - """ Checks if a logger or its parents has a handler already """ + """Checks if a logger or its parents has a handler already""" while logger: if logger.handlers: return True @@ -10,18 +15,17 @@ def _logger_has_handler(logger): def add_handler_if_not_exists(logger): - """ Adds a ColorLognameFormatter handler to the logger if it doesn't have a handler already""" + """Adds a ColorLognameFormatter handler to the logger if it doesn't have a handler already""" if _logger_has_handler(logger): return - from .colorlognameformatter import ColorLognameFormatter - from logging import StreamHandler color_stream_handler = StreamHandler() - color_stream_handler.setFormatter(ColorLognameFormatter(fmt='%(levelname)s | %(name)-42s | %(message)s')) + color_stream_handler.setFormatter(ColorLognameFormatter(fmt="%(levelname)s | %(name)-42s | %(message)s")) logger.addHandler(color_stream_handler) logger.info("Added default handler to logger: %s", logger) + def log_init(self, args, kwargs): - """ If _log_init is in the kwargs and set to True, logs init args, kwargs, class name, and version""" + """If _log_init is in the kwargs and set to True, logs init args, kwargs, class name, and version""" class_name = self.__class__.__name__ logger = self.logger if not kwargs.pop("_log_init", False): @@ -30,11 +34,10 @@ def log_init(self, args, kwargs): logger.info("Initializing class: %s", class_name) if args: - logger.debug("[%s] Init args: %s" % (class_name, args)) + logger.debug("[%s] Init args: %s" % (class_name, args)) if kwargs: logger.debug("[%s] Init kwargs: %s" % (class_name, kwargs)) - from importlib.metadata import version, PackageNotFoundError package_name = self.__module__.split(".")[0] try: logger.info("[%s] Package version: %s" % (package_name, version(package_name))) @@ -42,20 +45,21 @@ def log_init(self, args, kwargs): if ex.msg != "No package metadata was found for builtins": logger.debug("[%s] Package version not found for: %s" % (class_name, package_name)) - from sys import modules - if module_version := getattr(modules.get(self.__module__), '__version__', None): + if module_version := getattr(modules.get(self.__module__), "__version__", None): logger.info("[%s] Module version: %s" % (self.__module__, module_version)) - if class_version := getattr(self, '__version__', None): + if class_version := getattr(self, "__version__", None): logger.info("[%s] Class version: %s" % (class_name, class_version)) + def handle_additional_logging(self, kwargs): - """ Sets __setattr__ to log_setattr if _log_setattr is in the kwargs and set to True """ + """Sets __setattr__ to log_setattr if _log_setattr is in the kwargs and set to True""" if kwargs.pop("_log_setattr", False): setattr(self, "__setattr__", log_setattr) + def log_setattr(self, name, value): - """ Logs when an attribute is set """ + """Logs when an attribute is set""" super().__setattr__(name, value) # check if the logger is defined if not isinstance(self.logger, Logger): diff --git a/src/zenlib/namespace/__init__.py b/src/zenlib/namespace/__init__.py index 2bac508..dc7be74 100644 --- a/src/zenlib/namespace/__init__.py +++ b/src/zenlib/namespace/__init__.py @@ -4,8 +4,8 @@ if version_info < (3, 12) or system() != "Linux": nsexec, get_id_map = None, None else: - from .namespace import get_id_map - from .nsexec import nsexec + from zenlib.namespace.namespace import get_id_map + from zenlib.namespace.nsexec import nsexec __all__ = [ "nsexec", diff --git a/src/zenlib/namespace/namespace_process.py b/src/zenlib/namespace/namespace_process.py index bc21322..64477ea 100644 --- a/src/zenlib/namespace/namespace_process.py +++ b/src/zenlib/namespace/namespace_process.py @@ -2,7 +2,7 @@ from multiprocessing import Event, Pipe, Process, Queue from os import chdir, chroot, getgid, getuid, setgid, setuid -from .namespace import get_id_map, new_id_map, unshare_namespace +from zenlib.namespace.namespace import get_id_map, new_id_map, unshare_namespace class NamespaceProcess(Process): diff --git a/src/zenlib/types/__init__.py b/src/zenlib/types/__init__.py index 8669ce4..2d9fbdc 100644 --- a/src/zenlib/types/__init__.py +++ b/src/zenlib/types/__init__.py @@ -1,4 +1,4 @@ -from .nodupflatlist import NoDupFlatList -from .validated_dataclass import validatedDataclass +from zenlib.types.nodupflatlist import NoDupFlatList +from zenlib.types.validated_dataclass import validatedDataclass __all__ = ["NoDupFlatList", "validatedDataclass"] diff --git a/src/zenlib/util/__init__.py b/src/zenlib/util/__init__.py index fbe80c4..7db7a42 100644 --- a/src/zenlib/util/__init__.py +++ b/src/zenlib/util/__init__.py @@ -1,12 +1,12 @@ -from .colorize import colorize -from .dict_check import contains, unset -from .handle_plural import handle_plural -from .hexdump import hexdump -from .main_funcs import get_args_n_logger, get_kwargs, get_kwargs_from_args, process_args -from .merge_class import merge_class -from .pretty_print import pretty_print -from .replace_file_line import replace_file_line -from ..types import NoDupFlatList +from zenlib.util.colorize import colorize +from zenlib.util.dict_check import contains, unset +from zenlib.util.handle_plural import handle_plural +from zenlib.util.hexdump import hexdump +from zenlib.util.main_funcs import get_args_n_logger, get_kwargs, get_kwargs_from_args, process_args +from zenlib.util.merge_class import merge_class +from zenlib.util.pretty_print import pretty_print +from zenlib.util.replace_file_line import replace_file_line +from zenlib.types import NoDupFlatList __all__ = [ "handle_plural", diff --git a/src/zenlib/util/check_dict.py b/src/zenlib/util/check_dict.py index 0735644..ce98922 100644 --- a/src/zenlib/util/check_dict.py +++ b/src/zenlib/util/check_dict.py @@ -3,7 +3,7 @@ from functools import wraps -from .walk_dict import walk_dict +from zenlib.util.walk_dict import walk_dict def check_dict(key, validate_dict=None, value=None, value_arg=None, diff --git a/src/zenlib/util/hexdump.py b/src/zenlib/util/hexdump.py index 5a367f4..0574838 100644 --- a/src/zenlib/util/hexdump.py +++ b/src/zenlib/util/hexdump.py @@ -1,4 +1,4 @@ -from .colorize import colorize as c_ +from zenlib.util.colorize import colorize as c_ HEX_COLORS = { 0: {"dim": True}, # Make null bytes dim