AshrafGalibSk's picture
Upload folder using huggingface_hub
bbd5f9c verified
Raw
History Blame Contribute Delete
1.51 kB
#!/usr/bin/env python3
"""
Hugging Face Spaces entry point for Crop Yield Prediction API
"""
import sys
import os
# Add src to Python path
sys.path.insert(0, 'src')
# Set up proper module structure for joblib loading (same as start.py)
try:
from models import DataPreprocessor
import types
# Make it available in multiple namespaces for joblib compatibility
globals()['DataPreprocessor'] = DataPreprocessor
if '__main__' not in sys.modules or not hasattr(sys.modules['__main__'], 'DataPreprocessor'):
if '__main__' in sys.modules:
sys.modules['__main__'].DataPreprocessor = DataPreprocessor
if 'models' not in sys.modules:
models_module = types.ModuleType('models')
models_module.DataPreprocessor = DataPreprocessor
sys.modules['models'] = models_module
print("โœ… DataPreprocessor class prepared for joblib loading")
except ImportError as e:
print(f"Warning: Could not import DataPreprocessor: {e}")
# Import the FastAPI app
from app import app
# This is the entry point for Hugging Face Spaces
if __name__ == "__main__":
import uvicorn
# Get port from environment (Hugging Face Spaces typically uses 7860)
port = int(os.environ.get("PORT", 7860))
print("๐ŸŒพ Starting Crop Yield Prediction API on Hugging Face Spaces")
print(f"๐Ÿš€ Server starting on port {port}")
uvicorn.run(
app,
host="0.0.0.0",
port=port,
log_level="info"
)