fathom-python 0.0.26__tar.gz → 0.0.27__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 (48) hide show
  1. {fathom_python-0.0.26 → fathom_python-0.0.27}/PKG-INFO +1 -1
  2. {fathom_python-0.0.26 → fathom_python-0.0.27}/pyproject.toml +1 -1
  3. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/base_client.py +42 -2
  4. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/client_wrapper.py +2 -2
  5. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/raw_base_client.py +48 -2
  6. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/crm_deal_match.py +5 -1
  7. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/crm_matches.py +1 -1
  8. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/meeting.py +2 -2
  9. {fathom_python-0.0.26 → fathom_python-0.0.27}/README.md +0 -0
  10. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/__init__.py +0 -0
  11. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/client.py +0 -0
  12. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/__init__.py +0 -0
  13. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/api_error.py +0 -0
  14. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/datetime_utils.py +0 -0
  15. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/file.py +0 -0
  16. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/force_multipart.py +0 -0
  17. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/http_client.py +0 -0
  18. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/http_response.py +0 -0
  19. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/jsonable_encoder.py +0 -0
  20. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/pagination.py +0 -0
  21. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/pydantic_utilities.py +0 -0
  22. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/query_encoder.py +0 -0
  23. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/remove_none_from_dict.py +0 -0
  24. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/request_options.py +0 -0
  25. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/core/serialization.py +0 -0
  26. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/environment.py +0 -0
  27. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/errors/__init__.py +0 -0
  28. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/errors/bad_request_error.py +0 -0
  29. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/errors/unauthorized_error.py +0 -0
  30. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/py.typed +0 -0
  31. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/__init__.py +0 -0
  32. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/action_item.py +0 -0
  33. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/assignee.py +0 -0
  34. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/crm_company_match.py +0 -0
  35. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/crm_contact_match.py +0 -0
  36. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/fathom_user.py +0 -0
  37. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/invitee.py +0 -0
  38. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/list_meetings_request_meeting_type.py +0 -0
  39. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/meeting_list_response.py +0 -0
  40. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/meeting_meeting_type.py +0 -0
  41. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/meeting_summary.py +0 -0
  42. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/team.py +0 -0
  43. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/team_list_response.py +0 -0
  44. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/team_member.py +0 -0
  45. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/team_member_list_response.py +0 -0
  46. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/transcript_item.py +0 -0
  47. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/types/transcript_item_speaker.py +0 -0
  48. {fathom_python-0.0.26 → fathom_python-0.0.27}/src/fathom/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fathom-python
3
- Version: 0.0.26
3
+ Version: 0.0.27
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -3,7 +3,7 @@ name = "fathom-python"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "fathom-python"
6
- version = "0.0.26"
6
+ version = "0.0.27"
7
7
  description = ""
8
8
  readme = "README.md"
9
9
  authors = []
@@ -88,9 +88,12 @@ class BaseClient:
88
88
  recorded_by: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
89
89
  teams: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
90
90
  calendar_invitees: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
91
+ created_before: typing.Optional[str] = None,
91
92
  created_after: typing.Optional[str] = None,
93
+ calendar_invitees_domains: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
92
94
  meeting_type: typing.Optional[ListMeetingsRequestMeetingType] = None,
93
95
  include_transcript: typing.Optional[bool] = None,
96
+ include_crm_matches: typing.Optional[bool] = None,
94
97
  cursor: typing.Optional[str] = None,
95
98
  request_options: typing.Optional[RequestOptions] = None,
96
99
  ) -> SyncPager[Meeting]:
@@ -114,7 +117,7 @@ class BaseClient:
114
117
  Returns meetings that belong to any of the specified teams.
115
118
 
116
119
  calendar_invitees : typing.Optional[typing.Union[str, typing.Sequence[str]]]
117
- Email addresses of calendar_invitees.
120
+ Email address of calendar_invitees to filter by.
118
121
 
