evermemos 0.3.6__py3-none-any.whl → 0.3.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. evermemos/_version.py +1 -1
  2. evermemos/resources/v1/__init__.py +28 -0
  3. evermemos/resources/v1/global_user_profile/__init__.py +33 -0
  4. evermemos/resources/v1/global_user_profile/custom.py +185 -0
  5. evermemos/resources/v1/global_user_profile/global_user_profile.py +102 -0
  6. evermemos/resources/v1/memories/conversation_meta.py +2 -78
  7. evermemos/resources/v1/memories/memories.py +172 -101
  8. evermemos/resources/v1/stats/__init__.py +33 -0
  9. evermemos/resources/v1/stats/request.py +175 -0
  10. evermemos/resources/v1/stats/stats.py +102 -0
  11. evermemos/resources/v1/v1.py +64 -0
  12. evermemos/types/v1/__init__.py +3 -1
  13. evermemos/types/v1/global_user_profile/__init__.py +6 -0
  14. evermemos/types/v1/global_user_profile/custom_upsert_params.py +24 -0
  15. evermemos/types/v1/global_user_profile/custom_upsert_response.py +23 -0
  16. evermemos/types/v1/memories/conversation_meta_create_params.py +0 -3
  17. evermemos/types/v1/memories/conversation_meta_create_response.py +0 -3
  18. evermemos/types/v1/memories/conversation_meta_get_response.py +0 -3
  19. evermemos/types/v1/memory_create_params.py +10 -2
  20. evermemos/types/v1/{memory_list_response.py → memory_get_response.py} +84 -3
  21. evermemos/types/v1/memory_load_params.py +83 -0
  22. evermemos/types/v1/memory_load_response.py +26 -0
  23. evermemos/types/v1/stats/__init__.py +6 -0
  24. evermemos/types/v1/stats/request_get_params.py +13 -0
  25. evermemos/types/v1/stats/request_get_response.py +26 -0
  26. {evermemos-0.3.6.dist-info → evermemos-0.3.7.dist-info}/METADATA +45 -17
  27. {evermemos-0.3.6.dist-info → evermemos-0.3.7.dist-info}/RECORD +29 -15
  28. {evermemos-0.3.6.dist-info → evermemos-0.3.7.dist-info}/WHEEL +0 -0
  29. {evermemos-0.3.6.dist-info → evermemos-0.3.7.dist-info}/licenses/LICENSE +0 -0
@@ -2,14 +2,14 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Optional
5
+ from typing import Iterable, Optional
6
6
 
7
7
  import httpx
8
8
 
9
9
  from ...._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
10
10
  from ...._utils import maybe_transform, async_maybe_transform
11
11
  from ...._compat import cached_property
12
- from ....types.v1 import memory_create_params, memory_delete_params
12
+ from ....types.v1 import memory_load_params, memory_create_params, memory_delete_params
13
13
  from ...._resource import SyncAPIResource, AsyncAPIResource
14
14
  from ...._response import (
15
15
  to_raw_response_wrapper,
@@ -26,7 +26,8 @@ from .conversation_meta import (
26
26
  ConversationMetaResourceWithStreamingResponse,
27
27
  AsyncConversationMetaResourceWithStreamingResponse,
28
28
  )
29
- from ....types.v1.memory_list_response import MemoryListResponse
29
+ from ....types.v1.memory_get_response import MemoryGetResponse
30
+ from ....types.v1.memory_load_response import MemoryLoadResponse
30
31
  from ....types.v1.memory_create_response import MemoryCreateResponse
31
32
  from ....types.v1.memory_delete_response import MemoryDeleteResponse
32
33
  from ....types.v1.memory_search_response import MemorySearchResponse
@@ -87,9 +88,11 @@ class MemoriesResource(SyncAPIResource):
87
88
 
88
89
  message_id: Message unique identifier
89
90
 
90
- sender: Sender user ID
91
+ sender: Sender user ID (required). Also used as user_id internally for memory ownership.
91
92
 
92
- group_id: Group ID
93
+ group_id: Group ID. If not provided, will automatically generate based on hash(sender) +
94
+ '\\__group' suffix, representing single-user mode where each user's messages are
95
+ extracted into separate memory spaces.
93
96
 
94
97
  group_name: Group name
95
98
 
@@ -133,25 +136,6 @@ class MemoriesResource(SyncAPIResource):
133
136
  cast_to=MemoryCreateResponse,
134
137
  )
