Skip to content

Commit 14bb90e

Browse files
Release 0.0.72
1 parent 48a1c50 commit 14bb90e

29 files changed

Lines changed: 223 additions & 680 deletions

README.md

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,6 @@ client = AgentMail(
8080
response = client.inboxes.with_raw_response.create(...)
8181
print(response.headers) # access the response headers
8282
print(response.data) # access the underlying object
83-
pager = client.inboxes.list(...)
84-
print(pager.response.headers) # access the response headers for the first page
85-
for item in pager:
86-
print(item) # access the underlying object(s)
87-
for page in pager.iter_pages():
88-
print(page.response.headers) # access the response headers for each page
89-
for item in page:
90-
print(item) # access the underlying object(s)
9183
```
9284

9385
### Retries

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "agentmail"
33

44
[tool.poetry]
55
name = "agentmail"
6-
version = "0.0.71"
6+
version = "0.0.72"
77
description = ""
88
readme = "README.md"
99
authors = []

reference.md

Lines changed: 17 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,7 @@ from agentmail import AgentMail
1818
client = AgentMail(
1919
api_key="YOUR_API_KEY",
2020
)
21-
response = client.inboxes.list()
22-
for item in response:
23-
yield item
24-
# alternatively, you can paginate page-by-page
25-
for page in response.iter_pages():
26-
yield page
21+
client.inboxes.list()
2722

2823
```
2924
</dd>
@@ -276,12 +271,7 @@ from agentmail import AgentMail
276271
client = AgentMail(
277272
api_key="YOUR_API_KEY",
278273
)
279-
response = client.pods.list()
280-
for item in response:
281-
yield item
282-
# alternatively, you can paginate page-by-page
283-
for page in response.iter_pages():
284-
yield page
274+
client.pods.list()
285275

286276
```
287277
</dd>
@@ -774,12 +764,7 @@ from agentmail import AgentMail
774764
client = AgentMail(
775765
api_key="YOUR_API_KEY",
776766
)
777-
response = client.api_keys.list()
778-
for item in response:
779-
yield item
780-
# alternatively, you can paginate page-by-page
781-
for page in response.iter_pages():
782-
yield page
767+
client.api_keys.list()
783768

784769
```
785770
</dd>
@@ -954,12 +939,7 @@ from agentmail import AgentMail
954939
client = AgentMail(
955940
api_key="YOUR_API_KEY",
956941
)
957-
response = client.domains.list()
958-
for item in response:
959-
yield item
960-
# alternatively, you can paginate page-by-page
961-
for page in response.iter_pages():
962-
yield page
942+
client.domains.list()
963943

964944
```
965945
</dd>
@@ -1255,12 +1235,7 @@ from agentmail import AgentMail
12551235
client = AgentMail(
12561236
api_key="YOUR_API_KEY",
12571237
)
1258-
response = client.drafts.list()
1259-
for item in response:
1260-
yield item
1261-
# alternatively, you can paginate page-by-page
1262-
for page in response.iter_pages():
1263-
yield page
1238+
client.drafts.list()
12641239

12651240
```
12661241
</dd>
@@ -1411,14 +1386,9 @@ from agentmail import AgentMail
14111386
client = AgentMail(
14121387
api_key="YOUR_API_KEY",
14131388
)
1414-
response = client.inboxes.drafts.list(
1389+
client.inboxes.drafts.list(
14151390
inbox_id="inbox_id",
14161391
)
1417-
for item in response:
1418-
yield item
1419-
# alternatively, you can paginate page-by-page
1420-
for page in response.iter_pages():
1421-
yield page
14221392

14231393
```
14241394
</dd>
@@ -1691,6 +1661,14 @@ client.inboxes.drafts.create(
16911661
<dl>
16921662
<dd>
16931663

1664+
**client_id:** `typing.Optional[DraftClientId]`
1665+
1666+
</dd>
1667+
</dl>
1668+
1669+
<dl>
1670+
<dd>
1671+
16941672
**request_options:** `typing.Optional[RequestOptions]` — Request-specific configuration.
16951673

16961674
</dd>
@@ -1868,14 +1846,9 @@ from agentmail import AgentMail
18681846
client = AgentMail(
18691847
api_key="YOUR_API_KEY",
18701848
)
1871-
response = client.inboxes.messages.list(
1849+
client.inboxes.messages.list(
18721850
inbox_id="inbox_id",
18731851
)
1874-
for item in response:
1875-
yield item
1876-
# alternatively, you can paginate page-by-page
1877-
for page in response.iter_pages():
1878-
yield page
18791852

18801853
```
18811854
</dd>
@@ -2609,14 +2582,9 @@ from agentmail import AgentMail
26092582
client = AgentMail(
26102583
api_key="YOUR_API_KEY",
26112584
)
2612-
response = client.inboxes.threads.list(
2585+
client.inboxes.threads.list(
26132586
inbox_id="inbox_id",
26142587
)
2615-
for item in response:
2616-
yield item
2617-
# alternatively, you can paginate page-by-page
2618-
for page in response.iter_pages():
2619-
yield page
26202588

26212589
```
26222590
</dd>
@@ -3984,12 +3952,7 @@ from agentmail import AgentMail
39843952
client = AgentMail(
39853953
api_key="YOUR_API_KEY",
39863954
)
3987-
response = client.threads.list()
3988-
for item in response:
3989-
yield item
3990-
# alternatively, you can paginate page-by-page
3991-
for page in response.iter_pages():
3992-
yield page
3955+
client.threads.list()
39933956

39943957
```
39953958
</dd>

src/agentmail/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
DraftAttachments,
7676
DraftBcc,
7777
DraftCc,
78+
DraftClientId,
7879
DraftHtml,
7980
DraftId,
8081
DraftInReplyTo,
@@ -207,6 +208,7 @@
207208
"DraftAttachments": ".drafts",
208209
"DraftBcc": ".drafts",
209210
"DraftCc": ".drafts",
211+
"DraftClientId": ".drafts",
210212
"DraftHtml": ".drafts",
211213
"DraftId": ".drafts",
212214
"DraftInReplyTo": ".drafts",
@@ -382,6 +384,7 @@ def __dir__():
382384
"DraftAttachments",
383385
"DraftBcc",
384386
"DraftCc",
387+
"DraftClientId",
385388
"DraftHtml",
386389
"DraftId",
387390
"DraftInReplyTo",

src/agentmail/api_keys/client.py

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
import typing
44

55
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6-
from ..core.pagination import AsyncPager, SyncPager
76
from ..core.request_options import RequestOptions
87
from ..types.limit import Limit
98
from ..types.page_token import PageToken
109
from .raw_client import AsyncRawApiKeysClient, RawApiKeysClient
11-
from .types.api_key import ApiKey
1210
from .types.api_key_id import ApiKeyId
1311
from .types.create_api_key_response import CreateApiKeyResponse
12+
from .types.list_api_keys_response import ListApiKeysResponse
1413
from .types.name import Name
1514

1615
# this is used as the default value for optional parameters
@@ -38,7 +37,7 @@ def list(
3837
limit: typing.Optional[Limit] = None,
3938
page_token: typing.Optional[PageToken] = None,
4039
request_options: typing.Optional[RequestOptions] = None,
41-
) -> SyncPager[ApiKey]:
40+
) -> ListApiKeysResponse:
4241
"""
4342
Parameters
4443
----------
@@ -51,7 +50,7 @@ def list(
5150
5251
Returns
5352
-------
54-
SyncPager[ApiKey]
53+
ListApiKeysResponse
5554
5655
Examples
5756
--------
@@ -60,14 +59,10 @@ def list(
6059
client = AgentMail(
6160
api_key="YOUR_API_KEY",
6261
)
63-
response = client.api_keys.list()
64-
for item in response:
65-
yield item
66-
# alternatively, you can paginate page-by-page
67-
for page in response.iter_pages():
68-
yield page
62+
client.api_keys.list()
6963
"""
70-
return self._raw_client.list(limit=limit, page_token=page_token, request_options=request_options)
64+
_response = self._raw_client.list(limit=limit, page_token=page_token, request_options=request_options)
65+
return _response.data
7166

7267
def create(self, *, name: Name, request_options: typing.Optional[RequestOptions] = None) -> CreateApiKeyResponse:
7368
"""
@@ -145,7 +140,7 @@ async def list(
145140
limit: typing.Optional[Limit] = None,
146141
page_token: typing.Optional[PageToken] = None,
147142
request_options: typing.Optional[RequestOptions] = None,
148-
) -> AsyncPager[ApiKey]:
143+
) -> ListApiKeysResponse:
149144
"""
150145
Parameters
151146
----------
@@ -158,7 +153,7 @@ async def list(
158153
159154
Returns
160155
-------
161-
AsyncPager[ApiKey]
156+
ListApiKeysResponse
162157
163158
Examples
164159
--------
@@ -172,18 +167,13 @@ async def list(
172167
173168
174169
async def main() -> None:
175-
response = await client.api_keys.list()
176-
async for item in response:
177-
yield item
178-
179-
# alternatively, you can paginate page-by-page
180-
async for page in response.iter_pages():
181-
yield page
170+
await client.api_keys.list()
182171
183172
184173
asyncio.run(main())
185174
"""
186-
return await self._raw_client.list(limit=limit, page_token=page_token, request_options=request_options)
175+
_response = await self._raw_client.list(limit=limit, page_token=page_token, request_options=request_options)
176+
return _response.data
187177

188178
async def create(
189179
self, *, name: Name, request_options: typing.Optional[RequestOptions] = None

src/agentmail/api_keys/raw_client.py

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
88
from ..core.http_response import AsyncHttpResponse, HttpResponse
99
from ..core.jsonable_encoder import jsonable_encoder
10-
from ..core.pagination import AsyncPager, BaseHttpResponse, SyncPager
1110
from ..core.request_options import RequestOptions
1211
from ..core.unchecked_base_model import construct_type
1312
from ..errors.not_found_error import NotFoundError
@@ -16,7 +15,6 @@
1615
from ..types.limit import Limit
1716
from ..types.page_token import PageToken
1817
from ..types.validation_error_response import ValidationErrorResponse
19-
from .types.api_key import ApiKey
2018
from .types.api_key_id import ApiKeyId
2119
from .types.create_api_key_response import CreateApiKeyResponse
2220
from .types.list_api_keys_response import ListApiKeysResponse
@@ -36,7 +34,7 @@ def list(
3634
limit: typing.Optional[Limit] = None,
3735
page_token: typing.Optional[PageToken] = None,
3836
request_options: typing.Optional[RequestOptions] = None,
39-
) -> SyncPager[ApiKey]:
37+
) -> HttpResponse[ListApiKeysResponse]:
4038
"""
4139
Parameters
4240
----------
@@ -49,7 +47,7 @@ def list(
4947
5048
Returns
5149
-------
52-
SyncPager[ApiKey]
50+
HttpResponse[ListApiKeysResponse]
5351
"""
5452
_response = self._client_wrapper.httpx_client.request(
5553
"v0/api-keys",
@@ -63,24 +61,14 @@ def list(
6361
)
6462
try:
6563
if 200 <= _response.status_code < 300:
66-
_parsed_response = typing.cast(
64+
_data = typing.cast(
6765
ListApiKeysResponse,
6866
construct_type(
6967
type_=ListApiKeysResponse, # type: ignore
7068
object_=_response.json(),
7169
),
7270
)
73-
_items = _parsed_response.api_keys
74-
_parsed_next = _parsed_response.next_page_token
75-
_has_next = _parsed_next is not None and _parsed_next != ""
76-
_get_next = lambda: self.list(
77-
limit=limit,
78-
page_token=_parsed_next,
79-
request_options=request_options,
80-
)
81-
return SyncPager(
82-
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
83-
)
71+
return HttpResponse(response=_response, data=_data)
8472
_response_json = _response.json()
8573
except JSONDecodeError:
8674
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
@@ -188,7 +176,7 @@ async def list(
188176
limit: typing.Optional[Limit] = None,
189177
page_token: typing.Optional[PageToken] = None,
190178
request_options: typing.Optional[RequestOptions] = None,
191-
) -> AsyncPager[ApiKey]:
179+
) -> AsyncHttpResponse[ListApiKeysResponse]:
192180
"""
193181
Parameters
194182
----------
@@ -201,7 +189,7 @@ async def list(
201189
202190
Returns
203191
-------
204-
AsyncPager[ApiKey]
192+
AsyncHttpResponse[ListApiKeysResponse]
205193
"""
206194
_response = await self._client_wrapper.httpx_client.request(
207195
"v0/api-keys",
@@ -215,27 +203,14 @@ async def list(
215203
)
216204
try:
217205
if 200 <= _response.status_code < 300:
218-
_parsed_response = typing.cast(
206+
_data = typing.cast(
219207
ListApiKeysResponse,
220208
construct_type(
221209
type_=ListApiKeysResponse, # type: ignore
222210
object_=_response.json(),
223211
),
224212
)
225-
_items = _parsed_response.api_keys
226-
_parsed_next = _parsed_response.next_page_token
227-
_has_next = _parsed_next is not None and _parsed_next != ""
228-
229-
async def _get_next():
230-
return await self.list(
231-
limit=limit,
232-
page_token=_parsed_next,
233-
request_options=request_options,
234-
)
235-
236-
return AsyncPager(
237-
has_next=_has_next, items=_items, get_next=_get_next, response=BaseHttpResponse(response=_response)
238-
)
213+
return AsyncHttpResponse(response=_response, data=_data)
239214
_response_json = _response.json()
240215
except JSONDecodeError:
241216
raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)

0 commit comments

Comments
 (0)