fathom-python 0.0.33__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 (68) hide show
  1. {fathom_python-0.0.33 → fathom_python-0.0.34}/PKG-INFO +2 -1
  2. {fathom_python-0.0.33 → fathom_python-0.0.34}/README.md +1 -0
  3. {fathom_python-0.0.33 → fathom_python-0.0.34}/pyproject.toml +1 -2
  4. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/_version.py +3 -3
  5. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/sdk.py +5 -5
  6. fathom_python-0.0.34/src/fathom_python/utils/annotations.py +79 -0
  7. fathom_python-0.0.33/src/fathom_python/utils/annotations.py +0 -55
  8. {fathom_python-0.0.33 → fathom_python-0.0.34}/py.typed +0 -0
  9. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/__init__.py +0 -0
  10. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/_hooks/__init__.py +0 -0
  11. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/_hooks/registration.py +0 -0
  12. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/_hooks/sdkhooks.py +0 -0
  13. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/_hooks/types.py +0 -0
  14. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/basesdk.py +0 -0
  15. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/errors/__init__.py +0 -0
  16. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/errors/apierror.py +0 -0
  17. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/errors/fathomerror.py +0 -0
  18. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/errors/no_response_error.py +0 -0
  19. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/errors/responsevalidationerror.py +0 -0
  20. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/httpclient.py +0 -0
  21. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/__init__.py +0 -0
  22. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/actionitem.py +0 -0
  23. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/assignee.py +0 -0
  24. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/callbackresponse.py +0 -0
  25. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/createwebhookop.py +0 -0
  26. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/crmcompanymatch.py +0 -0
  27. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/crmcontactmatch.py +0 -0
  28. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/crmdealmatch.py +0 -0
  29. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/crmmatches.py +0 -0
  30. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/deletewebhookop.py +0 -0
  31. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/fathomuser.py +0 -0
  32. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/getrecordingsummaryop.py +0 -0
  33. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/getrecordingtranscriptop.py +0 -0
  34. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/invitee.py +0 -0
  35. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/listmeetingsop.py +0 -0
  36. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/listteammembersop.py +0 -0
  37. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/listteamsop.py +0 -0
  38. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/meeting.py +0 -0
  39. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/meetinglistresponse.py +0 -0
  40. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/meetingsummary.py +0 -0
  41. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/security.py +0 -0
  42. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/team.py +0 -0
  43. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/teamlistresponse.py +0 -0
  44. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/teammember.py +0 -0
  45. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/teammemberlistresponse.py +0 -0
  46. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/transcriptitem.py +0 -0
  47. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/transcriptitemspeaker.py +0 -0
  48. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/models/webhook.py +0 -0
  49. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/py.typed +0 -0
  50. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/sdkconfiguration.py +0 -0
  51. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/types/__init__.py +0 -0
  52. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/types/basemodel.py +0 -0
  53. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/__init__.py +0 -0
  54. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/datetimes.py +0 -0
  55. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/enums.py +0 -0
  56. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/eventstreaming.py +0 -0
  57. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/forms.py +0 -0
  58. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/headers.py +0 -0
  59. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/logger.py +0 -0
  60. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/metadata.py +0 -0
  61. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/queryparams.py +0 -0
  62. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/requestbodies.py +0 -0
  63. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/retries.py +0 -0
  64. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/security.py +0 -0
  65. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/serializers.py +0 -0
  66. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/unmarshal_json_response.py +0 -0
  67. {fathom_python-0.0.33 → fathom_python-0.0.34}/src/fathom_python/utils/url.py +0 -0
  68. {fathom_python-0.0.33 → 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.33
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
@@ -143,6 +143,7 @@ with Fathom(
143
143
  </br>
144
144
 
145
145
  The same SDK client can also be used to make asynchronous requests by importing asyncio.
146
+
146
147
  ```python
147
148
  # Asynchronous Example
148
149
  import asyncio
@@ -123,6 +123,7 @@ with Fathom(
123
123
  </br>
124
124
 
125
125
  The same SDK client can also be used to make asynchronous requests by importing asyncio.
126
+
126
127
  ```python
127
128
  # Asynchronous Example
128
129
  import asyncio
@@ -1,7 +1,7 @@
1
1
 
2
2
  [project]
3
3
  name = "fathom-python"
4
- version = "0.0.33"
4
+ version = "0.0.34"
5
5
  description = "Python Client SDK Generated by Speakeasy."
6
6
  authors = [{ name = "Speakeasy" },]
7
7
  readme = "README.md"
@@ -38,7 +38,6 @@ build-backend = "poetry.core.masonry.api"
38
38
 
39
39
  [tool.pytest.ini_options]
40
40
  asyncio_default_fixture_loop_scope = "function"
41
- asyncio_mode = "auto"
42
41
  pythonpath = ["src"]
43
42
 
44
43
  [tool.mypy]
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "fathom-python"
6
- __version__: str = "0.0.33"
6
+ __version__: str = "0.0.34"
7
7
  __openapi_doc_version__: str = "1.0.0"
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"
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:
@@ -57,7 +57,7 @@ class Fathom(BaseSDK):
57
57
  """
58
58
  client_supplied = True
59
59
  if client is None:
60
- client = httpx.Client()
60
+ client = httpx.Client(follow_redirects=True)
61
61
  client_supplied = False
62
62
 
63
63
  assert issubclass(
@@ -66,7 +66,7 @@ class Fathom(BaseSDK):
66
66
 
67
67
  async_client_supplied = True
68
68
  if async_client is None:
69
- async_client = httpx.AsyncClient()
69
+ async_client = httpx.AsyncClient(follow_redirects=True)
70
70
  async_client_supplied = False
71
71
 
72
72
  if debug_logger is None:
@@ -150,7 +150,7 @@ class Fathom(BaseSDK):
150
150
  "expires": self.expires,
151
151
  }
152
152
 
153
- def set_(self, token: str, refresh_token: str, expires: int):
153
+ def set(self, token: str, refresh_token: str, expires: int):
154
154
  self.token = token
155
155
  self.refresh_token = refresh_token
156
156
  self.expires = expires
@@ -217,7 +217,7 @@ class Fathom(BaseSDK):
217
217
  )
218
218
  response.raise_for_status()
219
219
  data = response.json()
220
- token_store.set_(
220
+ token_store.set(
221
221
  data["access_token"],
222
222
  data.get("refresh_token", ""),
223
223
  int(time.time()) + data["expires_in"],
@@ -241,7 +241,7 @@ class Fathom(BaseSDK):
241
241
  )
242
242
  response.raise_for_status()
243
243
  data = response.json()
244
- token_store.set_(
244
+ token_store.set(
245
245
  data["access_token"],
246
246
  data.get("refresh_token", ""),
247
247
  int(time.time()) + data["expires_in"],
@@ -0,0 +1,79 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from enum import Enum
4
+ from typing import Any, Optional
5
+
6
+
7
+ def get_discriminator(model: Any, fieldname: str, key: str) -> str:
8
+ """
9
+ Recursively search for the discriminator attribute in a model.
10
+
11
+ Args:
12
+ model (Any): The model to search within.
13
+ fieldname (str): The name of the field to search for.
14
+ key (str): The key to search for in dictionaries.
15
+
16
+ Returns:
17
+ str: The name of the discriminator attribute.
18
+
19
+ Raises:
20
+ ValueError: If the discriminator attribute is not found.
21
+ """
22
+ upper_fieldname = fieldname.upper()
23
+
24
+ def get_field_discriminator(field: Any) -> Optional[str]:
25
+ """Search for the discriminator attribute in a given field."""
26
+
27
+ if isinstance(field, dict):
28
+ if key in field:
29
+ return f"{field[key]}"
30
+
31
+ if hasattr(field, fieldname):
32
+ attr = getattr(field, fieldname)
33
+ if isinstance(attr, Enum):
34
+ return f"{attr.value}"
35
+ return f"{attr}"
36
+
37
+ if hasattr(field, upper_fieldname):
38
+ attr = getattr(field, upper_fieldname)
39
+ if isinstance(attr, Enum):
40
+ return f"{attr.value}"
41
+ return f"{attr}"
42
+
43
+ return None
44
+
45
+ def search_nested_discriminator(obj: Any) -> Optional[str]:
46
+ """Recursively search for discriminator in nested structures."""
47
+ # First try direct field lookup
48
+ discriminator = get_field_discriminator(obj)
49
+ if discriminator is not None:
50
+ return discriminator
51
+
52
+ # If it's a dict, search in nested values
53
+ if isinstance(obj, dict):
54
+ for value in obj.values():
55
+ if isinstance(value, list):
56
+ # Search in list items
57
+ for item in value:
58
+ nested_discriminator = search_nested_discriminator(item)
59
+ if nested_discriminator is not None:
60
+ return nested_discriminator
61
+ elif isinstance(value, dict):
62
+ # Search in nested dict
63
+ nested_discriminator = search_nested_discriminator(value)
64
+ if nested_discriminator is not None:
65
+ return nested_discriminator
66
+
67
+ return None
68
+
69
+ if isinstance(model, list):
70
+ for field in model:
71
+ discriminator = search_nested_discriminator(field)
72
+ if discriminator is not None:
73
+ return discriminator
74
+
75
+ discriminator = search_nested_discriminator(model)
76
+ if discriminator is not None:
77
+ return discriminator
78
+
79
+ raise ValueError(f"Could not find discriminator field {fieldname} in {model}")
@@ -1,55 +0,0 @@
1
- """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
-
3
- from enum import Enum
4
- from typing import Any, Optional
5
-
6
- def get_discriminator(model: Any, fieldname: str, key: str) -> str:
7
- """
8
- Recursively search for the discriminator attribute in a model.
9
-
10
- Args:
11
- model (Any): The model to search within.
12
- fieldname (str): The name of the field to search for.
13
- key (str): The key to search for in dictionaries.
14
-
15
- Returns:
16
- str: The name of the discriminator attribute.
17
-
18
- Raises:
19
- ValueError: If the discriminator attribute is not found.
20
- """
21
- upper_fieldname = fieldname.upper()
22
-
23
- def get_field_discriminator(field: Any) -> Optional[str]:
24
- """Search for the discriminator attribute in a given field."""
25
-
26
- if isinstance(field, dict):
27
- if key in field:
28
- return f'{field[key]}'
29
-
30
- if hasattr(field, fieldname):
31
- attr = getattr(field, fieldname)
32
- if isinstance(attr, Enum):
33
- return f'{attr.value}'
34
- return f'{attr}'
35
-
36
- if hasattr(field, upper_fieldname):
37
- attr = getattr(field, upper_fieldname)
38
- if isinstance(attr, Enum):
39
- return f'{attr.value}'
40
- return f'{attr}'
41
-
42
- return None
43
-
44
-
45
- if isinstance(model, list):
46
- for field in model:
47
- discriminator = get_field_discriminator(field)
48
- if discriminator is not None:
49
- return discriminator
50
-
51
- discriminator = get_field_discriminator(model)
52
- if discriminator is not None:
53
- return discriminator
54
-
55
- raise ValueError(f'Could not find discriminator field {fieldname} in {model}')
File without changes