Skip to content

Commit 3e8de0f

Browse files
committed
add util functions for making main()s, update zenthread to use
ClassLogger over loggify Signed-off-by: Zen <[email protected]>
1 parent 94deeb8 commit 3e8de0f

File tree

6 files changed

+64
-5
lines changed

6 files changed

+64
-5
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "zenlib"
7-
version = "1.5.1"
7+
version = "1.6.0"
88
authors = [
99
{ name="Desultory", email="[email protected]" },
1010
]

src/zenlib/threading/zenthread.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
__version__ = '0.3.0'
33

44
from threading import Thread, Event
5-
from zenlib.logging import loggify
5+
from zenlib.logging import ClassLogger
66

77

8-
@loggify
9-
class ZenThread(Thread):
8+
class ZenThread(ClassLogger, Thread):
109
""" A thread that stores the exception and return value of the function it runs. """
1110
def __init__(self, looping=False, *args, **kwargs):
1211
super().__init__(*args, **kwargs)

src/zenlib/util/__init__.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,8 @@
66
from .walk_dict import walk_dict
77
from .check_dict import check_dict
88
from .clear_widgets import clear_widgets
9+
from .init_logger import init_logger
10+
from .process_args import process_args
11+
from .init_argparser import init_argparser
912

10-
__all__ = ['handle_plural', 'NoDupFlatList', 'pretty_print', 'replace_file_line', 'update_init', 'walk_dict', 'check_dict', 'clear_widgets']
13+
__all__ = ['handle_plural', 'NoDupFlatList', 'pretty_print', 'replace_file_line', 'update_init', 'walk_dict', 'check_dict', 'clear_widgets', 'init_logger', 'process_args', 'init_argparser']

src/zenlib/util/init_argparser.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
from argparse import ArgumentParser
2+
3+
4+
def init_argparser(prog=None, description=None):
5+
argparser = ArgumentParser(prog=prog, description=description)
6+
argparser.add_argument('-d', '--debug', action='store_true', help='Debug mode.')
7+
argparser.add_argument('-dd', '--verbose', action='store_true', help='Verbose debug mode.')
8+
argparser.add_argument('-v', '--version', action='store_true', help='Print the version and exit.')
9+
10+
return argparser
11+

src/zenlib/util/init_logger.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
from logging import getLogger, StreamHandler
3+
from zenlib.logging import ColorLognameFormatter
4+
5+
6+
def init_logger(name=None, args=None):
7+
name = name or __name__
8+
logger = getLogger(name)
9+
handler = StreamHandler()
10+
formatter = ColorLognameFormatter()
11+
handler.setFormatter(formatter)
12+
logger.addHandler(handler)
13+
return logger
14+

src/zenlib/util/process_args.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from zenlib.logging import ColorLognameFormatter
2+
3+
4+
def process_args(argparser, logger=None):
5+
args = argparser.parse_args()
6+
if args.version:
7+
from importlib.metadata import version
8+
print(f"{__package__} {version(__package__)}")
9+
exit(0)
10+
11+
if logger:
12+
if args.verbose:
13+
logger.setLevel(5)
14+
formatter = ColorLognameFormatter('%(levelname)s | %(name)-42s | %(message)s')
15+
elif args.debug:
16+
logger.setLevel(10)
17+
formatter = ColorLognameFormatter('%(levelname)s | %(name)-42s | %(message)s')
18+
else:
19+
logger.setLevel(20)
20+
formatter = ColorLognameFormatter()
21+
22+
# Add the formatter to the first handler, or add a new handler
23+
for handler in logger.handlers:
24+
handler.setFormatter(formatter)
25+
break
26+
else:
27+
from logging import StreamHandler
28+
handler = StreamHandler()
29+
handler.setFormatter(formatter)
30+
logger.addHandler(handler)
31+
32+
return args

0 commit comments

Comments
 (0)