Skip to content

release: 0.0.38#44

Merged
jjantschulev merged 34 commits intomainfrom
release-please--branches--main--changes--next
Apr 21, 2026
Merged

release: 0.0.38#44
jjantschulev merged 34 commits intomainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app
Copy link
Copy Markdown
Contributor

@stainless-app stainless-app Bot commented Apr 10, 2026

Automated Release PR

0.0.38 (2026-04-21)

Full Changelog: v0.0.37...v0.0.38

Features

Bug Fixes

  • ensure file data are only sent as 1 parameter (0621a7d)
  • lib: add verify_user_token helper with remote JWKS caching (#45) (2ffb934)
  • tests: pass required company_id to invoices.list() calls (#47) (be92086)
  • types: add BannerImage to forum_update_params (#46) (256c465)

Performance Improvements

  • client: optimize file structure copying in multipart requests (256a80a)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented Apr 10, 2026

🧪 Testing

To try out this version of the SDK:

pip install 'https://pkg.stainless.com/s/whopsdk-python/781a2ab7b8894e4b3646bf493d8019a54c9c367d/whop_sdk-0.0.37-py3-none-any.whl'

Expires at: Thu, 21 May 2026 00:39:35 GMT
Updated at: Tue, 21 Apr 2026 00:39:35 GMT

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 76e8a10 to 5c445f4 Compare April 11, 2026 07:13
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 5c445f4 to 58b8bac Compare April 13, 2026 03:13
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 58b8bac to e89992d Compare April 13, 2026 08:14
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from e89992d to 297e8cf Compare April 13, 2026 22:14
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 297e8cf to f3f903e Compare April 14, 2026 00:14
@stainless-app stainless-app Bot changed the title release: 0.0.38 release: 0.1.0 Apr 14, 2026
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from f3f903e to c61678b Compare April 14, 2026 00:14
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from c61678b to d1a531a Compare April 14, 2026 10:14
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from d1a531a to 6b941f2 Compare April 14, 2026 18:14
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 6b941f2 to 43bc853 Compare April 14, 2026 21:14
Mirrors the TypeScript SDK's verify-user-token.ts so app-proxy-issued
x-whop-user-token JWTs can be verified in Python apps, with the same
key-rotation-friendly semantics (no SDK release needed when keys roll).

- src/whop_sdk/lib/verify_user_token.py (new):
  * verify_user_token() — validates against the canonical Whop JWKS at
    https://api.whop.com/.well-known/jwks.json by default, with a
    module-level cache (12h TTL, 30s cooldown-guarded refetch on kid
    miss) mirroring jose's createRemoteJWKSet.
  * try_verify_user_token() — returns None on failure instead of raising.
  * Accepts a raw token string OR a headers mapping (case-insensitive).
  * Options mirror TS: public_key (PEM or JWK JSON static override),
    jwks_url (override the endpoint), header_name, app_id.
  * Handles legacy kid-less tokens by trying each key in the current
    JWKS snapshot.
- src/whop_sdk/lib/__init__.py (new): marks lib/ as a package.
- pyproject.toml: adds optional user-tokens extra
    pip install 'whop-sdk[user-tokens]'
  which pulls in pyjwt[crypto]>=2.8,<3 for ES256 / ECDSA support.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 43bc853 to 2da2575 Compare April 20, 2026 16:32
@jjantschulev jjantschulev changed the title release: 0.1.0 release: 0.0.38 Apr 20, 2026
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented Apr 20, 2026

Release version edited manually

The Pull Request version has been manually set to 0.0.38 and will be used for the release.

If you instead want to use the version number 0.1.0 generated from conventional commits, just remove the label autorelease: custom version from this Pull Request.

@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 12c03cc to 1b092f0 Compare April 20, 2026 18:29
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 1b092f0 to 1851d3b Compare April 20, 2026 18:29
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 1851d3b to f0c578f Compare April 20, 2026 18:30
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch 2 times, most recently from 121383b to bccebc7 Compare April 20, 2026 18:31
`invoices.list()` (resource) requires `company_id: str` (no Omit), but
the bare `test_method_list` / `test_raw_response_list` / `test_streaming_response_list`
variants (sync + async) call `list()` with no args. Pyright fails with
"Argument missing for parameter company_id". Fallout from the recent
merge conflict resolution on PR #884 where the test file was taken from
codegen but the resource file had `company_id` as required from a
different codegen run.

Added `company_id="biz_xxxxxxxxxxxxxx"` (matches the pattern used by
`test_method_list_with_all_params`) to the six affected list-variant
calls.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from bccebc7 to a99d0aa Compare April 20, 2026 18:48
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from a99d0aa to 22013a3 Compare April 20, 2026 23:51
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 22013a3 to 949c4ec Compare April 21, 2026 00:17
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 949c4ec to 9abef32 Compare April 21, 2026 00:35
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from 9abef32 to 363e0ac Compare April 21, 2026 00:39
@jjantschulev jjantschulev merged commit 820c2a1 into main Apr 21, 2026
7 checks passed
@stainless-app
Copy link
Copy Markdown
Contributor Author

stainless-app Bot commented Apr 21, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant