From 8232b7c3d2c00969be39e7ad5658b28803db7af2 Mon Sep 17 00:00:00 2001 From: fern-api <115122769+fern-api[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 14:33:22 +0000 Subject: [PATCH] Release 0.0.1b1 --- README.md | 136 +++++++++++++++++++++++++++++++ pyproject.toml | 2 +- src/gooey/core/client_wrapper.py | 2 +- 3 files changed, 138 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e69de29..e66d2ad 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,136 @@ +# Gooey Python Library + +[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-SDK%20generated%20by%20Fern-brightgreen)](https://github.com/fern-api/fern) +[![pypi](https://img.shields.io/pypi/v/gooeyai)](https://pypi.python.org/pypi/gooeyai) + +The Gooey Python library provides convenient access to the Gooey API from Python. + +## Installation + +```sh +pip install gooeyai +``` + +## Usage + +Instantiate and use the client with the following: + +```python +from gooey import Gooey + +client = Gooey( + authorization="YOUR_AUTHORIZATION", + api_key="YOUR_API_KEY", +) +client.copilot_integrations.video_bots_stream_create( + integration_id="integration_id", +) +``` + +## Async Client + +The SDK also exports an `async` client so that you can make non-blocking calls to our API. + +```python +import asyncio + +from gooey import AsyncGooey + +client = AsyncGooey( + authorization="YOUR_AUTHORIZATION", + api_key="YOUR_API_KEY", +) + + +async def main() -> None: + await client.copilot_integrations.video_bots_stream_create( + integration_id="integration_id", + ) + + +asyncio.run(main()) +``` + +## Exception Handling + +When the API returns a non-success status code (4xx or 5xx response), a subclass of the following error +will be thrown. + +```python +from gooey.core.api_error import ApiError + +try: + client.copilot_integrations.video_bots_stream_create(...) +except ApiError as e: + print(e.status_code) + print(e.body) +``` + +## Advanced + +### Retries + +The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long +as the request is deemed retriable and the number of retry attempts has not grown larger than the configured +retry limit (default: 2). + +A request is deemed retriable when any of the following HTTP status codes is returned: + +- [408](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408) (Timeout) +- [429](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429) (Too Many Requests) +- [5XX](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500) (Internal Server Errors) + +Use the `max_retries` request option to configure this behavior. + +```python +client.copilot_integrations.video_bots_stream_create(..., { + "max_retries": 1 +}) +``` + +### Timeouts + +The SDK defaults to a 60 second timeout. You can configure this with a timeout option at the client or request level. + +```python + +from gooey import Gooey + +client = Gooey( + ..., + timeout=20.0, +) + + +# Override timeout for a specific method +client.copilot_integrations.video_bots_stream_create(..., { + "timeout_in_seconds": 1 +}) +``` + +### Custom Client + +You can override the `httpx` client to customize it for your use-case. Some common use-cases include support for proxies +and transports. +```python +import httpx +from gooey import Gooey + +client = Gooey( + ..., + httpx_client=httpx.Client( + proxies="http://my.test.proxy.example.com", + transport=httpx.HTTPTransport(local_address="0.0.0.0"), + ), +) +``` + +## Contributing + +While we value open-source contributions to this SDK, this library is generated programmatically. +Additions made directly to this library would have to be moved over to our generation code, +otherwise they would be overwritten upon the next generated release. Feel free to open a PR as +a proof of concept, but know that we will not be able to merge it as-is. We suggest opening +an issue first to discuss with us! + +On the other hand, contributions to the README are always very welcome! diff --git a/pyproject.toml b/pyproject.toml index 4fb619e..ed8f38e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gooeyai" -version = "0.0.1b01" +version = "0.0.1b1" description = "" readme = "README.md" authors = [] diff --git a/src/gooey/core/client_wrapper.py b/src/gooey/core/client_wrapper.py index 0565a35..eafa82c 100644 --- a/src/gooey/core/client_wrapper.py +++ b/src/gooey/core/client_wrapper.py @@ -25,7 +25,7 @@ def get_headers(self) -> typing.Dict[str, str]: headers: typing.Dict[str, str] = { "X-Fern-Language": "Python", "X-Fern-SDK-Name": "gooeyai", - "X-Fern-SDK-Version": "0.0.1b01", + "X-Fern-SDK-Version": "0.0.1b1", } if self._authorization is not None: headers["Authorization"] = self._authorization