119
122
  Pass the parameter once per value, e.g.
120
123
  `calendar_invitees[]=cfo@acme.com&calendar_invitees[]=legal@acme.com`.
@@ -122,15 +125,29 @@ class BaseClient:
122
125
  Returns meetings where any of the given email addresses appear
123
126
  in the calendar_invitees list.
124
127
 
128
+ created_before : typing.Optional[str]
129
+ Filter to meetings with created_at before this timestamp, e.g. `created_before=2025-01-01T00:00:00Z`.
130
+
125
131
  created_after : typing.Optional[str]
126
132
  Filter to meetings with created_at after this timestamp, e.g. `created_after=2025-01-01T00:00:00Z`.
127
133
 
134
+ calendar_invitees_domains : typing.Optional[typing.Union[str, typing.Sequence[str]]]
135
+ Domains of the companies to filter by. Exact match.
136
+
137
+ Pass the parameter once per value, e.g.
138
+ `calendar_invitees_domains[]=acme.com&calendar_invitees_domains[]=client.com`.
139
+
140
+ Returns meetings where any of the given company domains appear in the meeting.
141
+
128
142
  meeting_type : typing.Optional[ListMeetingsRequestMeetingType]
129
143
  Filter by meeting type.
130
144
 
131
145
  include_transcript : typing.Optional[bool]
132
146
  Include the transcript for each meeting.
133
147
 
148
+ include_crm_matches : typing.Optional[bool]
149
+ Include CRM matches for each meeting. Only returns data from your or your team's linked CRM.
150
+
134
151
  cursor : typing.Optional[str]
135
152
  Cursor for pagination.
136
153
 
@@ -157,9 +174,12 @@ class BaseClient:
157
174
  recorded_by=recorded_by,
158
175
  teams=teams,
159
176
  calendar_invitees=calendar_invitees,
177
+ created_before=created_before,
160
178
  created_after=created_after,
179
+ calendar_invitees_domains=calendar_invitees_domains,
161
180
  meeting_type=meeting_type,
162
181
  include_transcript=include_transcript,
182
+ include_crm_matches=include_crm_matches,
163
183
  cursor=cursor,
164
184
  request_options=request_options,
165
185
  )
@@ -306,9 +326,12 @@ class AsyncBaseClient:
306
326
  recorded_by: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
307
327
  teams: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
308
328
  calendar_invitees: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
329
+ created_before: typing.Optional[str] = None,
309
330
  created_after: typing.Optional[str] = None,
331
+ calendar_invitees_domains: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
310
332
  meeting_type: typing.Optional[ListMeetingsRequestMeetingType] = None,
311
333
  include_transcript: typing.Optional[bool] = None,
334
+ include_crm_matches: typing.Optional[bool] = None,
312
335
  cursor: typing.Optional[str] = None,
313
336
  request_options: typing.Optional[RequestOptions] = None,
314
337
  ) -> AsyncPager[Meeting]:
@@ -332,7 +355,7 @@ class AsyncBaseClient:
332
355
  Returns meetings that belong to any of the specified teams.
333
356
 
334
357
  calendar_invitees : typing.Optional[typing.Union[str, typing.Sequence[str]]]
335
- Email addresses of calendar_invitees.
358
+ Email address of calendar_invitees to filter by.
336
359
 
337
360
  Pass the parameter once per value, e.g.
338
361
  `calendar_invitees[]=cfo@acme.com&calendar_invitees[]=legal@acme.com`.
@@ -340,15 +363,29 @@ class AsyncBaseClient:
340
363
  Returns meetings where any of the given email addresses appear
341
364
  in the calendar_invitees list.
342
365
 
366
+ created_before : typing.Optional[str]
367
+ Filter to meetings with created_at before this timestamp, e.g. `created_before=2025-01-01T00:00:00Z`.
368
+
343
369
  created_after : typing.Optional[str]
344
370
  Filter to meetings with created_at after this timestamp, e.g. `created_after=2025-01-01T00:00:00Z`.
