2. Le Regole di “Buona Cittadinanza”
L’adozione delle pratiche di “buona cittadinanza” garantisce che l’estensione sia coerente con il Design System di FIRE, manutenibile nel tempo e integrata nativamente nelle funzionalità di sistema (come il cambio tema).
1. Accesso ai Dati (Data Sovereignty)
L’estensione deve interagire con i dati di mercato esclusivamente tramite il DataManager interno.
- Cosa: Utilizzo di
context.data.fetch(). - Come:
df = context.data.fetch(ticker, start_date, end_date, timeframe). - Perché serve: Garantisce l’uso della cache locale, il rispetto delle rettifiche prezzi (Split/Dividendi) impostate dall’utente e la normalizzazione dei formati. Evita l’overhead di librerie esterne (es.
yfinance) e il rischio di conflitti di versione.
2. UI Semantica (Dashboard API)
La costruzione dell’interfaccia deve avvenire tramite componenti astratti forniti dall’SDK, evitando la scrittura di HTML/CSS manuale.
- Cosa: Astrazione del layout tramite
ScriptDashboard. - Come:
dash = context.ui.create_dashboard("Titolo Analisi")dash.add_metric(label, value, variant="success")context.ui.show_dashboard(dash)
- Perché serve: Abilita l’Adaptive Mode (cambio Dark/Light automatico) e assicura che card, font e spaziature siano identiche al “Gold Standard” di FIRE.
Varianti Semantiche:
info: Accento Brand (Arancione).success: Trading Bullish/Sicurezza (Verde).warning: Cautela (Giallo/Arancio).danger: Rischio Critico (Rosso).
3. Smart Style per Grafici Plotly
I grafici generati esternamente devono essere processati dal motore estetico di FIRE.
- Cosa: Metodo
apply_fire_style. - Come:
fig = context.ui.apply_fire_style(fig, is_report=True). - Perché serve: Implementa lo Smart Contrast (regola il colore di font e griglie per la leggibilità su sfondo chiaro/scuro), inserisce la firma del brand e attiva gli script di resize responsivo.
4. Gestione delle Risorse
Utilizzo del ResourceManager centralizzato per elementi grafici personalizzati.
- Cosa:
ResourceManager.get_icon(). - Come:
btn.setIcon(ResourceManager.get_icon("custom-icon.svg")). - Perché serve: Sfrutta il Dynamic Tinting (colora automaticamente gli SVG di bianco o nero in base al tema) e il caching in RAM per massimizzare le performance della UI.
💡 Nota operativa: Uno script che non utilizza la Dashboard API risulterà visivamente alieno al resto della piattaforma e richiederà manutenzione manuale a ogni aggiornamento del Design System.