Closed koldLight closed 4 years ago
Por lo que viene en la issue #10 parece que la API está construida de forma que nunca salta la excepción, y que devuelve un [ ] en caso de vacío o no encontrado. Entonces ¿tiene sentido lo de aplicar error? Porque la diferencia va a estar en que devuelva [ ] o que devuelva {}
Por lo que viene en la issue #10 parece que la API está construida de forma que nunca salta la excepción, y que devuelve un [ ] en caso de vacío o no encontrado. Entonces ¿tiene sentido lo de aplicar error? Porque la diferencia va a estar en que devuelva [ ] o que devuelva {}
Bueno, igual es un poco tiquismiquis jaja pero te cuento mi reflexión para convertir [] a {}. Es por devolver siempre el mismo tipo de dato (que, además, debería ir en el type hint de tipo de salida).
Imagina que esto lo está usando una persona por fuera, en plan:
# Extraigo info
location_geocoded = pycartociudad.geocode(una_direccion)
# Como casi siempre me devuelve un dict, espero que siempre sea así
# Y añado cosas mías a ese dict, p.e. la fecha en la que lo extraje de la API
location_geocoded["requested_at"] = datetime.now()
Si de repende, 1 de cada 1000 peticiones falla y da [] en lugar de {}, su código va a saltar con un error no controlado al intentar escribir un nuevo item con clave requested_at en algo que no es un dict.
Y otra cosa, creo que @aliciapj tenía algún test hecho en una rama (me suena haber visto esa rama en algún momento), mirad para que no os piséis, o podáis mergear lo hecho por las dos.
Gracias!
En la función geocode, habría que:
Añadir un control de errores: hay más info en la conversación de la issue #10
jaksfnsdfkjandkqnjkdasnkjnakj
), se devuelve{}
, sin hacer saltar ninguna excepción.error
, que admite los valoresraise
(por defecto) eignore
. Si se elige ignore, la función devuelve{}
. Si se elige raise, saltará la excepción. Para esto último, se puede utilizarraise_for_status
(docAñadir testing