Spaces:
Sleeping
Sleeping
Commit
·
f48599d
1
Parent(s):
b43b496
Updated files
Browse files
app.py
CHANGED
|
@@ -9,6 +9,9 @@ from datetime import datetime
|
|
| 9 |
from pathlib import Path
|
| 10 |
from contextlib import asynccontextmanager
|
| 11 |
|
|
|
|
|
|
|
|
|
|
| 12 |
# Set up environment variables for Hugging Face Spaces compatibility
|
| 13 |
def setup_environment():
|
| 14 |
env_vars = {
|
|
@@ -87,46 +90,6 @@ from src.components.auth import AuthManager
|
|
| 87 |
auth_manager = AuthManager()
|
| 88 |
security = HTTPBearer(auto_error=False)
|
| 89 |
|
| 90 |
-
# Simple settings for development
|
| 91 |
-
|
| 92 |
-
# Settings for Hugging Face Spaces: use /tmp dirs
|
| 93 |
-
class Settings:
|
| 94 |
-
def __init__(self):
|
| 95 |
-
# Detect if running in Hugging Face Spaces (PORT is set and not a typical local port)
|
| 96 |
-
port_env = os.environ.get('PORT')
|
| 97 |
-
self.is_spaces = port_env is not None and port_env not in ['8000', '5000', '8080']
|
| 98 |
-
self.server = type('ServerSettings', (), {
|
| 99 |
-
'debug': not self.is_spaces,
|
| 100 |
-
'host': '0.0.0.0',
|
| 101 |
-
'port': int(port_env) if port_env else 8000 # Default to 8000 for local
|
| 102 |
-
})()
|
| 103 |
-
self.security = type('SecuritySettings', (), {
|
| 104 |
-
'cors_origins': ["*"],
|
| 105 |
-
'cors_methods': ["*"],
|
| 106 |
-
'cors_headers': ["*"]
|
| 107 |
-
})()
|
| 108 |
-
|
| 109 |
-
def get_static_dir(self):
|
| 110 |
-
if self.is_spaces:
|
| 111 |
-
return "/tmp/researchmate/static"
|
| 112 |
-
return "src/static"
|
| 113 |
-
|
| 114 |
-
def get_templates_dir(self):
|
| 115 |
-
# Templates can remain in src for both
|
| 116 |
-
return "src/templates"
|
| 117 |
-
|
| 118 |
-
def get_upload_dir(self):
|
| 119 |
-
if self.is_spaces:
|
| 120 |
-
return "/tmp/researchmate/uploads"
|
| 121 |
-
return "uploads"
|
| 122 |
-
|
| 123 |
-
def get_logs_dir(self):
|
| 124 |
-
if self.is_spaces:
|
| 125 |
-
return "/tmp/researchmate/logs"
|
| 126 |
-
return "logs"
|
| 127 |
-
|
| 128 |
-
settings = Settings()
|
| 129 |
-
|
| 130 |
# Initialize ResearchMate and Citation Analyzer (will be done during loading screen)
|
| 131 |
research_mate = None
|
| 132 |
citation_analyzer = None
|
|
@@ -288,6 +251,7 @@ app.add_middleware(
|
|
| 288 |
allow_headers=settings.security.cors_headers,
|
| 289 |
)
|
| 290 |
|
|
|
|
| 291 |
# Mount static files with cache control for development
|
| 292 |
static_dir = Path(settings.get_static_dir())
|
| 293 |
static_dir.mkdir(parents=True, exist_ok=True)
|
|
@@ -786,13 +750,13 @@ async def startup_event():
|
|
| 786 |
# Local development: run with `python app.py`
|
| 787 |
if __name__ == "__main__":
|
| 788 |
import uvicorn
|
| 789 |
-
port = settings.server.port
|
| 790 |
-
host = settings.server.host
|
| 791 |
print(f"\nStarting ResearchMate locally at http://{host}:{port}\n")
|
| 792 |
uvicorn.run(
|
| 793 |
"app:app",
|
| 794 |
host=host,
|
| 795 |
port=port,
|
| 796 |
-
log_level=
|
| 797 |
-
reload=
|
| 798 |
)
|
|
|
|
| 9 |
from pathlib import Path
|
| 10 |
from contextlib import asynccontextmanager
|
| 11 |
|
| 12 |
+
# Import centralized settings
|
| 13 |
+
from src.settings import settings
|
| 14 |
+
|
| 15 |
# Set up environment variables for Hugging Face Spaces compatibility
|
| 16 |
def setup_environment():
|
| 17 |
env_vars = {
|
|
|
|
| 90 |
auth_manager = AuthManager()
|
| 91 |
security = HTTPBearer(auto_error=False)
|
| 92 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 93 |
# Initialize ResearchMate and Citation Analyzer (will be done during loading screen)
|
| 94 |
research_mate = None
|
| 95 |
citation_analyzer = None
|
|
|
|
| 251 |
allow_headers=settings.security.cors_headers,
|
| 252 |
)
|
| 253 |
|
| 254 |
+
|
| 255 |
# Mount static files with cache control for development
|
| 256 |
static_dir = Path(settings.get_static_dir())
|
| 257 |
static_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
| 750 |
# Local development: run with `python app.py`
|
| 751 |
if __name__ == "__main__":
|
| 752 |
import uvicorn
|
| 753 |
+
port = settings.server.port or 7860
|
| 754 |
+
host = settings.server.host or "0.0.0.0"
|
| 755 |
print(f"\nStarting ResearchMate locally at http://{host}:{port}\n")
|
| 756 |
uvicorn.run(
|
| 757 |
"app:app",
|
| 758 |
host=host,
|
| 759 |
port=port,
|
| 760 |
+
log_level=settings.server.log_level,
|
| 761 |
+
reload=settings.server.reload
|
| 762 |
)
|