Skip to content

Commit 7f6da35

Browse files
authored
Merge pull request #1 from stainless-commons/release-please--branches--main--changes--next
release: 0.1.0
2 parents 1e62e09 + 1693dd1 commit 7f6da35

287 files changed

Lines changed: 526 additions & 354 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/publish-pypi.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This workflow is triggered when a GitHub release is created.
2+
# It can also be run manually to re-publish to PyPI in case it failed for some reason.
3+
# You can run this workflow by navigating to https://www.github.com/stainless-commons/stripe-python/actions/workflows/publish-pypi.yml
4+
name: Publish PyPI
5+
on:
6+
workflow_dispatch:
7+
8+
release:
9+
types: [published]
10+
11+
jobs:
12+
publish:
13+
name: publish
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- uses: actions/checkout@v6
18+
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@v5
21+
with:
22+
version: '0.9.13'
23+
24+
- name: Publish to PyPI
25+
run: |
26+
bash ./bin/publish-pypi
27+
env:
28+
PYPI_TOKEN: ${{ secrets.STRIPE_PYPI_TOKEN || secrets.PYPI_TOKEN }}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Release Doctor
2+
on:
3+
pull_request:
4+
branches:
5+
- main
6+
workflow_dispatch:
7+
8+
jobs:
9+
release_doctor:
10+
name: release doctor
11+
runs-on: ubuntu-latest
12+
if: github.repository == 'stainless-commons/stripe-python' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')
13+
14+
steps:
15+
- uses: actions/checkout@v6
16+
17+
- name: Check release environment
18+
run: |
19+
bash ./bin/check-release-environment
20+
env:
21+
PYPI_TOKEN: ${{ secrets.STRIPE_PYPI_TOKEN || secrets.PYPI_TOKEN }}

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.0"
3+
}

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 22
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/democast%2Fstripe-minimal-d7db5d2f2f83e89d00e8529a1b6d4ed4746bd306d0e6ffba02f321b576dcc340.yml
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/stainless-commons%2Fstripe-minimal-d7db5d2f2f83e89d00e8529a1b6d4ed4746bd306d0e6ffba02f321b576dcc340.yml
33
openapi_spec_hash: e09fbe83a958ffba517bce207e9f9dc1
4-
config_hash: a1656a4cd48517388f532be2a6efa252
4+
config_hash: 957cd4dc5cc7bbb0ca9a15611bb95cdc

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Changelog
2+
3+
## 0.1.0 (2026-02-12)
4+
5+
Full Changelog: [v0.0.1...v0.1.0](https://github.com/stainless-commons/stripe-python/compare/v0.0.1...v0.1.0)
6+
7+
### Features
8+
9+
* **api:** manual updates ([ddd39ed](https://github.com/stainless-commons/stripe-python/commit/ddd39ede1ff627a4a42ccfc6bdcc29382ecd4062))
10+
* **api:** manual updates ([ce1515f](https://github.com/stainless-commons/stripe-python/commit/ce1515f3fb170f94aa753e2666413aecc34f67da))
11+
* **api:** manual updates ([a22587f](https://github.com/stainless-commons/stripe-python/commit/a22587fc6d881abd3bcc53efe762d19f25aef885))
12+
* **api:** manual updates ([d0f9b47](https://github.com/stainless-commons/stripe-python/commit/d0f9b47163845d40481b333e007fd5ae1c2d1243))
13+
* **api:** manual updates ([df4c50a](https://github.com/stainless-commons/stripe-python/commit/df4c50a4dbefd67c64bedf4274fc532817846b6b))
14+
* **api:** manual updates ([b7b117d](https://github.com/stainless-commons/stripe-python/commit/b7b117d9e76b72b742a84949941e1c3b65515c39))
15+
* **api:** manual updates ([c1b8542](https://github.com/stainless-commons/stripe-python/commit/c1b8542c564d7d99c517db2d76377b0027ac7521))
16+
* **api:** manual updates ([c7f7de4](https://github.com/stainless-commons/stripe-python/commit/c7f7de4693baad277cf7b24302726f03be52d69b))
17+
* **api:** manual updates ([cb59e1e](https://github.com/stainless-commons/stripe-python/commit/cb59e1e0637785af584fb3bc5b1000425d01c310))
18+
19+
20+
### Chores
21+
22+
* configure new SDK language ([02968ed](https://github.com/stainless-commons/stripe-python/commit/02968ed41bf10f2a743e72a2b5392b51e7029b26))
23+
* **internal:** bump dependencies ([5daccfb](https://github.com/stainless-commons/stripe-python/commit/5daccfb96d5dd463a565fd4b33156d2f97209b09))
24+
* **internal:** fix lint error on Python 3.14 ([1e62e09](https://github.com/stainless-commons/stripe-python/commit/1e62e099378219f3d5861a5d58a82656e69af17b))
25+
* update SDK settings ([f0c66c1](https://github.com/stainless-commons/stripe-python/commit/f0c66c117f33fdf6b95643fead0d6e798c6d2ec0))

CONTRIBUTING.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ $ pip install -r requirements-dev.lock
3636

3737
Most of the SDK is generated code. Modifications to code will be persisted between generations, but may
3838
result in merge conflicts between manual patches and changes from the generator. The generator will never
39-
modify the contents of the `src/stripe_minimal/lib/` and `examples/` directories.
39+
modify the contents of the `src/stainless_commons_stripe/lib/` and `examples/` directories.
4040

4141
## Adding and running examples
4242

@@ -62,7 +62,7 @@ If you’d like to use the repository from source, you can either install from g
6262
To install via git:
6363

6464
```sh
65-
$ pip install git+ssh://git@github.com/stainless-sdks/stripe-minimal-python.git
65+
$ pip install git+ssh://git@github.com/stainless-commons/stripe-python.git
6666
```
6767

6868
Alternatively, you can build from source and install the wheel file:
@@ -120,7 +120,7 @@ the changes aren't made through the automated pipeline, you may want to make rel
120120

121121
### Publish with a GitHub workflow
122122

123-
You can release to package managers by using [the `Publish PyPI` GitHub action](https://www.github.com/stainless-sdks/stripe-minimal-python/actions/workflows/publish-pypi.yml). This requires a setup organization or repository secret to be set up.
123+
You can release to package managers by using [the `Publish PyPI` GitHub action](https://www.github.com/stainless-commons/stripe-python/actions/workflows/publish-pypi.yml). This requires a setup organization or repository secret to be set up.
124124

125125
### Publish manually
126126

README.md

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Stripe Python API library
22

33
<!-- prettier-ignore -->
4-
[![PyPI version](https://img.shields.io/pypi/v/stripe_minimal.svg?label=pypi%20(stable))](https://pypi.org/project/stripe_minimal/)
4+
[![PyPI version](https://img.shields.io/pypi/v/stainless_commons_stripe.svg?label=pypi%20(stable))](https://pypi.org/project/stainless_commons_stripe/)
55

66
The Stripe Python library provides convenient access to the Stripe REST API from any Python 3.9+
77
application. The library includes type definitions for all request params and response fields,
@@ -13,8 +13,8 @@ It is generated with [Stainless](https://www.stainless.com/).
1313

1414
Use the Stripe MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
1515

16-
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40stainless-commons%2Fstripe-minimal-mcp&config=eyJuYW1lIjoiQHN0YWlubGVzcy1jb21tb25zL3N0cmlwZS1taW5pbWFsLW1jcCIsInRyYW5zcG9ydCI6Imh0dHAiLCJ1cmwiOiJodHRwczovL3N0cmlwZS1taW5pbWFsLnN0bG1jcC5jb20iLCJoZWFkZXJzIjp7Ingtc3RyaXBlLXNlY3JldC1rZXkiOiJNeSBBUEkgS2V5In19)
17-
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40stainless-commons%2Fstripe-minimal-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fstripe-minimal.stlmcp.com%22%2C%22headers%22%3A%7B%22x-stripe-secret-key%22%3A%22My%20API%20Key%22%7D%7D)
16+
[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en-US/install-mcp?name=%40stainless-commons%2Fstripe-mcp&config=eyJuYW1lIjoiQHN0YWlubGVzcy1jb21tb25zL3N0cmlwZS1tY3AiLCJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9zdHJpcGUtbWluaW1hbC5zdGxtY3AuY29tIiwiaGVhZGVycyI6eyJ4LXN0cmlwZS1zZWNyZXQta2V5IjoiTXkgQVBJIEtleSJ9fQ)
17+
[![Install in VS Code](https://img.shields.io/badge/_-Add_to_VS_Code-blue?style=for-the-badge&logo=data:image/svg%2bxml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA0MCA0MCI+PHBhdGggZmlsbD0iI0VFRSIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMzAuMjM1IDM5Ljg4NGEyLjQ5MSAyLjQ5MSAwIDAgMS0xLjc4MS0uNzNMMTIuNyAyNC43OGwtMy40NiAyLjYyNC0zLjQwNiAyLjU4MmExLjY2NSAxLjY2NSAwIDAgMS0xLjA4Mi4zMzggMS42NjQgMS42NjQgMCAwIDEtMS4wNDYtLjQzMWwtMi4yLTJhMS42NjYgMS42NjYgMCAwIDEgMC0yLjQ2M0w3LjQ1OCAyMCA0LjY3IDE3LjQ1MyAxLjUwNyAxNC41N2ExLjY2NSAxLjY2NSAwIDAgMSAwLTIuNDYzbDIuMi0yYTEuNjY1IDEuNjY1IDAgMCAxIDIuMTMtLjA5N2w2Ljg2MyA1LjIwOUwyOC40NTIuODQ0YTIuNDg4IDIuNDg4IDAgMCAxIDEuODQxLS43MjljLjM1MS4wMDkuNjk5LjA5MSAxLjAxOS4yNDVsOC4yMzYgMy45NjFhMi41IDIuNSAwIDAgMSAxLjQxNSAyLjI1M3YuMDk5LS4wNDVWMzMuMzd2LS4wNDUuMDk1YTIuNTAxIDIuNTAxIDAgMCAxLTEuNDE2IDIuMjU3bC04LjIzNSAzLjk2MWEyLjQ5MiAyLjQ5MiAwIDAgMS0xLjA3Ny4yNDZabS43MTYtMjguOTQ3LTExLjk0OCA5LjA2MiAxMS45NTIgOS4wNjUtLjAwNC0xOC4xMjdaIi8+PC9zdmc+)](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40stainless-commons%2Fstripe-mcp%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fstripe-minimal.stlmcp.com%22%2C%22headers%22%3A%7B%22x-stripe-secret-key%22%3A%22My%20API%20Key%22%7D%7D)
1818

1919
> Note: You may need to set environment variables in your MCP client.
2020
@@ -25,20 +25,20 @@ The REST API documentation can be found on [stripe.com](https://stripe.com). The
2525
## Installation
2626

2727
```sh
28-
# install from this staging repo
29-
pip install git+ssh://git@github.com/stainless-sdks/stripe-minimal-python.git
28+
# install from the production repo
29+
pip install git+ssh://git@github.com/stainless-commons/stripe-python.git
3030
```
3131

3232
> [!NOTE]
33-
> Once this package is [published to PyPI](https://www.stainless.com/docs/guides/publish), this will become: `pip install stripe_minimal`
33+
> Once this package is [published to PyPI](https://www.stainless.com/docs/guides/publish), this will become: `pip install stainless_commons_stripe`
3434
3535
## Usage
3636

3737
The full API of this library can be found in [api.md](api.md).
3838

3939
```python
4040
import os
41-
from stripe_minimal import Stripe
41+
from stainless_commons_stripe import Stripe
4242

4343
client = Stripe(
4444
api_key=os.environ.get("STRIPE_SECRET_KEY"), # This is the default and can be omitted
@@ -60,7 +60,7 @@ Simply import `AsyncStripe` instead of `Stripe` and use `await` with each API ca
6060
```python
6161
import os
6262
import asyncio
63-
from stripe_minimal import AsyncStripe
63+
from stainless_commons_stripe import AsyncStripe
6464

6565
client = AsyncStripe(
6666
api_key=os.environ.get("STRIPE_SECRET_KEY"), # This is the default and can be omitted
@@ -84,17 +84,17 @@ By default, the async client uses `httpx` for HTTP requests. However, for improv
8484
You can enable this by installing `aiohttp`:
8585

8686
```sh
87-
# install from this staging repo
88-
pip install 'stripe_minimal[aiohttp] @ git+ssh://git@github.com/stainless-sdks/stripe-minimal-python.git'
87+
# install from the production repo
88+
pip install 'stainless_commons_stripe[aiohttp] @ git+ssh://git@github.com/stainless-commons/stripe-python.git'
8989
```
9090

9191
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
9292

9393
```python
9494
import os
9595
import asyncio
96-
from stripe_minimal import DefaultAioHttpClient
97-
from stripe_minimal import AsyncStripe
96+
from stainless_commons_stripe import DefaultAioHttpClient
97+
from stainless_commons_stripe import AsyncStripe
9898

9999

100100
async def main() -> None:
@@ -125,7 +125,7 @@ List methods in the Stripe API are paginated.
125125
This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
126126

127127
```python
128-
from stripe_minimal import Stripe
128+
from stainless_commons_stripe import Stripe
129129

130130
client = Stripe()
131131

@@ -141,7 +141,7 @@ Or, asynchronously:
141141

142142
```python
143143
import asyncio
144-
from stripe_minimal import AsyncStripe
144+
from stainless_commons_stripe import AsyncStripe
145145

146146
client = AsyncStripe()
147147

@@ -186,7 +186,7 @@ for coupon in first_page.data:
186186
Nested parameters are dictionaries, typed using `TypedDict`, for example:
187187

188188
```python
189-
from stripe_minimal import Stripe
189+
from stainless_commons_stripe import Stripe
190190

191191
client = Stripe()
192192

@@ -198,27 +198,27 @@ print(coupon.applies_to)
198198

199199
## Handling errors
200200

201-
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `stripe_minimal.APIConnectionError` is raised.
201+
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `stainless_commons_stripe.APIConnectionError` is raised.
202202

203203
When the API returns a non-success status code (that is, 4xx or 5xx
204-
response), a subclass of `stripe_minimal.APIStatusError` is raised, containing `status_code` and `response` properties.
204+
response), a subclass of `stainless_commons_stripe.APIStatusError` is raised, containing `status_code` and `response` properties.
205205

206-
All errors inherit from `stripe_minimal.APIError`.
206+
All errors inherit from `stainless_commons_stripe.APIError`.
207207

208208
```python
209-
import stripe_minimal
210-
from stripe_minimal import Stripe
209+
import stainless_commons_stripe
210+
from stainless_commons_stripe import Stripe
211211

212212
client = Stripe()
213213

214214
try:
215215
client.accounts.retrieve()
216-
except stripe_minimal.APIConnectionError as e:
216+
except stainless_commons_stripe.APIConnectionError as e:
217217
print("The server could not be reached")
218218
print(e.__cause__) # an underlying Exception, likely raised within httpx.
219-
except stripe_minimal.RateLimitError as e:
219+
except stainless_commons_stripe.RateLimitError as e:
220220
print("A 429 status code was received; we should back off a bit.")
221-
except stripe_minimal.APIStatusError as e:
221+
except stainless_commons_stripe.APIStatusError as e:
222222
print("Another non-200-range status code was received")
223223
print(e.status_code)
224224
print(e.response)
@@ -246,7 +246,7 @@ Connection errors (for example, due to a network connectivity problem), 408 Requ
246246
You can use the `max_retries` option to configure or disable retry settings:
247247

248248
```python
249-
from stripe_minimal import Stripe
249+
from stainless_commons_stripe import Stripe
250250

251251
# Configure the default for all requests:
252252
client = Stripe(
@@ -264,7 +264,7 @@ By default requests time out after 1 minute. You can configure this with a `time
264264
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:
265265

266266
```python
267-
from stripe_minimal import Stripe
267+
from stainless_commons_stripe import Stripe
268268

269269
# Configure the default for all requests:
270270
client = Stripe(
@@ -316,7 +316,7 @@ if response.my_field is None:
316316
The "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,
317317

318318
```py
319-
from stripe_minimal import Stripe
319+
from stainless_commons_stripe import Stripe
320320

321321
client = Stripe()
322322
response = client.accounts.with_raw_response.retrieve()
@@ -326,9 +326,9 @@ account = response.parse() # get the object that `accounts.retrieve()` would ha
326326
print(account.id)
327327
```
328328

329-
These methods return an [`APIResponse`](https://github.com/stainless-sdks/stripe-minimal-python/tree/main/src/stripe_minimal/_response.py) object.
329+
These methods return an [`APIResponse`](https://github.com/stainless-commons/stripe-python/tree/main/src/stainless_commons_stripe/_response.py) object.
330330

331-
The async client returns an [`AsyncAPIResponse`](https://github.com/stainless-sdks/stripe-minimal-python/tree/main/src/stripe_minimal/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
331+
The async client returns an [`AsyncAPIResponse`](https://github.com/stainless-commons/stripe-python/tree/main/src/stainless_commons_stripe/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
332332

333333
#### `.with_streaming_response`
334334

@@ -390,7 +390,7 @@ You can directly override the [httpx client](https://www.python-httpx.org/api/#c
390390

391391
```python
392392
import httpx
393-
from stripe_minimal import Stripe, DefaultHttpxClient
393+
from stainless_commons_stripe import Stripe, DefaultHttpxClient
394394

395395
client = Stripe(
396396
# Or use the `STRIPE_BASE_URL` env var
@@ -413,7 +413,7 @@ client.with_options(http_client=DefaultHttpxClient(...))
413413
By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
414414

415415
```py
416-
from stripe_minimal import Stripe
416+
from stainless_commons_stripe import Stripe
417417

418418
with Stripe() as client:
419419
# make requests here
@@ -432,7 +432,7 @@ This package generally follows [SemVer](https://semver.org/spec/v2.0.0.html) con
432432

433433
We take backwards-compatibility seriously and work hard to ensure you can rely on a smooth upgrade experience.
434434

435-
We are keen for your feedback; please open an [issue](https://www.github.com/stainless-sdks/stripe-minimal-python/issues) with questions, bugs, or suggestions.
435+
We are keen for your feedback; please open an [issue](https://www.github.com/stainless-commons/stripe-python/issues) with questions, bugs, or suggestions.
436436

437437
### Determining the installed version
438438

@@ -441,8 +441,8 @@ If you've upgraded to the latest version but aren't seeing any new features you
441441
You can determine the version that is being used at runtime with:
442442

443443
```py
444-
import stripe_minimal
445-
print(stripe_minimal.__version__)
444+
import stainless_commons_stripe
445+
print(stainless_commons_stripe.__version__)
446446
```
447447

448448
## Requirements

0 commit comments

Comments
 (0)