OCHA-DAP / hdx-python-api

Python API for interacting with the HDX Data Portal
http://data.humdata.org
MIT License
80 stars 16 forks source link

Unable to instantiate Configuration #39

Closed kshitijrajsharma closed 1 year ago

kshitijrajsharma commented 1 year ago

Hi here ! I am facing some issues while instantiating configuration , I was using hdx-python-api 2.1.5 before

HDX_URL_PREFIX = Configuration.create(
    hdx_site=os.getenv('HDX_SITE', 'demo'),
    hdx_key=os.getenv('HDX_API_KEY'),
    user_agent="my_user_agent_name"
)

Now I am trying to upgrade it to latest version of this library while doing so I am. getting error like this

TypeError: __init__() got an unexpected keyword argument 'allowed_methods'

from 176 line of hdx>utilities >session.py> get_session

    retries = Retry(
        total=5,
        backoff_factor=0.4,
        status_forcelist=status_forcelist,
        allowed_methods=allowed_methods,
        raise_on_redirect=True,
        raise_on_status=True,
    )

when I disable this code block and avoid passing allowed_methods like this ,

     retries = Retry(
        total=5,
        backoff_factor=0.4,
        status_forcelist=status_forcelist,
        # allowed_methods=allowed_methods,
        raise_on_redirect=True,
        raise_on_status=True,
    )

works fine for me but looking for better suggestion if there are any . Feel free to suggest me different way / navigate me to docs where I can find about it .

Full Traceback :

   File "/Users/kshitij/opt/anaconda3/envs/export/lib/python3.6/site-packages/hdx/api/configuration.py", line 648, in create
    configuration=configuration, remoteckan=remoteckan, **kwargs
  File "/Users/kshitij/opt/anaconda3/envs/export/lib/python3.6/site-packages/hdx/api/configuration.py", line 607, in _create
    cls._configuration.setup_session_remoteckan(remoteckan, **kwargs)
  File "/Users/kshitij/opt/anaconda3/envs/export/lib/python3.6/site-packages/hdx/api/configuration.py", line 472, in setup_session_remoteckan
    full_agent=self.get_user_agent(), **kwargs
  File "/Users/kshitij/opt/anaconda3/envs/export/lib/python3.6/site-packages/hdx/api/configuration.py", line 443, in create_session_user_agent
    **kwargs,
  File "/Users/kshitij/opt/anaconda3/envs/export/lib/python3.6/site-packages/hdx/utilities/session.py", line 176, in get_session
    raise_on_status=True,
TypeError: __init__() got an unexpected keyword argument 'allowed_methods'
mcarans commented 1 year ago

I think your version of urllib3 is old. At some point, method_whitelist was changed to allowed_methods. I am guessing that your version of urllib3 still uses method_whitelist

https://github.com/urllib3/urllib3/blob/main/CHANGES.rst#1260-2020-11-10

Can you upgrade your urllib3? Please let me know if that works.

kshitijrajsharma commented 1 year ago

@mcarans Thanks , Upgrading urllib3 and requests Works !