2022-03-26 19:24:15 +01:00

77 lines
2.4 KiB
Python

import logging
import tempfile
from contextlib import contextmanager
from itertools import takewhile, starmap, islice, repeat
from operator import truth
from image_prediction.config import CONFIG
from redai.utils import export
@contextmanager
def temporary_pdf_file(pdf: bytes):
with tempfile.NamedTemporaryFile() as f:
f.write(pdf)
yield f.name
def make_logger_getter():
logger = logging.getLogger("imclf")
logger.propagate = False
handler = logging.StreamHandler()
handler.setLevel(CONFIG.service.logging_level)
log_format = "[%(levelname)s]: %(message)s"
formatter = logging.Formatter(log_format)
handler.setFormatter(formatter)
logger.addHandler(handler)
def get_logger():
return logger
return get_logger
get_logger = make_logger_getter()
def show_banner():
banner = '''
..... . ... ..
.d88888Neu. 'L xH88"`~ .x8X x .d88" oec :
F""""*8888888F .. . : :8888 .f"8888Hf 5888R @88888
* `"*88*" .888: x888 x888. :8888> X8L ^""` '888R 8"*88%
-.... ue=:. ~`8888~'888X`?888f` X8888 X888h 888R 8b.
:88N ` X888 888X '888> 88888 !88888. 888R u888888>
9888L X888 888X '888> 88888 %88888 888R 8888R
uzu. `8888L X888 888X '888> 88888 '> `8888> 888R 8888P
,""888i ?8888 X888 888X '888> `8888L % ?888 ! 888R *888>
4 9888L %888> "*88%""*88" '888!` `8888 `-*"" / .888B . 4888
' '8888 '88% `~ " `"` "888. :" ^*888% '888
"*8Nu.z*" `""***~"` "% 88R
88>
48
'8
'''
logger = logging.getLogger(__name__)
logger.propagate = False
handler = logging.StreamHandler()
handler.setLevel(logging.INFO)
formatter = logging.Formatter("")
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info(banner)
@export
def chunk_iterable(iterable, chunk_size):
return takewhile(truth, map(tuple, starmap(islice, repeat((iter(iterable), chunk_size)))))