Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/zenlib/__init__.py
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
10 changes: 5 additions & 5 deletions src/zenlib/logging/__init__.py
Original file line number Diff line number Diff line change
@@ -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"]
2 changes: 1 addition & 1 deletion src/zenlib/logging/classlogger.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
__author__ = "desultory"
__version__ = "3.0.0"

from .loggermixin import LoggerMixIn
from zenlib.logging.loggermixin import LoggerMixIn


class ClassLogger(LoggerMixIn):
Expand Down
2 changes: 1 addition & 1 deletion src/zenlib/logging/loggermixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
4 changes: 2 additions & 2 deletions src/zenlib/logging/loggify.py
Original file line number Diff line number Diff line change
@@ -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):
Expand Down
32 changes: 18 additions & 14 deletions src/zenlib/logging/utils.py
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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):
Expand All @@ -30,32 +34,32 @@ 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)))
except (NameError, PackageNotFoundError) as ex:
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):
Expand Down
4 changes: 2 additions & 2 deletions src/zenlib/namespace/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
2 changes: 1 addition & 1 deletion src/zenlib/namespace/namespace_process.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
4 changes: 2 additions & 2 deletions src/zenlib/types/__init__.py
Original file line number Diff line number Diff line change
@@ -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"]
18 changes: 9 additions & 9 deletions src/zenlib/util/__init__.py
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
2 changes: 1 addition & 1 deletion src/zenlib/util/check_dict.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion src/zenlib/util/hexdump.py
Original file line number Diff line number Diff line change
@@ -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
Expand Down