2024-04-26 15:02:33 +02:00

39 lines
1.1 KiB
Python

from sys import stdout
from typing import Union
from kn_utils.logging import logger
from pyinfra.examples import start_standard_queue_consumer
from pyinfra.queue.callback import make_download_process_upload_callback
from cv_analysis.config import get_config
from cv_analysis.server.pipeline import get_analysis_pipeline
from cv_analysis.utils.banner import make_art
settings = get_config()
logger.reconfigure(sink=stdout, level=settings.logging.level)
def make_dispatched_data_analysis(config):
skip_pages_without_images = config.table_parsing.skip_pages_without_images
def inner(data: Union[dict, bytes], message: dict) -> list:
operation = message["operation"]
analyse = get_analysis_pipeline(operation, skip_pages_without_images)
return list(analyse(data))
return inner
def main():
logger.info(make_art())
process = make_dispatched_data_analysis(settings)
callback = make_download_process_upload_callback(process, settings)
start_standard_queue_consumer(callback, settings)
if __name__ == "__main__":
main()