| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| --- | ||
| default: patch | ||
| --- | ||
|
|
||
| # Fix optional bodies | ||
|
|
||
| If a body is not required (the default), it will now: | ||
|
|
||
| 1. Have `Unset` as part of its type annotation. | ||
| 2. Default to a value of `UNSET` | ||
| 3. Not be included in the request if it is `UNSET` | ||
|
|
||
| Thanks @orelmaliach for the report! Fixes #1354 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,104 @@ | ||
| from http import HTTPStatus | ||
| from typing import Any | ||
|
|
||
| import httpx | ||
|
|
||
| from ... import errors | ||
| from ...client import AuthenticatedClient, Client | ||
| from ...models.optional_body_body import OptionalBodyBody | ||
| from ...types import UNSET, Response, Unset | ||
|
|
||
|
|
||
| def _get_kwargs( | ||
| *, | ||
| body: OptionalBodyBody | Unset = UNSET, | ||
| ) -> dict[str, Any]: | ||
| headers: dict[str, Any] = {} | ||
|
|
||
| _kwargs: dict[str, Any] = { | ||
| "method": "post", | ||
| "url": "/bodies/optional", | ||
| } | ||
|
|
||
| if not isinstance(body, Unset): | ||
| _kwargs["json"] = body.to_dict() | ||
|
|
||
| headers["Content-Type"] = "application/json" | ||
|
|
||
| _kwargs["headers"] = headers | ||
| return _kwargs | ||
|
|
||
|
|
||
| def _parse_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Any | None: | ||
| if response.status_code == 200: | ||
| return None | ||
|
|
||
| if client.raise_on_unexpected_status: | ||
| raise errors.UnexpectedStatus(response.status_code, response.content) | ||
| else: | ||
| return None | ||
|
|
||
|
|
||
| def _build_response(*, client: AuthenticatedClient | Client, response: httpx.Response) -> Response[Any]: | ||
| return Response( | ||
| status_code=HTTPStatus(response.status_code), | ||
| content=response.content, | ||
| headers=response.headers, | ||
| parsed=_parse_response(client=client, response=response), | ||
| ) | ||
|
|
||
|
|
||
| def sync_detailed( | ||
| *, | ||
| client: AuthenticatedClient | Client, | ||
| body: OptionalBodyBody | Unset = UNSET, | ||
| ) -> Response[Any]: | ||
| """Test optional request body | ||
|
|
||
| Args: | ||
| body (OptionalBodyBody | Unset): | ||
|
|
||
| Raises: | ||
| errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. | ||
| httpx.TimeoutException: If the request takes longer than Client.timeout. | ||
|
|
||
| Returns: | ||
| Response[Any] | ||
| """ | ||
|
|
||
| kwargs = _get_kwargs( | ||
| body=body, | ||
| ) | ||
|
|
||
| response = client.get_httpx_client().request( | ||
| **kwargs, | ||
| ) | ||
|
|
||
| return _build_response(client=client, response=response) | ||
|
|
||
|
|
||
| async def asyncio_detailed( | ||
| *, | ||
| client: AuthenticatedClient | Client, | ||
| body: OptionalBodyBody | Unset = UNSET, | ||
| ) -> Response[Any]: | ||
| """Test optional request body | ||
|
|
||
| Args: | ||
| body (OptionalBodyBody | Unset): | ||
|
|
||
| Raises: | ||
| errors.UnexpectedStatus: If the server returns an undocumented status code and Client.raise_on_unexpected_status is True. | ||
| httpx.TimeoutException: If the request takes longer than Client.timeout. | ||
|
|
||
| Returns: | ||
| Response[Any] | ||
| """ | ||
|
|
||
| kwargs = _get_kwargs( | ||
| body=body, | ||
| ) | ||
|
|
||
| response = await client.get_async_httpx_client().request(**kwargs) | ||
|
|
||
| return _build_response(client=client, response=response) |
| Back | FazBrowse Home | New Git URL |
Uh oh!
There was an error while loading. Please reload this page.