135
138
 
136
- def list(
137
- self,
138
- *,
139
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
140
- # The extra values given here take precedence over values defined on the client or passed to this method.
141
- extra_headers: Headers | None = None,
142
- extra_query: Query | None = None,
143
- extra_body: Body | None = None,
144
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
145
- ) -> MemoryListResponse:
146
- """Retrieve memory records by memory_type with optional filters"""
147
- return self._get(
148
- "/api/v1/memories",
149
- options=make_request_options(
150
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
151
- ),
152
- cast_to=MemoryListResponse,
153
- )
154
-
155
139
  def delete(
156
140
  self,
157
141
  *,
@@ -168,28 +152,6 @@ class MemoriesResource(SyncAPIResource):
168
152
  """
169
153
  Delete memory records based on combined filter criteria
170
154
 
171
- ## Functionality:
172
- - Delete records matching combined filter conditions
173
- - If multiple conditions provided, ALL must be satisfied (AND logic)
174
- - At least one filter must be specified
175
-
176
- ## Filter Parameters (combined with AND):
177
- - **event_id**: Filter by specific event_id
178
- - **user_id**: Filter by user ID
179
- - **group_id**: Filter by group ID
180
-
181
- ## Examples:
182
- - event_id only: Delete specific memory
183
- - user_id only: Delete all user's memories
184
- - user_id + group_id: Delete user's memories in specific group
185
- - event_id + user_id + group_id: Delete if all conditions match
186
-
187
- ## Use cases:
188
- - User requests data deletion
189
- - Group chat cleanup
190
- - Privacy compliance (GDPR, etc.)
191
- - Conversation history management
192
-
193
155
  Args:
194
156
  event_id: Memory event_id (filter condition)
195
157
 
@@ -221,6 +183,74 @@ class MemoriesResource(SyncAPIResource):
221
183
  cast_to=MemoryDeleteResponse,
222
184
  )
223
185
 
186
+ def get(
187
+ self,
188
+ *,
189
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
190
+ # The extra values given here take precedence over values defined on the client or passed to this method.
191
+ extra_headers: Headers | None = None,
192
+ extra_query: Query | None = None,
193
+ extra_body: Body | None = None,
194
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
195
+ ) -> MemoryGetResponse:
196
+ """Retrieve memory records by memory_type with optional filters"""
197
+ return self._get(
198
+ "/api/v1/memories",
199
+ options=make_request_options(
200
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
201
+ ),
202
+ cast_to=MemoryGetResponse,
203
+ )
204
+
205
+ def load(
206
+ self,
207
+ *,
208
+ conversation_meta: memory_load_params.ConversationMeta,
209
+ conversation_list: Optional[Iterable[memory_load_params.ConversationList]] | Omit = omit,
210
+ version: Optional[str] | Omit = omit,
211
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
212
+ # The extra values given here take precedence over values defined on the client or passed to this method.
213
+ extra_headers: Headers | None = None,
214
+ extra_query: Query | None = None,
215
+ extra_body: Body | None = None,
216
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
217
+ ) -> MemoryLoadResponse:
218
+ """Import conversation metadata and message list in one request.
219
+
220
+ Messages are
221
+ queued for processing.
222
+
223
+ Args:
224
+ conversation_meta: Conversation metadata for batch import.
225
+
226
+ conversation_list: Message list.
227
+
228
+ version: Format version.
229
+
230
+ extra_headers: Send extra headers
231
+
232
+ extra_query: Add additional query parameters to the request
233
+
234
+ extra_body: Add additional JSON properties to the request
235
+
236
+ timeout: Override the client-level default timeout for this request, in seconds
237
+ """
238
+ return self._post(
239
+ "/api/v1/memories/import",
240
+ body=maybe_transform(
241
+ {
242
+ "conversation_meta": conversation_meta,
243
+ "conversation_list": conversation_list,
244
+ "version": version,
245
+ },
246
+ memory_load_params.MemoryLoadParams,
247
+ ),
248
+ options=make_request_options(
249
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
250
+ ),
251
+ cast_to=MemoryLoadResponse,
252
+ )
253
+
224
254
  def search(
225
255
  self,
226
256
  *,
@@ -297,9 +327,11 @@ class AsyncMemoriesResource(AsyncAPIResource):
297
327
 
298
328
  message_id: Message unique identifier
299
329
 
300
- sender: Sender user ID
330
+ sender: Sender user ID (required). Also used as user_id internally for memory ownership.
301
331
 
302
- group_id: Group ID
332
+ group_id: Group ID. If not provided, will automatically generate based on hash(sender) +
333
+ '\\__group' suffix, representing single-user mode where each user's messages are
334
+ extracted into separate memory spaces.
303
335
 
304
336
  group_name: Group name
305
337
 
@@ -343,25 +375,6 @@ class AsyncMemoriesResource(AsyncAPIResource):
343
375
  cast_to=MemoryCreateResponse,
344
376
  )
345
377
 
346
- async def list(
347
- self,
348
- *,
349
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
350
- # The extra values given here take precedence over values defined on the client or passed to this method.
351
- extra_headers: Headers | None = None,
352
- extra_query: Query | None = None,
353
- extra_body: Body | None = None,
354
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
355
- ) -> MemoryListResponse:
356
- """Retrieve memory records by memory_type with optional filters"""
357
- return await self._get(
358
- "/api/v1/memories",
359
- options=make_request_options(
360
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
361
- ),
362
- cast_to=MemoryListResponse,
363
- )
364
-
365
378
  async def delete(
366
379
  self,
367
380
  *,
@@ -378,28 +391,6 @@ class AsyncMemoriesResource(AsyncAPIResource):
378
391
  """
379
392
  Delete memory records based on combined filter criteria
380
393
 
381
- ## Functionality:
382
- - Delete records matching combined filter conditions
383
- - If multiple conditions provided, ALL must be satisfied (AND logic)
384
- - At least one filter must be specified
385
-
386
- ## Filter Parameters (combined with AND):
387
- - **event_id**: Filter by specific event_id
388
- - **user_id**: Filter by user ID
389
- - **group_id**: Filter by group ID
390
-
391
- ## Examples:
392
- - event_id only: Delete specific memory
393
- - user_id only: Delete all user's memories
394
- - user_id + group_id: Delete user's memories in specific group
395
- - event_id + user_id + group_id: Delete if all conditions match
396
-
397
- ## Use cases:
398
- - User requests data deletion
399
- - Group chat cleanup
400
- - Privacy compliance (GDPR, etc.)
401
- - Conversation history management
402
-
403
394
  Args:
404
395
  event_id: Memory event_id (filter condition)
405
396
 
@@ -431,6 +422,74 @@ class AsyncMemoriesResource(AsyncAPIResource):
431
422
  cast_to=MemoryDeleteResponse,
432
423
  )
