fathom-python 0.0.30__tar.gz → 0.0.33__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.30 → fathom_python-0.0.33}/PKG-INFO +25 -61
  2. {fathom_python-0.0.30 → fathom_python-0.0.33}/README.md +24 -60
  3. {fathom_python-0.0.30 → fathom_python-0.0.33}/pyproject.toml +3 -1
  4. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/_version.py +3 -3
  5. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/basesdk.py +11 -1
  6. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/errors/__init__.py +18 -5
  7. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/errors/apierror.py +2 -0
  8. fathom_python-0.0.33/src/fathom_python/errors/fathomerror.py +30 -0
  9. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/errors/no_response_error.py +5 -1
  10. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/errors/responsevalidationerror.py +2 -0
  11. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/__init__.py +95 -41
  12. fathom_python-0.0.33/src/fathom_python/models/callbackresponse.py +13 -0
  13. fathom_python-0.0.33/src/fathom_python/models/createwebhookop.py +61 -0
  14. fathom_python-0.0.33/src/fathom_python/models/crmmatches.py +73 -0
  15. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/fathomuser.py +3 -0
  16. fathom_python-0.0.33/src/fathom_python/models/getrecordingsummaryop.py +82 -0
  17. fathom_python-0.0.33/src/fathom_python/models/getrecordingtranscriptop.py +50 -0
  18. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/invitee.py +9 -1
  19. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/listmeetingsop.py +37 -10
  20. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/listteammembersop.py +15 -1
  21. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/listteamsop.py +12 -1
  22. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/meeting.py +19 -9
  23. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/security.py +0 -14
  24. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/transcriptitemspeaker.py +6 -0
  25. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/webhook.py +12 -0
  26. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/sdk.py +481 -218
  27. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/__init__.py +18 -5
  28. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/eventstreaming.py +10 -0
  29. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/security.py +0 -25
  30. fathom_python-0.0.30/src/fathom_python/errors/fathomerror.py +0 -26
  31. fathom_python-0.0.30/src/fathom_python/models/createwebhookop.py +0 -36
  32. fathom_python-0.0.30/src/fathom_python/models/crmmatches.py +0 -36
  33. fathom_python-0.0.30/src/fathom_python/models/gettokenop.py +0 -74
  34. fathom_python-0.0.30/src/fathom_python/models/schemetokenrequeststandalone.py +0 -42
  35. {fathom_python-0.0.30 → fathom_python-0.0.33}/py.typed +0 -0
  36. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/__init__.py +0 -0
  37. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/_hooks/__init__.py +0 -0
  38. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/_hooks/registration.py +0 -0
  39. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/_hooks/sdkhooks.py +0 -0
  40. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/_hooks/types.py +0 -0
  41. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/httpclient.py +0 -0
  42. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/actionitem.py +0 -0
  43. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/assignee.py +0 -0
  44. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/crmcompanymatch.py +0 -0
  45. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/crmcontactmatch.py +0 -0
  46. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/crmdealmatch.py +0 -0
  47. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/deletewebhookop.py +0 -0
  48. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/meetinglistresponse.py +0 -0
  49. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/meetingsummary.py +0 -0
  50. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/team.py +0 -0
  51. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/teamlistresponse.py +0 -0
  52. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/teammember.py +0 -0
  53. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/teammemberlistresponse.py +0 -0
  54. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/models/transcriptitem.py +0 -0
  55. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/py.typed +0 -0
  56. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/sdkconfiguration.py +0 -0
  57. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/types/__init__.py +0 -0
  58. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/types/basemodel.py +0 -0
  59. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/annotations.py +0 -0
  60. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/datetimes.py +0 -0
  61. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/enums.py +0 -0
  62. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/forms.py +0 -0
  63. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/headers.py +0 -0
  64. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/logger.py +0 -0
  65. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/metadata.py +0 -0
  66. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/queryparams.py +0 -0
  67. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/requestbodies.py +0 -0
  68. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/retries.py +0 -0
  69. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/serializers.py +0 -0
  70. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/unmarshal_json_response.py +0 -0
  71. {fathom_python-0.0.30 → fathom_python-0.0.33}/src/fathom_python/utils/url.py +0 -0
  72. {fathom_python-0.0.30 → fathom_python-0.0.33}/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.30
