equinix / equinix/equinix-sdk-python
Incorrect return type
- Lingua principale
- Python
- Stelle
- 3
- Fork
- 0
- Merge medio
- 2g 14h
- PR unite (30g)
- 4
Descrizione
I am getting an error when trying to use the following method
```py
metalv1.UsagesApi(equinix_client).find_project_usage("")
```
```
File "/myenv/request.py", line 25, in
u = get_usages(cl)
File "/myenv/request.py", line 18, in get_usages
return metalv1.UsagesApi(equinix_client).find_project_usage("")
File "/myenv/lib/python3.9/site-packages/pydantic/_internal/_validate_call.py", line 39, in wrapper_function
return wrapper(*args, **kwargs)
File "/myenv/lib/python3.9/site-packages/pydantic/_internal/_validate_call.py", line 136, in __call__
res = self.__pydantic_validator__.validate_python(pydantic_core.ArgsKwargs(args, kwargs))
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/api/usages_api.py", line 407, in find_project_usage
return self.api_client.response_deserialize(
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/api_client.py", line 318, in response_deserialize
return_data = self.deserialize(response_text, response_type, content_type)
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/api_client.py", line 419, in deserialize
return self.__deserialize(data, response_type)
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/api_client.py", line 466, in __deserialize
return self.__deserialize_model(data, klass)
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/api_client.py", line 796, in __deserialize_model
return klass.from_dict(data)
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/models/project_usage_list.py", line 92, in from_dict
"usages": [ProjectUsage.from_dict(_item) for _item in obj["usages"]] if obj.get("usages") is not None else None
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/models/project_usage_list.py", line 92, in
"usages": [ProjectUsage.from_dict(_item) for _item in obj["usages"]] if obj.get("usages") is not None else None
File "/myenv/lib/python3.9/site-packages/equinix/services/metalv1/models/project_usage.py", line 90, in from_dict
_obj = cls.model_validate({
File "/myenv/lib/python3.9/site-packages/pydantic/main.py", line 703, in model_validate
return cls.__pydantic_validator__.validate_python(
pydantic_core._pydantic_core.ValidationError: 3 validation errors for ProjectUsage
price
Input should be a valid string [type=string_type, input_value=1.1, input_type=float]
For further information visit https://errors.pydantic.dev/2.11/v/string_type
quantity
Input should be a valid string [type=string_type, input_value=24.0, input_type=float]
For further information visit https://errors.pydantic.dev/2.11/v/string_type
total
Input should be a valid string [type=string_type, input_value=26.4, input_type=float]
For further information visit https://errors.pydantic.dev/2.11/v/string_type
```
I am using version 0.10.0
```
equinix==0.10.0
```
It would seem that a string is expected but a float is being returned, causing the validation to fail.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia da services/metalv1/models/project_usage.py e usages_api.py, usando come punto di ingresso la risposta di find_project_usage mostrata nel traceback. Confronta i tipi dichiarati del modello con la risposta dell'API per price, quantity e total, quindi verifica che l'endpoint deserializzi quei valori numerici senza errori di validazione di Pydantic.
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à
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 42/100