433
424
 
425
+ async def get(
426
+ self,
427
+ *,
428
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
429
+ # The extra values given here take precedence over values defined on the client or passed to this method.
430
+ extra_headers: Headers | None = None,
431
+ extra_query: Query | None = None,
432
+ extra_body: Body | None = None,
433
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
434
+ ) -> MemoryGetResponse:
435
+ """Retrieve memory records by memory_type with optional filters"""
436
+ return await self._get(
437
+ "/api/v1/memories",
438
+ options=make_request_options(
439
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
440
+ ),
441
+ cast_to=MemoryGetResponse,
442
+ )
443
+
444
+ async def load(
445
+ self,
446
+ *,
447
+ conversation_meta: memory_load_params.ConversationMeta,
448
+ conversation_list: Optional[Iterable[memory_load_params.ConversationList]] | Omit = omit,
449
+ version: Optional[str] | Omit = omit,
450
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
451
+ # The extra values given here take precedence over values defined on the client or passed to this method.
452
+ extra_headers: Headers | None = None,
453
+ extra_query: Query | None = None,
454
+ extra_body: Body | None = None,
455
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
456
+ ) -> MemoryLoadResponse:
457
+ """Import conversation metadata and message list in one request.
458
+
459
+ Messages are
460
+ queued for processing.
461
+
462
+ Args:
463
+ conversation_meta: Conversation metadata for batch import.
464
+
465
+ conversation_list: Message list.
466
+
467
+ version: Format version.
468
+
469
+ extra_headers: Send extra headers
470
+
471
+ extra_query: Add additional query parameters to the request
472
+
473
+ extra_body: Add additional JSON properties to the request
474
+
475
+ timeout: Override the client-level default timeout for this request, in seconds
476
+ """
477
+ return await self._post(
478
+ "/api/v1/memories/import",
479
+ body=await async_maybe_transform(
480
+ {
481
+ "conversation_meta": conversation_meta,
482
+ "conversation_list": conversation_list,
483
+ "version": version,
484
+ },
485
+ memory_load_params.MemoryLoadParams,
486
+ ),
487
+ options=make_request_options(
488
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
489
+ ),
490
+ cast_to=MemoryLoadResponse,
491
+ )
492
+
434
493
  async def search(
435
494
  self,
436
495
  *,
@@ -461,12 +520,15 @@ class MemoriesResourceWithRawResponse:
461
520
  self.create = to_raw_response_wrapper(
462
521
  memories.create,
463
522
  )
464
- self.list = to_raw_response_wrapper(
465
- memories.list,
466
- )
467
523
  self.delete = to_raw_response_wrapper(
468
524
  memories.delete,
469
525
  )
526
+ self.get = to_raw_response_wrapper(
527
+ memories.get,
528
+ )
529
+ self.load = to_raw_response_wrapper(
530
+ memories.load,
531
+ )
470
532
  self.search = to_raw_response_wrapper(
471
533
  memories.search,
472
534
  )
@@ -483,12 +545,15 @@ class AsyncMemoriesResourceWithRawResponse:
483
545
  self.create = async_to_raw_response_wrapper(
484
546
  memories.create,
485
547
  )
486
- self.list = async_to_raw_response_wrapper(
487
- memories.list,
488
- )
489
548
  self.delete = async_to_raw_response_wrapper(
490
549
  memories.delete,
491
550
  )
551
+ self.get = async_to_raw_response_wrapper(
552
+ memories.get,
553
+ )
554
+ self.load = async_to_raw_response_wrapper(
555
+ memories.load,
556
+ )
492
557
  self.search = async_to_raw_response_wrapper(
493
558
  memories.search,
494
559
  )
@@ -505,12 +570,15 @@ class MemoriesResourceWithStreamingResponse:
505
570
  self.create = to_streamed_response_wrapper(
506
571
  memories.create,
507
572
  )
508
- self.list = to_streamed_response_wrapper(
509
- memories.list,
510
- )
511
573
  self.delete = to_streamed_response_wrapper(
512
574
  memories.delete,
513
575
  )
576
+ self.get = to_streamed_response_wrapper(
577
+ memories.get,
578
+ )
579
+ self.load = to_streamed_response_wrapper(
580
+ memories.load,
581
+ )
514
582
  self.search = to_streamed_response_wrapper(
515
583
  memories.search,
516
584
  )
@@ -527,12 +595,15 @@ class AsyncMemoriesResourceWithStreamingResponse:
527
595
  self.create = async_to_streamed_response_wrapper(
528
596
  memories.create,
529
597
  )
530
- self.list = async_to_streamed_response_wrapper(
531
- memories.list,
532
- )
533
598
  self.delete = async_to_streamed_response_wrapper(
534
599
  memories.delete,
535
600
  )
601
+ self.get = async_to_streamed_response_wrapper(
602
+ memories.get,
603
+ )
604
+ self.load = async_to_streamed_response_wrapper(
605
+ memories.load,
606
+ )
536
607
  self.search = async_to_streamed_response_wrapper(
537
608
  memories.search,
538
609
  )
@@ -0,0 +1,33 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from .stats import (
4
+ StatsResource,
5
+ AsyncStatsResource,
6
+ StatsResourceWithRawResponse,
7
+ AsyncStatsResourceWithRawResponse,
8
+ StatsResourceWithStreamingResponse,
9
+ AsyncStatsResourceWithStreamingResponse,
10
+ )
11
+ from .request import (
12
+ RequestResource,
13
+ AsyncRequestResource,
14
+ RequestResourceWithRawResponse,
15
+ AsyncRequestResourceWithRawResponse,
16
+ RequestResourceWithStreamingResponse,
17
+ AsyncRequestResourceWithStreamingResponse,
18
+ )
19
+
20
+ __all__ = [
21
+ "RequestResource",
22
+ "AsyncRequestResource",
23
+ "RequestResourceWithRawResponse",
24
+ "AsyncRequestResourceWithRawResponse",
25
+ "RequestResourceWithStreamingResponse",
26
+ "AsyncRequestResourceWithStreamingResponse",
27
+ "StatsResource",
28
+ "AsyncStatsResource",
29
+ "StatsResourceWithRawResponse",
30
+ "AsyncStatsResourceWithRawResponse",
31
+ "StatsResourceWithStreamingResponse",
32
+ "AsyncStatsResourceWithStreamingResponse",
33
+ ]
@@ -0,0 +1,175 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Optional
6
+
7
+ import httpx
8
+
9
+ from ...._types import Body, Query, Headers, NotGiven, not_given
10
+ from ...._utils import maybe_transform, async_maybe_transform
11
+ from ...._compat import cached_property
12
+ from ...._resource import SyncAPIResource, AsyncAPIResource
13
+ from ...._response import (
14
+ to_raw_response_wrapper,
15
+ to_streamed_response_wrapper,
16
+ async_to_raw_response_wrapper,
17
+ async_to_streamed_response_wrapper,
18
+ )
19
+ from ...._base_client import make_request_options
20
+ from ....types.v1.stats import request_get_params
21
+ from ....types.v1.stats.request_get_response import RequestGetResponse
22
+
23
+ __all__ = ["RequestResource", "AsyncRequestResource"]
24
+
25
+
26
+ class RequestResource(SyncAPIResource):
27
+ @cached_property
28
+ def with_raw_response(self) -> RequestResourceWithRawResponse:
29
+ """
30
+ This property can be used as a prefix for any HTTP method call to return
31
+ the raw response object instead of the parsed content.
32
+
33
+ For more information, see https://www.github.com/evermemos/evermemos-python#accessing-raw-response-data-eg-headers
34
+ """
35
+ return RequestResourceWithRawResponse(self)
36
+
37
+ @cached_property
38
+ def with_streaming_response(self) -> RequestResourceWithStreamingResponse:
39
+ """
40
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
41
+
42
+ For more information, see https://www.github.com/evermemos/evermemos-python#with_streaming_response
43
+ """
44
+ return RequestResourceWithStreamingResponse(self)
45
+
46
+ def get(
47
+ self,
48
+ *,
49
+ request_id: Optional[str],
50
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
51
+ # The extra values given here take precedence over values defined on the client or passed to this method.
52
+ extra_headers: Headers | None = None,
53
+ extra_query: Query | None = None,
54
+ extra_body: Body | None = None,
55
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
56
+ ) -> RequestGetResponse:
57
+ """
58
+ Query the processing status of a specific request
59
+
60
+ Args:
61
+ request_id: Request ID (recommended)
62
+
63
+ extra_headers: Send extra headers
64
+
65
+ extra_query: Add additional query parameters to the request
66
+
67
+ extra_body: Add additional JSON properties to the request
68
+
69
+ timeout: Override the client-level default timeout for this request, in seconds
70
+ """
71
+ return self._get(
72
+ "/api/v1/stats/request",
73
+ options=make_request_options(
74
+ extra_headers=extra_headers,
75
+ extra_query=extra_query,
76
+ extra_body=extra_body,
77
+ timeout=timeout,
78
+ query=maybe_transform({"request_id": request_id}, request_get_params.RequestGetParams),
79
+ ),
80
+ cast_to=RequestGetResponse,
81
+ )
82
+
83
+
84
+ class AsyncRequestResource(AsyncAPIResource):
85
+ @cached_property
86
+ def with_raw_response(self) -> AsyncRequestResourceWithRawResponse:
87
+ """
88
+ This property can be used as a prefix for any HTTP method call to return
89
+ the raw response object instead of the parsed content.
90
+
91
+ For more information, see https://www.github.com/evermemos/evermemos-python#accessing-raw-response-data-eg-headers
92
+ """
93
+ return AsyncRequestResourceWithRawResponse(self)
94
+
95
+ @cached_property
96
+ def with_streaming_response(self) -> AsyncRequestResourceWithStreamingResponse:
97
+ """
98
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
99
+
100
+ For more information, see https://www.github.com/evermemos/evermemos-python#with_streaming_response
101
+ """
102
+ return AsyncRequestResourceWithStreamingResponse(self)
103
+
104
+ async def get(
105
+ self,
106
+ *,
107
+ request_id: Optional[str],
108
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
109
+ # The extra values given here take precedence over values defined on the client or passed to this method.
110
+ extra_headers: Headers | None = None,
111
+ extra_query: Query | None = None,
112
+ extra_body: Body | None = None,
113
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
114
+ ) -> RequestGetResponse:
115
+ """
116
+ Query the processing status of a specific request
117
+
118
+ Args:
119
+ request_id: Request ID (recommended)
120
+
121
+ extra_headers: Send extra headers
122
+
123
+ extra_query: Add additional query parameters to the request
124
+
125
+ extra_body: Add additional JSON properties to the request
126
+
127
+ timeout: Override the client-level default timeout for this request, in seconds
128
+ """
129
+ return await self._get(
130
+ "/api/v1/stats/request",
131
+ options=make_request_options(
132
+ extra_headers=extra_headers,
133
+ extra_query=extra_query,
134
+ extra_body=extra_body,
135
+ timeout=timeout,
136
+ query=await async_maybe_transform({"request_id": request_id}, request_get_params.RequestGetParams),
137
+ ),
138
+ cast_to=RequestGetResponse,
139
+ )
140
+
141
+
142
+ class RequestResourceWithRawResponse:
143
+ def __init__(self, request: RequestResource) -> None:
144
+ self._request = request
145
+
146
+ self.get = to_raw_response_wrapper(
147
+ request.get,
148
+ )
149
+
150
+
151
+ class AsyncRequestResourceWithRawResponse:
152
+ def __init__(self, request: AsyncRequestResource) -> None:
153
+ self._request = request
154
+
155
+ self.get = async_to_raw_response_wrapper(
156
+ request.get,
157
+ )
158
+
159
+
160
+ class RequestResourceWithStreamingResponse:
161
+ def __init__(self, request: RequestResource) -> None:
162
+ self._request = request
163
+
164
+ self.get = to_streamed_response_wrapper(
165
+ request.get,
166
+ )
167
+
168
+
169
+ class AsyncRequestResourceWithStreamingResponse:
170
+ def __init__(self, request: AsyncRequestResource) -> None:
171
+ self._request = request
172
+
173
+ self.get = async_to_streamed_response_wrapper(
174
+ request.get,
175
+ )
@@ -0,0 +1,102 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from .request import (
6
+ RequestResource,
7
+ AsyncRequestResource,
8
+ RequestResourceWithRawResponse,
9
+ AsyncRequestResourceWithRawResponse,
10
+ RequestResourceWithStreamingResponse,
11
+ AsyncRequestResourceWithStreamingResponse,
12
+ )
13
+ from ...._compat import cached_property
14
+ from ...._resource import SyncAPIResource, AsyncAPIResource
15
+
16
+ __all__ = ["StatsResource", "AsyncStatsResource"]
17
+
18
+
19
+ class StatsResource(SyncAPIResource):
20
+ @cached_property
21
+ def request(self) -> RequestResource:
22
+ return RequestResource(self._client)
23
+
24
+ @cached_property
25
+ def with_raw_response(self) -> StatsResourceWithRawResponse:
26
+ """
27
+ This property can be used as a prefix for any HTTP method call to return
28
+ the raw response object instead of the parsed content.
29
+
30
+ For more information, see https://www.github.com/evermemos/evermemos-python#accessing-raw-response-data-eg-headers
31
+ """
32
+ return StatsResourceWithRawResponse(self)
33
+
34
+ @cached_property
35
+ def with_streaming_response(self) -> StatsResourceWithStreamingResponse:
36
+ """
37
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
38
+
39
+ For more information, see https://www.github.com/evermemos/evermemos-python#with_streaming_response
40
+ """
41
+ return StatsResourceWithStreamingResponse(self)
42
+
43
+
44
+ class AsyncStatsResource(AsyncAPIResource):
45
+ @cached_property
46
+ def request(self) -> AsyncRequestResource:
47
+ return AsyncRequestResource(self._client)
48
+
49
+ @cached_property
50
+ def with_raw_response(self) -> AsyncStatsResourceWithRawResponse:
51
+ """
52
+ This property can be used as a prefix for any HTTP method call to return
53
+ the raw response object instead of the parsed content.
54
+
55
+ For more information, see https://www.github.com/evermemos/evermemos-python#accessing-raw-response-data-eg-headers
56
+ """
57
+ return AsyncStatsResourceWithRawResponse(self)
58
+
59
+ @cached_property
60
+ def with_streaming_response(self) -> AsyncStatsResourceWithStreamingResponse:
61
+ """
62
+ An alternative to `.with_raw_response` that doesn't eagerly read the response body.
63
+
64
+ For more information, see https://www.github.com/evermemos/evermemos-python#with_streaming_response
65
+ """
66
+ return AsyncStatsResourceWithStreamingResponse(self)
67
+
68
+
69
+ class StatsResourceWithRawResponse:
70
+ def __init__(self, stats: StatsResource) -> None:
71
+ self._stats = stats
72
+
73
+ @cached_property
74
+ def request(self) -> RequestResourceWithRawResponse:
75
+ return RequestResourceWithRawResponse(self._stats.request)
76
+
77
+
78
+ class AsyncStatsResourceWithRawResponse:
79
+ def __init__(self, stats: AsyncStatsResource) -> None:
80
+ self._stats = stats
81
+
82
+ @cached_property
83
+ def request(self) -> AsyncRequestResourceWithRawResponse:
84
+ return AsyncRequestResourceWithRawResponse(self._stats.request)
85
+
86
+
87
+ class StatsResourceWithStreamingResponse:
88
+ def __init__(self, stats: StatsResource) -> None:
89
+ self._stats = stats
90
+
91
+ @cached_property
92
+ def request(self) -> RequestResourceWithStreamingResponse:
93
+ return RequestResourceWithStreamingResponse(self._stats.request)
94
+
95
+
96
+ class AsyncStatsResourceWithStreamingResponse:
97
+ def __init__(self, stats: AsyncStatsResource) -> None:
98
+ self._stats = stats
99
+
100
+ @cached_property
101
+ def request(self) -> AsyncRequestResourceWithStreamingResponse:
102
+ return AsyncRequestResourceWithStreamingResponse(self._stats.request)