equinix / equinix/equinix-sdk-python
Incorrect return type
- Vorherrschende Sprache
- Python
- Sterne
- 3
- Forks
- 0
- Ø Merge
- 2 T. 14 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
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.
Beitragsleitfaden
Rechercherichtung
Beginne mit services/metalv1/models/project_usage.py und usages_api.py und verwende die in der Traceback-Ausgabe gezeigte find_project_usage-Antwort als Einstiegspunkt. Vergleiche die deklarierten Typen des Modells mit der API-Antwort für price, quantity und total und überprüfe anschließend, dass der Endpunkt diese numerischen Werte ohne Pydantic-Validierungsfehler deserialisiert.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 42/100