fathom-python 0.0.36__tar.gz → 0.0.38__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 (72) hide show
  1. {fathom_python-0.0.36 → fathom_python-0.0.38}/PKG-INFO +20 -42
  2. {fathom_python-0.0.36 → fathom_python-0.0.38}/README.md +17 -40
  3. {fathom_python-0.0.36 → fathom_python-0.0.38}/pyproject.toml +2 -1
  4. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/_version.py +3 -3
  5. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/errors/apierror.py +1 -1
  6. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/errors/fathomerror.py +1 -1
  7. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/errors/no_response_error.py +1 -1
  8. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/errors/responsevalidationerror.py +1 -1
  9. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/__init__.py +28 -2
  10. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/listmeetingsop.py +12 -40
  11. fathom_python-0.0.38/src/fathom_python/models/listmeetingtypesop.py +34 -0
  12. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/meeting.py +6 -0
  13. fathom_python-0.0.38/src/fathom_python/models/meetingtype.py +34 -0
  14. fathom_python-0.0.38/src/fathom_python/models/meetingtypelistresponse.py +52 -0
  15. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/sdk.py +274 -20
  16. fathom_python-0.0.38/src/fathom_python/types/base64fileinput.py +39 -0
  17. fathom_python-0.0.38/src/fathom_python/utils/dynamic_imports.py +54 -0
  18. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/retries.py +69 -5
  19. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/unmarshal_json_response.py +15 -1
  20. {fathom_python-0.0.36 → fathom_python-0.0.38}/py.typed +0 -0
  21. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/__init__.py +0 -0
  22. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/_hooks/__init__.py +0 -0
  23. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/_hooks/registration.py +0 -0
  24. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/_hooks/sdkhooks.py +0 -0
  25. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/_hooks/types.py +0 -0
  26. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/basesdk.py +0 -0
  27. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/errors/__init__.py +0 -0
  28. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/httpclient.py +0 -0
  29. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/actionitem.py +0 -0
  30. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/assignee.py +0 -0
  31. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/callbackresponse.py +0 -0
  32. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/createwebhookop.py +0 -0
  33. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/crmcompanymatch.py +0 -0
  34. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/crmcontactmatch.py +0 -0
  35. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/crmdealmatch.py +0 -0
  36. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/crmmatches.py +0 -0
  37. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/deletewebhookop.py +0 -0
  38. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/fathomuser.py +0 -0
  39. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/getrecordingsummaryop.py +0 -0
  40. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/getrecordingtranscriptop.py +0 -0
  41. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/invitee.py +0 -0
  42. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/listteammembersop.py +0 -0
  43. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/listteamsop.py +0 -0
  44. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/meetinglistresponse.py +0 -0
  45. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/meetingsummary.py +0 -0
  46. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/security.py +0 -0
  47. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/team.py +0 -0
  48. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/teamlistresponse.py +0 -0
  49. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/teammember.py +0 -0
  50. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/teammemberlistresponse.py +0 -0
  51. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/transcriptitem.py +0 -0
  52. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/transcriptitemspeaker.py +0 -0
  53. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/models/webhook.py +0 -0
  54. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/py.typed +0 -0
  55. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/sdkconfiguration.py +0 -0
  56. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/types/__init__.py +0 -0
  57. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/types/basemodel.py +0 -0
  58. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/__init__.py +0 -0
  59. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/annotations.py +0 -0
  60. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/datetimes.py +0 -0
  61. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/enums.py +0 -0
  62. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/eventstreaming.py +0 -0
  63. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/forms.py +0 -0
  64. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/headers.py +0 -0
  65. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/logger.py +0 -0
  66. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/metadata.py +0 -0
  67. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/queryparams.py +0 -0
  68. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/requestbodies.py +0 -0
  69. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/security.py +0 -0
  70. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/serializers.py +0 -0
  71. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/url.py +0 -0
  72. {fathom_python-0.0.36 → fathom_python-0.0.38}/src/fathom_python/utils/values.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: fathom-python
3
- Version: 0.0.36
3
+ Version: 0.0.38
4
4
  Summary: Fathom's official Python SDK.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -9,6 +9,7 @@ Classifier: Programming Language :: Python :: 3.10
9
9
  Classifier: Programming Language :: Python :: 3.11
10
10
  Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
+ Classifier: Programming Language :: Python :: 3.14
12
13
  Requires-Dist: httpcore (>=1.0.9)
