binance / binance/binance-connector-python

Type hint mismatch for list API responses

Aperta
#444 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
2.9k
Fork
699
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Hi! I’m currently using the `binance-sdk-derivatives-trading-usds-futures` SDK while migrating from the deprecated version.

I noticed that the return type of the USD Futures API is always annotated as `ApiResponse[T]`, but in cases where the response is a top-level list, the actual return type is `ApiResponse[list[T]]`.

Is this intentional?

```python
def send_request(...):
...

if (is_list and not is_flat_list) or not response_model:
data_function = lambda: parsed
elif is_oneof or is_list:
data_function = lambda: response_model.from_dict(parsed)
else:
data_function = lambda: response_model.model_validate(parsed)
```

```python
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[list[Self]]:
"""Create an instance of Ticker24hrResponse2 from a dict"""
return [cls.model_validate(item) for item in obj]
```

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia leggendo il punto di ingresso send_request e l'esempio Ticker24hrResponse2.from_dict nell'issue, quindi traccia il modo in cui vengono annotate e analizzate le risposte di primo livello costituite da liste. Il lavoro è completato quando il tipo restituito dichiarato corrisponde al comportamento a runtime di ApiResponse[list[T]] per le risposte costituite da liste, senza modificare la gestione delle altre forme di risposta.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
api
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
58/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.