Skip to content

Commit

Permalink
release: 1.0.0 (#90)
Browse files Browse the repository at this point in the history
* chore(internal): bump pydantic dependency (#56)

* docs(readme): fix http client proxies example (#58)

* chore(internal): bump pyright (#59)

* chore(internal): add support for TypeAliasType (#60)

* chore(internal): codegen related update (#61)

* chore(internal): codegen related update (#62)

* chore(internal): updated imports (#63)

* chore(internal): codegen related update (#64)

* chore(internal): fix some typos (#65)

* chore(internal): codegen related update (#66)

* chore: add missing isclass check (#67)

* chore(internal): bump httpx dependency (#68)

* fix(client): only call .close() when needed (#69)

* docs: fix typos (#70)

* chore(internal): codegen related update (#71)

* fix: correctly handle deserialising `cls` fields (#72)

* feat(api): api update (#73)

* feat(api): api update (#75)

* feat(api): api update (#76)

* codegen metadata

* feat: feat!: Update helper methods for client breaking changes (#78)

* feat!: Update helper methods for client breaking changes

* Cleanup

* feat: rc2 (#80)

* feat: Rename some class in tests (#81)

* chore(internal): bump pydantic dependency (#56)

* docs(readme): fix http client proxies example (#58)

* chore(internal): bump pyright (#59)

* chore(internal): add support for TypeAliasType (#60)

* chore(internal): codegen related update (#61)

* chore(internal): codegen related update (#62)

* chore(internal): updated imports (#63)

* chore(internal): codegen related update (#64)

* chore(internal): fix some typos (#65)

* chore(internal): codegen related update (#66)

* chore: add missing isclass check (#67)

* chore(internal): bump httpx dependency (#68)

* fix(client): only call .close() when needed (#69)

* docs: fix typos (#70)

* chore(internal): codegen related update (#71)

* fix: correctly handle deserialising `cls` fields (#72)

* feat(api): api update (#73)

* feat(api): api update (#75)

* feat(api): api update (#76)

* codegen metadata

* feat: feat!: Update helper methods for client breaking changes (#78)

* feat!: Update helper methods for client breaking changes

* Cleanup

* feat: rc2 (#80)

* AuthResponse

* format

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
Co-authored-by: Nate Barbettini <nate@arcade-ai.com>

* feat(api): api update (#82)

* chore(internal): codegen related update (#83)

* codegen metadata

* docs(raw responses): fix duplicate `the` (#84)

* fix(tests): make test_get_platform less flaky (#85)

* chore(internal): avoid pytest-asyncio deprecation warning (#86)

* chore(internal): codegen related update (#87)

* feat(api): api update (#88)

* feat(api): api update (#89)

* release: 1.0.0

* Fix types

---------

Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
Co-authored-by: Nate Barbettini <nate@arcade-ai.com>
Co-authored-by: Sam Partee <sam@arcade-ai.com>
  • Loading branch information
3 people authored Jan 24, 2025
1 parent c81b12e commit 3dfe590
Show file tree
Hide file tree
Showing 34 changed files with 310 additions and 170 deletions.
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.2.2"
".": "1.0.0"
}
2 changes: 1 addition & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
configured_endpoints: 12
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-16b37006524034a6b22469da3273ff0f3ce92b3f112192502449de753245d732.yml
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-b51c646e673aa07b32ac0ee1c8eebe4be70e67681ad9eccb9d7a651bc42a6e04.yml
49 changes: 49 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
# Changelog

## 1.0.0 (2025-01-24)

Full Changelog: [v0.2.2...v1.0.0](https://github.com/ArcadeAI/arcade-py/compare/v0.2.2...v1.0.0)

### Features

* **api:** api update ([#73](https://github.com/ArcadeAI/arcade-py/issues/73)) ([0f1c7ed](https://github.com/ArcadeAI/arcade-py/commit/0f1c7ed5aad99fdb3c918fbbd5513098fefa05a3))
* **api:** api update ([#75](https://github.com/ArcadeAI/arcade-py/issues/75)) ([9c9dc2d](https://github.com/ArcadeAI/arcade-py/commit/9c9dc2dc41047533f89839a0535ff13c778234ca))
* **api:** api update ([#76](https://github.com/ArcadeAI/arcade-py/issues/76)) ([641b9eb](https://github.com/ArcadeAI/arcade-py/commit/641b9eb51d3d956386f0cd55160c22d89cbcd14c))
* **api:** api update ([#82](https://github.com/ArcadeAI/arcade-py/issues/82)) ([4e66011](https://github.com/ArcadeAI/arcade-py/commit/4e6601159926eb862755e96567dc4e3726e2d97f))
* **api:** api update ([#88](https://github.com/ArcadeAI/arcade-py/issues/88)) ([a99cbe9](https://github.com/ArcadeAI/arcade-py/commit/a99cbe951cf7bcc27d86e546bdd0ad755b2246d9))
* **api:** api update ([#89](https://github.com/ArcadeAI/arcade-py/issues/89)) ([9cf3bc4](https://github.com/ArcadeAI/arcade-py/commit/9cf3bc441c103ff36c7e31a735e346078e9931bf))
* feat!: Update helper methods for client breaking changes ([#78](https://github.com/ArcadeAI/arcade-py/issues/78)) ([13cae30](https://github.com/ArcadeAI/arcade-py/commit/13cae308ab2b0c98aee51e2767cfb5fe0cb116eb))
* rc2 ([#80](https://github.com/ArcadeAI/arcade-py/issues/80)) ([bd564b9](https://github.com/ArcadeAI/arcade-py/commit/bd564b9e274df3bdcea1e2538daff9c577a0a7e3))
* Rename some class in tests ([#81](https://github.com/ArcadeAI/arcade-py/issues/81)) ([8b09459](https://github.com/ArcadeAI/arcade-py/commit/8b0945931d5b9cb4d6ae8e0fa033365b4a4617c2))


### Bug Fixes

* **client:** only call .close() when needed ([#69](https://github.com/ArcadeAI/arcade-py/issues/69)) ([b7648c0](https://github.com/ArcadeAI/arcade-py/commit/b7648c08c1c5b8bb15ffb2ca069c924506ddbfe6))
* correctly handle deserialising `cls` fields ([#72](https://github.com/ArcadeAI/arcade-py/issues/72)) ([499b981](https://github.com/ArcadeAI/arcade-py/commit/499b9816577c551d4d1a99052492aefea78a5236))
* **tests:** make test_get_platform less flaky ([#85](https://github.com/ArcadeAI/arcade-py/issues/85)) ([85da3d0](https://github.com/ArcadeAI/arcade-py/commit/85da3d0439253595655dcbf9ab4f9cb36ddda84d))


### Chores

* add missing isclass check ([#67](https://github.com/ArcadeAI/arcade-py/issues/67)) ([40bfc91](https://github.com/ArcadeAI/arcade-py/commit/40bfc912c2d9a575a157ada58b7f21f010ebb579))
* **internal:** add support for TypeAliasType ([#60](https://github.com/ArcadeAI/arcade-py/issues/60)) ([e16c393](https://github.com/ArcadeAI/arcade-py/commit/e16c393a6962d9104c066f244c883926a0bb3651))
* **internal:** avoid pytest-asyncio deprecation warning ([#86](https://github.com/ArcadeAI/arcade-py/issues/86)) ([320391e](https://github.com/ArcadeAI/arcade-py/commit/320391e2d8e195c6d4966912a7456391db8318f2))
* **internal:** bump httpx dependency ([#68](https://github.com/ArcadeAI/arcade-py/issues/68)) ([f3cab94](https://github.com/ArcadeAI/arcade-py/commit/f3cab941d45d8df5087eef3a3102eeceae84eced))
* **internal:** bump pydantic dependency ([#56](https://github.com/ArcadeAI/arcade-py/issues/56)) ([0f8197f](https://github.com/ArcadeAI/arcade-py/commit/0f8197fecb47c96cff8935f66a860ee5bd84488c))
* **internal:** bump pyright ([#59](https://github.com/ArcadeAI/arcade-py/issues/59)) ([a1a0a95](https://github.com/ArcadeAI/arcade-py/commit/a1a0a953ae35caea4ad07967caa392e9e86bd706))
* **internal:** codegen related update ([#61](https://github.com/ArcadeAI/arcade-py/issues/61)) ([87f170b](https://github.com/ArcadeAI/arcade-py/commit/87f170b0703930cf2e675c336b3b2f0f0c7eef28))
* **internal:** codegen related update ([#62](https://github.com/ArcadeAI/arcade-py/issues/62)) ([541faad](https://github.com/ArcadeAI/arcade-py/commit/541faadf245f00d7342875ec10b7cf1ecee8007b))
* **internal:** codegen related update ([#64](https://github.com/ArcadeAI/arcade-py/issues/64)) ([808aa6b](https://github.com/ArcadeAI/arcade-py/commit/808aa6b8e8b59e3bc857d6487b4e6dc601480508))
* **internal:** codegen related update ([#66](https://github.com/ArcadeAI/arcade-py/issues/66)) ([8182b3d](https://github.com/ArcadeAI/arcade-py/commit/8182b3d3106148a376534ef651ec82d128a69958))
* **internal:** codegen related update ([#71](https://github.com/ArcadeAI/arcade-py/issues/71)) ([8bf0c65](https://github.com/ArcadeAI/arcade-py/commit/8bf0c65c3d7e162716b476cdbe10969659d89085))
* **internal:** codegen related update ([#83](https://github.com/ArcadeAI/arcade-py/issues/83)) ([3d3c396](https://github.com/ArcadeAI/arcade-py/commit/3d3c396f6b97211290885afd0812f9415f8d668c))
* **internal:** codegen related update ([#87](https://github.com/ArcadeAI/arcade-py/issues/87)) ([142d2ef](https://github.com/ArcadeAI/arcade-py/commit/142d2ef3146fc7e563622a0700ff7243bcec8564))
* **internal:** fix some typos ([#65](https://github.com/ArcadeAI/arcade-py/issues/65)) ([de0fefd](https://github.com/ArcadeAI/arcade-py/commit/de0fefd92f29fd1dd7cfaf5657c12b3ddd761ac6))
* **internal:** updated imports ([#63](https://github.com/ArcadeAI/arcade-py/issues/63)) ([28ea714](https://github.com/ArcadeAI/arcade-py/commit/28ea714eede1a04b73b78a4c9447d62683acde3d))


### Documentation

* fix typos ([#70](https://github.com/ArcadeAI/arcade-py/issues/70)) ([efc448f](https://github.com/ArcadeAI/arcade-py/commit/efc448fd0f1cba242ed467e2a0480cdf1756129e))
* **raw responses:** fix duplicate `the` ([#84](https://github.com/ArcadeAI/arcade-py/issues/84)) ([19e4f04](https://github.com/ArcadeAI/arcade-py/commit/19e4f040a157de892123718adf7d027596f659e9))
* **readme:** fix http client proxies example ([#58](https://github.com/ArcadeAI/arcade-py/issues/58)) ([b8d94e8](https://github.com/ArcadeAI/arcade-py/commit/b8d94e8204e689c2957c3f72df31cedb6996c4e3))

## 0.2.2 (2024-12-04)

Full Changelog: [v0.2.1...v0.2.2](https://github.com/ArcadeAI/arcade-py/compare/v0.2.1...v0.2.2)
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ It is generated with [Stainless](https://www.stainlessapi.com/).

## Documentation

The REST API documentation can be found on [docs.arcade-ai.com](https://docs.arcade-ai.com). The full API of this library can be found in [api.md](api.md).
The REST API documentation can be found on [docs.arcade.dev](https://docs.arcade.dev). The full API of this library can be found in [api.md](api.md).

## Installation

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ or products provided by Arcade please follow the respective company's security r

### Arcade Terms and Policies

Please contact dev@arcade-ai.com for any questions or concerns regarding security of our services.
Please contact dev@arcade.dev for any questions or concerns regarding security of our services.

---

Expand Down
15 changes: 7 additions & 8 deletions api.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Shared Types

```python
from arcadepy.types import AuthAuthorizationContext, AuthAuthorizationResponse, Error
from arcadepy.types import AuthorizationContext, AuthorizationResponse, Error
```

# Auth
Expand All @@ -14,8 +14,8 @@ from arcadepy.types import AuthRequest

Methods:

- <code title="post /v1/auth/authorize">client.auth.<a href="./src/arcadepy/resources/auth.py">authorize</a>(\*\*<a href="src/arcadepy/types/auth_authorize_params.py">params</a>) -> <a href="./src/arcadepy/types/shared/auth_authorization_response.py">AuthAuthorizationResponse</a></code>
- <code title="get /v1/auth/status">client.auth.<a href="./src/arcadepy/resources/auth.py">status</a>(\*\*<a href="src/arcadepy/types/auth_status_params.py">params</a>) -> <a href="./src/arcadepy/types/shared/auth_authorization_response.py">AuthAuthorizationResponse</a></code>
- <code title="post /v1/auth/authorize">client.auth.<a href="./src/arcadepy/resources/auth.py">authorize</a>(\*\*<a href="src/arcadepy/types/auth_authorize_params.py">params</a>) -> <a href="./src/arcadepy/types/shared/auth_authorization_response.py">AuthorizationResponse</a></code>
- <code title="get /v1/auth/status">client.auth.<a href="./src/arcadepy/resources/auth.py">status</a>(\*\*<a href="src/arcadepy/types/auth_status_params.py">params</a>) -> <a href="./src/arcadepy/types/shared/auth_authorization_response.py">AuthorizationResponse</a></code>

# Health

Expand Down Expand Up @@ -52,20 +52,19 @@ from arcadepy.types import (
AuthorizeToolRequest,
ExecuteToolRequest,
ExecuteToolResponse,
ToolDefinition,
ToolExecution,
ToolExecutionAttempt,
ValueSchema,
ToolListResponse,
ToolGetResponse,
)
```

Methods:

- <code title="get /v1/tools">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">list</a>(\*\*<a href="src/arcadepy/types/tool_list_params.py">params</a>) -> <a href="./src/arcadepy/types/tool_list_response.py">SyncOffsetPage[ToolListResponse]</a></code>
- <code title="post /v1/tools/authorize">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">authorize</a>(\*\*<a href="src/arcadepy/types/tool_authorize_params.py">params</a>) -> <a href="./src/arcadepy/types/shared/auth_authorization_response.py">AuthAuthorizationResponse</a></code>
- <code title="get /v1/tools">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">list</a>(\*\*<a href="src/arcadepy/types/tool_list_params.py">params</a>) -> <a href="./src/arcadepy/types/tool_definition.py">SyncOffsetPage[ToolDefinition]</a></code>
- <code title="post /v1/tools/authorize">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">authorize</a>(\*\*<a href="src/arcadepy/types/tool_authorize_params.py">params</a>) -> <a href="./src/arcadepy/types/shared/authorization_response.py">AuthorizationResponse</a></code>
- <code title="post /v1/tools/execute">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">execute</a>(\*\*<a href="src/arcadepy/types/tool_execute_params.py">params</a>) -> <a href="./src/arcadepy/types/execute_tool_response.py">ExecuteToolResponse</a></code>
- <code title="get /v1/tools/{name}">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">get</a>(name) -> <a href="./src/arcadepy/types/tool_get_response.py">ToolGetResponse</a></code>
- <code title="get /v1/tools/{name}">client.tools.<a href="./src/arcadepy/resources/tools/tools.py">get</a>(name) -> <a href="./src/arcadepy/types/tool_definition.py">ToolDefinition</a></code>

## Scheduled

Expand Down
2 changes: 1 addition & 1 deletion mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ cache_fine_grained = True
# ```
# Changing this codegen to make mypy happy would increase complexity
# and would not be worth it.
disable_error_code = func-returns-value
disable_error_code = func-returns-value,overload-cannot-match

# https://github.com/python/mypy/issues/12162
[mypy.overrides]
Expand Down
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[project]
name = "arcadepy"
version = "0.2.2"
version = "1.0.0"
description = "The official Python library for the Arcade API"
dynamic = ["readme"]
license = "MIT"
authors = [
{ name = "Arcade", email = "dev@arcade-ai.com" },
{ name = "Arcade", email = "dev@arcade.dev" },
]
dependencies = [
"httpx>=0.23.0, <1",
Expand Down Expand Up @@ -129,6 +129,7 @@ testpaths = ["tests"]
addopts = "--tb=short"
xfail_strict = true
asyncio_mode = "auto"
asyncio_default_fixture_loop_scope = "session"
filterwarnings = [
"error"
]
Expand Down
4 changes: 2 additions & 2 deletions requirements-dev.lock
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ markdown-it-py==3.0.0
# via rich
mdurl==0.1.2
# via markdown-it-py
mypy==1.13.0
mypy==1.14.1
mypy-extensions==1.0.0
# via mypy
nest-asyncio==1.6.0
Expand All @@ -68,7 +68,7 @@ pydantic-core==2.27.1
# via pydantic
pygments==2.18.0
# via rich
pyright==1.1.390
pyright==1.1.392.post0
pytest==8.3.3
# via pytest-asyncio
pytest-asyncio==0.24.0
Expand Down
4 changes: 2 additions & 2 deletions src/arcadepy/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def __init__(
if base_url is None:
base_url = os.environ.get("ARCADE_BASE_URL")
if base_url is None:
base_url = f"https://api.arcade-ai.com"
base_url = f"https://api.arcade.dev"

super().__init__(
version=__version__,
Expand Down Expand Up @@ -261,7 +261,7 @@ def __init__(
if base_url is None:
base_url = os.environ.get("ARCADE_BASE_URL")
if base_url is None:
base_url = f"https://api.arcade-ai.com"
base_url = f"https://api.arcade.dev"

super().__init__(
version=__version__,
Expand Down
12 changes: 9 additions & 3 deletions src/arcadepy/_response.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
if cast_to and is_annotated_type(cast_to):
cast_to = extract_type_arg(cast_to, 0)

origin = get_origin(cast_to) or cast_to

if self._is_sse_stream:
if to:
if not is_stream_class_type(to):
Expand Down Expand Up @@ -195,8 +197,6 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
if cast_to == bool:
return cast(R, response.text.lower() == "true")

origin = get_origin(cast_to) or cast_to

if origin == APIResponse:
raise RuntimeError("Unexpected state - cast_to is `APIResponse`")

Expand All @@ -210,7 +210,13 @@ def _parse(self, *, to: type[_T] | None = None) -> R | _T:
raise ValueError(f"Subclasses of httpx.Response cannot be passed to `cast_to`")
return cast(R, response)

if inspect.isclass(origin) and not issubclass(origin, BaseModel) and issubclass(origin, pydantic.BaseModel):
if (
inspect.isclass(
origin # pyright: ignore[reportUnknownArgumentType]
)
and not issubclass(origin, BaseModel)
and issubclass(origin, pydantic.BaseModel)
):
raise TypeError("Pydantic models must subclass our base model type, e.g. `from arcadepy import BaseModel`")

if (
Expand Down
2 changes: 1 addition & 1 deletion src/arcadepy/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "arcadepy"
__version__ = "0.2.2" # x-release-please-version
__version__ = "1.0.0" # x-release-please-version
Loading

0 comments on commit 3dfe590

Please sign in to comment.