dgilman/gspread_asyncio

[Bug] AsyncioGspreadWorksheet.get doesn't work

asergeenko opened this issue · 1 comments

Problem

AsyncioGspreadWorksheet.get throws the TypeError exception.

values = await sh.get()
../python3.10/site-packages/gspread/utils.py:666: TypeError
TypeError: get got unexpected keyword arguments: ['range_name']

I think it happens because gspread decorates Worksheet.get function with:

@accepted_kwargs(
        major_dimension=None,
        value_render_option=None,
        date_time_render_option=None,
    )

so range_name parameter for some reason can no longer be in kwargs

Traceback

    @wraps(f)
    def wrapper(*args, **kwargs):
        unexpected_kwargs = set(kwargs) - set(default_kwargs)
        if unexpected_kwargs:
            err = "%s got unexpected keyword arguments: %s"
>           raise TypeError(err % (f.__name__, list(unexpected_kwargs)))
E           TypeError: get got unexpected keyword arguments: ['range_name']

Possible Solution

Move range_name from kwargs to args in _call function

Before

return await self.agcm._call(
            self.ws.get,
            range_name=range_name,
            major_dimension=major_dimension,
            value_render_option=value_render_option,
            date_time_render_option=date_time_render_option,
        )

After

return await self.agcm._call(
            self.ws.get,
            range_name,
            major_dimension=major_dimension,
            value_render_option=value_render_option,
            date_time_render_option=date_time_render_option,
        )

Thanks for the report, this is fixed in 1.8.0