77 lines
2.4 KiB
Python
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)))))
|