Skip to content

release: 1.4.0 #129

New issue

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

Open
wants to merge 39 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
52f818d
docs: revise readme docs about nested params (#128)
stainless-app[bot] Mar 11, 2025
8ea4389
test: add DEFER_PYDANTIC_BUILD=false flag to tests (#130)
stainless-app[bot] Mar 11, 2025
4a0f409
chore(internal): remove extra empty newlines (#131)
stainless-app[bot] Mar 14, 2025
85ff426
chore(internal): codegen related update (#132)
stainless-app[bot] Mar 15, 2025
0068d95
chore(internal): bump rye to 0.44.0 (#133)
stainless-app[bot] Mar 15, 2025
2e8aa54
fix(types): handle more discriminated union shapes (#134)
stainless-app[bot] Mar 15, 2025
fd63bd1
fix(ci): ensure pip is always available (#135)
stainless-app[bot] Mar 17, 2025
bd4bfc8
fix(ci): remove publishing patch (#136)
stainless-app[bot] Mar 17, 2025
dea5dac
codegen metadata
stainless-app[bot] Mar 21, 2025
7ce1f6a
feat(api): api update (#137)
stainless-app[bot] Mar 26, 2025
cb71d87
feat(api): api update (#138)
stainless-app[bot] Mar 27, 2025
9d4474d
codegen metadata
stainless-app[bot] Mar 27, 2025
9a0ef5a
feat(api): api update (#139)
stainless-app[bot] Apr 1, 2025
850838e
chore(internal): remove trailing character (#140)
stainless-app[bot] Apr 4, 2025
fe028d0
docs: swap examples used in readme (#141)
stainless-app[bot] Apr 5, 2025
af27cc2
chore(internal): slight transform perf improvement (#142)
stainless-app[bot] Apr 9, 2025
02cc295
chore(internal): expand CI branch coverage
stainless-app[bot] Apr 10, 2025
f6d1892
chore(internal): reduce CI branch coverage
stainless-app[bot] Apr 10, 2025
af97129
fix(perf): skip traversing types for NotGiven values
stainless-app[bot] Apr 12, 2025
c544b05
fix(perf): optimize some hot paths
stainless-app[bot] Apr 12, 2025
950f294
chore(internal): update pyright settings
stainless-app[bot] Apr 15, 2025
4e548b8
chore(client): minor internal fixes
stainless-app[bot] Apr 15, 2025
7290dc8
feat(api): api update
stainless-app[bot] Apr 16, 2025
3133b01
feat(api): api update
stainless-app[bot] Apr 17, 2025
6681c14
chore(internal): bump pyright version
stainless-app[bot] Apr 17, 2025
1a4a717
chore(internal): base client updates
stainless-app[bot] Apr 17, 2025
ced3495
chore(internal): update models test
stainless-app[bot] Apr 19, 2025
fb62a65
feat(api): api update
stainless-app[bot] Apr 21, 2025
467dfb2
chore(ci): add timeout thresholds for CI jobs
stainless-app[bot] Apr 23, 2025
772a87c
chore(internal): import reformatting
stainless-app[bot] Apr 23, 2025
1f6d1f3
chore(internal): fix list file params
stainless-app[bot] Apr 23, 2025
709debf
chore(internal): refactor retries to not use recursion
stainless-app[bot] Apr 23, 2025
be8bb32
fix(pydantic v1): more robust ModelField.annotation check
stainless-app[bot] Apr 23, 2025
b551ba9
chore(internal): codegen related update
stainless-app[bot] Apr 24, 2025
eb51e05
chore(ci): only use depot for staging repos
stainless-app[bot] Apr 24, 2025
b562715
chore: broadly detect json family of content-type headers
stainless-app[bot] Apr 24, 2025
db1894b
feat(api): api update
stainless-app[bot] Apr 25, 2025
8ebf770
feat(api): api update
stainless-app[bot] Apr 25, 2025
d0aee1c
release: 1.4.0
stainless-app[bot] Apr 25, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

USER vscode

RUN curl -sSf https://rye.astral.sh/get | RYE_VERSION="0.35.0" RYE_INSTALL_OPTION="--yes" bash
RUN curl -sSf https://rye.astral.sh/get | RYE_VERSION="0.44.0" RYE_INSTALL_OPTION="--yes" bash
ENV PATH=/home/vscode/.rye/shims:$PATH

RUN echo "[[ -d .venv ]] && source .venv/bin/activate || export PATH=\$PATH" >> /home/vscode/.bashrc
24 changes: 12 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
- next
branches-ignore:
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'

jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ubuntu-latest

runs-on: ${{ github.repository == 'stainless-sdks/arcade-engine-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4

Expand All @@ -21,7 +21,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: '0.35.0'
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Install dependencies
Expand All @@ -31,9 +31,9 @@ jobs:
run: ./scripts/lint

test:
timeout-minutes: 10
name: test
runs-on: ubuntu-latest

runs-on: ${{ github.repository == 'stainless-sdks/arcade-engine-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4

Expand All @@ -42,7 +42,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: '0.35.0'
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Bootstrap
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
curl -sSf https://rye.astral.sh/get | bash
echo "$HOME/.rye/shims" >> $GITHUB_PATH
env:
RYE_VERSION: '0.35.0'
RYE_VERSION: '0.44.0'
RYE_INSTALL_OPTION: '--yes'

- name: Publish to PyPI
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "1.3.1"
".": "1.4.0"
}
4 changes: 3 additions & 1 deletion .stats.yml
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
configured_endpoints: 19
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-3c7443a5e05ad4ade2ac36325d1def05cb3842bb53a180fc76feb565ea875cc7.yml
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/arcade-ai%2Farcade-engine-4ab7584c83c5c3a70e1dbe129614563b90a0cca67a62e77a394964af6d495187.yml
openapi_spec_hash: 28328429c60e98b6713f717951688ba9
config_hash: d86655f9af7ae4c4c444d9a16685a7c5
54 changes: 54 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,59 @@
# Changelog

## 1.4.0 (2025-04-25)

Full Changelog: [v1.3.1...v1.4.0](https://github.com/ArcadeAI/arcade-py/compare/v1.3.1...v1.4.0)

### Features

* **api:** api update ([8ebf770](https://github.com/ArcadeAI/arcade-py/commit/8ebf77068b377450788bd7436bd3ed264a195805))
* **api:** api update ([db1894b](https://github.com/ArcadeAI/arcade-py/commit/db1894bccf5cfc6078133a0cbceeefc25f473532))
* **api:** api update ([fb62a65](https://github.com/ArcadeAI/arcade-py/commit/fb62a6583c4c3af75eb3789e80d79f0306a5c7ec))
* **api:** api update ([3133b01](https://github.com/ArcadeAI/arcade-py/commit/3133b01155fe75e7cfd14315ff8ab8fbabfe4ab1))
* **api:** api update ([7290dc8](https://github.com/ArcadeAI/arcade-py/commit/7290dc846a4b31d4eb5836c8d997561cacb9f2dd))
* **api:** api update ([#137](https://github.com/ArcadeAI/arcade-py/issues/137)) ([7ce1f6a](https://github.com/ArcadeAI/arcade-py/commit/7ce1f6aee46e2d8763c194a88f28428df9eb6d5f))
* **api:** api update ([#138](https://github.com/ArcadeAI/arcade-py/issues/138)) ([cb71d87](https://github.com/ArcadeAI/arcade-py/commit/cb71d87280889f8d1200be0d069a088560c1bc8b))
* **api:** api update ([#139](https://github.com/ArcadeAI/arcade-py/issues/139)) ([9a0ef5a](https://github.com/ArcadeAI/arcade-py/commit/9a0ef5a37cd20950fde494f690dd403715029243))


### Bug Fixes

* **ci:** ensure pip is always available ([#135](https://github.com/ArcadeAI/arcade-py/issues/135)) ([fd63bd1](https://github.com/ArcadeAI/arcade-py/commit/fd63bd10897027f3a2ea9e82043943213c1f897f))
* **ci:** remove publishing patch ([#136](https://github.com/ArcadeAI/arcade-py/issues/136)) ([bd4bfc8](https://github.com/ArcadeAI/arcade-py/commit/bd4bfc8d40a1a59ac65e862eb6f0e04e0184c75d))
* **perf:** optimize some hot paths ([c544b05](https://github.com/ArcadeAI/arcade-py/commit/c544b05d5afac34fe9119b791add080567f0e4cf))
* **perf:** skip traversing types for NotGiven values ([af97129](https://github.com/ArcadeAI/arcade-py/commit/af97129e7ce0dc09566e4166cbaaa2b6a2246864))
* **pydantic v1:** more robust ModelField.annotation check ([be8bb32](https://github.com/ArcadeAI/arcade-py/commit/be8bb32f9fab2a893fd6b11649c4f48b77fbd79d))
* **types:** handle more discriminated union shapes ([#134](https://github.com/ArcadeAI/arcade-py/issues/134)) ([2e8aa54](https://github.com/ArcadeAI/arcade-py/commit/2e8aa5469824223540f3c1f970662bf0ed5f62ac))


### Chores

* broadly detect json family of content-type headers ([b562715](https://github.com/ArcadeAI/arcade-py/commit/b562715e721a8aa1b53414c989fd573602e2197a))
* **ci:** add timeout thresholds for CI jobs ([467dfb2](https://github.com/ArcadeAI/arcade-py/commit/467dfb2ae0da1a048b9055630efa9a40126060dd))
* **ci:** only use depot for staging repos ([eb51e05](https://github.com/ArcadeAI/arcade-py/commit/eb51e05c0d9095ddf0cda7b97984254b03b62be1))
* **client:** minor internal fixes ([4e548b8](https://github.com/ArcadeAI/arcade-py/commit/4e548b86970ec4af361c474223255a8c847c4bff))
* **internal:** base client updates ([1a4a717](https://github.com/ArcadeAI/arcade-py/commit/1a4a717957f74170069bfff0a415ddc38e66c5ef))
* **internal:** bump pyright version ([6681c14](https://github.com/ArcadeAI/arcade-py/commit/6681c14818b989c4968408fe7432414c326d9038))
* **internal:** bump rye to 0.44.0 ([#133](https://github.com/ArcadeAI/arcade-py/issues/133)) ([0068d95](https://github.com/ArcadeAI/arcade-py/commit/0068d951be52d203c558d6a241feca26eb1f3613))
* **internal:** codegen related update ([b551ba9](https://github.com/ArcadeAI/arcade-py/commit/b551ba99820f93fdecb24663e83dff11897f8f62))
* **internal:** codegen related update ([#132](https://github.com/ArcadeAI/arcade-py/issues/132)) ([85ff426](https://github.com/ArcadeAI/arcade-py/commit/85ff426032303355d1d8c331813aaeeeaef0f69d))
* **internal:** expand CI branch coverage ([02cc295](https://github.com/ArcadeAI/arcade-py/commit/02cc2952f5b3bc36645d1da528f46ac65b681fd5))
* **internal:** fix list file params ([1f6d1f3](https://github.com/ArcadeAI/arcade-py/commit/1f6d1f33d2323d2d0dec2ccfa9e21cf0b208bdd1))
* **internal:** import reformatting ([772a87c](https://github.com/ArcadeAI/arcade-py/commit/772a87cd938e2d0f008cc54f3843ca4dad567225))
* **internal:** reduce CI branch coverage ([f6d1892](https://github.com/ArcadeAI/arcade-py/commit/f6d1892c845ee924614c174ef5bd24241b111c8c))
* **internal:** refactor retries to not use recursion ([709debf](https://github.com/ArcadeAI/arcade-py/commit/709debf17814c59c6048b996195090ee677119ed))
* **internal:** remove extra empty newlines ([#131](https://github.com/ArcadeAI/arcade-py/issues/131)) ([4a0f409](https://github.com/ArcadeAI/arcade-py/commit/4a0f4094477d25a8c213f07e33f42296864d2866))
* **internal:** remove trailing character ([#140](https://github.com/ArcadeAI/arcade-py/issues/140)) ([850838e](https://github.com/ArcadeAI/arcade-py/commit/850838edc42110c22d2c4342e4340f8322fb0e86))
* **internal:** slight transform perf improvement ([#142](https://github.com/ArcadeAI/arcade-py/issues/142)) ([af27cc2](https://github.com/ArcadeAI/arcade-py/commit/af27cc24050a658f27d49909b0596b41309c1326))
* **internal:** update models test ([ced3495](https://github.com/ArcadeAI/arcade-py/commit/ced349577a3c0c5b033ac53ebd239f333bc13fdf))
* **internal:** update pyright settings ([950f294](https://github.com/ArcadeAI/arcade-py/commit/950f294ea47c8aa6ac423b6ffd2cec37278a4b4b))


### Documentation

* revise readme docs about nested params ([#128](https://github.com/ArcadeAI/arcade-py/issues/128)) ([52f818d](https://github.com/ArcadeAI/arcade-py/commit/52f818d5bdee294add53ebc8257c6d3f48cbdd65))
* swap examples used in readme ([#141](https://github.com/ArcadeAI/arcade-py/issues/141)) ([fe028d0](https://github.com/ArcadeAI/arcade-py/commit/fe028d08aa5db60e540bca6f0635911ffcb79486))

## 1.3.1 (2025-03-11)

Full Changelog: [v1.3.0...v1.3.1](https://github.com/ArcadeAI/arcade-py/compare/v1.3.0...v1.3.1)
Expand Down
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,21 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ

Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.

## Nested params

Nested parameters are dictionaries, typed using `TypedDict`, for example:

```python
from arcadepy import Arcade

client = Arcade()

chat_response = client.chat.completions.create(
response_format={"type": "json_object"},
)
print(chat_response.response_format)
```

## Handling errors

When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `arcadepy.APIConnectionError` is raised.
Expand Down
2 changes: 1 addition & 1 deletion api.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ 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_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_definition.py">ToolDefinition</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_params.py">params</a>) -> <a href="./src/arcadepy/types/tool_definition.py">ToolDefinition</a></code>

## Scheduled

Expand Down
3 changes: 0 additions & 3 deletions bin/publish-pypi
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,4 @@
set -eux
mkdir -p dist
rye build --clean
# Patching importlib-metadata version until upstream library version is updated
# https://github.com/pypa/twine/issues/977#issuecomment-2189800841
"$HOME/.rye/self/bin/python3" -m pip install 'importlib-metadata==7.2.1'
rye publish --yes --token=$PYPI_TOKEN
9 changes: 4 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "arcadepy"
version = "1.3.1"
version = "1.4.0"
description = "The official Python library for the Arcade API"
dynamic = ["readme"]
license = "MIT"
Expand Down Expand Up @@ -38,12 +38,11 @@ Homepage = "https://github.com/ArcadeAI/arcade-py"
Repository = "https://github.com/ArcadeAI/arcade-py"



[tool.rye]
managed = true
# version pins are in requirements-dev.lock
dev-dependencies = [
"pyright>=1.1.359",
"pyright==1.1.399",
"mypy",
"respx",
"pytest",
Expand Down Expand Up @@ -87,7 +86,7 @@ typecheck = { chain = [
"typecheck:mypy" = "mypy ."

[build-system]
requires = ["hatchling", "hatch-fancy-pypi-readme"]
requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
build-backend = "hatchling.build"

[tool.hatch.build]
Expand Down Expand Up @@ -148,11 +147,11 @@ exclude = [
]

reportImplicitOverride = true
reportOverlappingOverload = false

reportImportCycles = false
reportPrivateUsage = false


[tool.ruff]
line-length = 120
output-format = "grouped"
Expand Down
3 changes: 2 additions & 1 deletion requirements-dev.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# all-features: true
# with-sources: false
# generate-hashes: false
# universal: false

-e file:.
annotated-types==0.6.0
Expand Down Expand Up @@ -68,7 +69,7 @@ pydantic-core==2.27.1
# via pydantic
pygments==2.18.0
# via rich
pyright==1.1.392.post0
pyright==1.1.399
pytest==8.3.3
# via pytest-asyncio
pytest-asyncio==0.24.0
Expand Down
1 change: 1 addition & 0 deletions requirements.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
# all-features: true
# with-sources: false
# generate-hashes: false
# universal: false

-e file:.
annotated-types==0.6.0
Expand Down
2 changes: 2 additions & 0 deletions scripts/test
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ else
echo
fi

export DEFER_PYDANTIC_BUILD=false

echo "==> Running tests"
rye run pytest "$@"

Expand Down
Loading