Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
03e9ef5
chore: sync repo
stainless-app[bot] Dec 16, 2025
92f6785
chore: update SDK settings
stainless-app[bot] Dec 16, 2025
a6b2b90
codegen metadata
stainless-app[bot] Dec 16, 2025
6bdaf91
chore: update SDK settings
stainless-app[bot] Dec 16, 2025
dd94ba3
codegen metadata
stainless-app[bot] Dec 16, 2025
19b47fc
refactor(internal): switch from rye to uv
stainless-app[bot] Dec 17, 2025
846fbb1
feat(api): api update
stainless-app[bot] Dec 17, 2025
3722dc8
fix: use async_to_httpx_files in patch method
stainless-app[bot] Dec 18, 2025
4b7bd77
chore(internal): add `--fix` argument to lint script
stainless-app[bot] Dec 19, 2025
f78675d
chore: update SDK settings
stainless-app[bot] Dec 19, 2025
0661e7b
codegen metadata
stainless-app[bot] Dec 19, 2025
b557ea9
feat(api): api update
stainless-app[bot] Dec 19, 2025
0758a97
docs: add more examples
stainless-app[bot] Dec 20, 2025
dbfbf9c
feat(api): manual updates
stainless-app[bot] Dec 30, 2025
7f8ba3c
codegen metadata
stainless-app[bot] Dec 30, 2025
25d4e29
feat(api): manual updates
stainless-app[bot] Dec 30, 2025
4fdb1ce
chore(internal): codegen related update
stainless-app[bot] Jan 6, 2026
64952dc
docs: prominently feature MCP server setup in root SDK readmes
stainless-app[bot] Jan 6, 2026
b3d51f5
feat(api): api update
stainless-app[bot] Jan 13, 2026
e83b1c6
feat(client): add support for binary request streaming
stainless-app[bot] Jan 14, 2026
61ea691
feat(api): config oidc publishing
stainless-app[bot] Jan 16, 2026
2f19860
chore: sync repo
stainless-app[bot] Dec 16, 2025
22f2fd5
chore: update SDK settings
stainless-app[bot] Dec 16, 2025
73d2cd6
codegen metadata
stainless-app[bot] Dec 16, 2025
ccec37e
chore: update SDK settings
stainless-app[bot] Dec 16, 2025
218a88a
codegen metadata
stainless-app[bot] Dec 16, 2025
ae82620
refactor(internal): switch from rye to uv
stainless-app[bot] Dec 17, 2025
db3d6ab
feat(api): api update
stainless-app[bot] Dec 17, 2025
21f1611
fix: use async_to_httpx_files in patch method
stainless-app[bot] Dec 18, 2025
fe8e486
chore(internal): add `--fix` argument to lint script
stainless-app[bot] Dec 19, 2025
0b77a8b
chore: update SDK settings
stainless-app[bot] Dec 19, 2025
3670d36
codegen metadata
stainless-app[bot] Dec 19, 2025
38f0ce0
feat(api): api update
stainless-app[bot] Dec 19, 2025
1c7a58d
docs: add more examples
stainless-app[bot] Dec 20, 2025
f7b20ac
feat(api): manual updates
stainless-app[bot] Dec 30, 2025
d0b50a1
codegen metadata
stainless-app[bot] Dec 30, 2025
74c20f3
feat(api): manual updates
stainless-app[bot] Dec 30, 2025
f560cfe
chore(internal): codegen related update
stainless-app[bot] Jan 6, 2026
ab430a6
docs: prominently feature MCP server setup in root SDK readmes
stainless-app[bot] Jan 6, 2026
5b17ee9
feat(api): api update
stainless-app[bot] Jan 13, 2026
5c8c73a
feat(client): add support for binary request streaming
stainless-app[bot] Jan 14, 2026
ec742d4
feat(api): config oidc publishing
stainless-app[bot] Jan 16, 2026
486f4fb
Merge remote-tracking branch 'origin/next' into next
stainless-app[bot] Jan 16, 2026
a86392b
release: 2.0.0
stainless-app[bot] Jan 16, 2026
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
8 changes: 8 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
ARG VARIANT="3.9"
FROM mcr.microsoft.com/vscode/devcontainers/python:0-${VARIANT}

