Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 8 additions & 6 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 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.2"
".": "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: 29
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable%2Fvitable-connect-da7778e69a30f55bdfb58bc3df94cefe7b13a37eee9640eac1aaf43f57a8d149.yml
openapi_spec_hash: 031c9c1d1a6be156666b3230e0b9fb44
config_hash: 686598ed50ce0ac460d9a06417655317
configured_endpoints: 14
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable%2Fvitable-connect-96aa195ab5ff283707620b70fbed7282883a1e1753459f0a694d01d6f19f50e0.yml
openapi_spec_hash: b2f25ba22786e88520ed918b8b5120a5
config_hash: c07379344c812867e0b75b41995c76c2
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
# Changelog

## 0.2.0 (2026-03-20)

Full Changelog: [v0.1.2...v0.2.0](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.1.2...v0.2.0)

### Features

* **api:** api update ([2d17eba](https://github.com/Vitable-Inc/vitable-connect-python/commit/2d17ebab7f730aa1a9a9cba0044d7bd1f05ef3d7))
* **api:** manual updates ([61e9959](https://github.com/Vitable-Inc/vitable-connect-python/commit/61e9959f83e9d2de1c974e9d04349efba0c03589))
* **api:** manual updates ([311d294](https://github.com/Vitable-Inc/vitable-connect-python/commit/311d294e50fb62fde627e0e0619064ff05018cb7))
* **api:** manual updates ([81fa03e](https://github.com/Vitable-Inc/vitable-connect-python/commit/81fa03e7036aeb56052384dfbd31de5f554d2d74))


### Bug Fixes

* **deps:** bump minimum typing-extensions version ([4f315a4](https://github.com/Vitable-Inc/vitable-connect-python/commit/4f315a4488437d128364f288ae1a2e526aceb639))
* **pydantic:** do not pass `by_alias` unless set ([7d698a1](https://github.com/Vitable-Inc/vitable-connect-python/commit/7d698a13ec079a12c7681ce236abf4aa9ea765fa))
* sanitize endpoint path params ([5d252df](https://github.com/Vitable-Inc/vitable-connect-python/commit/5d252df080bd65d8227cff938a47fc2c0be43c64))


### Chores

* **internal:** tweak CI branches ([96b210d](https://github.com/Vitable-Inc/vitable-connect-python/commit/96b210d9f4ace8c61d48775f1cf840e8fcb18d44))
* update SDK settings ([b5d7c3a](https://github.com/Vitable-Inc/vitable-connect-python/commit/b5d7c3a4a61e8b7beb84a7c2c184d1c4237b324a))
* update SDK settings ([5749036](https://github.com/Vitable-Inc/vitable-connect-python/commit/57490368bcb31217dc0c9ca08d7757f1c3f03400))
* update SDK settings ([f29a924](https://github.com/Vitable-Inc/vitable-connect-python/commit/f29a9244a92c5205cd978c2adc176b9428c0be4f))

## 0.1.2 (2026-03-15)

Full Changelog: [v0.1.1...v0.1.2](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.1.1...v0.1.2)
Expand Down
71 changes: 71 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,77 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ

Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.

## Pagination

List methods in the Vitable Connect API are paginated.

This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:

```python
from vitable_connect import VitableConnect

client = VitableConnect()

all_employees = []
# Automatically fetches more pages as needed.
for employee in client.employees.list_enrollments(
employee_id="empl_abc123def456",
):
# Do something with employee here
all_employees.append(employee)
print(all_employees)
```

Or, asynchronously:

```python
import asyncio
from vitable_connect import AsyncVitableConnect

client = AsyncVitableConnect()


async def main() -> None:
all_employees = []
# Iterate through items across all pages, issuing requests as needed.
async for employee in client.employees.list_enrollments(
employee_id="empl_abc123def456",
):
all_employees.append(employee)
print(all_employees)


asyncio.run(main())
```

Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:

```python
first_page = await client.employees.list_enrollments(
employee_id="empl_abc123def456",
)
if first_page.has_next_page():
print(f"will fetch next page using these details: {first_page.next_page_info()}")
next_page = await first_page.get_next_page()
print(f"number of items we just fetched: {len(next_page.data)}")

# Remove `await` for non-async usage.
```

Or just work directly with the returned data:

```python
first_page = await client.employees.list_enrollments(
employee_id="empl_abc123def456",
)

print(f"page number: {first_page.pagination.page}") # => "page number: 1"
for employee in first_page.data:
print(employee.id)

# Remove `await` for non-async usage.
```

## Nested params

Nested parameters are dictionaries, typed using `TypedDict`, for example:
Expand Down
Loading
Loading