345
371
 
372
+ calendar_invitees_domains : typing.Optional[typing.Union[str, typing.Sequence[str]]]
373
+ Domains of the companies to filter by. Exact match.
374
+
375
+ Pass the parameter once per value, e.g.
376
+ `calendar_invitees_domains[]=acme.com&calendar_invitees_domains[]=client.com`.
377
+
378
+ Returns meetings where any of the given company domains appear in the meeting.
379
+
346
380
  meeting_type : typing.Optional[ListMeetingsRequestMeetingType]
347
381
  Filter by meeting type.
348
382
 
349
383
  include_transcript : typing.Optional[bool]
350
384
  Include the transcript for each meeting.
351
385
 
386
+ include_crm_matches : typing.Optional[bool]
387
+ Include CRM matches for each meeting. Only returns data from your or your team's linked CRM.
388
+
352
389
  cursor : typing.Optional[str]
353
390
  Cursor for pagination.
354
391
 
@@ -379,9 +416,12 @@ class AsyncBaseClient:
379
416
  recorded_by=recorded_by,
380
417
  teams=teams,
381
418
  calendar_invitees=calendar_invitees,
419
+ created_before=created_before,
382
420
  created_after=created_after,
421
+ calendar_invitees_domains=calendar_invitees_domains,
383
422
  meeting_type=meeting_type,
384
423
  include_transcript=include_transcript,
424
+ include_crm_matches=include_crm_matches,
385
425
  cursor=cursor,
386
426
  request_options=request_options,
387
427
  )
@@ -14,10 +14,10 @@ class BaseClientWrapper:
14
14
 
15
15
  def get_headers(self) -> typing.Dict[str, str]:
16
16
  headers: typing.Dict[str, str] = {
17
- "User-Agent": "fathom-python/0.0.26",
17
+ "User-Agent": "fathom-python/0.0.27",
18
18
  "X-Fern-Language": "Python",
19
19
  "X-Fern-SDK-Name": "fathom-python",
20
- "X-Fern-SDK-Version": "0.0.26",
20
+ "X-Fern-SDK-Version": "0.0.27",
21
21
  }
22
22
  headers["X-Api-Key"] = self.api_key
23
23
  return headers
@@ -29,9 +29,12 @@ class RawBaseClient:
29
29
  recorded_by: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
30
30
  teams: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
31
31
  calendar_invitees: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
32
+ created_before: typing.Optional[str] = None,
32
33
  created_after: typing.Optional[str] = None,
34
+ calendar_invitees_domains: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
33
35
  meeting_type: typing.Optional[ListMeetingsRequestMeetingType] = None,
34
36
  include_transcript: typing.Optional[bool] = None,
37
+ include_crm_matches: typing.Optional[bool] = None,
35
38
  cursor: typing.Optional[str] = None,
36
39
  request_options: typing.Optional[RequestOptions] = None,
37
40
  ) -> SyncPager[Meeting]:
@@ -55,7 +58,7 @@ class RawBaseClient:
55
58
  Returns meetings that belong to any of the specified teams.
56
59
 
57
60
  calendar_invitees : typing.Optional[typing.Union[str, typing.Sequence[str]]]
58
- Email addresses of calendar_invitees.
61
+ Email address of calendar_invitees to filter by.
59
62
 
60
63
  Pass the parameter once per value, e.g.
61
64
  `calendar_invitees[]=cfo@acme.com&calendar_invitees[]=legal@acme.com`.
@@ -63,15 +66,29 @@ class RawBaseClient:
63
66
  Returns meetings where any of the given email addresses appear
64
67
  in the calendar_invitees list.
65
68
 
69
+ created_before : typing.Optional[str]
70
+ Filter to meetings with created_at before this timestamp, e.g. `created_before=2025-01-01T00:00:00Z`.
71
+
66
72
  created_after : typing.Optional[str]