USER vscode

COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/

RUN echo "[[ -d .venv ]] && source .venv/bin/activate || export PATH=\$PATH" >> /home/vscode/.bashrc
43 changes: 43 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/debian
{
"name": "Debian",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},

"postStartCommand": "uv sync --all-extras",

"customizations": {
"vscode": {
"extensions": [
"ms-python.python"
],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash",
"python.pythonPath": ".venv/bin/python",
"python.defaultInterpreterPath": ".venv/bin/python",
"python.typeChecking": "basic",
"terminal.integrated.env.linux": {
"PATH": "${env:PATH}"
}
}
}
},
"features": {
"ghcr.io/devcontainers/features/node:1": {}
}

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Configure tool-specific properties.
// "customizations": {},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
89 changes: 89 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: CI
on:
push:
branches-ignore:
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'
pull_request:
branches-ignore:
- 'stl-preview-head/**'
- 'stl-preview-base/**'

jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/tabstack-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: '0.9.13'

- name: Install dependencies
run: uv sync --all-extras

- name: Run lints
run: ./scripts/lint

build:
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
timeout-minutes: 10
name: build
permissions:
contents: read
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/tabstack-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: '0.9.13'

- name: Install dependencies
run: uv sync --all-extras

- name: Run build
run: uv build

- name: Get GitHub OIDC Token
if: github.repository == 'stainless-sdks/tabstack-python'
id: github-oidc
uses: actions/github-script@v6
with:
script: core.setOutput('github_token', await core.getIDToken());

- name: Upload tarball
if: github.repository == 'stainless-sdks/tabstack-python'
env:
URL: https://pkg.stainless.com/s
AUTH: ${{ steps.github-oidc.outputs.github_token }}
SHA: ${{ github.sha }}
run: ./scripts/utils/upload-artifact.sh

test:
timeout-minutes: 10
name: test
runs-on: ${{ github.repository == 'stainless-sdks/tabstack-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: '0.9.13'

- name: Bootstrap
run: ./scripts/bootstrap

- name: Run tests
run: ./scripts/test
29 changes: 29 additions & 0 deletions .github/workflows/publish-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This workflow is triggered when a GitHub release is created.
# It can also be run manually to re-publish to PyPI in case it failed for some reason.
# You can run this workflow by navigating to https://www.github.com/Mozilla-Ocho/tabstack-python/actions/workflows/publish-pypi.yml
name: Publish PyPI
on:
workflow_dispatch:

release:
types: [published]

jobs:
publish:
name: publish
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write

steps:
- uses: actions/checkout@v4

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
version: '0.9.13'

- name: Publish to PyPI
run: |
bash ./bin/publish-pypi
19 changes: 19 additions & 0 deletions .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Release Doctor
on:
pull_request:
branches:
- main
workflow_dispatch:

jobs:
release_doctor:
name: release doctor
runs-on: ubuntu-latest
if: github.repository == 'Mozilla-Ocho/tabstack-python' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v4

- name: Check release environment
run: |
bash ./bin/check-release-environment
142 changes: 10 additions & 132 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,137 +1,15 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
.prism.log
_dev

# C extensions
*.so
__pycache__
.mypy_cache

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
dist

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
Pipfile.lock

# PEP 582
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject
.idea

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# IDEs
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Claude
.claude/
.env
.envrc
codegen.log
Brewfile.lock.json
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.9.18
3 changes: 3 additions & 0 deletions .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
".": "2.0.0"
}
4 changes: 4 additions & 0 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
configured_endpoints: 4
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/mozilla%2Ftabstack-5aeb0321dfa491e03f95682879119e6fe62f3777f7026c85b0fd84ffbcfe957c.yml
openapi_spec_hash: 2cdab5faacc1cb28545a9faf4459b629
config_hash: 1bc6137228160bbee20af307fae135e5
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"python.analysis.importFormat": "relative",
}
2 changes: 2 additions & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
brew "uv"

Loading