3
+ Version: 0.0.33
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Speakeasy
6
6
  Requires-Python: >=3.9.2
@@ -27,27 +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-python](#fathom-python)
34
- * [SDK Installation](#sdk-installation)
35
- * [IDE Support](#ide-support)
36
- * [SDK Example Usage](#sdk-example-usage)
37
- * [Authentication](#authentication)
38
- * [Available Resources and Operations](#available-resources-and-operations)
39
- * [Pagination](#pagination)
40
- * [Retries](#retries)
41
- * [Error Handling](#error-handling)
42
- * [Server Selection](#server-selection)
43
- * [Custom HTTP Client](#custom-http-client)
44
- * [Resource Management](#resource-management)
45
- * [Debugging](#debugging)
46
- * [Development](#development)
47
- * [Maturity](#maturity)
48
-
49
- <!-- End Table of Contents [toc] -->
50
-
51
30
  <!-- Start SDK Installation [installation] -->
52
31
  ## SDK Installation
53
32
 
@@ -56,7 +35,15 @@ optionally receive webhooks when content from a new meeting is ready.
56
35
  >
57
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.
58
37
 
59
- 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
+ ```
60
47
 
61
48
  ### PIP
62
49
 
@@ -139,7 +126,7 @@ with Fathom(
139
126
  ], calendar_invitees_domains=[
140
127
  "acme.com",
141
128
  "client.com",
142
- ], 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=[
143
130
  "ceo@acme.com",
144
131
  "pm@acme.com",
145
132
  ], teams=[
@@ -155,7 +142,7 @@ with Fathom(
155
142
 
156
143
  </br>
157
144
 
158
- 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.
159
146
  ```python
160
147
  # Asynchronous Example
161
148
  import asyncio
@@ -176,7 +163,7 @@ async def main():
176
163
  ], calendar_invitees_domains=[
177
164
  "acme.com",
178
165
  "client.com",
179
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
166
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
180
167
  "ceo@acme.com",
181
168
  "pm@acme.com",
182
169
  ], teams=[
@@ -200,11 +187,10 @@ asyncio.run(main())
200
187
 
201
188
  This SDK supports the following security schemes globally:
202
189
 
203
- | Name | Type | Scheme | Environment Variable |
204
- | -------------------------- | ------ | ----------- | --------------------------------- |
205
- | `api_key_auth` | apiKey | API key | `FATHOM_API_KEY_AUTH` |
206
- | `bearer_auth` | http | HTTP Bearer | `FATHOM_BEARER_AUTH` |
207
- | `token_request_standalone` | http | Custom HTTP | `FATHOM_TOKEN_REQUEST_STANDALONE` |
190
+ | Name | Type | Scheme | Environment Variable |
191
+ | -------------- | ------ | ----------- | --------------------- |
192
+ | `api_key_auth` | apiKey | API key | `FATHOM_API_KEY_AUTH` |
193
+ | `bearer_auth` | http | HTTP Bearer | `FATHOM_BEARER_AUTH` |
208
194
 
209
195
  You can set the security parameters through the `security` optional parameter when initializing the SDK client instance. The selected scheme will be used by default to authenticate with the API for all operations that support it. For example:
210
196
  ```python
@@ -224,7 +210,7 @@ with Fathom(
224
210
  ], calendar_invitees_domains=[
225
211
  "acme.com",
226
212
  "client.com",
227
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
213
+ ], 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
214
  "ceo@acme.com",
229
215
  "pm@acme.com",
230
216
  ], teams=[
@@ -249,11 +235,12 @@ with Fathom(
249
235
  ### [Fathom SDK](docs/sdks/fathom/README.md)
250
236
 
251
237
  * [list_meetings](docs/sdks/fathom/README.md#list_meetings) - List meetings
238
+ * [get_recording_summary](docs/sdks/fathom/README.md#get_recording_summary) - Get summary
239
+ * [get_recording_transcript](docs/sdks/fathom/README.md#get_recording_transcript) - Get transcript
252
240
  * [list_teams](docs/sdks/fathom/README.md#list_teams) - List teams
253
241
  * [list_team_members](docs/sdks/fathom/README.md#list_team_members) - List team members
254
242
  * [create_webhook](docs/sdks/fathom/README.md#create_webhook) - Create a webhook
255
243
  * [delete_webhook](docs/sdks/fathom/README.md#delete_webhook) - Delete a webhook
256
- * [get_token](docs/sdks/fathom/README.md#get_token) - Token endpoint for exchanging an authorization code or refreshing an access token
257
244
 
258
245
  </details>
259
246
  <!-- End Available Resources and Operations [operations] -->
@@ -283,7 +270,7 @@ with Fathom(
283
270
  ], calendar_invitees_domains=[
284
271
  "acme.com",
285
272
  "client.com",
286
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
273
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
287
274
  "ceo@acme.com",
288
275
  "pm@acme.com",
289
276
  ], teams=[
@@ -323,7 +310,7 @@ with Fathom(
323
310
  ], calendar_invitees_domains=[
324
311
  "acme.com",
325
312
  "client.com",
326
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
313
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
327
314
  "ceo@acme.com",
328
315
  "pm@acme.com",
329
316
  ], teams=[
@@ -359,7 +346,7 @@ with Fathom(
359
346
  ], calendar_invitees_domains=[
360
347
  "acme.com",
361
348
  "client.com",
362
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
349
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
363
350
  "ceo@acme.com",
364
351
  "pm@acme.com",
365
352
  ], teams=[
@@ -408,7 +395,7 @@ with Fathom(
408
395
  ], calendar_invitees_domains=[
409
396
  "acme.com",
410
397
  "client.com",
411
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
398
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
412
399
  "ceo@acme.com",
413
400
  "pm@acme.com",
414
401
  ], teams=[
@@ -452,7 +439,6 @@ with Fathom(
452
439
  </details>
453
440
  <!-- End Error Handling [errors] -->
454
441
 
455
-
456
442
  <!-- Start Server Selection [server] -->
457
443
  ## Server Selection
458
444
 
@@ -477,7 +463,7 @@ with Fathom(
477
463
  ], calendar_invitees_domains=[
478
464
  "acme.com",
479
465
  "client.com",
480
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
466
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
481
467
  "ceo@acme.com",
482
468
  "pm@acme.com",
483
469
  ], teams=[
@@ -490,27 +476,6 @@ with Fathom(
490
476
 
491
477
  res = res.next()
492
478
 
493
- ```
494
-
495
- ### Override Server URL Per-Operation
496
-
497
- The server URL can also be overridden on a per-operation basis, provided a server list was specified for the operation. For example:
498
- ```python
499
- from fathom_python import Fathom, models
500
- import os
501
-
502
-
503
- with Fathom(
504
- security=models.Security(
505
- api_key_auth=os.getenv("FATHOM_API_KEY_AUTH", ""),
506
- ),
507
- ) as fathom:
508
-
509
- res = fathom.get_token(grant_type=models.GetTokenGrantType.REFRESH_TOKEN, code="<value>", redirect_uri="https://aware-honesty.info", client_id="<id>", client_secret="<value>", server_url="https://fathom.video/external/v1")
510
-
511
- # Handle response
512
- print(res)
513
-
514
479
  ```
515
480
  <!-- End Server Selection [server] -->
516
481
 
@@ -627,7 +592,6 @@ async def amain():
627
592
  ```
628
593
  <!-- End Resource Management [resource-management] -->
629
594
 
630
-
631
595
  <!-- Start Debugging [debug] -->
632
596
  ## Debugging
633
597
 
@@ -7,27 +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-python](#fathom-python)
14
- * [SDK Installation](#sdk-installation)
15
- * [IDE Support](#ide-support)
16
- * [SDK Example Usage](#sdk-example-usage)
17
- * [Authentication](#authentication)
18
- * [Available Resources and Operations](#available-resources-and-operations)
19
- * [Pagination](#pagination)
20
- * [Retries](#retries)
21
- * [Error Handling](#error-handling)
22
- * [Server Selection](#server-selection)
23
- * [Custom HTTP Client](#custom-http-client)
24
- * [Resource Management](#resource-management)
25
- * [Debugging](#debugging)
26
- * [Development](#development)
27
- * [Maturity](#maturity)
28
-
29
- <!-- End Table of Contents [toc] -->
30
-
31
10
  <!-- Start SDK Installation [installation] -->
32
11
  ## SDK Installation
33
12
 
@@ -36,7 +15,15 @@ optionally receive webhooks when content from a new meeting is ready.
36
15
  >
37
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.
38
17
 
39
- 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
+ ```
40
27
 
41
28
  ### PIP
42
29
 
@@ -119,7 +106,7 @@ with Fathom(
119
106
  ], calendar_invitees_domains=[
120
107
  "acme.com",
121
108
  "client.com",
122
- ], 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=[
123
110
  "ceo@acme.com",
124
111
  "pm@acme.com",
125
112
  ], teams=[
@@ -135,7 +122,7 @@ with Fathom(
135
122
 
136
123
  </br>
137
124
 
138
- 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.
139
126
  ```python
140
127
  # Asynchronous Example
141
128
  import asyncio
@@ -156,7 +143,7 @@ async def main():
156
143
  ], calendar_invitees_domains=[
157
144
  "acme.com",
158
145
  "client.com",
159
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
146
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
160
147
  "ceo@acme.com",
161
148
  "pm@acme.com",
162
149
  ], teams=[
@@ -180,11 +167,10 @@ asyncio.run(main())
180
167
 
181
168
  This SDK supports the following security schemes globally:
182
169
 
183
- | Name | Type | Scheme | Environment Variable |
184
- | -------------------------- | ------ | ----------- | --------------------------------- |
185
- | `api_key_auth` | apiKey | API key | `FATHOM_API_KEY_AUTH` |
186
- | `bearer_auth` | http | HTTP Bearer | `FATHOM_BEARER_AUTH` |
187
- | `token_request_standalone` | http | Custom HTTP | `FATHOM_TOKEN_REQUEST_STANDALONE` |
170
+ | Name | Type | Scheme | Environment Variable |
171
+ | -------------- | ------ | ----------- | --------------------- |
172
+ | `api_key_auth` | apiKey | API key | `FATHOM_API_KEY_AUTH` |
173
+ | `bearer_auth` | http | HTTP Bearer | `FATHOM_BEARER_AUTH` |
188
174
 
189
175
  You can set the security parameters through the `security` optional parameter when initializing the SDK client instance. The selected scheme will be used by default to authenticate with the API for all operations that support it. For example:
190
176
  ```python
@@ -204,7 +190,7 @@ with Fathom(
204
190
  ], calendar_invitees_domains=[
205
191
  "acme.com",
206
192
  "client.com",
207
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
193
+ ], 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
194
  "ceo@acme.com",
209
195
  "pm@acme.com",
210
196
  ], teams=[
@@ -229,11 +215,12 @@ with Fathom(
229
215
  ### [Fathom SDK](docs/sdks/fathom/README.md)
230
216
 
231
217
  * [list_meetings](docs/sdks/fathom/README.md#list_meetings) - List meetings
218
+ * [get_recording_summary](docs/sdks/fathom/README.md#get_recording_summary) - Get summary
219
+ * [get_recording_transcript](docs/sdks/fathom/README.md#get_recording_transcript) - Get transcript
232
220
  * [list_teams](docs/sdks/fathom/README.md#list_teams) - List teams
233
221
  * [list_team_members](docs/sdks/fathom/README.md#list_team_members) - List team members
234
222
  * [create_webhook](docs/sdks/fathom/README.md#create_webhook) - Create a webhook
235
223
  * [delete_webhook](docs/sdks/fathom/README.md#delete_webhook) - Delete a webhook
236
- * [get_token](docs/sdks/fathom/README.md#get_token) - Token endpoint for exchanging an authorization code or refreshing an access token
237
224
 
238
225
  </details>
239
226
  <!-- End Available Resources and Operations [operations] -->
@@ -263,7 +250,7 @@ with Fathom(
263
250
  ], calendar_invitees_domains=[
264
251
  "acme.com",
265
252
  "client.com",
266
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
253
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
267
254
  "ceo@acme.com",
268
255
  "pm@acme.com",
269
256
  ], teams=[
@@ -303,7 +290,7 @@ with Fathom(
303
290
  ], calendar_invitees_domains=[
304
291
  "acme.com",
305
292
  "client.com",
306
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
293
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
307
294
  "ceo@acme.com",
308
295
  "pm@acme.com",
309
296
  ], teams=[
@@ -339,7 +326,7 @@ with Fathom(
339
326
  ], calendar_invitees_domains=[
340
327
  "acme.com",
341
328
  "client.com",
342
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
329
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
343
330
  "ceo@acme.com",
344
331
  "pm@acme.com",
345
332
  ], teams=[
@@ -388,7 +375,7 @@ with Fathom(
388
375
  ], calendar_invitees_domains=[
389
376
  "acme.com",
390
377
  "client.com",
391
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
378
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
392
379
  "ceo@acme.com",
393
380
  "pm@acme.com",
394
381
  ], teams=[
@@ -432,7 +419,6 @@ with Fathom(
432
419
  </details>
433
420
  <!-- End Error Handling [errors] -->
434
421
 
435
-
436
422
  <!-- Start Server Selection [server] -->
437
423
  ## Server Selection
438
424
 
@@ -457,7 +443,7 @@ with Fathom(
457
443
  ], calendar_invitees_domains=[
458
444
  "acme.com",
459
445
  "client.com",
460
- ], include_crm_matches=False, include_transcript=False, meeting_type=models.ListMeetingsMeetingType.ALL, recorded_by=[
446
+ ], calendar_invitees_domains_type=models.ListMeetingsCalendarInviteesDomainsType.ALL, include_crm_matches=False, include_summary=False, include_transcript=False, meeting_type=models.MeetingType.ALL, recorded_by=[
461
447
  "ceo@acme.com",
462
448
  "pm@acme.com",
463
449
  ], teams=[
@@ -470,27 +456,6 @@ with Fathom(
470
456
 
471
457
  res = res.next()
472
458
 
473
- ```
474
-
475
- ### Override Server URL Per-Operation
476
-
477
- The server URL can also be overridden on a per-operation basis, provided a server list was specified for the operation. For example:
478
- ```python
479
- from fathom_python import Fathom, models
480
- import os
481
-
482
-
483
- with Fathom(
484
- security=models.Security(
485
- api_key_auth=os.getenv("FATHOM_API_KEY_AUTH", ""),
486
- ),
487
- ) as fathom:
488
-
489
- res = fathom.get_token(grant_type=models.GetTokenGrantType.REFRESH_TOKEN, code="<value>", redirect_uri="https://aware-honesty.info", client_id="<id>", client_secret="<value>", server_url="https://fathom.video/external/v1")
490
-
491
- # Handle response
492
- print(res)
493
-
494
459
  ```
495
460
  <!-- End Server Selection [server] -->
496
461
 
@@ -607,7 +572,6 @@ async def amain():
607
572
  ```
608
573
  <!-- End Resource Management [resource-management] -->
609
574
 
610
-
611
575
  <!-- Start Debugging [debug] -->
612
576
  ## Debugging
613
577
 
@@ -1,6 +1,7 @@
1
+
1
2
  [project]
2
3
  name = "fathom-python"
3
- version = "0.0.30"
4
+ version = "0.0.33"
4
5
  description = "Python Client SDK Generated by Speakeasy."
5
6
  authors = [{ name = "Speakeasy" },]
6
7
  readme = "README.md"
@@ -37,6 +38,7 @@ build-backend = "poetry.core.masonry.api"
37
38
 
38
39
  [tool.pytest.ini_options]
39
40
  asyncio_default_fixture_loop_scope = "function"
41
+ asyncio_mode = "auto"
40
42
  pythonpath = ["src"]
41
43
 
42
44
  [tool.mypy]
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "fathom-python"
6
- __version__: str = "0.0.30"
6
+ __version__: str = "0.0.33"
7
7
  __openapi_doc_version__: str = "1.0.0"
8
- __gen_version__: str = "2.669.0"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.30 2.669.0 1.0.0 fathom-python"
8
+ __gen_version__: str = "2.698.4"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.33 2.698.4 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