fathom-python 0.0.31__tar.gz → 0.0.34__tar.gz

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 (70) hide show
  1. {fathom_python-0.0.31 → fathom_python-0.0.34}/PKG-INFO +22 -35
  2. {fathom_python-0.0.31 → fathom_python-0.0.34}/README.md +21 -34
  3. {fathom_python-0.0.31 → fathom_python-0.0.34}/pyproject.toml +2 -1
  4. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/_version.py +3 -3
  5. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/basesdk.py +11 -1
  6. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/errors/__init__.py +18 -5
  7. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/errors/apierror.py +2 -0
  8. fathom_python-0.0.34/src/fathom_python/errors/fathomerror.py +30 -0
  9. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/errors/no_response_error.py +5 -1
  10. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/errors/responsevalidationerror.py +2 -0
  11. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/__init__.py +96 -11
  12. fathom_python-0.0.34/src/fathom_python/models/callbackresponse.py +13 -0
  13. fathom_python-0.0.34/src/fathom_python/models/createwebhookop.py +61 -0
  14. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/fathomuser.py +3 -0
  15. fathom_python-0.0.34/src/fathom_python/models/getrecordingsummaryop.py +82 -0
  16. fathom_python-0.0.34/src/fathom_python/models/getrecordingtranscriptop.py +50 -0
  17. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/invitee.py +9 -1
  18. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/listmeetingsop.py +37 -10
  19. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/listteammembersop.py +15 -1
  20. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/listteamsop.py +12 -1
  21. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/meeting.py +10 -5
  22. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/webhook.py +12 -0
  23. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/sdk.py +486 -25
  24. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/__init__.py +18 -5
  25. fathom_python-0.0.34/src/fathom_python/utils/annotations.py +79 -0
  26. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/eventstreaming.py +10 -0
  27. fathom_python-0.0.31/src/fathom_python/errors/fathomerror.py +0 -26
  28. fathom_python-0.0.31/src/fathom_python/models/createwebhookop.py +0 -36
  29. fathom_python-0.0.31/src/fathom_python/utils/annotations.py +0 -55
  30. {fathom_python-0.0.31 → fathom_python-0.0.34}/py.typed +0 -0
  31. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/__init__.py +0 -0
  32. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/_hooks/__init__.py +0 -0
  33. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/_hooks/registration.py +0 -0
  34. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/_hooks/sdkhooks.py +0 -0
  35. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/_hooks/types.py +0 -0
  36. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/httpclient.py +0 -0
  37. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/actionitem.py +0 -0
  38. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/assignee.py +0 -0
  39. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/crmcompanymatch.py +0 -0
  40. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/crmcontactmatch.py +0 -0
  41. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/crmdealmatch.py +0 -0
  42. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/crmmatches.py +0 -0
  43. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/deletewebhookop.py +0 -0
  44. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/meetinglistresponse.py +0 -0
  45. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/meetingsummary.py +0 -0
  46. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/security.py +0 -0
  47. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/team.py +0 -0
  48. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/teamlistresponse.py +0 -0
  49. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/teammember.py +0 -0
  50. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/teammemberlistresponse.py +0 -0
  51. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/transcriptitem.py +0 -0
  52. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/models/transcriptitemspeaker.py +0 -0
  53. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/py.typed +0 -0
  54. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/sdkconfiguration.py +0 -0
  55. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/types/__init__.py +0 -0
  56. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/types/basemodel.py +0 -0
  57. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/datetimes.py +0 -0
  58. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/enums.py +0 -0
  59. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/forms.py +0 -0
  60. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/headers.py +0 -0
  61. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/logger.py +0 -0
  62. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/metadata.py +0 -0
  63. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/queryparams.py +0 -0
  64. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/requestbodies.py +0 -0
  65. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/retries.py +0 -0
  66. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/security.py +0 -0
  67. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/serializers.py +0 -0
  68. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/unmarshal_json_response.py +0 -0
  69. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/url.py +0 -0
  70. {fathom_python-0.0.31 → fathom_python-0.0.34}/src/fathom_python/utils/values.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: fathom-python
3
- Version: 0.0.31
3
+ Version: 0.0.34
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -27,28 +27,6 @@ Fathom External API: The Fathom External API lets you poll meetings, teams, and
27
27
  optionally receive webhooks when content from a new meeting is ready.
