fcas / app.py
lsempe's picture
clean history - remove exposed credentials
f73929c
Raw History Blame Contribute Delete
2.25 kB
# =============================================================================
# app.py (main entry point)
# =============================================================================
import logging
import os
# Ensure logs folder exists
os.makedirs("logs", exist_ok=True)
# Configure logging
logging.basicConfig(
level=logging.DEBUG, # or INFO if you want less noise
format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
handlers=[
logging.FileHandler("logs/app.log", mode="a"), # Log to file
logging.StreamHandler() # Still show in Spaces Logs tab
]
)
logger = logging.getLogger(__name__)
# Example usage
logger.info("App started")
logger.debug("This is debug info")
import gradio as gr
from data_handler import DataHandler
from gradio_callbacks import GradioCallbacks
from gradio_components import (
create_header, create_qa_tab, create_overview_tab,
create_methodology_tab, create_pivot_tab, create_filters_tab, create_about_tab
)
def main():
# Initialize data
data_handler = DataHandler()
callbacks = GradioCallbacks(data_handler)
data = data_handler.get_data()
# Create Gradio app
with gr.Blocks(
theme=gr.themes.Monochrome(),
title="FCAS Research Methods Evidence Mapping",
css="""
.gradio-container {
max-width: 1200px !important;
}
.main-header {
text-align: center;
background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
color: white;
padding: 2rem;
border-radius: 10px;
margin-bottom: 2rem;
}
"""
) as app:
# Header
create_header()
with gr.Tabs():
create_qa_tab(callbacks)
create_overview_tab(callbacks)
create_methodology_tab(callbacks)
create_pivot_tab(callbacks)
create_filters_tab(callbacks, data['countries_list'], data['sectors_list'])
create_about_tab()
return app
if __name__ == "__main__":
app = main()
app.launch(
share=True,
server_name="0.0.0.0",
server_port=7860,
show_error=True
)