gr4vy 1.2.12__py3-none-any.whl → 1.4.0__py3-none-any.whl

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.
gr4vy/_version.py CHANGED
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "gr4vy"
6
- __version__: str = "1.2.12"
6
+ __version__: str = "1.4.0"
7
7
  __openapi_doc_version__: str = "1.0.0"
8
- __gen_version__: str = "2.709.0"
9
- __user_agent__: str = "speakeasy-sdk/python 1.2.12 2.709.0 1.0.0 gr4vy"
8
+ __gen_version__: str = "2.716.7"
9
+ __user_agent__: str = "speakeasy-sdk/python 1.4.0 2.716.7 1.0.0 gr4vy"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
gr4vy/sdk.py CHANGED
@@ -113,7 +113,7 @@ class Gr4vy(BaseSDK):
113
113
  """
114
114
  client_supplied = True
115
115
  if client is None:
116
- client = httpx.Client()
116
+ client = httpx.Client(follow_redirects=True)
117
117
  client_supplied = False
118
118
 
119
119
  assert issubclass(
@@ -122,7 +122,7 @@ class Gr4vy(BaseSDK):
122
122
 
123
123
  async_client_supplied = True
124
124
  if async_client is None:
125
- async_client = httpx.AsyncClient()
125
+ async_client = httpx.AsyncClient(follow_redirects=True)
126
126
  async_client_supplied = False
127
127
 
128
128
  if debug_logger is None:
@@ -3,6 +3,7 @@
3
3
  from enum import Enum
4
4
  from typing import Any, Optional
5
5
 
6
+
6
7
  def get_discriminator(model: Any, fieldname: str, key: str) -> str:
7
8
  """
8
9
  Recursively search for the discriminator attribute in a model.
@@ -25,31 +26,54 @@ def get_discriminator(model: Any, fieldname: str, key: str) -> str:
25
26
 
26
27
  if isinstance(field, dict):
27
28
  if key in field:
28
- return f'{field[key]}'
29
+ return f"{field[key]}"
29
30
 
30
31
  if hasattr(field, fieldname):
31
32
  attr = getattr(field, fieldname)
32
33
  if isinstance(attr, Enum):
33
- return f'{attr.value}'
34
- return f'{attr}'
34
+ return f"{attr.value}"
35
+ return f"{attr}"
35
36
 
36
37
  if hasattr(field, upper_fieldname):
37
38
  attr = getattr(field, upper_fieldname)
38
39
  if isinstance(attr, Enum):
39
- return f'{attr.value}'
40
- return f'{attr}'
40
+ return f"{attr.value}"
41
+ return f"{attr}"
41
42
 
42
43
  return None
43
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
44
68
 
45
69
  if isinstance(model, list):
46
70
  for field in model:
47
- discriminator = get_field_discriminator(field)
71
+ discriminator = search_nested_discriminator(field)
48
72
  if discriminator is not None:
49
73
  return discriminator
50
74
 
51
- discriminator = get_field_discriminator(model)
75
+ discriminator = search_nested_discriminator(model)
52
76
  if discriminator is not None:
53
77
  return discriminator
54
78
 
