msgraph-sdk-python-core icon indicating copy to clipboard operation
msgraph-sdk-python-core copied to clipboard

AttributeError: 'Request' object has no attribute 'options'

Open ruckc opened this issue 2 years ago • 1 comments

Describe the bug AttributeError: 'Request' object has no attribute 'options' when trying to get DriveItem content.

To Reproduce Steps to reproduce the behavior:

data = await client.drives.by_drive_id(drive_id).items.by_drive_item_id(item_id).content.get()

Expected behavior retrieved bytes object from DriveItem

Additional context relevant package versions

$ pip list |grep -E "^(azure|micro|ms)"
azure-core                           1.26.4
azure-identity                       1.12.0
microsoft-kiota-abstractions         0.5.1
microsoft-kiota-authentication-azure 0.2.0
microsoft-kiota-http                 0.4.1
microsoft-kiota-serialization-json   0.3.2
microsoft-kiota-serialization-text   0.2.0
msal                                 1.22.0
msal-extensions                      1.0.0
msgraph-core                         1.0.0a4
msgraph-sdk                          1.0.0a12

stacktrace

  File "/home/user/example/example/microsoft365.py", line 66, in __walk_folder
    file_data = await client.drives.by_drive_id(drive_id).items.by_drive_item_id(item.id).content.get()
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/msgraph/generated/drives/item/items/item/content/content_request_builder.py", line 56, in get
    return await self.request_adapter.send_primitive_async(request_info, "bytes", error_mapping)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/httpx_request_adapter.py", line 205, in send_primitive_async
    response = await self.get_http_response_message(request_info)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/httpx_request_adapter.py", line 320, in get_http_response_message
    resp = await self._http_client.send(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/httpx/_client.py", line 1617, in send
    response = await self._send_handling_auth(
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/httpx/_client.py", line 1645, in _send_handling_auth
    response = await self._send_handling_redirects(
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/httpx/_client.py", line 1682, in _send_handling_redirects
    response = await self._send_single_request(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/httpx/_client.py", line 1719, in _send_single_request
    response = await transport.handle_async_request(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/msgraph_core/middleware/async_graph_transport.py", line 21, in handle_async_request
    response = await self.pipeline.send(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 31, in send
    return await self._first_middleware.send(request, self._transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/redirect_handler.py", line 65, in send
    response = await super().send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 57, in send
    return await self.next.send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/retry_handler.py", line 77, in send
    response = await super().send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 57, in send
    return await self.next.send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/parameters_name_decoding_handler.py", line 48, in send
    response = await super().send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 57, in send
    return await self.next.send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/msgraph_core/middleware/telemetry.py", line 48, in send
    response = await super().send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 54, in send
    response = await transport.handle_async_request(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/msgraph_core/middleware/async_graph_transport.py", line 21, in handle_async_request
    response = await self.pipeline.send(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 31, in send
    return await self._first_middleware.send(request, self._transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/redirect_handler.py", line 65, in send
    response = await super().send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/middleware.py", line 57, in send
    return await self.next.send(request, transport)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/retry_handler.py", line 68, in send
    current_options = self._get_current_options(request)
  File "/home/user/.cache/pypoetry/virtualenvs/example-r_fbvPX4-py3.10/lib/python3.10/site-packages/kiota_http/middleware/retry_handler.py", line 111, in _get_current_options
    request_options = request.options.get(RetryHandlerOption.get_key())  # type:ignore
AttributeError: 'Request' object has no attribute 'options'

ruckc avatar May 09 '23 03:05 ruckc

Any further updates on this? I'm also encountering it, with this code:

      def get_detected_apps(self) -> pl.DataFrame:
        apps_array = []

        async def _get_detected_apps() -> None:
            apps = await self._client.device_management.detected_apps.get()

            for i in range(len(apps.value)):
                apps_array.append(apps.value[i])

            print(len(apps_array))

            while apps is not None and apps.odata_next_link is not None:
                apps = await self._client.device_management.detected_apps.with_url(apps.odata_next_link).get()

                for i in range(len(apps.value)):
                    apps_array.append(apps.value[i])

                print(len(apps_array))

        asyncio.run(_get_detected_apps())

        df = pl_df(apps_array)

        return df

It seems to get about 2600 apps in (50 per page), and then fails.

                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

File "...\env\Lib\site-packages\kiota_http\middleware\url_replace_handler.py", line 58, in _get_current_options current_options = request.options.get( # type:ignore ^^^^^^^^^^^^^^^ AttributeError: 'Request' object has no attribute 'options'

elang-bmrn avatar Mar 15 '24 05:03 elang-bmrn

thanks for reporting this issue, we have since released a new version of the SDK which this issue doesn't apply to. We encourage you to migrate to the new version and open a new issue if you still need help

baywet avatar Apr 25 '24 15:04 baywet