28
28
  <!-- End Summary [summary] -->
29
29
 
30
- <!-- Start Table of Contents [toc] -->
31
- ## Table of Contents
32
- <!-- $toc-max-depth=2 -->
33
- * fathom-api
34
- * SDK Installation
35
- * Requirements
36
- * SDK Example Usage
37
- * Authentication
38
- * Available Resources and Operations
39
- * Standalone functions
40
- * Pagination
41
- * Retries
42
- * Error Handling
43
- * Custom HTTP Client
44
- * Resource Management
45
- * Debugging
46
- * Development
47
- * Maturity
48
- * Custom HTTP Client
49
-
50
- <!-- End Table of Contents [toc] -->
51
-
52
30
  <!-- Start SDK Installation [installation] -->
53
31
  ## SDK Installation
54
32
 
@@ -57,7 +35,15 @@ optionally receive webhooks when content from a new meeting is ready.
57
35
  >
58
36
  > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
59
37
 
60
- The SDK can be installed with either *pip* or *poetry* package managers.
38
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
39
+
40
+ ### uv
41
+
42
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
43
+
44
+ ```bash
45
+ uv add fathom-python
46
+ ```
61
47
 
62
48
  ### PIP
63
49
 
@@ -140,7 +126,7 @@ with Fathom(
140
126
  ], calendar_invitees_domains=[
141
127
  "acme.com",
142
128
  "client.com",
143
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
129
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
144
130
  "ceo@acme.com",
145
131
  "pm@acme.com",
146
132
  ], teams=[
@@ -156,7 +142,8 @@ with Fathom(
156
142
 
157
143
  </br>
158
144
 
159
- The same SDK client can also be used to make asychronous requests by importing asyncio.
145
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
146
+
160
147
  ```python
161
148
  # Asynchronous Example
162
149
  import asyncio
@@ -177,7 +164,7 @@ async def main():
177
164
  ], calendar_invitees_domains=[
178
165
  "acme.com",
179
166
  "client.com",
180
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
167
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
181
168
  "ceo@acme.com",
182
169
  "pm@acme.com",
183
170
  ], teams=[
@@ -224,7 +211,7 @@ with Fathom(
224
211
  ], calendar_invitees_domains=[
225
212
  "acme.com",
226
213
  "client.com",
227
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
214
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
228
215
  "ceo@acme.com",
229
216
  "pm@acme.com",
230
217
  ], teams=[
@@ -249,6 +236,8 @@ with Fathom(
249
236
  ### [Fathom SDK](docs/sdks/fathom/README.md)
250
237
 
251
238
  * [list_meetings](docs/sdks/fathom/README.md#list_meetings) - List meetings
239
+ * [get_recording_summary](docs/sdks/fathom/README.md#get_recording_summary) - Get summary
240
+ * [get_recording_transcript](docs/sdks/fathom/README.md#get_recording_transcript) - Get transcript
252
241
  * [list_teams](docs/sdks/fathom/README.md#list_teams) - List teams
253
242
  * [list_team_members](docs/sdks/fathom/README.md#list_team_members) - List team members
254
243
  * [create_webhook](docs/sdks/fathom/README.md#create_webhook) - Create a webhook
@@ -282,7 +271,7 @@ with Fathom(
282
271
  ], calendar_invitees_domains=[
283
272
  "acme.com",
284
273
  "client.com",
285
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
274
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
286
275
  "ceo@acme.com",
287
276
  "pm@acme.com",
288
277
  ], teams=[
@@ -322,7 +311,7 @@ with Fathom(
322
311
  ], calendar_invitees_domains=[
323
312
  "acme.com",
324
313
  "client.com",
325
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
314
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
326
315
  "ceo@acme.com",
327
316
  "pm@acme.com",
328
317
  ], teams=[
@@ -358,7 +347,7 @@ with Fathom(
358
347
  ], calendar_invitees_domains=[
359
348
  "acme.com",
360
349
  "client.com",
361
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
350
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
362
351
  "ceo@acme.com",
363
352
  "pm@acme.com",
364
353
  ], teams=[
@@ -407,7 +396,7 @@ with Fathom(
407
396
  ], calendar_invitees_domains=[
408
397
  "acme.com",
409
398
  "client.com",
410
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
399
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
411
400
  "ceo@acme.com",
412
401
  "pm@acme.com",
413
402
  ], teams=[
@@ -451,7 +440,6 @@ with Fathom(
451
440
  </details>
452
441
  <!-- End Error Handling [errors] -->
453
442
 
454
-
455
443
  <!-- Start Server Selection [server] -->
456
444
  ## Server Selection
457
445
 
@@ -476,7 +464,7 @@ with Fathom(
476
464
  ], calendar_invitees_domains=[
477
465
  "acme.com",
478
466
  "client.com",
479
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
467
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
480
468
  "ceo@acme.com",
481
469
  "pm@acme.com",
482
470
  ], teams=[
@@ -605,7 +593,6 @@ async def amain():
605
593
  ```
606
594
  <!-- End Resource Management [resource-management] -->
607
595
 
608
-
609
596
  <!-- Start Debugging [debug] -->
610
597
  ## Debugging
611
598
 
@@ -7,28 +7,6 @@ Fathom External API: The Fathom External API lets you poll meetings, teams, and
7
7
  optionally receive webhooks when content from a new meeting is ready.
8
8
  <!-- End Summary [summary] -->
9
9
 
10
- <!-- Start Table of Contents [toc] -->
11
- ## Table of Contents
12
- <!-- $toc-max-depth=2 -->
13
- * fathom-api
14
- * SDK Installation
15
- * Requirements
16
- * SDK Example Usage
17
- * Authentication
18
- * Available Resources and Operations
19
- * Standalone functions
20
- * Pagination
21
- * Retries
22
- * Error Handling
23
- * Custom HTTP Client
24
- * Resource Management
25
- * Debugging
26
- * Development
27
- * Maturity
28
- * Custom HTTP Client
29
-
30
- <!-- End Table of Contents [toc] -->
31
-
32
10
  <!-- Start SDK Installation [installation] -->
33
11
  ## SDK Installation
34
12
 
@@ -37,7 +15,15 @@ optionally receive webhooks when content from a new meeting is ready.
37
15
  >
38
16
  > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
39
17
 
40
- The SDK can be installed with either *pip* or *poetry* package managers.
18
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
19
+
20
+ ### uv
21
+
22
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
23
+
24
+ ```bash
25
+ uv add fathom-python
26
+ ```
41
27
 
42
28
  ### PIP
43
29
 
@@ -120,7 +106,7 @@ with Fathom(
120
106
  ], calendar_invitees_domains=[
121
107
  "acme.com",
122
108
  "client.com",
123
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
109
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
124
110
  "ceo@acme.com",
125
111
  "pm@acme.com",
126
112
  ], teams=[
@@ -136,7 +122,8 @@ with Fathom(
136
122
 
137
123
  </br>
138
124
 
139
- The same SDK client can also be used to make asychronous requests by importing asyncio.
125
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
126
+
140
127
  ```python
141
128
  # Asynchronous Example
142
129
  import asyncio
@@ -157,7 +144,7 @@ async def main():
157
144
  ], calendar_invitees_domains=[
158
145
  "acme.com",
159
146
  "client.com",
160
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
147
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
161
148
  "ceo@acme.com",
162
149
  "pm@acme.com",
163
150
  ], teams=[
@@ -204,7 +191,7 @@ with Fathom(
204
191
  ], calendar_invitees_domains=[
205
192
  "acme.com",
206
193
  "client.com",
207
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
194
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
208
195
  "ceo@acme.com",
209
196
  "pm@acme.com",
210
197
  ], teams=[
@@ -229,6 +216,8 @@ with Fathom(
229
216
  ### [Fathom SDK](docs/sdks/fathom/README.md)
230
217
 
231
218
  * [list_meetings](docs/sdks/fathom/README.md#list_meetings) - List meetings
219
+ * [get_recording_summary](docs/sdks/fathom/README.md#get_recording_summary) - Get summary
220
+ * [get_recording_transcript](docs/sdks/fathom/README.md#get_recording_transcript) - Get transcript
232
221
  * [list_teams](docs/sdks/fathom/README.md#list_teams) - List teams
233
222
  * [list_team_members](docs/sdks/fathom/README.md#list_team_members) - List team members
234
223
  * [create_webhook](docs/sdks/fathom/README.md#create_webhook) - Create a webhook
@@ -262,7 +251,7 @@ with Fathom(
262
251
  ], calendar_invitees_domains=[
263
252
  "acme.com",
264
253
  "client.com",
265
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
254
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
266
255
  "ceo@acme.com",
267
256
  "pm@acme.com",
268
257
  ], teams=[
@@ -302,7 +291,7 @@ with Fathom(
302
291
  ], calendar_invitees_domains=[
303
292
  "acme.com",
304
293
  "client.com",
305
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
294
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
306
295
  "ceo@acme.com",
307
296
  "pm@acme.com",
308
297
  ], teams=[
@@ -338,7 +327,7 @@ with Fathom(
338
327
  ], calendar_invitees_domains=[
339
328
  "acme.com",
340
329
  "client.com",
341
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
330
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
342
331
  "ceo@acme.com",
343
332
  "pm@acme.com",
344
333
  ], teams=[
@@ -387,7 +376,7 @@ with Fathom(
387
376
  ], calendar_invitees_domains=[
388
377
  "acme.com",
389
378
  "client.com",
390
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
379
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
391
380
  "ceo@acme.com",
392
381
  "pm@acme.com",
393
382
  ], teams=[
@@ -431,7 +420,6 @@ with Fathom(
431
420
  </details>
432
421
  <!-- End Error Handling [errors] -->
433
422
 
434
-
435
423
  <!-- Start Server Selection [server] -->
436
424
  ## Server Selection
437
425
 
@@ -456,7 +444,7 @@ with Fathom(
456
444
  ], calendar_invitees_domains=[
457
445
  "acme.com",
458
446
  "client.com",
459
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
447
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
460
448
  "ceo@acme.com",
461
449
  "pm@acme.com",
462
450
  ], teams=[
@@ -585,7 +573,6 @@ async def amain():
585
573
  ```
586
574
  <!-- End Resource Management [resource-management] -->
587
575
 
588
-
589
576
  <!-- Start Debugging [debug] -->
590
577
  ## Debugging
591
578
 
@@ -1,6 +1,7 @@
1
+
1
2
  [project]
2
3
  name = "fathom-python"
3
- version = "0.0.31"
4
+ version = "0.0.34"
4
5
  description = "Python Client SDK Generated by Speakeasy."
5
6
  authors = [{ name = "Speakeasy" },]
6
7
  readme = "README.md"
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "fathom-python"
6
- __version__: str = "0.0.31"
6
+ __version__: str = "0.0.34"
7
7
  __openapi_doc_version__: str = "1.0.0"
8
- __gen_version__: str = "2.670.1"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.31 2.670.1 1.0.0 fathom-python"
8
+ __gen_version__: str = "2.716.16"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.34 2.716.16 1.0.0 fathom-python"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -15,9 +15,19 @@ from urllib.parse import parse_qs, urlparse
15
15
 
16
16
  class BaseSDK:
17
17
  sdk_configuration: SDKConfiguration
18
+ parent_ref: Optional[object] = None
19
+ """
20
+ Reference to the root SDK instance, if any. This will prevent it from
21
+ being garbage collected while there are active streams.
22
+ """
18
23
 
19
- def __init__(self, sdk_config: SDKConfiguration) -> None:
24
+ def __init__(
25
+ self,
26
+ sdk_config: SDKConfiguration,
27
+ parent_ref: Optional[object] = None,
28
+ ) -> None:
20
29
  self.sdk_configuration = sdk_config
30
+ self.parent_ref = parent_ref
21
31
 
22
32
  def _get_url(self, base_url, url_variables):
23
33
  sdk_url, sdk_variables = self.sdk_configuration.get_server_details()
@@ -1,11 +1,13 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
+ from .fathomerror import FathomError
3
4
  from typing import TYPE_CHECKING
4
5
  from importlib import import_module
6
+ import builtins
7
+ import sys
5
8
 
6
9
  if TYPE_CHECKING:
7
10
  from .apierror import APIError
8
- from .fathomerror import FathomError
9
11
  from .no_response_error import NoResponseError
10
12
  from .responsevalidationerror import ResponseValidationError
11
13
 
@@ -13,12 +15,23 @@ __all__ = ["APIError", "FathomError", "NoResponseError", "ResponseValidationErro
13
15
 
14
16
  _dynamic_imports: dict[str, str] = {
15
17
  "APIError": ".apierror",
16
- "FathomError": ".fathomerror",
17
18
  "NoResponseError": ".no_response_error",
18
19
  "ResponseValidationError": ".responsevalidationerror",
19
20
  }
20
21
 
21
22
 
23
+ def dynamic_import(modname, retries=3):
24
+ for attempt in range(retries):
25
+ try:
26
+ return import_module(modname, __package__)
27
+ except KeyError:
28
+ # Clear any half-initialized module and retry
29
+ sys.modules.pop(modname, None)
30
+ if attempt == retries - 1:
31
+ break
32
+ raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
33
+
34
+
22
35
  def __getattr__(attr_name: str) -> object:
23
36
  module_name = _dynamic_imports.get(attr_name)
24
37
  if module_name is None:
@@ -27,7 +40,7 @@ def __getattr__(attr_name: str) -> object:
27
40
  )
28
41
 
29
42
  try:
30
- module = import_module(module_name, __package__)
43
+ module = dynamic_import(module_name)
31
44
  result = getattr(module, attr_name)
32
45
  return result
33
46
  except ImportError as e:
@@ -41,5 +54,5 @@ def __getattr__(attr_name: str) -> object:
41
54
 
42
55
 
43
56
  def __dir__():
44
- lazy_attrs = list(_dynamic_imports.keys())
45
- return sorted(lazy_attrs)
57
+ lazy_attrs = builtins.list(_dynamic_imports.keys())
58
+ return builtins.sorted(lazy_attrs)
@@ -2,12 +2,14 @@
2
2
 
3
3
  import httpx
4
4
  from typing import Optional
5
+ from dataclasses import dataclass
5
6
 
6
7
  from fathom_python.errors import FathomError
7
8
 
8
9
  MAX_MESSAGE_LEN = 10_000
9
10
 
10
11
 
12
+ @dataclass(frozen=True)
11
13
  class APIError(FathomError):
12
14
  """The fallback error class if no more specific error class is matched."""
13
15
 
@@ -0,0 +1,30 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ import httpx
4
+ from typing import Optional
5
+ from dataclasses import dataclass, field
6
+
7
+
8
+ @dataclass(frozen=True)
9
+ class FathomError(Exception):
10
+ """The base class for all HTTP error responses."""
11
+
12
+ message: str
13
+ status_code: int
14
+ body: str
15
+ headers: httpx.Headers = field(hash=False)
16
+ raw_response: httpx.Response = field(hash=False)
17
+
18
+ def __init__(
19
+ self, message: str, raw_response: httpx.Response, body: Optional[str] = None
20
+ ):
21
+ object.__setattr__(self, "message", message)
22
+ object.__setattr__(self, "status_code", raw_response.status_code)
23
+ object.__setattr__(
24
+ self, "body", body if body is not None else raw_response.text
25
+ )
26
+ object.__setattr__(self, "headers", raw_response.headers)
27
+ object.__setattr__(self, "raw_response", raw_response)
28
+
29
+ def __str__(self):
30
+ return self.message
@@ -1,12 +1,16 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
+ from dataclasses import dataclass
4
+
5
+
6
+ @dataclass(frozen=True)
3
7
  class NoResponseError(Exception):
4
8
  """Error raised when no HTTP response is received from the server."""
5
9
 
6
10
  message: str
7
11
 
8
12
  def __init__(self, message: str = "No response received"):
9
- self.message = message
13
+ object.__setattr__(self, "message", message)
10
14
  super().__init__(message)
11
15
 
12
16
  def __str__(self):
@@ -2,10 +2,12 @@
2
2
 
3
3
  import httpx
4
4
  from typing import Optional
5
+ from dataclasses import dataclass
5
6
 
6
7
  from fathom_python.errors import FathomError
7
8
 
8
9
 
10
+ @dataclass(frozen=True)
9
11
  class ResponseValidationError(FathomError):
10
12
  """Error raised when there is a type mismatch between the response data and the expected Pydantic model."""
11
13