Spaces:
Sleeping
Sleeping
| """ | |
| Hugging Face Spaces entry point for Ag27 Table Extractor. | |
| This wraps the FastAPI app to be compatible with HF Spaces. | |
| """ | |
| import os | |
| import sys | |
| import subprocess | |
| # Ensure we use the correct port for HF Spaces | |
| port = int(os.environ.get("PORT", 7860)) | |
| host = "0.0.0.0" | |
| # Try to import and run the FastAPI app | |
| if __name__ == "__main__": | |
| # Build the frontend if not already built | |
| web_dist = os.path.join(os.path.dirname(__file__), "web", "dist") | |
| if not os.path.exists(web_dist): | |
| print("Building frontend...") | |
| # Check if package.json exists | |
| web_dir = os.path.join(os.path.dirname(__file__), "web") | |
| if not os.path.exists(os.path.join(web_dir, "package.json")): | |
| print("β web/package.json not found!") | |
| sys.exit(1) | |
| result = subprocess.run( | |
| ["npm", "--prefix", "web", "install"], | |
| cwd=os.path.dirname(__file__), | |
| ) | |
| if result.returncode != 0: | |
| print("Frontend npm install failed") | |
| sys.exit(1) | |
| result = subprocess.run( | |
| ["npm", "--prefix", "web", "run", "build"], | |
| cwd=os.path.dirname(__file__), | |
| ) | |
| if result.returncode != 0: | |
| print("Frontend build failed") | |
| sys.exit(1) | |
| print(f"β Frontend ready at {web_dist}") | |
| # Import and run the FastAPI app | |
| import uvicorn | |
| from server import app | |
| print(f"π Starting Ag27 Table Extractor on {host}:{port}") | |
| uvicorn.run(app, host=host, port=port) | |