67
73
  Filter to meetings with created_at after this timestamp, e.g. `created_after=2025-01-01T00:00:00Z`.
68
74
 
75
+ calendar_invitees_domains : typing.Optional[typing.Union[str, typing.Sequence[str]]]
76
+ Domains of the companies to filter by. Exact match.
77
+
78
+ Pass the parameter once per value, e.g.
79
+ `calendar_invitees_domains[]=acme.com&calendar_invitees_domains[]=client.com`.
80
+
81
+ Returns meetings where any of the given company domains appear in the meeting.
82
+
69
83
  meeting_type : typing.Optional[ListMeetingsRequestMeetingType]
70
84
  Filter by meeting type.
71
85
 
72
86
  include_transcript : typing.Optional[bool]
73
87
  Include the transcript for each meeting.
74
88
 
89
+ include_crm_matches : typing.Optional[bool]
90
+ Include CRM matches for each meeting. Only returns data from your or your team's linked CRM.
91
+
75
92
  cursor : typing.Optional[str]
76
93
  Cursor for pagination.
77
94
 
@@ -90,9 +107,12 @@ class RawBaseClient:
90
107
  "recorded_by[]": recorded_by,
91
108
  "teams[]": teams,
92
109
  "calendar_invitees[]": calendar_invitees,
110
+ "created_before": created_before,
93
111
  "created_after": created_after,
112
+ "calendar_invitees_domains[]": calendar_invitees_domains,
94
113
  "meeting_type": meeting_type,
95
114
  "include_transcript": include_transcript,
115
+ "include_crm_matches": include_crm_matches,
96
116
  "cursor": cursor,
97
117
  },
98
118
  request_options=request_options,
@@ -113,9 +133,12 @@ class RawBaseClient:
113
133
  recorded_by=recorded_by,
114
134
  teams=teams,
115
135
  calendar_invitees=calendar_invitees,
136
+ created_before=created_before,
116
137
  created_after=created_after,
138
+ calendar_invitees_domains=calendar_invitees_domains,
117
139
  meeting_type=meeting_type,
118
140
  include_transcript=include_transcript,
141
+ include_crm_matches=include_crm_matches,
119
142
  cursor=_parsed_next,
120
143
  request_options=request_options,
121
144
  )
@@ -311,9 +334,12 @@ class AsyncRawBaseClient:
311
334
  recorded_by: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
312
335
  teams: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
313
336
  calendar_invitees: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
337
+ created_before: typing.Optional[str] = None,
314
338
  created_after: typing.Optional[str] = None,
339
+ calendar_invitees_domains: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
315
340
  meeting_type: typing.Optional[ListMeetingsRequestMeetingType] = None,
316
341
  include_transcript: typing.Optional[bool] = None,
342
+ include_crm_matches: typing.Optional[bool] = None,
317
343
  cursor: typing.Optional[str] = None,
318
344
  request_options: typing.Optional[RequestOptions] = None,
319
345
  ) -> AsyncPager[Meeting]:
@@ -337,7 +363,7 @@ class AsyncRawBaseClient:
337
363
  Returns meetings that belong to any of the specified teams.
338
364
 
339
365
  calendar_invitees : typing.Optional[typing.Union[str, typing.Sequence[str]]]
340
- Email addresses of calendar_invitees.
366
+ Email address of calendar_invitees to filter by.
341
367
 
342
368
  Pass the parameter once per value, e.g.
343
369
  `calendar_invitees[]=cfo@acme.com&calendar_invitees[]=legal@acme.com`.
@@ -345,15 +371,29 @@ class AsyncRawBaseClient:
345
371
  Returns meetings where any of the given email addresses appear
346
372
  in the calendar_invitees list.
347
373
 
374
+ created_before : typing.Optional[str]
375
+ Filter to meetings with created_at before this timestamp, e.g. `created_before=2025-01-01T00:00:00Z`.
376
+
348
377
  created_after : typing.Optional[str]