13
14
  Requires-Dist: httpx (>=0.28.1)
14
15
  Requires-Dist: jsonpath-python (>=1.0.6)
@@ -120,13 +121,10 @@ with Fathom(
120
121
  ),
121
122
  ) as fathom:
122
123
 
123
- res = fathom.list_meetings(calendar_invitees=[
124
- "cfo@acme.com",
125
- "legal@acme.com",
126
- ], calendar_invitees_domains=[
124
+ res = fathom.list_meetings(calendar_invitees_domains=[
127
125
  "acme.com",
128
126
  "client.com",
129
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
127
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
130
128
  "ceo@acme.com",
131
129
  "pm@acme.com",
132
130
  ], teams=[
@@ -158,13 +156,10 @@ async def main():
158
156
  ),
159
157
  ) as fathom:
160
158
 
161
- res = await fathom.list_meetings_async(calendar_invitees=[
162
- "cfo@acme.com",
163
- "legal@acme.com",
164
- ], calendar_invitees_domains=[
159
+ res = await fathom.list_meetings_async(calendar_invitees_domains=[
165
160
  "acme.com",
166
161
  "client.com",
167
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
162
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
168
163
  "ceo@acme.com",
169
164
  "pm@acme.com",
170
165
  ], teams=[
@@ -205,13 +200,10 @@ with Fathom(
205
200
  ),
206
201
  ) as fathom:
207
202
 
208
- res = fathom.list_meetings(calendar_invitees=[
209
- "cfo@acme.com",
210
- "legal@acme.com",
211
- ], calendar_invitees_domains=[
203
+ res = fathom.list_meetings(calendar_invitees_domains=[
212
204
  "acme.com",
213
205
  "client.com",
214
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
206
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
215
207
  "ceo@acme.com",
216
208
  "pm@acme.com",
217
209
  ], teams=[
@@ -240,6 +232,7 @@ with Fathom(
240
232
  * [get_recording_transcript](docs/sdks/fathom/README.md#get_recording_transcript) - Get transcript
241
233
  * [list_teams](docs/sdks/fathom/README.md#list_teams) - List teams
242
234
  * [list_team_members](docs/sdks/fathom/README.md#list_team_members) - List team members
235
+ * [list_meeting_types](docs/sdks/fathom/README.md#list_meeting_types) - List meeting types
243
236
  * [create_webhook](docs/sdks/fathom/README.md#create_webhook) - Create a webhook
244
237
  * [delete_webhook](docs/sdks/fathom/README.md#delete_webhook) - Delete a webhook
245
238
 
@@ -265,13 +258,10 @@ with Fathom(
265
258
  ),
266
259
  ) as fathom:
267
260
 
268
- res = fathom.list_meetings(calendar_invitees=[
269
- "cfo@acme.com",
270
- "legal@acme.com",
271
- ], calendar_invitees_domains=[
261
+ res = fathom.list_meetings(calendar_invitees_domains=[
272
262
  "acme.com",
273
263
  "client.com",
274
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
264
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
275
265
  "ceo@acme.com",
276
266
  "pm@acme.com",
277
267
  ], teams=[
@@ -305,13 +295,10 @@ with Fathom(
305
295
  ),
306
296
  ) as fathom:
307
297
 
308
- res = fathom.list_meetings(calendar_invitees=[
309
- "cfo@acme.com",
310
- "legal@acme.com",
311
- ], calendar_invitees_domains=[
298
+ res = fathom.list_meetings(calendar_invitees_domains=[
312
299
  "acme.com",
313
300
  "client.com",
314
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
301
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
315
302
  "ceo@acme.com",
316
303
  "pm@acme.com",
317
304
  ], teams=[
@@ -341,13 +328,10 @@ with Fathom(
341
328
  ),
342
329
  ) as fathom:
343
330
 
344
- res = fathom.list_meetings(calendar_invitees=[
345
- "cfo@acme.com",
346
- "legal@acme.com",
347
- ], calendar_invitees_domains=[
331
+ res = fathom.list_meetings(calendar_invitees_domains=[
348
332
  "acme.com",
349
333
  "client.com",
350
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
334
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
351
335
  "ceo@acme.com",
352
336
  "pm@acme.com",
353
337
  ], teams=[
@@ -390,13 +374,10 @@ with Fathom(
390
374
  res = None
391
375
  try:
392
376
 
393
- res = fathom.list_meetings(calendar_invitees=[
394
- "cfo@acme.com",
395
- "legal@acme.com",
396
- ], calendar_invitees_domains=[
377
+ res = fathom.list_meetings(calendar_invitees_domains=[
397
378
  "acme.com",
398
379
  "client.com",
399
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
380
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
400
381
  "ceo@acme.com",
401
382
  "pm@acme.com",
402
383
  ], teams=[
@@ -458,13 +439,10 @@ with Fathom(
458
439
  ),
459
440
  ) as fathom:
460
441
 
461
- res = fathom.list_meetings(calendar_invitees=[
462
- "cfo@acme.com",
463
- "legal@acme.com",
464
- ], calendar_invitees_domains=[
442
+ res = fathom.list_meetings(calendar_invitees_domains=[
465
443
  "acme.com",
466
444
  "client.com",
467
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
445
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
468
446
  "ceo@acme.com",
469
447
  "pm@acme.com",
470
448
  ], teams=[
@@ -100,13 +100,10 @@ with Fathom(
100
100
  ),
101
101
  ) as fathom:
102
102
 
103
- res = fathom.list_meetings(calendar_invitees=[
104
- "cfo@acme.com",
105
- "legal@acme.com",
106
- ], calendar_invitees_domains=[
103
+ res = fathom.list_meetings(calendar_invitees_domains=[
107
104
  "acme.com",
108
105
  "client.com",
109
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
106
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
110
107
  "ceo@acme.com",
111
108
  "pm@acme.com",
112
109
  ], teams=[
@@ -138,13 +135,10 @@ async def main():
138
135
  ),
139
136
  ) as fathom:
140
137
 
141
- res = await fathom.list_meetings_async(calendar_invitees=[
142
- "cfo@acme.com",
143
- "legal@acme.com",
144
- ], calendar_invitees_domains=[
138
+ res = await fathom.list_meetings_async(calendar_invitees_domains=[
145
139
  "acme.com",
146
140
  "client.com",
147
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
141
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
148
142
  "ceo@acme.com",
149
143
  "pm@acme.com",
150
144
  ], teams=[
@@ -185,13 +179,10 @@ with Fathom(
185
179
  ),
186
180
  ) as fathom:
187
181
 
188
- res = fathom.list_meetings(calendar_invitees=[
189
- "cfo@acme.com",
190
- "legal@acme.com",
191
- ], calendar_invitees_domains=[
182
+ res = fathom.list_meetings(calendar_invitees_domains=[
192
183
  "acme.com",
193
184
  "client.com",
194
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
185
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
195
186
  "ceo@acme.com",
196
187
  "pm@acme.com",
197
188
  ], teams=[
@@ -220,6 +211,7 @@ with Fathom(
220
211
  * [get_recording_transcript](docs/sdks/fathom/README.md#get_recording_transcript) - Get transcript
221
212
  * [list_teams](docs/sdks/fathom/README.md#list_teams) - List teams
222
213
  * [list_team_members](docs/sdks/fathom/README.md#list_team_members) - List team members
214
+ * [list_meeting_types](docs/sdks/fathom/README.md#list_meeting_types) - List meeting types
223
215
  * [create_webhook](docs/sdks/fathom/README.md#create_webhook) - Create a webhook
224
216
  * [delete_webhook](docs/sdks/fathom/README.md#delete_webhook) - Delete a webhook
225
217
 
@@ -245,13 +237,10 @@ with Fathom(
245
237
  ),
246
238
  ) as fathom:
247
239
 
248
- res = fathom.list_meetings(calendar_invitees=[
249
- "cfo@acme.com",
250
- "legal@acme.com",
251
- ], calendar_invitees_domains=[
240
+ res = fathom.list_meetings(calendar_invitees_domains=[
252
241
  "acme.com",
253
242
  "client.com",
254
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
243
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
255
244
  "ceo@acme.com",
256
245
  "pm@acme.com",
257
246
  ], teams=[
@@ -285,13 +274,10 @@ with Fathom(
285
274
  ),
286
275
  ) as fathom:
287
276
 
288
- res = fathom.list_meetings(calendar_invitees=[
289
- "cfo@acme.com",
290
- "legal@acme.com",
291
- ], calendar_invitees_domains=[
277
+ res = fathom.list_meetings(calendar_invitees_domains=[
292
278
  "acme.com",
293
279
  "client.com",
294
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
280
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
295
281
  "ceo@acme.com",
296
282
  "pm@acme.com",
297
283
  ], teams=[
@@ -321,13 +307,10 @@ with Fathom(
321
307
  ),
322
308
  ) as fathom:
323
309
 
324
- res = fathom.list_meetings(calendar_invitees=[
325
- "cfo@acme.com",
326
- "legal@acme.com",
327
- ], calendar_invitees_domains=[
310
+ res = fathom.list_meetings(calendar_invitees_domains=[
328
311
  "acme.com",
329
312
  "client.com",
330
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
313
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
331
314
  "ceo@acme.com",
332
315
  "pm@acme.com",
333
316
  ], teams=[
@@ -370,13 +353,10 @@ with Fathom(
370
353
  res = None
371
354
  try:
372
355
 
373
- res = fathom.list_meetings(calendar_invitees=[
374
- "cfo@acme.com",
375
- "legal@acme.com",
376
- ], calendar_invitees_domains=[
356
+ res = fathom.list_meetings(calendar_invitees_domains=[
377
357
  "acme.com",
378
358
  "client.com",
379
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
359
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
380
360
  "ceo@acme.com",
381
361
  "pm@acme.com",
382
362
  ], teams=[
@@ -438,13 +418,10 @@ with Fathom(
438
418
  ),
439
419
  ) as fathom:
440
420
 
441
- res = fathom.list_meetings(calendar_invitees=[
442
- "cfo@acme.com",
443
- "legal@acme.com",
444
- ], calendar_invitees_domains=[
421
+ res = fathom.list_meetings(calendar_invitees_domains=[
445
422
  "acme.com",
446
423
  "client.com",
447
- ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
424
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_action_items=False, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type="Quarterly Business Review", recorded_by=[
448
425
  "ceo@acme.com",
449
426
  "pm@acme.com",
450
427
  ], teams=[
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "fathom-python"
4
- version = "0.0.36"
4
+ version = "0.0.38"
5
5
  description = "Fathom's official Python SDK."
6
6
  authors = [{ name = "Speakeasy" },]
7
7
  readme = "README.md"
@@ -31,6 +31,7 @@ in-project = true
31
31
  [tool.poetry.group.dev.dependencies]
32
32
  mypy = "==1.15.0"
33
33
  pylint = "==3.2.3"
34
+ pyright = "==1.1.398"
34
35
 
35
36
  [build-system]
36
37
  requires = ["poetry-core"]
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "fathom-python"
6
- __version__: str = "0.0.36"
6
+ __version__: str = "0.0.38"
7
7
  __openapi_doc_version__: str = "1.0.0"
8
- __gen_version__: str = "2.723.8"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.36 2.723.8 1.0.0 fathom-python"
8
+ __gen_version__: str = "2.762.0"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.38 2.762.0 1.0.0 fathom-python"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -9,7 +9,7 @@ from fathom_python.errors import FathomError
9
9
  MAX_MESSAGE_LEN = 10_000
10
10
 
11
11
 
12
- @dataclass(frozen=True)
12
+ @dataclass(unsafe_hash=True)
13
13
  class APIError(FathomError):
14
14
  """The fallback error class if no more specific error class is matched."""
15
15
 
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  from dataclasses import dataclass, field
6
6
 
7
7
 
8
- @dataclass(frozen=True)
8
+ @dataclass(unsafe_hash=True)
9
9
  class FathomError(Exception):
10
10
  """The base class for all HTTP error responses."""
11
11
 
@@ -3,7 +3,7 @@
3
3
  from dataclasses import dataclass
4
4
 
5
5
 
6
- @dataclass(frozen=True)
6
+ @dataclass(unsafe_hash=True)
7
7
  class NoResponseError(Exception):
8
8
  """Error raised when no HTTP response is received from the server."""
9
9
 
@@ -7,7 +7,7 @@ from dataclasses import dataclass
7
7
  from fathom_python.errors import FathomError
8
8
 
9
9
 
10
- @dataclass(frozen=True)
10
+ @dataclass(unsafe_hash=True)
11
11
  class ResponseValidationError(FathomError):
12
12
  """Error raised when there is a type mismatch between the response data and the expected Pydantic model."""
13
13
 
@@ -43,7 +43,12 @@ if TYPE_CHECKING:
43
43
  ListMeetingsRequestTypedDict,
44
44
  ListMeetingsResponse,
45
45
  ListMeetingsResponseTypedDict,
46
- MeetingType,
46
+ )
47
+ from .listmeetingtypesop import (
48
+ ListMeetingTypesRequest,
49
+ ListMeetingTypesRequestTypedDict,
50
+ ListMeetingTypesResponse,
51
+ ListMeetingTypesResponseTypedDict,
47
52
  )
48
53
  from .listteammembersop import (
49
54
  ListTeamMembersRequest,
@@ -60,6 +65,11 @@ if TYPE_CHECKING:
60
65
  from .meeting import CalendarInviteesDomainsType, Meeting, MeetingTypedDict
61
66
  from .meetinglistresponse import MeetingListResponse, MeetingListResponseTypedDict
62
67
  from .meetingsummary import MeetingSummary, MeetingSummaryTypedDict
68
+ from .meetingtype import MeetingType, MeetingTypeTypedDict, Status
69
+ from .meetingtypelistresponse import (
70
+ MeetingTypeListResponse,
71
+ MeetingTypeListResponseTypedDict,
72
+ )
63
73
  from .security import Security, SecurityTypedDict
64
74
  from .team import Team, TeamTypedDict
65
75
  from .teamlistresponse import TeamListResponse, TeamListResponseTypedDict
@@ -112,6 +122,10 @@ __all__ = [
112
122
  "GetRecordingTranscriptResponseTypedDict",
113
123
  "Invitee",
114
124
  "InviteeTypedDict",
125
+ "ListMeetingTypesRequest",
126
+ "ListMeetingTypesRequestTypedDict",
127
+ "ListMeetingTypesResponse",
128
+ "ListMeetingTypesResponseTypedDict",
115
129
  "ListMeetingsCalendarInviteesDomainsType",
116
130
  "ListMeetingsRequest",
117
131
  "ListMeetingsRequestTypedDict",
@@ -131,9 +145,13 @@ __all__ = [
131
145
  "MeetingSummary",
132
146
  "MeetingSummaryTypedDict",
133
147
  "MeetingType",
148
+ "MeetingTypeListResponse",
149
+ "MeetingTypeListResponseTypedDict",
150
+ "MeetingTypeTypedDict",
134
151
  "MeetingTypedDict",
135
152
  "Security",
136
153
  "SecurityTypedDict",
154
+ "Status",
137
155
  "Team",
138
156
  "TeamListResponse",
139
157
  "TeamListResponseTypedDict",
@@ -192,7 +210,10 @@ _dynamic_imports: dict[str, str] = {
192
210
  "ListMeetingsRequestTypedDict": ".listmeetingsop",
193
211
  "ListMeetingsResponse": ".listmeetingsop",
194
212
  "ListMeetingsResponseTypedDict": ".listmeetingsop",
195
- "MeetingType": ".listmeetingsop",
213
+ "ListMeetingTypesRequest": ".listmeetingtypesop",
214
+ "ListMeetingTypesRequestTypedDict": ".listmeetingtypesop",
215
+ "ListMeetingTypesResponse": ".listmeetingtypesop",
216
+ "ListMeetingTypesResponseTypedDict": ".listmeetingtypesop",
196
217
  "ListTeamMembersRequest": ".listteammembersop",
197
218
  "ListTeamMembersRequestTypedDict": ".listteammembersop",
198
219
  "ListTeamMembersResponse": ".listteammembersop",
@@ -208,6 +229,11 @@ _dynamic_imports: dict[str, str] = {
208
229
  "MeetingListResponseTypedDict": ".meetinglistresponse",
209
230
  "MeetingSummary": ".meetingsummary",
210
231
  "MeetingSummaryTypedDict": ".meetingsummary",
232
+ "MeetingType": ".meetingtype",
233
+ "MeetingTypeTypedDict": ".meetingtype",
234
+ "Status": ".meetingtype",
235
+ "MeetingTypeListResponse": ".meetingtypelistresponse",
236
+ "MeetingTypeListResponseTypedDict": ".meetingtypelistresponse",
211
237
  "Security": ".security",
212
238
  "SecurityTypedDict": ".security",
213
239
  "Team": ".team",
@@ -18,25 +18,7 @@ class ListMeetingsCalendarInviteesDomainsType(str, Enum):
18
18
  ONE_OR_MORE_EXTERNAL = "one_or_more_external"
19
19
 
20
20
 
21
- class MeetingType(str, Enum):
22
- r"""Filter by meeting type."""
23
-
24
- ALL = "all"
25
- INTERNAL = "internal"
26
- EXTERNAL = "external"
27
-
28
-
29
21
  class ListMeetingsRequestTypedDict(TypedDict):
30
- calendar_invitees: NotRequired[List[str]]
31
- r"""Email address of calendar_invitees to filter by.
32
-
33
- Pass the parameter once per value, e.g.
34
- `calendar_invitees[]=cfo@acme.com&calendar_invitees[]=legal@acme.com`.
35
-
36
- Returns meetings where any of the given email addresses appear
37
- in the calendar_invitees list.
38
-
39
- """
40
22
  calendar_invitees_domains: NotRequired[List[str]]
41
23
  r"""Domains of the companies to filter by. Exact match.
42
24
 
@@ -62,8 +44,12 @@ class ListMeetingsRequestTypedDict(TypedDict):
62
44
  r"""Include the summary for each meeting. Unavailable for OAuth connected apps (use /recordings instead)."""
63
45
  include_transcript: NotRequired[bool]
64
46
  r"""Include the transcript for each meeting. Unavailable for OAuth connected apps (use /recordings instead)."""
65
- meeting_type: NotRequired[MeetingType]
66
- r"""Filter by meeting type."""
47
+ meeting_type: NotRequired[str]
48
+ r"""Filter by meeting type name.
49
+
50
+ Returns only meetings assigned the meeting type with this name. Use /meeting_types to discover valid values. An unknown or non-matching name returns an empty list.
51
+
52
+ """
67
53
  recorded_by: NotRequired[List[str]]
68
54
  r"""Email addresses of users who recorded meetings.
69
55
 
@@ -85,21 +71,6 @@ class ListMeetingsRequestTypedDict(TypedDict):
85
71
 
86
72
 
87
73
  class ListMeetingsRequest(BaseModel):
88
- calendar_invitees: Annotated[
89
- Optional[List[str]],
90
- pydantic.Field(alias="calendar_invitees[]"),
91
- FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
92
- ] = None
93
- r"""Email address of calendar_invitees to filter by.
94
-
95
- Pass the parameter once per value, e.g.
96
- `calendar_invitees[]=cfo@acme.com&calendar_invitees[]=legal@acme.com`.
97
-
98
- Returns meetings where any of the given email addresses appear
99
- in the calendar_invitees list.
100
-
101
- """
102
-
103
74
  calendar_invitees_domains: Annotated[
104
75
  Optional[List[str]],
105
76
  pydantic.Field(alias="calendar_invitees_domains[]"),
@@ -163,13 +134,14 @@ class ListMeetingsRequest(BaseModel):
163
134
  r"""Include the transcript for each meeting. Unavailable for OAuth connected apps (use /recordings instead)."""
164
135
 
165
136
  meeting_type: Annotated[
166
- Optional[MeetingType],
167
- pydantic.Field(
168
- deprecated="warning: ** DEPRECATED ** - This will be removed in a future release, please migrate away from it as soon as possible."
169
- ),
137
+ Optional[str],
170
138
  FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
171
139
  ] = None
172
- r"""Filter by meeting type."""
140
+ r"""Filter by meeting type name.
141
+
142
+ Returns only meetings assigned the meeting type with this name. Use /meeting_types to discover valid values. An unknown or non-matching name returns an empty list.
143
+
144
+ """
173
145
 
174
146
  recorded_by: Annotated[
175
147
  Optional[List[str]],
@@ -0,0 +1,34 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .meetingtypelistresponse import (
5
+ MeetingTypeListResponse,
6
+ MeetingTypeListResponseTypedDict,
7
+ )
8
+ from fathom_python.types import BaseModel
9
+ from fathom_python.utils import FieldMetadata, QueryParamMetadata
10
+ from typing import Callable, Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class ListMeetingTypesRequestTypedDict(TypedDict):
15
+ cursor: NotRequired[str]
16
+ r"""Cursor for pagination."""
17
+
18
+
19
+ class ListMeetingTypesRequest(BaseModel):
20
+ cursor: Annotated[
21
+ Optional[str],
22
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
23
+ ] = None
24
+ r"""Cursor for pagination."""
25
+
26
+
27
+ class ListMeetingTypesResponseTypedDict(TypedDict):
28
+ result: MeetingTypeListResponseTypedDict
29
+
30
+
31
+ class ListMeetingTypesResponse(BaseModel):
32
+ next: Callable[[], Optional[ListMeetingTypesResponse]]
33
+
34
+ result: MeetingTypeListResponse
@@ -30,6 +30,8 @@ class MeetingTypedDict(TypedDict):
30
30
  title: str
31
31
  meeting_title: Nullable[str]
32
32
  r"""Calendar event title."""
33
+ meeting_type: Nullable[str]
34
+ r"""The name of the meeting type assigned to this meeting, or `null` if none is assigned."""
33
35
  recording_id: int
34
36
  r"""The ID of the meeting recording."""
35
37
  url: str
@@ -59,6 +61,9 @@ class Meeting(BaseModel):
59
61
  meeting_title: Nullable[str]
60
62
  r"""Calendar event title."""
61
63
 
64
+ meeting_type: Nullable[str]
65
+ r"""The name of the meeting type assigned to this meeting, or `null` if none is assigned."""
66
+
62
67
  recording_id: int
63
68
  r"""The ID of the meeting recording."""
64
69
 
@@ -106,6 +111,7 @@ class Meeting(BaseModel):
106
111
  ]
107
112
  nullable_fields = [
108
113
  "meeting_title",
114
+ "meeting_type",
109
115
  "transcript",
110
116
  "default_summary",
111
117
  "action_items",
@@ -0,0 +1,34 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from datetime import datetime
5
+ from enum import Enum
6
+ from fathom_python.types import BaseModel
7
+ from typing_extensions import TypedDict
8
+
9
+
10
+ class Status(str, Enum):
11
+ r"""Whether the meeting type is currently assignable. `active` types can be assigned to meetings going forward; `inactive` types are no longer assigned going forward but may still appear on historical meetings."""
12
+
13
+ ACTIVE = "active"
14
+ INACTIVE = "inactive"
15
+
16
+
17
+ class MeetingTypeTypedDict(TypedDict):
18
+ name: str
19
+ status: Status
20
+ r"""Whether the meeting type is currently assignable. `active` types can be assigned to meetings going forward; `inactive` types are no longer assigned going forward but may still appear on historical meetings.
21
+
22
+ """
23
+ created_at: datetime
24
+
25
+
26
+ class MeetingType(BaseModel):
27
+ name: str
28
+
29
+ status: Status
30
+ r"""Whether the meeting type is currently assignable. `active` types can be assigned to meetings going forward; `inactive` types are no longer assigned going forward but may still appear on historical meetings.
31
+
32
+ """
33
+
34
+ created_at: datetime
@@ -0,0 +1,52 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .meetingtype import MeetingType, MeetingTypeTypedDict
5
+ from fathom_python.types import BaseModel, Nullable, UNSET_SENTINEL
6
+ from pydantic import model_serializer
7
+ from typing import List
8
+ from typing_extensions import TypedDict
9
+
10
+
11
+ class MeetingTypeListResponseTypedDict(TypedDict):
12
+ limit: Nullable[int]
13
+ next_cursor: Nullable[str]
14
+ items: List[MeetingTypeTypedDict]
15
+
16
+
17
+ class MeetingTypeListResponse(BaseModel):
18
+ limit: Nullable[int]
19
+
20
+ next_cursor: Nullable[str]
21
+
22
+ items: List[MeetingType]
23
+
24
+ @model_serializer(mode="wrap")
25
+ def serialize_model(self, handler):
26
+ optional_fields = []
27
+ nullable_fields = ["limit", "next_cursor"]
28
+ null_default_fields = []
29
+
30
+ serialized = handler(self)
31
+
32
+ m = {}
33
+
34
+ for n, f in type(self).model_fields.items():
35
+ k = f.alias or n
36
+ val = serialized.get(k)
37
+ serialized.pop(k, None)
38
+
39
+ optional_nullable = k in optional_fields and k in nullable_fields
40
+ is_set = (
41
+ self.__pydantic_fields_set__.intersection({n})
42
+ or k in null_default_fields
43
+ ) # pylint: disable=no-member
44
+
45
+ if val is not None and val != UNSET_SENTINEL:
46
+ m[k] = val
47
+ elif val != UNSET_SENTINEL and (
48
+ not k in optional_fields or (optional_nullable and is_set)
49
+ ):
50
+ m[k] = val
51
+
52
+ return m