base.py 1.16 KB
Newer Older
1
2
3

from loguru import logger

4
from magic_pdf.libs.commons import read_file
5
6
from magic_pdf.libs.drop_reason import DropReason

7
8
from magic_pdf.spark.s3 import get_s3_config

9
10
11
12
13
14
15
16

def get_data_source(jso: dict):
    data_source = jso.get("data_source")
    if data_source is None:
        data_source = jso.get("file_source")
    return data_source


17
18
19
20
21
22
23
24
25
26
27
28
29
30
def get_data_type(jso: dict):
    data_type = jso.get("data_type")
    if data_type is None:
        data_type = jso.get("file_type")
    return data_type


def get_bookid(jso: dict):
    book_id = jso.get("bookid")
    if book_id is None:
        book_id = jso.get("original_file_id")
    return book_id


31
32
33
34
35
36
37
def exception_handler(jso: dict, e):
    logger.exception(e)
    jso["need_drop"] = True
    jso["drop_reason"] = DropReason.Exception
    jso["exception"] = f"ERROR: {e}"
    return jso

38
39
40
41
42
43
44
45
46
47
48
49
50

def get_bookname(jso: dict):
    data_source = get_data_source(jso)
    file_id = jso.get("file_id")
    book_name = f"{data_source}/{file_id}"
    return book_name


def get_pdf_bytes(jso: dict):
    pdf_s3_path = jso.get("file_location")
    s3_config = get_s3_config(pdf_s3_path)
    pdf_bytes = read_file(pdf_s3_path, s3_config)
    return pdf_bytes