Skip to content

Commit 93903d0

Browse files
committed
Release 0.0.0-alpha3
1 parent ce12ed6 commit 93903d0

Some content is hidden

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

43 files changed

+250
-5126
lines changed

README.md

Lines changed: 0 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -1,152 +0,0 @@
1-
# Vapi Python Library
2-
3-
[![fern shield](https://img.shields.io/badge/%F0%9F%8C%BF-Built%20with%20Fern-brightgreen)](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fi.8713187.xyz%2Ffern-demo%2Fvapi-python-sdk)
4-
[![pypi](https://img.shields.io/pypi/v/Vapi)](https://pypi.python.org/pypi/Vapi)
5-
6-
The Vapi Python library provides convenient access to the Vapi API from Python.
7-
8-
## Installation
9-
10-
```sh
11-
pip install Vapi
12-
```
13-
14-
## Reference
15-
16-
A full reference for this library is available [here](./reference.md).
17-
18-
## Usage
19-
20-
Instantiate and use the client with the following:
21-
22-
```python
23-
from vapi import Vapi
24-
25-
client = Vapi(
26-
token="YOUR_TOKEN",
27-
)
28-
client.calls.create()
29-
```
30-
31-
## Async Client
32-
33-
The SDK also exports an `async` client so that you can make non-blocking calls to our API.
34-
35-
```python
36-
import asyncio
37-
38-
from vapi import AsyncVapi
39-
40-
client = AsyncVapi(
41-
token="YOUR_TOKEN",
42-
)
43-
44-
45-
async def main() -> None:
46-
await client.calls.create()
47-
48-
49-
asyncio.run(main())
50-
```
51-
52-
## Exception Handling
53-
54-
When the API returns a non-success status code (4xx or 5xx response), a subclass of the following error
55-
will be thrown.
56-
57-
```python
58-
from vapi.core.api_error import ApiError
59-
60-
try:
61-
client.calls.create(...)
62-
except ApiError as e:
63-
print(e.status_code)
64-
print(e.body)
65-
```
66-
67-
## Pagination
68-
69-
Paginated requests will return a `SyncPager` or `AsyncPager`, which can be used as generators for the underlying object.
70-
71-
```python
72-
from vapi import Vapi
73-
74-
client = Vapi(
75-
token="YOUR_TOKEN",
76-
)
77-
response = client.logs.get()
78-
for item in response:
79-
yield item
80-
# alternatively, you can paginate page-by-page
81-
for page in response.iter_pages():
82-
yield page
83-
```
84-
85-
## Advanced
86-
87-
### Retries
88-
89-
The SDK is instrumented with automatic retries with exponential backoff. A request will be retried as long
90-
as the request is deemed retriable and the number of retry attempts has not grown larger than the configured
91-
retry limit (default: 2).
92-
93-
A request is deemed retriable when any of the following HTTP status codes is returned:
94-
95-
- [408](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408) (Timeout)
96-
- [429](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429) (Too Many Requests)
97-
- [5XX](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500) (Internal Server Errors)
98-
99-
Use the `max_retries` request option to configure this behavior.
100-
101-
```python
102-
client.calls.create(..., request_options={
103-
"max_retries": 1
104-
})
105-
```
106-
107-
### Timeouts
108-
109-
The SDK defaults to a 60 second timeout. You can configure this with a timeout option at the client or request level.
110-
111-
```python
112-
113-
from vapi import Vapi
114-
115-
client = Vapi(
116-
...,
117-
timeout=20.0,
118-
)
119-
120-
121-
# Override timeout for a specific method
122-
client.calls.create(..., request_options={
123-
"timeout_in_seconds": 1
124-
})
125-
```
126-
127-
### Custom Client
128-
129-
You can override the `httpx` client to customize it for your use-case. Some common use-cases include support for proxies
130-
and transports.
131-
```python
132-
import httpx
133-
from vapi import Vapi
134-
135-
client = Vapi(
136-
...,
137-
httpx_client=httpx.Client(
138-
proxies="http://my.test.proxy.example.com",
139-
transport=httpx.HTTPTransport(local_address="0.0.0.0"),
140-
),
141-
)
142-
```
143-
144-
## Contributing
145-
146-
While we value open-source contributions to this SDK, this library is generated programmatically.
147-
Additions made directly to this library would have to be moved over to our generation code,
148-
otherwise they would be overwritten upon the next generated release. Feel free to open a PR as
149-
a proof of concept, but know that we will not be able to merge it as-is. We suggest opening
150-
an issue first to discuss with us!
151-
152-
On the other hand, contributions to the README are always very welcome!

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "Vapi"
3-
version = "0.0.0-alpha2"
3+
version = "0.0.0-alpha3"
44
description = ""
55
readme = "README.md"
66
authors = []

0 commit comments

Comments
 (0)