
import warnings
warnings.filterwarnings("ignore")

import sys
import json
import importlib
import os
import sys

# Add project root to Python path
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

def extract_invoice(pdf_path, vendor):

    vendor_key = vendor.strip().lower().replace(" ", "_").replace("/", "_")


    try:
        parser_module = importlib.import_module(f"parsers.{vendor_key}")
    except ModuleNotFoundError:
        return {
            "status": "Error",
            "message": f"No parser found for vendor: {vendor}"
        }

    return parser_module.parse(pdf_path, vendor)
    print("Trying to import:", f"parsers.{vendor_key}")

if __name__ == "__main__":
    try:
        pdf_path = sys.argv[1]
        vendor = sys.argv[2] if len(sys.argv) > 2 else None

        if not vendor:
            raise Exception("Vendor not provided")

        data = extract_invoice(pdf_path, vendor)
        print(json.dumps(data))

    except Exception as e:
        print(json.dumps({
            "status": "Error",
            "message": str(e)
        }))
        sys.exit(1)

import json
print(json.dumps(result))