Spaces:
Runtime error
Runtime error
import os | |
import shutil | |
from pathlib import Path, PurePath | |
from fastapi.middleware.cors import CORSMiddleware | |
from fastapi import FastAPI, Form, HTTPException | |
from dotenv import load_dotenv | |
from folder_creation import make_directory_if_not_exists | |
from pdf_to_img import pdf_to_image | |
from table_extraction import Table_extraction | |
from minio_services import MINIO | |
load_dotenv() | |
IMAGES_DIR = os.getenv('IMAGES_DIR') | |
PDF_DIR = os.getenv('PDF_DIR') | |
OUTPUTS_DIR = os.getenv('OUTPUTS_DIR') | |
HOST = os.getenv('HOST') | |
ACCESS_KEY = os.getenv('ACCESS_KEY') | |
MINIO_KEY = os.getenv('MINIO_KEY') | |
BUCKET_NAME = os.getenv('BUCKET_NAME') | |
app = FastAPI() | |
origins = ["*"] | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=origins, | |
allow_credentials=True, | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
async def main(file_name: str = Form(None), uid: str = Form(None)): | |
try: | |
make_directory_if_not_exists(IMAGES_DIR) | |
IMAGES_DIR1 = IMAGES_DIR + uid + '/' | |
make_directory_if_not_exists(IMAGES_DIR1) | |
make_directory_if_not_exists(OUTPUTS_DIR) | |
OUTPUTS_DIR1 = OUTPUTS_DIR + uid + '/' | |
make_directory_if_not_exists(OUTPUTS_DIR1) | |
print(file_name) | |
if PurePath(file_name).suffix == '.pdf': | |
imagename = pdf_to_image(file_name, IMAGES_DIR1) | |
else: | |
imagename = IMAGES_DIR1+Path(file_name).name | |
shutil.copy(file_name, imagename) | |
model = Table_extraction(imagename, OUTPUTS_DIR1) | |
op_img = model.get_results() | |
minio = MINIO(HOST, ACCESS_KEY, MINIO_KEY, BUCKET_NAME, uid, op_img) | |
minio.upload_to_minio() | |
obj = minio.download_from_minio() | |
shutil.rmtree(IMAGES_DIR) | |
shutil.rmtree(OUTPUTS_DIR) | |
return obj | |
except Exception as e: | |
shutil.rmtree(IMAGES_DIR) | |
shutil.rmtree(OUTPUTS_DIR) | |
raise HTTPException(status_code=404, detail=str(e)) | |