diff --git a/.github/workflows/stlc-promote.yml b/.github/workflows/stlc-promote.yml deleted file mode 100644 index f5cfa70..0000000 --- a/.github/workflows/stlc-promote.yml +++ /dev/null @@ -1,88 +0,0 @@ -name: Promote SDKs - -on: - workflow_dispatch: - push: - branches: [main] - -permissions: - contents: read - -jobs: - promote: - runs-on: ubuntu-latest - if: github.repository == 'autorenderhq/autorender-python-staging' - env: - PRODUCTION_REPO: autorenderhq/autorender-python - GH_TOKEN: ${{ secrets.PRODUCTION_REPO_TOKEN }} - steps: - - name: Check out staging - uses: actions/checkout@v4 - with: - fetch-depth: 0 - persist-credentials: false - - - name: Fetch production main - run: | - git remote add production \ - "https://x-access-token:${GH_TOKEN}@github.com/${PRODUCTION_REPO}.git" - git fetch production main - - - name: Check if production is already in sync - id: diff - run: | - MERGED=$(git merge-tree --write-tree production/main origin/main 2>/dev/null) || MERGED=conflict - PRODUCTION_TREE=$(git rev-parse 'production/main^{tree}') - if [ "$MERGED" = "$PRODUCTION_TREE" ]; then - echo "Production already contains staging content. Nothing to release." - echo "synced=true" >> "$GITHUB_OUTPUT" - else - echo "synced=false" >> "$GITHUB_OUTPUT" - fi - - - name: Push staging main to the release branch on production - if: steps.diff.outputs.synced == 'false' - run: | - git push production origin/main:refs/heads/stainless/release --force - - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git checkout -b stlc-patch-release origin/main - - # Strip staging-only workflows — must not exist in production - git rm -f .github/workflows/stlc-promote.yml \ - .github/workflows/stlc-sync-from-production.yml 2>/dev/null || true - - # Overlay files production owns so stlc regeneration never causes conflicts - for f in CHANGELOG.md pyproject.toml; do - if git ls-tree production/main -- "$f" | grep -q .; then - PROD_BLOB=$(git ls-tree production/main -- "$f" | awk '{print $3}') - STAGE_BLOB=$(git ls-tree HEAD -- "$f" | awk '{print $3}') - if [ "$PROD_BLOB" != "$STAGE_BLOB" ]; then - git checkout production/main -- "$f" - fi - fi - done - - git commit -m "chore: strip internal workflows; preserve production-managed files" || true - git push production HEAD:refs/heads/stainless/release --force - - - name: Open or update the release PR on production - if: steps.diff.outputs.synced == 'false' - run: | - EXISTING_PR=$(gh pr list \ - --repo "${PRODUCTION_REPO}" \ - --head stainless/release \ - --state open \ - --json number \ - --jq '.[0].number') - if [ -z "${EXISTING_PR}" ]; then - gh pr create \ - --repo "${PRODUCTION_REPO}" \ - --base main \ - --head stainless/release \ - --title "Release SDK updates" \ - --body "$(git log --oneline production/main..origin/main)" - else - echo "Release PR #${EXISTING_PR} already exists. Force-push has updated it." - fi diff --git a/.github/workflows/stlc-sync-from-production.yml b/.github/workflows/stlc-sync-from-production.yml deleted file mode 100644 index 9b5f3dc..0000000 --- a/.github/workflows/stlc-sync-from-production.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Sync from production - -on: - schedule: - - cron: '0 */6 * * *' - workflow_dispatch: - -permissions: - contents: write - pull-requests: write - -jobs: - sync: - runs-on: ubuntu-latest - if: github.repository == 'autorenderhq/autorender-python-staging' - env: - PRODUCTION_REPO: autorenderhq/autorender-python - steps: - - name: Check out staging - uses: actions/checkout@v4 - with: - fetch-depth: 0 - persist-credentials: false - - - name: Fetch production main - env: - PRODUCTION_REPO_TOKEN: ${{ secrets.PRODUCTION_REPO_TOKEN }} - run: | - git remote add production \ - "https://x-access-token:${PRODUCTION_REPO_TOKEN}@github.com/${PRODUCTION_REPO}.git" - git fetch production main - - - name: Check if staging is behind production - id: check - run: | - MERGED=$(git merge-tree --write-tree origin/main production/main 2>/dev/null) || MERGED=conflict - STAGING_TREE=$(git rev-parse 'origin/main^{tree}') - if [ "$MERGED" = "$STAGING_TREE" ] || [ "$MERGED" = "conflict" ]; then - echo "Staging is up to date with production." - echo "needs_sync=false" >> "$GITHUB_OUTPUT" - else - echo "Production has commits not in staging. Back-sync needed." - echo "needs_sync=true" >> "$GITHUB_OUTPUT" - fi - - - name: Create back-sync branch and PR - if: steps.check.outputs.needs_sync == 'true' - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - git checkout -b stlc/from-prod - git merge production/main --no-edit -m "chore: sync release commits from production" - git remote set-url origin \ - "https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" - git push origin stlc/from-prod --force - - EXISTING_PR=$(gh pr list \ - --repo "${{ github.repository }}" \ - --head stlc/from-prod \ - --state open \ - --json number \ - --jq '.[0].number') - if [ -z "${EXISTING_PR}" ]; then - gh pr create \ - --repo "${{ github.repository }}" \ - --base main \ - --head stlc/from-prod \ - --title "chore: sync release commits from production" \ - --body "Pulls version bump and changelog commits from production back to staging so the next stlc build reseals cleanly." - else - echo "Back-sync PR #${EXISTING_PR} already exists." - fi diff --git a/CHANGELOG.md b/CHANGELOG.md index 2139a5b..0f6c4a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,102 @@ # Changelog +## [0.2.2](https://github.com/autorenderhq/autorender-python/compare/v0.2.1...v0.2.2) (2026-06-12) + + +### Bug Fixes + +* preserve production-managed files in release branch ([df62271](https://github.com/autorenderhq/autorender-python/commit/df62271022fe248a89d687cf75b72ad7ad04f533)) +* strip internal workflows from production release branch ([eff96da](https://github.com/autorenderhq/autorender-python/commit/eff96da6776b37be28cba791ab8c79b37cea04b0)) +* update promote workflow and add back-sync from production ([480e3d3](https://github.com/autorenderhq/autorender-python/commit/480e3d33cb70eb0064ff352e15197d3f628936a8)) +* use blob comparison in overlay; add language-specific version files ([8201cbf](https://github.com/autorenderhq/autorender-python/commit/8201cbff752bb9df08d4f606fb593a7cebebb06a)) +* use persist-credentials: false in sync workflow ([6f8e8a0](https://github.com/autorenderhq/autorender-python/commit/6f8e8a0ffc5f06760479249a630338387c8c61e2)) + + +### Chores + +* preserve production-managed files ([a4eebf3](https://github.com/autorenderhq/autorender-python/commit/a4eebf3483db6c5fefb8ccfe6e187812894902ce)) +* remove staging-only workflows from production ([6fd7d39](https://github.com/autorenderhq/autorender-python/commit/6fd7d39d32178cfeac47a6534a82be7c1809e131)) +* remove staging-only workflows from production ([53464a4](https://github.com/autorenderhq/autorender-python/commit/53464a4f6f535ebce37aae6089d230c7bd782235)) +* strip internal workflows; preserve production-managed files ([51d2e56](https://github.com/autorenderhq/autorender-python/commit/51d2e5686fe80673ce44c6be53d90c6bbb43f02a)) + + +### Documentation + +* add auto-generated notice to CONTRIBUTING.md ([88b420c](https://github.com/autorenderhq/autorender-python/commit/88b420c07c39698625b03dce06a45bdcf8076816)) + +## [0.2.1](https://github.com/autorenderhq/autorender-python/compare/v0.2.0...v0.2.1) (2026-05-25) + + +### Bug Fixes + +* publish to correct PyPI package name (autorender) ([5bb8f32](https://github.com/autorenderhq/autorender-python/commit/5bb8f32faae2a3f48b5696b8517b4a6dfd686163)) + +## [0.2.0](https://github.com/autorenderhq/autorender-python/compare/v0.1.0...v0.2.0) (2026-05-25) + + +### Features + +* add test CI job ([2c25e3a](https://github.com/autorenderhq/autorender-python/commit/2c25e3ad8ffe7ff44d5e7781e37de7c2598550df)) +* initial stlc build ([0bdb709](https://github.com/autorenderhq/autorender-python/commit/0bdb709b1d8e670a795f867f71fab9c3ef6be539)) + + +### Bug Fixes + +* install rye for Python SDK bootstrap ([5f089bf](https://github.com/autorenderhq/autorender-python/commit/5f089bf37c183b4d41b1eb1787c5b7390d93b0f2)) +* **python:** rename pagination field has_next_page -> has_next to fix pyright lint ([729d204](https://github.com/autorenderhq/autorender-python/commit/729d20471bdfe545acdea2e443cfb2b8436ba08a)) + + +### Chores + +* trigger release-please ([8db5acc](https://github.com/autorenderhq/autorender-python/commit/8db5acc865fce568f3ebb33c2e2536d9e84a41a6)) +* update stlc custom-code tracking files ([505f95e](https://github.com/autorenderhq/autorender-python/commit/505f95e9e6b66928d05ffa5b630102fdfe3b5e3e)) + +## [0.1.0](https://github.com/autorenderhq/autorender-python/compare/v0.0.1...v0.1.0) (2026-05-25) + + +### Features + +* add test CI job ([2c25e3a](https://github.com/autorenderhq/autorender-python/commit/2c25e3ad8ffe7ff44d5e7781e37de7c2598550df)) +* **api:** api update ([84d1942](https://github.com/autorenderhq/autorender-python/commit/84d19422bdd7a80d8c0d52fe6bb0e989f7b2abe7)) +* **api:** api update ([9dc8482](https://github.com/autorenderhq/autorender-python/commit/9dc848263fbf6509dd3e84a3a7963a897d14991b)) +* **api:** api update ([04c1163](https://github.com/autorenderhq/autorender-python/commit/04c116350cc7a2f5f288a8fd9febd020083cf536)) +* **api:** api update ([b4d6dbe](https://github.com/autorenderhq/autorender-python/commit/b4d6dbee14ac3e753968ce90388eaf01d2af4b94)) +* **api:** api update ([3932736](https://github.com/autorenderhq/autorender-python/commit/393273609afc67cc8b30d33bb27861edb1e20988)) +* **api:** api update ([58346bd](https://github.com/autorenderhq/autorender-python/commit/58346bdeba4b11a33fd1e63c69fceb432424bdf0)) +* **api:** api update ([7fdb60a](https://github.com/autorenderhq/autorender-python/commit/7fdb60a62af1ae9fd716c3a9939d2cc128bd4a85)) +* **api:** api update ([79c95b0](https://github.com/autorenderhq/autorender-python/commit/79c95b0a55d59e214f0b00936a5b517c0f66ca13)) +* **api:** api update ([b43e6a1](https://github.com/autorenderhq/autorender-python/commit/b43e6a1b4b157808d3ef2606552df4e68c1524e7)) +* **api:** api update ([658511c](https://github.com/autorenderhq/autorender-python/commit/658511ca294a346646139b0c4c5e0f4e151115e4)) +* initial stlc build ([0bdb709](https://github.com/autorenderhq/autorender-python/commit/0bdb709b1d8e670a795f867f71fab9c3ef6be539)) +* **internal/types:** support eagerly validating pydantic iterators ([477052f](https://github.com/autorenderhq/autorender-python/commit/477052fa9cd1ff89c96ee4b8febf010851c6501e)) +* support setting headers via env ([749df21](https://github.com/autorenderhq/autorender-python/commit/749df21f7ac657d44cb297707a5ec2506bcb0df9)) + + +### Bug Fixes + +* **client:** add missing f-string prefix in file type error message ([0f93e15](https://github.com/autorenderhq/autorender-python/commit/0f93e15723c120a2f409cf2884d085f7966d5d0c)) +* **examples:** use timestamp names and correct response shape in files.py ([b4d13a7](https://github.com/autorenderhq/autorender-python/commit/b4d13a7d72784c4448424db46495c985276773d3)) +* install rye for Python SDK bootstrap ([5f089bf](https://github.com/autorenderhq/autorender-python/commit/5f089bf37c183b4d41b1eb1787c5b7390d93b0f2)) +* **pagination:** resolve pyright incompatible override for has_next_page ([5cf6e56](https://github.com/autorenderhq/autorender-python/commit/5cf6e565ac0aeecdc5e59b887b1e008892eed1ce)) +* **python:** rename pagination field has_next_page -> has_next to fix pyright lint ([729d204](https://github.com/autorenderhq/autorender-python/commit/729d20471bdfe545acdea2e443cfb2b8436ba08a)) +* strip Content-Type header for body-less requests; add examples ([c3591d0](https://github.com/autorenderhq/autorender-python/commit/c3591d02910ded15e21a7ed7da402bf149f46857)) +* use correct field name format for multipart file arrays ([f968ef9](https://github.com/autorenderhq/autorender-python/commit/f968ef95330967c6b888ea3fc89c85f12ee926d1)) + + +### Performance Improvements + +* **client:** optimize file structure copying in multipart requests ([498d621](https://github.com/autorenderhq/autorender-python/commit/498d621cc46637650c03f1ed9d00749dbcab9c99)) + + +### Chores + +* **internal:** more robust bootstrap script ([798e8b7](https://github.com/autorenderhq/autorender-python/commit/798e8b79c22e0173d4f30a80924dcad627cc838f)) +* **internal:** reformat pyproject.toml ([fcc4169](https://github.com/autorenderhq/autorender-python/commit/fcc4169f137c6f4e6305bd0b8133658ad5337aa6)) +* remove examples from SDK (moved to stainless-examples runner) ([12a383e](https://github.com/autorenderhq/autorender-python/commit/12a383e16ab6e856905dd8ce8f3f666ff914c43c)) +* **tests:** bump steady to v0.22.1 ([30a0e81](https://github.com/autorenderhq/autorender-python/commit/30a0e8184adf8271f879cb9e5175ed52404a0043)) +* update SDK settings ([aead4ee](https://github.com/autorenderhq/autorender-python/commit/aead4ee8dd9504134612b1845cd18576b7c58848)) +* update stlc custom-code tracking files ([505f95e](https://github.com/autorenderhq/autorender-python/commit/505f95e9e6b66928d05ffa5b630102fdfe3b5e3e)) + ## 0.1.0 (2026-05-15) Full Changelog: [v0.0.1...v0.1.0](https://github.com/autorenderhq/autorender-python/compare/v0.0.1...v0.1.0) diff --git a/pyproject.toml b/pyproject.toml index c70ad1a..d086c35 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "autorender" -version = "0.0.1" +version = "0.2.2" description = "The official Python library for the autorender API" dynamic = ["readme"] license = "MIT" diff --git a/scripts/mock b/scripts/mock index c7c4aa6..80196ab 100755 --- a/scripts/mock +++ b/scripts/mock @@ -11,7 +11,7 @@ elif [ -n "$STAINLESS_OPENAPI_SPEC_URL" ]; then URL="$STAINLESS_OPENAPI_SPEC_URL" else # Embedded OpenAPI spec (base64-encoded, gzipped) - EMBEDDED_SPEC="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" + EMBEDDED_SPEC="H4sIAAAAAAAAA+1dW3PbuhH+KxhOH6ypLpTsnBNrOk19kqZNm0k8cfJSSdXA4krCMQnwAKBs1dZ/7+BCieJFF1t2nBh6sCUQxGWxWHzfYkHeeiwGimPidb3jpt/0vbpH6Jh53VtPEhmC1/XOEsm+AA2Ao/PkMiQjdHb+wat7AYgRJ7EkjHpd78vfL76qC2jMOErikOGA0EkdRZjiif6GaYAE8BmhExRBQDDCQoAUTXQWhghoEDNCpUAc/kgIB4SpLu8K5mhGMJJTQDcNHJOGSpkCVg1iHJ0lcso4+R9WDemi3wBz4OgvVzD/a9OrezPgwrSwbfs3YlTikVRdpDjK9fAiiWPGpVf3IMIk9LqeMCl/w4lkXGdqEuYtFqqgKGYUqBSqLAGjhBM5vxhNIQKdhGPyb5hrWc5jVZFNqKcVL/ujxe51PdOtgnBTOSjZxmYMlvJqoreYIhwKhi4BxZzNSACBFtkG0egOCNVUrJqqfsVYTnWzWzgmrVm7FSWhJDHmsiUk5lpgMRP6P4uB61I/BF7XW2a80PnqnkiiCPO51/V0ClpmsJrh1T2JJ8Lr9rxvOkF4g3yfP1AiCQ6JAIQLBSABQg2rVioOIyAz1XdoCDKhECCd9duXj0KpgFIoEPI3FuixsPoVeF3JEzD6AFSaAYtDMtIda/0uVDNurZAyg8guf4eR6mXMlRgkMYM9JiEMzbguswrJCZ14dS8i9CPQiZx63bYSPPlfNhuhEiZ62CNCSZREXrdd9yJ8Y76f+v6v7dPTzquTX0/801NVwJjxCMsdahqzUClUIeMiHYFbD9P557HX7a20lHOsNVJCJEpuXdQLSYNF3YtA4gDLUlHhICBKqjg8XxPaTUNITGgIQjQwnZsh0XMrEZJFQxKUNp1jGrBoGHMYk5tMjkvGQsBU906GQwEjRgPxAEkv6hl16WXG2I7hciQGi4WeUdYIaHGm0783WAxUOSJmVJh+d/y2+reu8RdWp0ccsITAO5hq2slSJc0kqbigZtFwu6428mLbrLsRocPHKVmVmh3tbYqcNznnKwNycZxaGmVF6ohRQDFwbVjUjXATEw7DtTn4wA7kW/ONkhskSQRC4ihG11OgehFMTZ9pgtADpdeE4dXaYrPq5TXjVyLGI6jSgJiFZDTfwcZttyY725AdjOCew19lFAuz2PTCtrkwk6us1RiHAvJlZaaWnUjZaZNX9lRFs/qzNnq5sVqOzOZG5TUnb0iMbTrx/aLN+UBnOCQBsmvkAW1OMhqBEOXGGThn5Wqkr7xlQckqqpcYIfCk7FpuWEwF+0ktL4pUaiWW+hvFFlod0kxXS+VR+73WmbTTxyXLk2QcTwCFJCISwc0IIDjoKvXDaUyFRKwMO6dFGX7B8vEEeB/9UUKQfH42lsAvCnCJJtEl8ApZrYrdT2plMjAie1VmoS6Az4CjtM6Xq2xZOaTyKpmmH7VkNdEeAUoonmES4ssQXrLwqoWyMJ96CetV/D4ECTsQ37dp1iz3TRPvRX/fE7oj+ZUJt8BQOSgCpEiK4sSMB0/HfjdRjAIprSAc1dDqEOzKSBqlg3pAu1sBqg1ZZPdD5OWOBOulKWdxPCyvigTmDpqERuXtyB8Md0+BTKbyUat4Oq6gioxgaFJLrk6xKJf//gQo6zCpkNyBHCgVpWd0VVMiq61bcxMxjDmZYZkVUWYJIGIYJGY+VeSwzGRY7sNKB8cLsISGosCaOUkJXM3k/x696R696fb7Qb8f9Donv7we9PyT14M7m9I+fvXr6aDX+SVN8Xvqas9fZfX9u0w23681/E6jc6ry354sGqYCX2d5Pbhr9/zOoNYwSY3TwV2v3Rn0+8Hdcc9vD2p3+sLJL6eDu3a7NJtv8nSyF9vqSqfnN14ParXaV1OlKi9NPx7Uuj2/8UolHL3pZr/3+81+P/hz7U3tzdGb7n9qtT9pC6At3FCwhI/KlVdOk+iSar922fp8I4EaZ/k226y5aWrgCqTVesi0qTKGKTVDS2OxZN2r2bbk48t5kdXirI7mNGxNnfJiyHY628U9OVJ+8XCU2lHqvSi14zb7cJs1RG4mtGhxiNgmNG7yfTG5skDcJClP7h4A/B27pnrSY4Oox5xFCCO+KktvaCrMjYhEhKLVNuLT4W7TnGEp+MsspAknhU3Ff379et5Sfy50byRDY5Cj6Qq6Wgi6ftfnGXBOAjBCsZa+Ak8U734HQhKqu4pMHmRXiUo8tV7AVzwRSGMrtfc7YlGEGwJizJX9R8uOH2pPq7DRtN4aNZQtrdFKfDiOQTEyfQ8SyVjdU9KzzXtbWVS4Xtu/Lj5/sl1EbIzSjGipGkXsD5dTxq52Uo/8PM5o1iHp16H3thz5cuTLkS9Hvhz5+unJ1967mQoijDEJIUCBRXMvGWXvIJ0XTNBO2iWbKZY5aKxrNqsEwmHIrhXYNHPoxarTVtk44nsY4ruN8b4j3EgjE3apy20IRdQCfXkP5mvtbZb3zlnC0SUeXYEN4gWOEqEjeZfbZQo4NNTSodiv4wqOKziu4LiC4wqOK/wQXOEloxC3TeMiH13ko4t8fK7KtmPkY0a8LvxxH8lY2rn7jmUJ6dsswPwhKi+7xzgoO0q3EW5eEqp4bjFmMtQbcQZYNAs7mfnySu5WWdERNCdNdZQySEay+Xs8qWlEglXwh9f1Mhe8DUfs8uV/js1o5TY+C+WKlrhK2p1jjQM5pkJ1e3vxX9Os6Rbh0fXw2PfrU/13NBxxFtebzWathANVFPk2t71qYV+hxfUVcttwOK+ikh32UDfvmRZarbMiEgCVZEw0+1w1eSXbkvOKFSVWbLyulXvbT6XxIeh73b7X7hz3vcUOu7A5TGK24imTZDxHjKLU2iwK7iGl23oUJ1DiGwqJkO91jqxj6CMREo1tcuoJMtkKfiCVtyUA89HU3IKuiZyiWJ3n1vXUVbIEvjrezbgkdNI0B51wBBK40C6ggmnIkFRV1x8J8MzB6CyFWNmOUtv2XjcBXc7TeZUu3fW9azV93V7lOebqaLIxFhGWoyk6GmEBDUKFYi2SzKCWa0AAY5yEUp83rXaObHGGlDU6VqtGockVlXf8XWtv+35FhXod2bnGDOUbKikWwhTqHlBVYU+XP8Q6i/5qsyv+aZP1V5ucKRfnE3SWQdUom/P9+eYP9nFalqA1PYmQmnWHQxrLGb7FV3U4f6dzZz6VO3Or826ze/OZeTH380umua2ybc2/wVPmHJSP4qAMMkLdPDxOyPcS8mY/7T6OWSv+bR7aLKTKzr/l7Cp4Z5c6sP1IvKpn+3oUrxPch1tTA0UOWaJkEocHLXGKxSe4ybYy4y2YYnHOYVZ2MacgFual4Mu0c1X6qqj9nl+QUgE9gPs5FTKA58d1GN/XlVfmOnZuz/3dnt/nAHOV4J72pLGee61b9e8TW1QS+QloHr9G4/8BhsWjACQmYSmZ35OB27UmJeC6UWs0SUO9Q7CkTKMf3SO7ZJeq9YoRVj2hyjEnx5wcc3Kg3jGn5y7kn4s5rT3xwi5jdpXaH44vV1YHyHX3TyoACGUSjVlCH1EAFdlGD97/1SXsKqVDINqcxBzZcWRnV7Kj8qdPUFonNSa9wGve6WRkQwSeIaWpsiimP4HnrK6zus7qOqv7LF1MLQ4pcYxV1ELRLJsMBbP8RSdXmuWnedTFblFcn+B69WgKHbDCEqUUNpxcHXpUywKyUU2Mi8KYmKA0I8jvv+KUONHMcATpeDgnmnOiOSeac6L9JP4d50RzTrTv5URbW1l3ODwW4/lhnyrxiLAx32bnI3Rs1bFVx1afEVvV68KWIw02T/FQw/LCkp/alP0dh4UQew5UDu91KMHc+4OcTXh4sP5zi8rXqsHGGe04VGj+Sle3cKA92HH2kYzpu4RWOLbnN05xY3zWeD+4fb1oZH+eLBq9dkPB1VXa8aLRe32KL89+KyRnfrY7izvffholf9LP3dh+GiV/0o+B72tk7AAUvzD9duFsjpg5YvYjCrmUmGUWnnVqVrIy3ZdFlb4kTey92K+b22fDMR7paREO4TqEu8MuePnT28xMfZ++jTDz4iB9Aa2/p3Ad0H7fLZfs+3y0w3n5y/cLUNgi3+x2jAixmNpXV5Ys7gVEW0TQhRV/wx7Og55FZ5v/JM+ic/DPwb/ni0wc/Pt54V+F0d7jMWrOE/48+uZQqkOpB/LDtm7NF3s4bUsoZxHGpsGcG2Dsw8JrbOseIaTTmL+1oM4Nti8PTZ+/MpS3/Ge3gxuG+gl2+w7YuUKjnaF3hv4Bht6EfebsfbnTwkaIFq19GiP6bJ0WJXGim1wTjxYUephVa1NYaDoEzlXhXBUvkkU7V8XLcVXkrJ5zVTiI/hw6VwXR/RKInt0iwSEHHMwR3BAhDxiv8gRdLWm+4yWOl+zMS/RWnXrUu4HV+mSPN5UyFt2WfRdWEyfqhcv6HcuEFUD9O5hByOJI7ReaorwtqNqylJQ1LF+KVfFeEaBBzAiVAh2dnX9AVzBHqVhMUJ0tJn3wckmUbIQpnoBu4s6lLYPXSifeziUOFv8HixjepfCXAAA=" SPEC_TMPFILE="$(mktemp)" trap 'rm -f "$SPEC_TMPFILE"' EXIT echo "$EMBEDDED_SPEC" | base64 --decode | gunzip > "$SPEC_TMPFILE" diff --git a/src/autorender/resources/uploads.py b/src/autorender/resources/uploads.py index 5a87fd8..f5a91d1 100644 --- a/src/autorender/resources/uploads.py +++ b/src/autorender/resources/uploads.py @@ -2,13 +2,13 @@ from __future__ import annotations -from typing import Mapping, cast +from typing import Union, Mapping, cast import httpx from ..types import upload_create_params, upload_create_from_url_params from .._files import deepcopy_with_paths -from .._types import Body, Omit, Query, Headers, NotGiven, FileTypes, omit, not_given +from .._types import Body, Omit, Query, Headers, NotGiven, FileTypes, SequenceNotStr, omit, not_given from .._utils import extract_files, maybe_transform, async_maybe_transform from .._compat import cached_property from .._resource import SyncAPIResource, AsyncAPIResource @@ -134,7 +134,7 @@ def create_from_url( folder: str | Omit = omit, metadata: str | Omit = omit, random_prefix: str | Omit = omit, - tags: str | Omit = omit, + tags: Union[SequenceNotStr[str], str] | Omit = omit, webhook_url: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -157,7 +157,7 @@ def create_from_url( random_prefix: true/false to append random suffix - tags: Comma-separated tags + tags: Tags array or comma-separated string extra_headers: Send extra headers @@ -298,7 +298,7 @@ async def create_from_url( folder: str | Omit = omit, metadata: str | Omit = omit, random_prefix: str | Omit = omit, - tags: str | Omit = omit, + tags: Union[SequenceNotStr[str], str] | Omit = omit, webhook_url: str | Omit = omit, # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs. # The extra values given here take precedence over values defined on the client or passed to this method. @@ -321,7 +321,7 @@ async def create_from_url( random_prefix: true/false to append random suffix - tags: Comma-separated tags + tags: Tags array or comma-separated string extra_headers: Send extra headers diff --git a/src/autorender/types/upload_create_from_url_params.py b/src/autorender/types/upload_create_from_url_params.py index 7a3e3ad..a983d39 100644 --- a/src/autorender/types/upload_create_from_url_params.py +++ b/src/autorender/types/upload_create_from_url_params.py @@ -2,8 +2,11 @@ from __future__ import annotations +from typing import Union from typing_extensions import Required, TypedDict +from .._types import SequenceNotStr + __all__ = ["UploadCreateFromURLParams"] @@ -25,7 +28,7 @@ class UploadCreateFromURLParams(TypedDict, total=False): random_prefix: str """true/false to append random suffix""" - tags: str - """Comma-separated tags""" + tags: Union[SequenceNotStr[str], str] + """Tags array or comma-separated string""" webhook_url: str diff --git a/tests/api_resources/test_uploads.py b/tests/api_resources/test_uploads.py index 2855eaa..6cbcdc8 100644 --- a/tests/api_resources/test_uploads.py +++ b/tests/api_resources/test_uploads.py @@ -85,7 +85,7 @@ def test_method_create_from_url_with_all_params(self, client: Autorender) -> Non folder="folder", metadata="metadata", random_prefix="random_prefix", - tags="tags", + tags=["string"], webhook_url="https://example.com", ) assert_matches_type(UploadCreateFromURLResponse, upload, path=["response"]) @@ -185,7 +185,7 @@ async def test_method_create_from_url_with_all_params(self, async_client: AsyncA folder="folder", metadata="metadata", random_prefix="random_prefix", - tags="tags", + tags=["string"], webhook_url="https://example.com", ) assert_matches_type(UploadCreateFromURLResponse, upload, path=["response"])