requests / toolbelt

A toolbelt of useful classes and functions to be used with python-requests
https://toolbelt.readthedocs.org
Other
996 stars 184 forks source link

Dependancy fail: gaecontrib not in __compat.py #361

Closed print-duck closed 1 year ago

print-duck commented 1 year ago

File "project\venv\Lib\site-packages\pyrebase\pyrebase.py", line 20, in from requests_toolbelt.adapters import appengine File "project\venv\Lib\site-packages\requests_toolbelt\adapters\appengine.py", line 42, in from .._compat import gaecontrib ImportError: cannot import name 'gaecontrib' from 'requests_toolbelt._compat' (project\venv\Lib\site-packages\requests_toolbelt_compat.py)


requests_toolbelt\adapters\appengine.py requires the object "gaecontrib" from "compat.py". But "gaecontrib" is missing in "compat.py"

pquentin commented 1 year ago

Hello,

We just released Requests Toolbelt without Google App Engine support: https://github.com/requests/toolbelt/blob/1.0.0/HISTORY.rst#100----2023-05-01. Pyrebase depends on that support. That said, if you use a recent version of pip and do pip install pyrebase, you should get old versions of Requests and Requests Toolbelt that work: https://github.com/thisbejim/Pyrebase/blob/7a652e6bd9d148da5ff6dbe7548c6d5d0dfa1109/setup.py

As a temporary solution, you can pin urllib3 (urllib3<2.0) and Requests Toolbelt (requests_toolbelt<1.0.0). Why is this temporary? urllib3 1.26 will continue getting security updates for now, but Requests Toolbelt 0.9.0 won't. This is something that Pyrebase should do, as well as vendoring the Google App Engine code it relies on.

That said, Pyrebase is now unmaintained, see https://github.com/thisbejim/Pyrebase/issues/435 for alternatives. The more promising alternative is the official Python SDK: https://github.com/firebase/firebase-admin-python

In any case, we can't help more than that, so I'll close this issue. Thanks!