55
- raise ValueError(f'Could not find discriminator field {fieldname} in {model}')
79
+ raise ValueError(f"Could not find discriminator field {fieldname} in {model}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: gr4vy
3
- Version: 1.2.12
3
+ Version: 1.4.0
4
4
  Summary: Python Client SDK Generated by Speakeasy.
5
5
  Author: Gr4vy
6
6
  Requires-Python: >=3.9.2
@@ -2,7 +2,7 @@ gr4vy/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,401
2
2
  gr4vy/_hooks/__init__.py,sha256=p5J13DeYuISQyQWirjJAObHIf2VtIlOtFqnIpvjjVwk,118
3
3
  gr4vy/_hooks/sdkhooks.py,sha256=3jKTs2B1lcAxBMJge9C-qL0RGbKGLcrHvikzi67Tbdo,2493
4
4
  gr4vy/_hooks/types.py,sha256=0O7dbbolkiFAnHkNULvwoLsiXJu0_Wmhev163bvZbW8,3039
5
- gr4vy/_version.py,sha256=L14XdcBIAu716bMK1zXWaHO_rV9zU8mSeIOPd8n51KY,454
5
+ gr4vy/_version.py,sha256=aR0eVgsHiZFUgg46wMBoIb5HPNiiXuX5p3PdChg6z0I,452
6
6
  gr4vy/account_updater.py,sha256=mmTd25Oap80PBqQ3p4MvZ_buT5VS0zWc8s8cqfI7iyA,607
7
7
  gr4vy/all.py,sha256=WwnLoNn3RgXNpf4Xoz12ct94JD7NMpLz-kzesHHh4m8,15172
8
8
  gr4vy/audit_logs.py,sha256=duh_c9mO8vIcpCnB-c77EYn1tkuCp1cRT6a7l0VdZqc,17083
@@ -403,7 +403,7 @@ gr4vy/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
403
403
  gr4vy/refunds_sdk.py,sha256=kpU3NaVMsgKxhWblTF-jfAl_Cdpw1HqARP81TypFsjs,13551
404
404
  gr4vy/report_executions_sdk.py,sha256=wmclMp0zxC2Px_z6kHjm-uDMrDRIMxomwtD1ZuvDuOQ,18945
405
405
  gr4vy/reports_sdk.py,sha256=D9UkmvZmyuRWlB89nbhMoeuFsknZ8kmwxTmqQNylY2M,59625
406
- gr4vy/sdk.py,sha256=XqkSODRWO2VLYcVBhQjX0EdgKson0juO_oQMsgJ_h5o,10477
406
+ gr4vy/sdk.py,sha256=2hfDkFfqPXyFR8w4J0joQrk_5xirotLtFrRYu5glAq4,10519
407
407
  gr4vy/sdkconfiguration.py,sha256=aBQ8gY9aOjf1TL0kSLat8hEIoH4lCE9_PhihyhBpRE4,1985
408
408
  gr4vy/sessions.py,sha256=yg9L1vMfHT6dNc6zjthULHFS2dC67QzXCv5WUFMn3DI,41609
409
409
  gr4vy/transactions.py,sha256=kQb94JESsFEdq7yo7uhkywsy003QeHbndgswHM98zS8,168087
@@ -412,7 +412,7 @@ gr4vy/transactions_settlements.py,sha256=YOH0JAGvli36XhKKXyQ81JIIuv59uCOpqBri6Sl
412
412
  gr4vy/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
413
413
  gr4vy/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
414
414
  gr4vy/utils/__init__.py,sha256=CAG0O76aEToGKXpT6Ft87Vd-iiQTh4XdBrQ37BVbsiM,5861
415
- gr4vy/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4sek5Z_5Y,1699
415
+ gr4vy/utils/annotations.py,sha256=FvfvVTUj8TUclm4HbGgY5yi2Ap7EzGmu2UPFU4FwC1w,2755
416
416
  gr4vy/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
417
417
  gr4vy/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
418
418
  gr4vy/utils/eventstreaming.py,sha256=SgFqMcUOYKlrTQ4gAp_dNcKLvDXukeiEMNU3DP8mXk8,6692
@@ -429,6 +429,6 @@ gr4vy/utils/unmarshal_json_response.py,sha256=H7jxugtMDuagdBXdpGiPf0Vr5-PWLETp8B
429
429
  gr4vy/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
430
430
  gr4vy/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
431
431
  gr4vy/webhooks.py,sha256=2L-ZhdK-XU2X0AkVqgZvhfRqDCKUVs7R4UNCmZJR78w,1359
432
- gr4vy-1.2.12.dist-info/METADATA,sha256=jwY833aOx_A38Qj41Nk99p6MZl2tkpT45xN2moqe830,44203
433
- gr4vy-1.2.12.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
434
- gr4vy-1.2.12.dist-info/RECORD,,
432
+ gr4vy-1.4.0.dist-info/METADATA,sha256=uj9AxDUrW1DR3XED521TwQEX6DTuMPHjQs1PiH0rKyw,44202
433
+ gr4vy-1.4.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
434
+ gr4vy-1.4.0.dist-info/RECORD,,
File without changes