""" Eugene Intelligence v0.4 — HuggingFace Space Financial context for AI. Every number traced to source. """ import json import gradio as gr from eugene.router import query, capabilities, VALID_EXTRACTS from eugene.sources.fred import get_category, get_series, get_all, FRED_SERIES from eugene.concepts import VALID_CONCEPTS VERSION = "0.4.0" def sec_query(identifier, extract, period, concept, form, section, limit): """Run SEC query and return formatted JSON.""" if not identifier.strip(): return json.dumps({"error": "Please enter a ticker, CIK, or accession number."}, indent=2) params = { "period": period, "concept": concept if concept else None, "form": form if form else None, "section": section if section else None, "limit": int(limit), } result = query( identifier.strip().upper(), extract, **{k: v for k, v in params.items() if v is not None} ) return json.dumps(result, indent=2, default=str) def economics_query(category, series_id): """Run FRED economics query.""" if series_id and series_id.strip(): result = get_series(series_id.strip().upper()) elif category == "all": result = get_all() else: result = get_category(category) return json.dumps(result, indent=2, default=str) def get_caps(): """Return capabilities.""" return json.dumps(capabilities(), indent=2) # ── Build UI ────────────────────────────────────────────────────────────────── with gr.Blocks( title="Eugene Intelligence v0.4", theme=gr.themes.Base(), css=""" .header { text-align: center; margin-bottom: 1rem; } .header h1 { margin-bottom: 0.25rem; } .header p { color: #666; margin-top: 0; } """ ) as demo: gr.HTML("""

🏛️ Eugene Intelligence v0.4

Financial context for AI. Every number traced to source.

""") with gr.Tabs(): # ── SEC Tab ─────────────────────────────────────────────────────── with gr.Tab("SEC EDGAR"): with gr.Row(): with gr.Column(scale=1): identifier = gr.Textbox( label="Identifier", placeholder="AAPL, 320193, or accession number", value="AAPL", ) extract = gr.Dropdown( label="Extract", choices=VALID_EXTRACTS, value="financials", ) period = gr.Radio( label="Period (financials)", choices=["FY", "Q"], value="FY", ) limit = gr.Slider( label="Limit", minimum=1, maximum=20, step=1, value=5, ) concept = gr.Textbox( label="Concept (optional)", placeholder="revenue, net_income, eps_diluted...", ) form = gr.Textbox( label="Form filter (optional)", placeholder="10-K, 10-Q, 8-K, 4...", ) section = gr.Textbox( label="Section (optional)", placeholder="mdna, risk_factors, business...", ) sec_btn = gr.Button("Query SEC", variant="primary") with gr.Column(scale=2): sec_output = gr.Code( label="Response", language="json", lines=30, ) sec_btn.click( fn=sec_query, inputs=[identifier, extract, period, concept, form, section, limit], outputs=sec_output, ) gr.Examples( examples=[ ["AAPL", "financials", "FY", "", "", "", 5], ["NVDA", "financials", "FY", "revenue", "", "", 5], ["TSLA", "profile", "FY", "", "", "", 5], ["JPM", "filings", "FY", "", "10-K", "", 5], ["MSFT", "financials", "Q", "", "", "", 8], ["BA", "sections", "FY", "", "", "mdna", 1], ], inputs=[identifier, extract, period, concept, form, section, limit], ) # ── Economics Tab ───────────────────────────────────────────────── with gr.Tab("Economics (FRED)"): with gr.Row(): with gr.Column(scale=1): econ_category = gr.Dropdown( label="Category", choices=["all", "inflation", "employment", "gdp", "housing", "consumer", "manufacturing", "rates", "money", "treasury"], value="treasury", ) econ_series = gr.Textbox( label="Specific series ID (optional, overrides category)", placeholder="CPIAUCSL, UNRATE, DGS10...", ) econ_btn = gr.Button("Query FRED", variant="primary") with gr.Column(scale=2): econ_output = gr.Code( label="Response", language="json", lines=30, ) econ_btn.click( fn=economics_query, inputs=[econ_category, econ_series], outputs=econ_output, ) # ── Capabilities Tab ────────────────────────────────────────────── with gr.Tab("Capabilities"): caps_btn = gr.Button("Show Capabilities") caps_output = gr.Code(language="json", lines=30) caps_btn.click(fn=get_caps, outputs=caps_output) gr.Markdown(f""" ### Canonical Concepts `{', '.join(VALID_CONCEPTS)}` ### Extracts `{', '.join(VALID_EXTRACTS)}` ### Links - **GitHub**: [Matthew-Anyiam/eugene-data-labs](https://github.com/Matthew-Anyiam/eugene-data-labs) - **API**: [eugene-data-labs-production.up.railway.app](https://eugene-data-labs-production.up.railway.app) - **MCP**: [mcpservers.org](https://mcpservers.org/server/matthew-anyiam/eugene-data-labs) - **PyPI**: `pip install eugene-data-labs` """) if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860)