Script di Debug: Test API Yahoo Finance (debug_api_yahoo_finance.py)

1. Scopo

Questo script è uno strumento di diagnostica di rete di basso livello per testare la connessione diretta e la risposta dall’API di Yahoo Finance.

Il suo scopo principale è bypassare la libreria yfinance ed eseguire una richiesta HTTP grezza, simulando ciò che la libreria farebbe internamente. Questo ci permette di isolare i problemi e rispondere a domande specifiche:

  • La nostra connessione di rete verso i server di Yahoo funziona?
  • Il nostro indirizzo IP è stato bloccato o limitato (es. errore 403 Forbidden)?
  • L’API di Yahoo ha cambiato formato e non restituisce più un JSON valido?

2. Quando si Deve Usare Questo Script?

Questo è il primo strumento da utilizzare quando il YahooFinanceConnector smette di funzionare all’interno di FIRE. Eseguilo per determinare se il problema è esterno (lato Yahoo/rete) o interno (nel nostro codice o nella libreria yfinance).

3. Come si Lancia

Prerequisiti:

  • Ambiente virtuale del progetto attivo.
  • La libreria requests deve essere installata.

Comando: Assicurati di essere nella directory principale del progetto ed esegui:

python scripts/debug/debug_api_yahoo_finance.py

4. Interpretazione dell’Output

L’output ti darà una diagnosi chiara dello stato della connessione:

  • Output di Successo:

    codeCode

    Status: 200
    ...
    JSON parsing: SUCCESS
    Symbol: SPY
    

    Questo significa che la connessione è buona, l’API risponde correttamente e il formato dei dati è quello atteso. Se questo test ha successo ma il connettore in FIRE fallisce, il problema è probabilmente nella libreria yfinance o nel nostro codice.

  • Output di Fallimento Comune:

    • Status: 403: Indica un problema di autorizzazione. Yahoo potrebbe aver bloccato temporaneamente il tuo IP.

    • Status: 404: L’URL dell’API potrebbe essere cambiato.

    • Error: … (es. Connection timed out): Indica un problema di rete tra te e i server di Yahoo.

    • JSON parsing: FAILED: La connessione ha funzionato, ma Yahoo ha restituito dati in un formato inaspettato (non JSON), indicando un cambiamento nella loro API.

codeCode

Use Arrow Up and Arrow Down to select a turn, Enter to jump to it, and Escape to return to the chat.