349
378
  Filter to meetings with created_at after this timestamp, e.g. `created_after=2025-01-01T00:00:00Z`.
350
379
 
380
+ calendar_invitees_domains : typing.Optional[typing.Union[str, typing.Sequence[str]]]
381
+ Domains of the companies to filter by. Exact match.
382
+
383
+ Pass the parameter once per value, e.g.
384
+ `calendar_invitees_domains[]=acme.com&calendar_invitees_domains[]=client.com`.
385
+
386
+ Returns meetings where any of the given company domains appear in the meeting.
387
+
351
388
  meeting_type : typing.Optional[ListMeetingsRequestMeetingType]
352
389
  Filter by meeting type.
353
390
 
354
391
  include_transcript : typing.Optional[bool]
355
392
  Include the transcript for each meeting.
356
393
 
394
+ include_crm_matches : typing.Optional[bool]
395
+ Include CRM matches for each meeting. Only returns data from your or your team's linked CRM.
396
+
357
397
  cursor : typing.Optional[str]
358
398
  Cursor for pagination.
359
399
 
@@ -372,9 +412,12 @@ class AsyncRawBaseClient:
372
412
  "recorded_by[]": recorded_by,
373
413
  "teams[]": teams,
374
414
  "calendar_invitees[]": calendar_invitees,
415
+ "created_before": created_before,
375
416
  "created_after": created_after,
417
+ "calendar_invitees_domains[]": calendar_invitees_domains,
376
418
  "meeting_type": meeting_type,
377
419
  "include_transcript": include_transcript,
420
+ "include_crm_matches": include_crm_matches,
378
421
  "cursor": cursor,
379
422
  },
380
423
  request_options=request_options,
@@ -397,9 +440,12 @@ class AsyncRawBaseClient:
397
440
  recorded_by=recorded_by,
398
441
  teams=teams,
399
442
  calendar_invitees=calendar_invitees,
443
+ created_before=created_before,
400
444
  created_after=created_after,
445
+ calendar_invitees_domains=calendar_invitees_domains,
401
446
  meeting_type=meeting_type,
402
447
  include_transcript=include_transcript,
448
+ include_crm_matches=include_crm_matches,
403
449
  cursor=_parsed_next,
404
450
  request_options=request_options,
405
451
  )
@@ -8,7 +8,11 @@ from ..core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
8
 
9
9
  class CrmDealMatch(UniversalBaseModel):
10
10
  name: str
11
- amount: int
11
+ amount: float = pydantic.Field()
12
+ """
13
+ The amount in dollars.
14
+ """
15
+
12
16
  record_url: str
13
17
 
14
18
  if IS_PYDANTIC_V2:
@@ -11,7 +11,7 @@ from .crm_deal_match import CrmDealMatch
11
11
 
12
12
  class CrmMatches(UniversalBaseModel):
13
13
  """
14
- **Coming soon** - CRM match data is not yet available in API responses.
14
+ CRM data linked to the meeting. Only returns data from your or your team's linked CRM.
15
15
  If no CRM is connected for the workspace, the `error` field will be populated.
16
16
  """
17
17
 
@@ -29,11 +29,11 @@ class Meeting(UniversalBaseModel):
29
29
  recording_start_time: dt.datetime
30
30
  recording_end_time: dt.datetime
31
31
  meeting_type: MeetingMeetingType
32
+ transcript_language: str
32
33
  transcript: typing.Optional[typing.List[TranscriptItem]] = None
33
- summary: typing.Optional[MeetingSummary] = None
34
+ default_summary: typing.Optional[MeetingSummary] = None
34
35
  action_items: typing.Optional[typing.List[ActionItem]] = None
35
36
  calendar_invitees: typing.List[Invitee]
36
- transcript_language: str
37
37
  recorded_by: FathomUser
38
38
  crm_matches: typing.Optional[CrmMatches] = None
39
39
 
File without changes