Skip to content

BUG: Starting filesystem with boto3 session returns AttributeError #75

@IvoMerchiers

Description

@IvoMerchiers

If I create a filesystem and provide a boto3 session, we get an AttributeError.

versions

boto3=1.12.0
s3fs=0.5.0

Code

Running

session = boto3.Session(profile_name='xpectrum')
fs = s3fs.S3FileSystem(
    session=session,
)

returns

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-30d2bfcd4409> in <module>
      1 session = boto3.Session(profile_name='xpectrum')
      2 fs = s3fs.S3FileSystem(
----> 3     session=session,
      4 )

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\fsspec\spec.py in __call__(cls, *args, **kwargs)
     53             return cls._cache[token]
     54         else:
---> 55             obj = super().__call__(*args, **kwargs)
     56             # Setting _fs_token here causes some static linters to complain.
     57             obj._fs_token_ = token

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\s3fs\core.py in __init__(self, anon, key, secret, token, use_ssl, client_kwargs, requester_pays, default_block_size, default_fill_cache, default_cache_type, version_aware, config_kwargs, s3_additional_kwargs, session, username, password, asynchronous, loop, **kwargs)
    183         self.use_ssl = use_ssl
    184         if not asynchronous:
--> 185             self.connect()
    186             weakref.finalize(self, sync, self.loop, self._s3.close)
    187         else:

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\fsspec\asyn.py in wrapper(*args, **kwargs)
     98     def wrapper(*args, **kwargs):
     99         self = obj or args[0]
--> 100         return maybe_sync(func, self, *args, **kwargs)
    101 
    102     return wrapper

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\fsspec\asyn.py in maybe_sync(func, self, *args, **kwargs)
     78         if inspect.iscoroutinefunction(func):
     79             # run the awaitable on the loop
---> 80             return sync(loop, func, *args, **kwargs)
     81         else:
     82             # just call the blocking function

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\fsspec\asyn.py in sync(loop, func, callback_timeout, *args, **kwargs)
     49     if error[0]:
     50         typ, exc, tb = error[0]
---> 51         raise exc.with_traceback(tb)
     52     else:
     53         return result[0]

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\fsspec\asyn.py in f()
     33             if callback_timeout is not None:
     34                 future = asyncio.wait_for(future, callback_timeout)
---> 35             result[0] = await future
     36         except Exception:
     37             error[0] = sys.exc_info()

C:\tools\Anaconda3\envs\xpectrum\lib\site-packages\s3fs\core.py in _connect(self, kwargs)
    303         if self.session is None:
    304             self.session = aiobotocore.get_session(**self.kwargs)
--> 305         s3creator = self.session.create_client('s3', config=conf, **init_kwargs, **client_kwargs)
    306         self._s3 = await s3creator.__aenter__()
    307         self._kwargs_helper = ParamKwargsHelper(self.s3)

AttributeError: 'Session' object has no attribute 'create_client'```

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions