Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error de decompresión Brotli #1

Open
sacundim opened this issue Mar 8, 2021 · 7 comments
Open

Error de decompresión Brotli #1

sacundim opened this issue Mar 8, 2021 · 7 comments

Comments

@sacundim
Copy link

sacundim commented Mar 8, 2021

Versión 0.0.3 (la que está en PyPi), siguiendo las instrucciones en el README:

Python 3.7.3 (default, Apr 24 2020, 18:51:23) 
[Clang 11.0.3 (clang-1103.0.32.62)] on darwin
>>> from bioportal import BioPortalClient
>>> cliente = BioPortalClient()
>>> casos_por_coleccion = cliente.descargar_dataset('Casos por fecha de coleccion')
Descargando "Casos por fecha de coleccion"...
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "/Users/casillas/Code/covid-19-puerto-rico-downloader/.venv/lib/python3.7/site-packages/bioportal/bioportal_client.py", line 41, in descargar_dataset
    apidata = self.descargar_dataset_url(aurl, verbose=verbose)
  File "/Users/casillas/Code/covid-19-puerto-rico-downloader/.venv/lib/python3.7/site-packages/bioportal/bioportal_client.py", line 48, in descargar_dataset_url
    apidata_raw = (brotli.decompress(r.content))
  File "/Users/casillas/Code/covid-19-puerto-rico-downloader/.venv/lib/python3.7/site-packages/brotli/brotli.py", line 89, in decompress
    data = d.decompress(data)
  File "/Users/casillas/Code/covid-19-puerto-rico-downloader/.venv/lib/python3.7/site-packages/brotli/brotli.py", line 419, in decompress
    "Decompression error: %s" % ffi.string(error_message)
brotli.brotli.Error: Decompression error: b'CL_SPACE'

Mirando un poco por la web, my hipótesis es lo que dice esta respuesta en StackOverflow: que mi versión de la biblioteca requests (2.25.1 en mi virtualenv) está descomprimiendo implícitamente la descarga (usando brotlipy, 0.7.0 en mi virtualenv). Jugando un poco para confirmarlo, veo esto:

>>> import requests
>>> apiurl = 'https://BioPortal.salud.gov.pr/api/administration/reports/cases/grouped-by-collected-date'
>>> r = requests.get(apiurl, headers={'Accept-Encoding': 'br'}, timeout=(15,None))
>>> r.status_code
200
>>> apidata_raw = r.content
>>> apidata_raw[0:100]
b'[{"collectedDate":"3/13/2020","totalConfirmedCases":1,"totalProbableCases":0},{"collectedDate":"3/14'

...que no está comprimido.

@jzavala-gonzalez
Copy link
Owner

Hola! y gracias por levantar el issue! Entiendo que versión 0.0.5 arreglo este issue y esta disponible en pypi. Tiene que ver un poco con que no tengo manera de determinar cuando BioPortal enviara las tablas en brotli format o no. En bioportal/bioportal_client.py lineas 114-117 puedes ver que al momento el fix es un try-except para circumventar ese error temporeramente. Ha resuelto hasta ahora, pero estoy pendiente a si otro compression issue vuelve a aparecer.

@sacundim
Copy link
Author

sacundim commented Mar 8, 2021

Pues yo lo que veo en PyPi es esto:

Screen Shot 2021-03-07 at 10 31 32 PM

https://pypi.org/project/bioportal-apis/#history

@jzavala-gonzalez
Copy link
Owner

Ahh, ya veo. Esa version sigue arriba a lo que aprendia como publish a PyPi. El actual solo se llama 'bioportal' en vez de 'bioportal-apis' y esta aqui: https://pypi.org/project/bioportal/

@sacundim
Copy link
Author

sacundim commented Mar 8, 2021

Ah. Ahora sí funciona.

Si el bioportal-api no tiene usuarios y no funciona, parece que convendría borrarlo de PyPi. Cosa que normalmente no es una práctica recomendable, pero de nuevo, si no tiene usuarios y no funciona pues eso a mi entender sí amerita borrarlo de PyPi.

@jzavala-gonzalez
Copy link
Owner

Buena idea, aprovecho y lo cierro para evitar mas confusion. Cierro este issue mañana si no vuelve a aparecer algun bug a lo que lo usas.

@sacundim
Copy link
Author

sacundim commented Mar 8, 2021

Al momento solo estaba siguiendo las instrucciones básicas para mirar, así que no vaciles en cerrar.

@jzavala-gonzalez
Copy link
Owner

Dale. Si quieres algun ejemplo de programas que hemos corrido usando esto, nos avisas y te enviamos uno o dos notebooks que tenemos que entiendo solo usan apis publicos. Gracias por el feedback, y aqui a la orden!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants