Skip to content
Open
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
caea803
chore(internal): make `test_proxy_environment_variables` more resilie…
stainless-app[bot] Feb 25, 2026
39d55bd
codegen metadata
stainless-app[bot] Feb 25, 2026
d58e1b8
chore(internal): codegen related update
stainless-app[bot] Mar 3, 2026
19677f4
refactor(types): use `extra_items` from PEP 728
stainless-app[bot] Mar 6, 2026
3ad7bbb
chore(test): do not count install time for mock server timeout
stainless-app[bot] Mar 6, 2026
907041a
chore(ci): skip uploading artifacts on stainless-internal branches
stainless-app[bot] Mar 7, 2026
d31637b
fix(pydantic): do not pass `by_alias` unless set
stainless-app[bot] Mar 17, 2026
b7baa1e
fix(deps): bump minimum typing-extensions version
stainless-app[bot] Mar 17, 2026
4e152dc
chore(internal): tweak CI branches
stainless-app[bot] Mar 17, 2026
bc0d6b6
fix: sanitize endpoint path params
stainless-app[bot] Mar 20, 2026
d2618bd
refactor(tests): switch from prism to steady
stainless-app[bot] Mar 20, 2026
775fe46
chore(tests): bump steady to v0.19.4
stainless-app[bot] Mar 21, 2026
9ef3615
chore(tests): bump steady to v0.19.5
stainless-app[bot] Mar 21, 2026
5a510e6
chore(internal): update gitignore
stainless-app[bot] Mar 24, 2026
33d721e
chore(tests): bump steady to v0.19.6
stainless-app[bot] Mar 24, 2026
3343492
chore(ci): skip lint on metadata-only changes
stainless-app[bot] Mar 25, 2026
3d09621
chore(tests): bump steady to v0.19.7
stainless-app[bot] Mar 25, 2026
e8555c7
feat(internal): implement indices array format for query and form ser…
stainless-app[bot] Mar 27, 2026
649317d
chore(tests): bump steady to v0.20.1
stainless-app[bot] Apr 1, 2026
2c51cba
chore(tests): bump steady to v0.20.2
stainless-app[bot] Apr 1, 2026
75acb50
fix(client): preserve hardcoded query params when merging with user p…
stainless-app[bot] Apr 8, 2026
16c4a95
fix: ensure file data are only sent as 1 parameter
stainless-app[bot] Apr 11, 2026
9e8bba9
perf(client): optimize file structure copying in multipart requests
stainless-app[bot] Apr 18, 2026
0a6f60a
chore(tests): bump steady to v0.22.1
stainless-app[bot] Apr 18, 2026
d8c02a2
feat(api): api update
stainless-app[bot] Apr 22, 2026
2543d0b
chore(internal): more robust bootstrap script
stainless-app[bot] Apr 23, 2026
c76b368
chore(internal): codegen related update
stainless-app[bot] Apr 28, 2026
c5d7b06
codegen metadata
stainless-app[bot] Apr 30, 2026
59d0d24
chore(internal): codegen related update
stainless-app[bot] May 1, 2026
1dba76d
codegen metadata
stainless-app[bot] May 8, 2026
0e34552
chore(internal): codegen related update
stainless-app[bot] May 9, 2026
65987ba
feat(client): add compatibility aliases for old type names
stainless-app[bot] May 12, 2026
f6dbe33
chore(internal): codegen related update
stainless-app[bot] May 13, 2026
167b11e
feat(api): api update
stainless-app[bot] May 22, 2026
7b6ee51
feat(api): api update
stainless-app[bot] May 26, 2026
808556a
feat(api): api update
stainless-app[bot] Jun 24, 2026
ad5130b
codegen metadata
stainless-app[bot] Jun 24, 2026
d03691f
fix(types): avoid type-checker errors on params with additional prope…
stainless-app[bot] Jun 30, 2026
c85f087
feat(api): api update
stainless-app[bot] Jul 10, 2026
1105634
feat(stlc): configurable CI runner and private-production-repo suppor…
stainless-app[bot] Jul 18, 2026
a19b633
feat(api): api update
stainless-app[bot] Jul 21, 2026
afa74d0
feat(api): api update
stainless-app[bot] Jul 22, 2026
c6b629b
feat(api): api update
stainless-app[bot] Jul 22, 2026
bedd828
release: 0.2.0
stainless-app[bot] Jul 22, 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
40 changes: 23 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
name: CI
on:
push:
branches-ignore:
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'
branches:
- '**'
- '!integrated/**'
- '!stl-preview-head/**'
- '!stl-preview-base/**'
- '!generated'
- '!codegen/**'
- 'codegen/stl/**'
pull_request:
branches-ignore:
- 'stl-preview-head/**'
Expand All @@ -16,10 +18,10 @@ jobs:
lint:
timeout-minutes: 10
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/unlayer-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand All @@ -36,15 +38,15 @@ jobs:
run: ./scripts/lint

