diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 563004f25..141e7cde8 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.46.0" + ".": "0.47.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 212d59968..f9898b1cc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 92 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-75c0dc94dd629772c98b3e6f763d8b3a1bdb732aa3eb92d49a59fb446fb2410d.yml openapi_spec_hash: 12286e648ea1156bfa23020ed0c7598b -config_hash: 5a04741d17a98f68dc474a29c516d3f8 +config_hash: 60681f589a9e641fdb7f19af2021a033 diff --git a/CHANGELOG.md b/CHANGELOG.md index 3db9c93f8..dbf75097b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.47.0 (2025-07-01) + +Full Changelog: [v0.46.0...v0.47.0](https://github.com/runloopai/api-client-python/compare/v0.46.0...v0.47.0) + +### Features + +* **api:** api update ([01b01d4](https://github.com/runloopai/api-client-python/commit/01b01d43edfeb15a3f4b56cab6577a4bdd4f75ed)) + ## 0.46.0 (2025-07-01) Full Changelog: [v0.45.0...v0.46.0](https://github.com/runloopai/api-client-python/compare/v0.45.0...v0.46.0) diff --git a/README.md b/README.md index afc66e029..b62044992 100644 --- a/README.md +++ b/README.md @@ -245,7 +245,7 @@ Error codes are as follows: ### Retries -Certain errors are automatically retried 3 times by default, with a short exponential backoff. +Certain errors are automatically retried 5 times by default, with a short exponential backoff. Connection errors (for example, due to a network connectivity problem), 408 Request Timeout, 409 Conflict, 429 Rate Limit, and >=500 Internal errors are all retried by default. diff --git a/pyproject.toml b/pyproject.toml index fcc69280b..baed22217 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "runloop_api_client" -version = "0.46.0" +version = "0.47.0" description = "The official Python library for the runloop API" dynamic = ["readme"] license = "MIT" diff --git a/src/runloop_api_client/_constants.py b/src/runloop_api_client/_constants.py index d1ccc0109..4fe93f3ea 100644 --- a/src/runloop_api_client/_constants.py +++ b/src/runloop_api_client/_constants.py @@ -7,8 +7,8 @@ # default timeout is 30 seconds DEFAULT_TIMEOUT = httpx.Timeout(timeout=30, connect=5.0) -DEFAULT_MAX_RETRIES = 3 +DEFAULT_MAX_RETRIES = 5 DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=100, max_keepalive_connections=20) INITIAL_RETRY_DELAY = 1.0 -MAX_RETRY_DELAY = 15.0 +MAX_RETRY_DELAY = 60.0 diff --git a/src/runloop_api_client/_version.py b/src/runloop_api_client/_version.py index f66dbcb44..b483571e5 100644 --- a/src/runloop_api_client/_version.py +++ b/src/runloop_api_client/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "runloop_api_client" -__version__ = "0.46.0" # x-release-please-version +__version__ = "0.47.0" # x-release-please-version diff --git a/tests/test_client.py b/tests/test_client.py index 9542e6d4b..ed6595b46 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -93,7 +93,7 @@ def test_copy_default_options(self) -> None: # options that have a default are overridden correctly copied = self.client.copy(max_retries=7) assert copied.max_retries == 7 - assert self.client.max_retries == 3 + assert self.client.max_retries == 5 copied2 = copied.copy(max_retries=6) assert copied2.max_retries == 6 @@ -754,7 +754,7 @@ class Model(BaseModel): [3, "", 1], [2, "", 1 * 2.0], [1, "", 1 * 4.0], - [-1100, "", 15], # test large number potentially overflowing + [-1100, "", 60], # test large number potentially overflowing ], ) @mock.patch("time.time", mock.MagicMock(return_value=1696004797)) @@ -949,7 +949,7 @@ def test_copy_default_options(self) -> None: # options that have a default are overridden correctly copied = self.client.copy(max_retries=7) assert copied.max_retries == 7 - assert self.client.max_retries == 3 + assert self.client.max_retries == 5 copied2 = copied.copy(max_retries=6) assert copied2.max_retries == 6 @@ -1613,7 +1613,7 @@ class Model(BaseModel): [3, "", 1], [2, "", 1 * 2.0], [1, "", 1 * 4.0], - [-1100, "", 15], # test large number potentially overflowing + [-1100, "", 60], # test large number potentially overflowing ], ) @mock.patch("time.time", mock.MagicMock(return_value=1696004797))