39 lines
1.1 KiB
Python
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()
|