build:
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')
timeout-minutes: 10
name: build
permissions:
contents: read
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/unlayer-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand All @@ -61,14 +63,18 @@ jobs:
run: rye build

- name: Get GitHub OIDC Token
if: github.repository == 'stainless-sdks/unlayer-python'
if: |-
github.repository == 'stainless-sdks/unlayer-python' &&
!startsWith(github.ref, 'refs/heads/stl/')
id: github-oidc
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: core.setOutput('github_token', await core.getIDToken());

- name: Upload tarball
if: github.repository == 'stainless-sdks/unlayer-python'
if: |-
github.repository == 'stainless-sdks/unlayer-python' &&
!startsWith(github.ref, 'refs/heads/stl/')
env:
URL: https://pkg.stainless.com/s
AUTH: ${{ steps.github-oidc.outputs.github_token }}
Expand All @@ -78,10 +84,10 @@ jobs:
test:
timeout-minutes: 10
name: test
runs-on: ${{ github.repository == 'stainless-sdks/unlayer-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
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 @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Install Rye
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
if: github.repository == 'unlayer/unlayer-python' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Check release environment
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.prism.log
.stdy.log
_dev

__pycache__
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 @@
{
".": "0.1.0"
".": "0.2.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 7
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/unlayer%2Funlayer-48f00d1c04c23fb4d1cb7cf4af4f56b0c920d758c1f06e06e5373e5b15e9c27d.yml
openapi_spec_hash: 6ee2a94bb9840aceb4a6161c724ce46c
config_hash: 249869757b6eb98ae3d58f2a47ce21e2
configured_endpoints: 24
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/unlayer/unlayer-b42187e1b2fff52630a33946829067dcc76dd842a7fb85d826ee9ccc4f44175d.yml
openapi_spec_hash: 7f0c95f3bb404716e0a77878c0c21b91
config_hash: ee438ad5d5e9b8446d21fc7cb50eff95
62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,67 @@
# Changelog

## 0.2.0 (2026-07-22)

Full Changelog: [v0.1.0...v0.2.0](https://github.com/unlayer/unlayer-python/compare/v0.1.0...v0.2.0)

### Features

* **api:** api update ([c6b629b](https://github.com/unlayer/unlayer-python/commit/c6b629ba3d6183805e939a2c7dca278bbbb7fed1))
* **api:** api update ([afa74d0](https://github.com/unlayer/unlayer-python/commit/afa74d05a94c6614ff92ee5f714288bca8d13d7d))
* **api:** api update ([a19b633](https://github.com/unlayer/unlayer-python/commit/a19b633a992b7f3c7fea7d3e0086d6df4d417b7f))
* **api:** api update ([c85f087](https://github.com/unlayer/unlayer-python/commit/c85f0878584b737bc83016c20c0bba9fc81d498b))
* **api:** api update ([808556a](https://github.com/unlayer/unlayer-python/commit/808556a0dad1364117d5b63c2285f47fa2bb641f))
* **api:** api update ([7b6ee51](https://github.com/unlayer/unlayer-python/commit/7b6ee5197eff6de84b71685f2ceded7cac99d6a5))
* **api:** api update ([167b11e](https://github.com/unlayer/unlayer-python/commit/167b11e590fda9652ca3f3c798b9d0c90c6b2ce1))
* **api:** api update ([d8c02a2](https://github.com/unlayer/unlayer-python/commit/d8c02a28202f28aff216e1c51b4dc183bf758246))
* **client:** add compatibility aliases for old type names ([65987ba](https://github.com/unlayer/unlayer-python/commit/65987ba2ea7ff4f674f3fca91869b3685af4fc55))
* **internal:** implement indices array format for query and form serialization ([e8555c7](https://github.com/unlayer/unlayer-python/commit/e8555c785eb5ac3fd4f46eba86514c83279c8455))
* **stlc:** configurable CI runner and private-production-repo support in workflow templates ([1105634](https://github.com/unlayer/unlayer-python/commit/1105634587e7908392c26243a3a22c44d5fa63e7))


### Bug Fixes

* **client:** preserve hardcoded query params when merging with user params ([75acb50](https://github.com/unlayer/unlayer-python/commit/75acb50baa973b93439b0e1e803e34ec5ea0f891))
* **deps:** bump minimum typing-extensions version ([b7baa1e](https://github.com/unlayer/unlayer-python/commit/b7baa1e5d138b5a33b63bed9dae37bfabb6d968d))
* ensure file data are only sent as 1 parameter ([16c4a95](https://github.com/unlayer/unlayer-python/commit/16c4a958a038f89843bfd0287656f14c222bbc9a))
* **pydantic:** do not pass `by_alias` unless set ([d31637b](https://github.com/unlayer/unlayer-python/commit/d31637bd182be359df4af936cb715cc554d9a14b))
* sanitize endpoint path params ([bc0d6b6](https://github.com/unlayer/unlayer-python/commit/bc0d6b6b147d33cd2f65855284e7f435bdee09f9))
* **types:** avoid type-checker errors on params with additional properties ([d03691f](https://github.com/unlayer/unlayer-python/commit/d03691f5182f0919ab3cdbfe66692fd287471f1b))


### Performance Improvements

* **client:** optimize file structure copying in multipart requests ([9e8bba9](https://github.com/unlayer/unlayer-python/commit/9e8bba9900b5252766dae4d7cd835fb264136ed4))


### Chores

* **ci:** skip lint on metadata-only changes ([3343492](https://github.com/unlayer/unlayer-python/commit/33434927ad6ab7c508d758335944cdc4123a5e17))
* **ci:** skip uploading artifacts on stainless-internal branches ([907041a](https://github.com/unlayer/unlayer-python/commit/907041a9070f3c4a86605a21c9ab9a004a9bf553))
* **internal:** codegen related update ([f6dbe33](https://github.com/unlayer/unlayer-python/commit/f6dbe33abfbb2b8231e0ffc0250e426e0e26f14c))
* **internal:** codegen related update ([0e34552](https://github.com/unlayer/unlayer-python/commit/0e34552078692776f7e709082aba188a8609f37f))
* **internal:** codegen related update ([59d0d24](https://github.com/unlayer/unlayer-python/commit/59d0d244b61420a3358eef33ace74de3c8c3bda3))
* **internal:** codegen related update ([c76b368](https://github.com/unlayer/unlayer-python/commit/c76b3685383f50f9446c8d0c6844aed7ad8f3696))
* **internal:** codegen related update ([d58e1b8](https://github.com/unlayer/unlayer-python/commit/d58e1b80f026a3fbb93c51e57af8afedcdb866e9))
* **internal:** make `test_proxy_environment_variables` more resilient to env ([caea803](https://github.com/unlayer/unlayer-python/commit/caea803e4fc873ade6fbc9b9b66ff67938780f65))
* **internal:** more robust bootstrap script ([2543d0b](https://github.com/unlayer/unlayer-python/commit/2543d0b9a29711c39f5b8b5bfeac15dfc66b79b3))
* **internal:** tweak CI branches ([4e152dc](https://github.com/unlayer/unlayer-python/commit/4e152dccd0191c2dd4d321e8ca7b6550dc6bc3f0))
* **internal:** update gitignore ([5a510e6](https://github.com/unlayer/unlayer-python/commit/5a510e6edf2e26d612be067b6c95e70780d01d57))
* **test:** do not count install time for mock server timeout ([3ad7bbb](https://github.com/unlayer/unlayer-python/commit/3ad7bbb203d27a7b7f69fda2d0f3aebea329c49e))
* **tests:** bump steady to v0.19.4 ([775fe46](https://github.com/unlayer/unlayer-python/commit/775fe461f02f96ebc4b7cd6ff2d8cab4c52d291d))
* **tests:** bump steady to v0.19.5 ([9ef3615](https://github.com/unlayer/unlayer-python/commit/9ef3615041ea171a462a29f8cfd268133df0c6fc))
* **tests:** bump steady to v0.19.6 ([33d721e](https://github.com/unlayer/unlayer-python/commit/33d721e46826c23bf5b1ce78477d003cb9cd83da))
* **tests:** bump steady to v0.19.7 ([3d09621](https://github.com/unlayer/unlayer-python/commit/3d09621f6d61c74d431b9af1336c6c51d8396d4f))
* **tests:** bump steady to v0.20.1 ([649317d](https://github.com/unlayer/unlayer-python/commit/649317dda33455a5b5e25aedeb0210a746b767f2))
* **tests:** bump steady to v0.20.2 ([2c51cba](https://github.com/unlayer/unlayer-python/commit/2c51cba746385da9a9e5ec0ea00bf6c4cdee2bbd))
* **tests:** bump steady to v0.22.1 ([0a6f60a](https://github.com/unlayer/unlayer-python/commit/0a6f60a8acb8c85a937166884ba523cc59821b8f))


### Refactors

* **tests:** switch from prism to steady ([d2618bd](https://github.com/unlayer/unlayer-python/commit/d2618bd109fcd053b5845009bc8221090930a369))
* **types:** use `extra_items` from PEP 728 ([19677f4](https://github.com/unlayer/unlayer-python/commit/19677f4a04cd989500eecce93cbb0506cf1ebf32))

## 0.1.0 (2026-02-24)

Full Changelog: [v0.0.1...v0.1.0](https://github.com/unlayer/unlayer-python/compare/v0.0.1...v0.1.0)
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ $ pip install ./path-to-wheel-file.whl

## Running tests

Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
Most tests require you to [set up a mock server](https://github.com/dgellow/steady) against the OpenAPI spec to run the tests.

```sh
$ ./scripts/mock
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -199,10 +199,10 @@ from unlayer import Unlayer

client = Unlayer()

full_to_simple = client.convert.full_to_simple.create(
convert_full_to_simple = client.templates.convert_full_to_simple.create(
design={"body": {"foo": "bar"}},
)
print(full_to_simple.design)
print(convert_full_to_simple.design)
```

## Handling errors
Expand Down
Loading