gr4vy 1.10.11__py3-none-any.whl → 1.10.14__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.
Files changed (292) hide show
  1. gr4vy/_version.py +3 -3
  2. gr4vy/basesdk.py +20 -6
  3. gr4vy/models/__init__.py +132 -0
  4. gr4vy/models/accountsreceivablesreportspec.py +18 -1
  5. gr4vy/models/accountupdaterinquirysummary.py +18 -1
  6. gr4vy/models/accountupdaterjob.py +18 -1
  7. gr4vy/models/accountupdateroptions.py +30 -31
  8. gr4vy/models/add_buyer_shipping_detailsop.py +34 -1
  9. gr4vy/models/add_buyerop.py +34 -1
  10. gr4vy/models/add_payment_linkop.py +34 -1
  11. gr4vy/models/add_reportop.py +34 -1
  12. gr4vy/models/address.py +38 -39
  13. gr4vy/models/adyencardoptions.py +32 -33
  14. gr4vy/models/adyenoptions.py +14 -19
  15. gr4vy/models/adyensepaoptions.py +30 -31
  16. gr4vy/models/adyensplitsoptions.py +14 -19
  17. gr4vy/models/affirmitineraryoptions.py +34 -35
  18. gr4vy/models/affirmoptions.py +14 -19
  19. gr4vy/models/airline.py +58 -59
  20. gr4vy/models/airlineleg.py +66 -67
  21. gr4vy/models/airlinepassenger.py +42 -43
  22. gr4vy/models/applepaypaymentmethodcreate.py +34 -35
  23. gr4vy/models/auditlogentries.py +14 -19
  24. gr4vy/models/auditlogentry.py +14 -19
  25. gr4vy/models/auditlogentryuser.py +14 -19
  26. gr4vy/models/billingdetails.py +32 -33
  27. gr4vy/models/braintreedynamicdatafieldsoptions.py +26 -27
  28. gr4vy/models/braintreeoptions.py +18 -19
  29. gr4vy/models/browserinfo.py +14 -19
  30. gr4vy/models/buyer.py +31 -32
  31. gr4vy/models/buyercreate.py +18 -29
  32. gr4vy/models/buyers.py +14 -19
  33. gr4vy/models/buyerupdate.py +18 -29
  34. gr4vy/models/cancel_transactionop.py +34 -1
  35. gr4vy/models/capture_transactionop.py +30 -19
  36. gr4vy/models/cardpaymentmethodcreate.py +31 -32
  37. gr4vy/models/cardschemedefinition.py +18 -1
  38. gr4vy/models/cardwithurlpaymentmethodcreate.py +33 -34
  39. gr4vy/models/cartitem.py +52 -53
  40. gr4vy/models/chaseoptions.py +14 -19
  41. gr4vy/models/checkoutsession.py +37 -38
  42. gr4vy/models/checkoutsessioncreate.py +35 -36
  43. gr4vy/models/checkoutsessionpaymentmethod.py +16 -27
  44. gr4vy/models/checkoutsessionpaymentmethodcreate.py +18 -28
  45. gr4vy/models/checkoutsessionpaymentmethoddetails.py +14 -19
  46. gr4vy/models/checkoutsessionwithurlpaymentmethodcreate.py +29 -30
  47. gr4vy/models/clicktopayfpanpaymentmethodcreate.py +32 -33
  48. gr4vy/models/clicktopaypaymentmethodcreate.py +28 -29
  49. gr4vy/models/configure_digital_walletop.py +34 -1
  50. gr4vy/models/create_account_updater_jobop.py +34 -1
  51. gr4vy/models/create_apple_pay_digital_wallet_sessionop.py +34 -1
  52. gr4vy/models/create_checkout_sessionop.py +34 -1
  53. gr4vy/models/create_full_transaction_refundop.py +30 -19
  54. gr4vy/models/create_gift_cardop.py +34 -1
  55. gr4vy/models/create_google_pay_digital_wallet_sessionop.py +34 -1
  56. gr4vy/models/create_payment_method_network_token_cryptogramop.py +34 -1
  57. gr4vy/models/create_payment_method_network_tokenop.py +34 -1
  58. gr4vy/models/create_payment_method_payment_service_tokenop.py +34 -1
  59. gr4vy/models/create_payment_methodop.py +34 -1
  60. gr4vy/models/create_payment_service_sessionop.py +34 -1
  61. gr4vy/models/create_payment_serviceop.py +34 -1
  62. gr4vy/models/create_payoutop.py +34 -1
  63. gr4vy/models/create_report_execution_urlop.py +34 -1
  64. gr4vy/models/create_three_ds_scenarioop.py +79 -0
  65. gr4vy/models/create_transaction_refundop.py +34 -1
  66. gr4vy/models/create_transactionop.py +32 -19
  67. gr4vy/models/createsession.py +14 -19
  68. gr4vy/models/cryptogram.py +18 -1
  69. gr4vy/models/cybersourceantifraudoptions.py +18 -27
  70. gr4vy/models/cybersourceoptions.py +27 -28
  71. gr4vy/models/delete_buyer_shipping_detailsop.py +34 -1
  72. gr4vy/models/delete_buyerop.py +34 -1
  73. gr4vy/models/delete_checkout_sessionop.py +34 -1
  74. gr4vy/models/delete_digital_walletop.py +34 -1
  75. gr4vy/models/delete_gift_cardop.py +34 -1
  76. gr4vy/models/delete_payment_method_network_tokenop.py +34 -1
  77. gr4vy/models/delete_payment_method_payment_service_tokenop.py +34 -1
  78. gr4vy/models/delete_payment_methodop.py +34 -1
  79. gr4vy/models/delete_payment_serviceop.py +34 -1
  80. gr4vy/models/delete_three_ds_scenarioop.py +76 -0
  81. gr4vy/models/detailedsettlementreportspec.py +18 -1
  82. gr4vy/models/digitalwallet.py +27 -33
  83. gr4vy/models/digitalwalletcreate.py +23 -28
  84. gr4vy/models/digitalwalletupdate.py +30 -31
  85. gr4vy/models/dlocaloptions.py +14 -19
  86. gr4vy/models/dlocalupioptions.py +14 -19
  87. gr4vy/models/dlocalupiwalletoptions.py +18 -33
  88. gr4vy/models/dlocalwalletoptions.py +14 -19
  89. gr4vy/models/expire_payment_linkop.py +34 -1
  90. gr4vy/models/fiservinstallmentoptions.py +27 -28
  91. gr4vy/models/fiservoptions.py +14 -19
  92. gr4vy/models/forterantifraudoptions.py +30 -31
  93. gr4vy/models/forterantifraudoptionscartitem.py +13 -18
  94. gr4vy/models/forterantifraudoptionscartitembasicitemdata.py +14 -19
  95. gr4vy/models/forterantifraudoptionscartitembeneficiary.py +13 -18
  96. gr4vy/models/forterantifraudoptionscartitembeneficiaryaddress.py +18 -19
  97. gr4vy/models/forterantifraudoptionscartitembeneficiarycomments.py +18 -27
  98. gr4vy/models/forterantifraudoptionscartitembeneficiarypersonaldetails.py +14 -19
  99. gr4vy/models/forterantifraudoptionscartitemdeliverydetails.py +13 -18
  100. gr4vy/models/forterantifraudoptionsdiscount.py +13 -18
  101. gr4vy/models/forterantifraudoptionsdiscountcoupondiscountamount.py +14 -19
  102. gr4vy/models/get_buyer_shipping_detailsop.py +34 -1
  103. gr4vy/models/get_buyerop.py +34 -1
  104. gr4vy/models/get_checkout_sessionop.py +34 -1
  105. gr4vy/models/get_digital_walletop.py +34 -1
  106. gr4vy/models/get_gift_cardop.py +34 -1
  107. gr4vy/models/get_payment_linkop.py +34 -1
  108. gr4vy/models/get_payment_methodop.py +34 -1
  109. gr4vy/models/get_payment_serviceop.py +34 -1
  110. gr4vy/models/get_payoutop.py +34 -1
  111. gr4vy/models/get_refundop.py +34 -1
  112. gr4vy/models/get_report_executionop.py +34 -1
  113. gr4vy/models/get_reportop.py +34 -1
  114. gr4vy/models/get_three_ds_scenarioop.py +105 -0
  115. gr4vy/models/get_transaction_refundop.py +34 -1
  116. gr4vy/models/get_transaction_settlementop.py +34 -1
  117. gr4vy/models/get_transactionop.py +34 -1
  118. gr4vy/models/giftcard.py +14 -19
  119. gr4vy/models/giftcardcreate.py +14 -19
  120. gr4vy/models/giftcardredemption.py +29 -30
  121. gr4vy/models/giftcards.py +14 -19
  122. gr4vy/models/giftcardservice.py +18 -1
  123. gr4vy/models/giftcardsummary.py +35 -36
  124. gr4vy/models/givingblockoptions.py +14 -19
  125. gr4vy/models/googlepayassurancedetails.py +14 -19
  126. gr4vy/models/googlepayfpanpaymentmethodcreate.py +32 -33
  127. gr4vy/models/googlepaypaymentmethodcreate.py +36 -37
  128. gr4vy/models/guestbuyer.py +30 -31
  129. gr4vy/models/internal/globals.py +18 -1
  130. gr4vy/models/latitudeoptions.py +14 -19
  131. gr4vy/models/list_all_report_executionsop.py +50 -35
  132. gr4vy/models/list_audit_logsop.py +39 -26
  133. gr4vy/models/list_buyer_gift_cardsop.py +32 -23
  134. gr4vy/models/list_buyer_payment_methodsop.py +42 -33
  135. gr4vy/models/list_buyer_shipping_detailsop.py +34 -1
  136. gr4vy/models/list_buyersop.py +32 -25
  137. gr4vy/models/list_card_scheme_definitionsop.py +34 -1
  138. gr4vy/models/list_digital_walletsop.py +34 -1
  139. gr4vy/models/list_gift_card_balancesop.py +34 -1
  140. gr4vy/models/list_gift_cardsop.py +38 -25
  141. gr4vy/models/list_merchant_accountsop.py +14 -19
  142. gr4vy/models/list_payment_linksop.py +32 -19
  143. gr4vy/models/list_payment_method_network_tokensop.py +34 -1
  144. gr4vy/models/list_payment_method_payment_service_tokensop.py +30 -19
  145. gr4vy/models/list_payment_methodsop.py +48 -33
  146. gr4vy/models/list_payment_optionsop.py +34 -1
  147. gr4vy/models/list_payment_service_definitionsop.py +14 -19
  148. gr4vy/models/list_payment_servicesop.py +32 -25
  149. gr4vy/models/list_payoutsop.py +30 -19
  150. gr4vy/models/list_report_executionsop.py +30 -19
  151. gr4vy/models/list_reportsop.py +39 -26
  152. gr4vy/models/list_transaction_actionsop.py +34 -1
  153. gr4vy/models/list_transaction_eventsop.py +30 -19
  154. gr4vy/models/list_transaction_refundsop.py +34 -1
  155. gr4vy/models/list_transaction_settlementsop.py +34 -1
  156. gr4vy/models/list_transactionsop.py +124 -109
  157. gr4vy/models/mattildatapioptions.py +14 -19
  158. gr4vy/models/merchantaccount.py +52 -53
  159. gr4vy/models/merchantaccountcreate.py +52 -53
  160. gr4vy/models/merchantaccounts.py +14 -19
  161. gr4vy/models/merchantaccountupdate.py +54 -55
  162. gr4vy/models/mockcardmerchantadvicecodeoptions.py +14 -19
  163. gr4vy/models/mockcardoptions.py +14 -19
  164. gr4vy/models/networktoken.py +18 -1
  165. gr4vy/models/networktokencreate.py +14 -19
  166. gr4vy/models/networktokenpaymentmethodcreate.py +34 -35
  167. gr4vy/models/nuveiairlinedataoptions.py +14 -19
  168. gr4vy/models/nuveiidealoptions.py +14 -19
  169. gr4vy/models/nuveioptions.py +14 -19
  170. gr4vy/models/nuveipseoptions.py +13 -18
  171. gr4vy/models/oxxooptions.py +14 -19
  172. gr4vy/models/paymentlink.py +59 -60
  173. gr4vy/models/paymentlinkcreate.py +59 -60
  174. gr4vy/models/paymentlinks.py +14 -19
  175. gr4vy/models/paymentmethod.py +51 -52
  176. gr4vy/models/paymentmethodcard.py +14 -19
  177. gr4vy/models/paymentmethoddetailscard.py +14 -19
  178. gr4vy/models/paymentmethods.py +14 -19
  179. gr4vy/models/paymentmethodstoredcard.py +18 -1
  180. gr4vy/models/paymentmethodsummary.py +47 -48
  181. gr4vy/models/paymentoption.py +14 -19
  182. gr4vy/models/paymentoptioncontext.py +14 -19
  183. gr4vy/models/paymentoptioncontextapprovalui.py +14 -19
  184. gr4vy/models/paymentoptionrequest.py +18 -26
  185. gr4vy/models/paymentservice.py +35 -36
  186. gr4vy/models/paymentservicecreate.py +36 -37
  187. gr4vy/models/paymentservicedefinition.py +14 -19
  188. gr4vy/models/paymentservicedefinitions.py +14 -19
  189. gr4vy/models/paymentservices.py +14 -19
  190. gr4vy/models/paymentservicetoken.py +14 -19
  191. gr4vy/models/paymentservicetokencreate.py +14 -19
  192. gr4vy/models/paymentserviceupdate.py +45 -46
  193. gr4vy/models/payoutconnectionoptions.py +14 -19
  194. gr4vy/models/payoutcreate.py +34 -35
  195. gr4vy/models/payoutmerchant.py +14 -19
  196. gr4vy/models/payoutmerchantsummary.py +14 -19
  197. gr4vy/models/payoutpaymentservice.py +14 -19
  198. gr4vy/models/payoutsummaries.py +14 -19
  199. gr4vy/models/payoutsummary.py +35 -36
  200. gr4vy/models/paypaloptions.py +14 -19
  201. gr4vy/models/paypalshippingoptions.py +14 -19
  202. gr4vy/models/paypalshippingoptionsitem.py +14 -19
  203. gr4vy/models/plaidpaymentmethodcreate.py +31 -32
  204. gr4vy/models/powertranzoptions.py +14 -19
  205. gr4vy/models/recipient.py +14 -19
  206. gr4vy/models/redirectpaymentmethodcreate.py +18 -27
  207. gr4vy/models/refund.py +39 -40
  208. gr4vy/models/refunds.py +14 -19
  209. gr4vy/models/register_digital_wallet_domainop.py +34 -1
  210. gr4vy/models/report.py +33 -34
  211. gr4vy/models/reportcreate.py +14 -19
  212. gr4vy/models/reportexecution.py +18 -1
  213. gr4vy/models/reportexecutions.py +14 -19
  214. gr4vy/models/reportexecutionsummary.py +18 -1
  215. gr4vy/models/reportexecutionurlgenerate.py +18 -1
  216. gr4vy/models/reports.py +14 -19
  217. gr4vy/models/reportsummary.py +16 -19
  218. gr4vy/models/reportupdate.py +14 -19
  219. gr4vy/models/requiredcheckoutfields.py +14 -19
  220. gr4vy/models/resume_payment_method_network_tokenop.py +34 -1
  221. gr4vy/models/security.py +18 -1
  222. gr4vy/models/settlement.py +16 -25
  223. gr4vy/models/shippingdetails.py +35 -36
  224. gr4vy/models/shippingdetailscreate.py +18 -31
  225. gr4vy/models/shippingdetailsupdate.py +18 -31
  226. gr4vy/models/statementdescriptor.py +34 -35
  227. gr4vy/models/stripeconnectoptions.py +30 -31
  228. gr4vy/models/stripeoptions.py +14 -19
  229. gr4vy/models/suspend_payment_method_network_tokenop.py +34 -1
  230. gr4vy/models/sync_transactionop.py +34 -1
  231. gr4vy/models/threedsecure.py +14 -19
  232. gr4vy/models/threedsecuredatav1.py +14 -19
  233. gr4vy/models/threedsecuredatav2.py +14 -19
  234. gr4vy/models/threedsecureerror.py +14 -19
  235. gr4vy/models/threedsecurescenario.py +77 -0
  236. gr4vy/models/threedsecurescenarioconditions.py +84 -0
  237. gr4vy/models/threedsecurescenariocreate.py +24 -0
  238. gr4vy/models/threedsecurescenariooutcome.py +57 -0
  239. gr4vy/models/threedsecurescenariooutcomeauthentication.py +31 -0
  240. gr4vy/models/threedsecurescenariooutcomeresult.py +27 -0
  241. gr4vy/models/threedsecurescenarios.py +58 -0
  242. gr4vy/models/threedsecurescenarioupdate.py +54 -0
  243. gr4vy/models/threedsecurev2.py +34 -35
  244. gr4vy/models/tokenpaymentmethodcreate.py +14 -19
  245. gr4vy/models/transaction.py +116 -110
  246. gr4vy/models/transactionaction.py +18 -1
  247. gr4vy/models/transactionbuyer.py +31 -32
  248. gr4vy/models/transactioncancel.py +14 -19
  249. gr4vy/models/transactioncapture.py +14 -19
  250. gr4vy/models/transactioncapturecreate.py +14 -19
  251. gr4vy/models/transactionconnectionoptions.py +104 -105
  252. gr4vy/models/transactioncreate.py +88 -89
  253. gr4vy/models/transactionevent.py +18 -1
  254. gr4vy/models/transactionevents.py +14 -19
  255. gr4vy/models/transactiongiftcard.py +14 -19
  256. gr4vy/models/transactionpaymentmethod.py +49 -50
  257. gr4vy/models/transactionpaymentservice.py +18 -1
  258. gr4vy/models/transactionrefundallcreate.py +14 -19
  259. gr4vy/models/transactionrefundcreate.py +16 -25
  260. gr4vy/models/transactionretriesreportspec.py +18 -1
  261. gr4vy/models/transactionsreportspec.py +18 -1
  262. gr4vy/models/transactionsummaries.py +14 -19
  263. gr4vy/models/transactionsummary.py +50 -51
  264. gr4vy/models/transactionthreedsecuresummary.py +18 -33
  265. gr4vy/models/transactionupdate.py +14 -19
  266. gr4vy/models/transactionvoid.py +14 -19
  267. gr4vy/models/travelhubcustomdata.py +14 -19
  268. gr4vy/models/travelhuboptions.py +14 -19
  269. gr4vy/models/trustlyoptions.py +14 -19
  270. gr4vy/models/unregister_digital_wallet_domainop.py +34 -1
  271. gr4vy/models/update_buyer_shipping_detailsop.py +34 -1
  272. gr4vy/models/update_buyerop.py +34 -1
  273. gr4vy/models/update_checkout_sessionop.py +34 -1
  274. gr4vy/models/update_digital_walletop.py +34 -1
  275. gr4vy/models/update_payment_serviceop.py +34 -1
  276. gr4vy/models/update_reportop.py +34 -1
  277. gr4vy/models/update_three_ds_scenarioop.py +91 -0
  278. gr4vy/models/update_transactionop.py +34 -1
  279. gr4vy/models/verify_payment_service_credentialsop.py +34 -1
  280. gr4vy/models/verifycredentials.py +14 -19
  281. gr4vy/models/void_transactionop.py +30 -19
  282. gr4vy/models/wpayeverdaypayoptions.py +30 -31
  283. gr4vy/models/wpaypaytooptions.py +14 -19
  284. gr4vy/models/wpaypaytoresourceoptions.py +14 -19
  285. gr4vy/models/wpaypaytosimulationoptions.py +14 -19
  286. gr4vy/sdk.py +3 -0
  287. gr4vy/three_ds_scenarios.py +1322 -0
  288. gr4vy/utils/__init__.py +13 -1
  289. {gr4vy-1.10.11.dist-info → gr4vy-1.10.14.dist-info}/METADATA +8 -1
  290. gr4vy-1.10.14.dist-info/RECORD +464 -0
  291. gr4vy-1.10.11.dist-info/RECORD +0 -451
  292. {gr4vy-1.10.11.dist-info → gr4vy-1.10.14.dist-info}/WHEEL +0 -0
@@ -1,9 +1,10 @@
1
1
  """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
2
 
3
3
  from __future__ import annotations
4
- from gr4vy.types import BaseModel
4
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
5
5
  from gr4vy.utils import FieldMetadata, HeaderMetadata, PathParamMetadata
6
6
  import pydantic
7
+ from pydantic import model_serializer
7
8
  from typing import Optional
8
9
  from typing_extensions import Annotated, NotRequired, TypedDict
9
10
 
@@ -21,6 +22,22 @@ class GetTransactionGlobals(BaseModel):
21
22
  ] = None
22
23
  r"""The ID of the merchant account to use for this request."""
23
24
 
25
+ @model_serializer(mode="wrap")
26
+ def serialize_model(self, handler):
27
+ optional_fields = set(["merchant_account_id"])
28
+ serialized = handler(self)
29
+ m = {}
30
+
31
+ for n, f in type(self).model_fields.items():
32
+ k = f.alias or n
33
+ val = serialized.get(k)
34
+
35
+ if val != UNSET_SENTINEL:
36
+ if val is not None or k not in optional_fields:
37
+ m[k] = val
38
+
39
+ return m
40
+
24
41
 
25
42
  class GetTransactionRequestTypedDict(TypedDict):
26
43
  transaction_id: str
@@ -41,3 +58,19 @@ class GetTransactionRequest(BaseModel):
41
58
  FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
42
59
  ] = None
43
60
  r"""The ID of the merchant account to use for this request."""
61
+
62
+ @model_serializer(mode="wrap")
63
+ def serialize_model(self, handler):
64
+ optional_fields = set(["merchant_account_id"])
65
+ serialized = handler(self)
66
+ m = {}
67
+
68
+ for n, f in type(self).model_fields.items():
69
+ k = f.alias or n
70
+ val = serialized.get(k)
71
+
72
+ if val != UNSET_SENTINEL:
73
+ if val is not None or k not in optional_fields:
74
+ m[k] = val
75
+
76
+ return m
gr4vy/models/giftcard.py CHANGED
@@ -77,30 +77,25 @@ class GiftCard(BaseModel):
77
77
 
78
78
  @model_serializer(mode="wrap")
79
79
  def serialize_model(self, handler):
80
- optional_fields = ["type", "expiration_date", "buyer"]
81
- nullable_fields = ["expiration_date", "buyer"]
82
- null_default_fields = []
83
-
80
+ optional_fields = set(["type", "expiration_date", "buyer"])
81
+ nullable_fields = set(["expiration_date", "buyer"])
84
82
  serialized = handler(self)
85
-
86
83
  m = {}
87
84
 
88
85
  for n, f in type(self).model_fields.items():
89
86
  k = f.alias or n
90
87
  val = serialized.get(k)
91
- serialized.pop(k, None)
92
-
93
- optional_nullable = k in optional_fields and k in nullable_fields
94
- is_set = (
95
- self.__pydantic_fields_set__.intersection({n})
96
- or k in null_default_fields
97
- ) # pylint: disable=no-member
98
-
99
- if val is not None and val != UNSET_SENTINEL:
100
- m[k] = val
101
- elif val != UNSET_SENTINEL and (
102
- not k in optional_fields or (optional_nullable and is_set)
103
- ):
104
- m[k] = val
88
+ is_nullable_and_explicitly_set = (
89
+ k in nullable_fields
90
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
91
+ )
92
+
93
+ if val != UNSET_SENTINEL:
94
+ if (
95
+ val is not None
96
+ or k not in optional_fields
97
+ or is_nullable_and_explicitly_set
98
+ ):
99
+ m[k] = val
105
100
 
106
101
  return m
@@ -32,30 +32,25 @@ class GiftCardCreate(BaseModel):
32
32
 
33
33
  @model_serializer(mode="wrap")
34
34
  def serialize_model(self, handler):
35
- optional_fields = ["buyer_id", "buyer_external_identifier"]
36
- nullable_fields = ["buyer_id", "buyer_external_identifier"]
37
- null_default_fields = []
38
-
35
+ optional_fields = set(["buyer_id", "buyer_external_identifier"])
36
+ nullable_fields = set(["buyer_id", "buyer_external_identifier"])
39
37
  serialized = handler(self)
40
-
41
38
  m = {}
42
39
 
43
40
  for n, f in type(self).model_fields.items():
44
41
  k = f.alias or n
45
42
  val = serialized.get(k)
46
- serialized.pop(k, None)
47
-
48
- optional_nullable = k in optional_fields and k in nullable_fields
49
- is_set = (
50
- self.__pydantic_fields_set__.intersection({n})
51
- or k in null_default_fields
52
- ) # pylint: disable=no-member
53
-
54
- if val is not None and val != UNSET_SENTINEL:
55
- m[k] = val
56
- elif val != UNSET_SENTINEL and (
57
- not k in optional_fields or (optional_nullable and is_set)
58
- ):
59
- m[k] = val
43
+ is_nullable_and_explicitly_set = (
44
+ k in nullable_fields
45
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
46
+ )
47
+
48
+ if val != UNSET_SENTINEL:
49
+ if (
50
+ val is not None
51
+ or k not in optional_fields
52
+ or is_nullable_and_explicitly_set
53
+ ):
54
+ m[k] = val
60
55
 
61
56
  return m
@@ -71,41 +71,40 @@ class GiftCardRedemption(BaseModel):
71
71
 
72
72
  @model_serializer(mode="wrap")
73
73
  def serialize_model(self, handler):
74
- optional_fields = [
75
- "type",
76
- "gift_card_service_redemption_id",
77
- "error_code",
78
- "raw_error_code",
79
- "raw_error_message",
80
- ]
81
- nullable_fields = [
82
- "gift_card_service_redemption_id",
83
- "error_code",
84
- "raw_error_code",
85
- "raw_error_message",
86
- ]
87
- null_default_fields = []
88
-
74
+ optional_fields = set(
75
+ [
76
+ "type",
77
+ "gift_card_service_redemption_id",
78
+ "error_code",
79
+ "raw_error_code",
80
+ "raw_error_message",
81
+ ]
82
+ )
83
+ nullable_fields = set(
84
+ [
85
+ "gift_card_service_redemption_id",
86
+ "error_code",
87
+ "raw_error_code",
88
+ "raw_error_message",
89
+ ]
90
+ )
89
91
  serialized = handler(self)
90
-
91
92
  m = {}
92
93
 
93
94
  for n, f in type(self).model_fields.items():
94
95
  k = f.alias or n
95
96
  val = serialized.get(k)
96
- serialized.pop(k, None)
97
-
98
- optional_nullable = k in optional_fields and k in nullable_fields
99
- is_set = (
100
- self.__pydantic_fields_set__.intersection({n})
101
- or k in null_default_fields
102
- ) # pylint: disable=no-member
103
-
104
- if val is not None and val != UNSET_SENTINEL:
105
- m[k] = val
106
- elif val != UNSET_SENTINEL and (
107
- not k in optional_fields or (optional_nullable and is_set)
108
- ):
109
- m[k] = val
97
+ is_nullable_and_explicitly_set = (
98
+ k in nullable_fields
99
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
100
+ )
101
+
102
+ if val != UNSET_SENTINEL:
103
+ if (
104
+ val is not None
105
+ or k not in optional_fields
106
+ or is_nullable_and_explicitly_set
107
+ ):
108
+ m[k] = val
110
109
 
111
110
  return m
gr4vy/models/giftcards.py CHANGED
@@ -34,30 +34,25 @@ class GiftCards(BaseModel):
34
34
 
35
35
  @model_serializer(mode="wrap")
36
36
  def serialize_model(self, handler):
37
- optional_fields = ["limit", "next_cursor", "previous_cursor"]
38
- nullable_fields = ["next_cursor", "previous_cursor"]
39
- null_default_fields = []
40
-
37
+ optional_fields = set(["limit", "next_cursor", "previous_cursor"])
38
+ nullable_fields = set(["next_cursor", "previous_cursor"])
41
39
  serialized = handler(self)
42
-
43
40
  m = {}
44
41
 
45
42
  for n, f in type(self).model_fields.items():
46
43
  k = f.alias or n
47
44
  val = serialized.get(k)
48
- serialized.pop(k, None)
49
-
50
- optional_nullable = k in optional_fields and k in nullable_fields
51
- is_set = (
52
- self.__pydantic_fields_set__.intersection({n})
53
- or k in null_default_fields
54
- ) # pylint: disable=no-member
55
-
56
- if val is not None and val != UNSET_SENTINEL:
57
- m[k] = val
58
- elif val != UNSET_SENTINEL and (
59
- not k in optional_fields or (optional_nullable and is_set)
60
- ):
61
- m[k] = val
45
+ is_nullable_and_explicitly_set = (
46
+ k in nullable_fields
47
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
48
+ )
49
+
50
+ if val != UNSET_SENTINEL:
51
+ if (
52
+ val is not None
53
+ or k not in optional_fields
54
+ or is_nullable_and_explicitly_set
55
+ ):
56
+ m[k] = val
62
57
 
63
58
  return m
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .giftcardserviceprovider import GiftCardServiceProvider
5
- from gr4vy.types import BaseModel
5
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
6
6
  from gr4vy.utils import validate_const
7
7
  import pydantic
8
+ from pydantic import model_serializer
8
9
  from pydantic.functional_validators import AfterValidator
9
10
  from typing import Literal, Optional
10
11
  from typing_extensions import Annotated, TypedDict
@@ -37,3 +38,19 @@ class GiftCardService(BaseModel):
37
38
  pydantic.Field(alias="type"),
38
39
  ] = "gift-card-service"
39
40
  r"""Always `gift-card-service`."""
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = set(["type"])
45
+ serialized = handler(self)
46
+ m = {}
47
+
48
+ for n, f in type(self).model_fields.items():
49
+ k = f.alias or n
50
+ val = serialized.get(k)
51
+
52
+ if val != UNSET_SENTINEL:
53
+ if val is not None or k not in optional_fields:
54
+ m[k] = val
55
+
56
+ return m
@@ -83,47 +83,46 @@ class GiftCardSummary(BaseModel):
83
83
 
84
84
  @model_serializer(mode="wrap")
85
85
  def serialize_model(self, handler):
86
- optional_fields = [
87
- "type",
88
- "id",
89
- "currency",
90
- "expiration_date",
91
- "balance",
92
- "balance_error_code",
93
- "balance_raw_error_code",
94
- "balance_raw_error_message",
95
- ]
96
- nullable_fields = [
97
- "id",
98
- "currency",
99
- "expiration_date",
100
- "balance",
101
- "balance_error_code",
102
- "balance_raw_error_code",
103
- "balance_raw_error_message",
104
- ]
105
- null_default_fields = []
106
-
86
+ optional_fields = set(
87
+ [
88
+ "type",
89
+ "id",
90
+ "currency",
91
+ "expiration_date",
92
+ "balance",
93
+ "balance_error_code",
94
+ "balance_raw_error_code",
95
+ "balance_raw_error_message",
96
+ ]
97
+ )
98
+ nullable_fields = set(
99
+ [
100
+ "id",
101
+ "currency",
102
+ "expiration_date",
103
+ "balance",
104
+ "balance_error_code",
105
+ "balance_raw_error_code",
106
+ "balance_raw_error_message",
107
+ ]
108
+ )
107
109
  serialized = handler(self)
108
-
109
110
  m = {}
110
111
 
111
112
  for n, f in type(self).model_fields.items():
112
113
  k = f.alias or n
113
114
  val = serialized.get(k)
114
- serialized.pop(k, None)
115
-
116
- optional_nullable = k in optional_fields and k in nullable_fields
117
- is_set = (
118
- self.__pydantic_fields_set__.intersection({n})
119
- or k in null_default_fields
120
- ) # pylint: disable=no-member
121
-
122
- if val is not None and val != UNSET_SENTINEL:
123
- m[k] = val
124
- elif val != UNSET_SENTINEL and (
125
- not k in optional_fields or (optional_nullable and is_set)
126
- ):
127
- m[k] = val
115
+ is_nullable_and_explicitly_set = (
116
+ k in nullable_fields
117
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
118
+ )
119
+
120
+ if val != UNSET_SENTINEL:
121
+ if (
122
+ val is not None
123
+ or k not in optional_fields
124
+ or is_nullable_and_explicitly_set
125
+ ):
126
+ m[k] = val
128
127
 
129
128
  return m
@@ -20,30 +20,25 @@ class GivingBlockOptions(BaseModel):
20
20
 
21
21
  @model_serializer(mode="wrap")
22
22
  def serialize_model(self, handler):
23
- optional_fields = ["defaultCryptocurrency"]
24
- nullable_fields = ["defaultCryptocurrency"]
25
- null_default_fields = []
26
-
23
+ optional_fields = set(["defaultCryptocurrency"])
24
+ nullable_fields = set(["defaultCryptocurrency"])
27
25
  serialized = handler(self)
28
-
29
26
  m = {}
30
27
 
31
28
  for n, f in type(self).model_fields.items():
32
29
  k = f.alias or n
33
30
  val = serialized.get(k)
34
- serialized.pop(k, None)
35
-
36
- optional_nullable = k in optional_fields and k in nullable_fields
37
- is_set = (
38
- self.__pydantic_fields_set__.intersection({n})
39
- or k in null_default_fields
40
- ) # pylint: disable=no-member
41
-
42
- if val is not None and val != UNSET_SENTINEL:
43
- m[k] = val
44
- elif val != UNSET_SENTINEL and (
45
- not k in optional_fields or (optional_nullable and is_set)
46
- ):
47
- m[k] = val
31
+ is_nullable_and_explicitly_set = (
32
+ k in nullable_fields
33
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
34
+ )
35
+
36
+ if val != UNSET_SENTINEL:
37
+ if (
38
+ val is not None
39
+ or k not in optional_fields
40
+ or is_nullable_and_explicitly_set
41
+ ):
42
+ m[k] = val
48
43
 
49
44
  return m
@@ -26,30 +26,25 @@ class GooglePayAssuranceDetails(BaseModel):
26
26
 
27
27
  @model_serializer(mode="wrap")
28
28
  def serialize_model(self, handler):
29
- optional_fields = ["account_verified", "card_holder_authenticated"]
30
- nullable_fields = ["account_verified", "card_holder_authenticated"]
31
- null_default_fields = []
32
-
29
+ optional_fields = set(["account_verified", "card_holder_authenticated"])
30
+ nullable_fields = set(["account_verified", "card_holder_authenticated"])
33
31
  serialized = handler(self)
34
-
35
32
  m = {}
36
33
 
37
34
  for n, f in type(self).model_fields.items():
38
35
  k = f.alias or n
39
36
  val = serialized.get(k)
40
- serialized.pop(k, None)
41
-
42
- optional_nullable = k in optional_fields and k in nullable_fields
43
- is_set = (
44
- self.__pydantic_fields_set__.intersection({n})
45
- or k in null_default_fields
46
- ) # pylint: disable=no-member
47
-
48
- if val is not None and val != UNSET_SENTINEL:
49
- m[k] = val
50
- elif val != UNSET_SENTINEL and (
51
- not k in optional_fields or (optional_nullable and is_set)
52
- ):
53
- m[k] = val
37
+ is_nullable_and_explicitly_set = (
38
+ k in nullable_fields
39
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
40
+ )
41
+
42
+ if val != UNSET_SENTINEL:
43
+ if (
44
+ val is not None
45
+ or k not in optional_fields
46
+ or is_nullable_and_explicitly_set
47
+ ):
48
+ m[k] = val
54
49
 
55
50
  return m
@@ -71,44 +71,43 @@ class GooglePayFPANPaymentMethodCreate(BaseModel):
71
71
 
72
72
  @model_serializer(mode="wrap")
73
73
  def serialize_model(self, handler):
74
- optional_fields = [
75
- "buyer_external_identifier",
76
- "buyer_id",
77
- "external_identifier",
78
- "card_type",
79
- "redirect_url",
80
- "security_code",
81
- ]
82
- nullable_fields = [
83
- "buyer_external_identifier",
84
- "buyer_id",
85
- "external_identifier",
86
- "card_type",
87
- "redirect_url",
88
- "security_code",
89
- ]
90
- null_default_fields = []
91
-
74
+ optional_fields = set(
75
+ [
76
+ "buyer_external_identifier",
77
+ "buyer_id",
78
+ "external_identifier",
79
+ "card_type",
80
+ "redirect_url",
81
+ "security_code",
82
+ ]
83
+ )
84
+ nullable_fields = set(
85
+ [
86
+ "buyer_external_identifier",
87
+ "buyer_id",
88
+ "external_identifier",
89
+ "card_type",
90
+ "redirect_url",
91
+ "security_code",
92
+ ]
93
+ )
92
94
  serialized = handler(self)
93
-
94
95
  m = {}
95
96
 
96
97
  for n, f in type(self).model_fields.items():
97
98
  k = f.alias or n
98
99
  val = serialized.get(k)
99
- serialized.pop(k, None)
100
-
101
- optional_nullable = k in optional_fields and k in nullable_fields
102
- is_set = (
103
- self.__pydantic_fields_set__.intersection({n})
104
- or k in null_default_fields
105
- ) # pylint: disable=no-member
106
-
107
- if val is not None and val != UNSET_SENTINEL:
108
- m[k] = val
109
- elif val != UNSET_SENTINEL and (
110
- not k in optional_fields or (optional_nullable and is_set)
111
- ):
112
- m[k] = val
100
+ is_nullable_and_explicitly_set = (
101
+ k in nullable_fields
102
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
103
+ )
104
+
105
+ if val != UNSET_SENTINEL:
106
+ if (
107
+ val is not None
108
+ or k not in optional_fields
109
+ or is_nullable_and_explicitly_set
110
+ ):
111
+ m[k] = val
113
112
 
114
113
  return m
@@ -85,48 +85,47 @@ class GooglePayPaymentMethodCreate(BaseModel):
85
85
 
86
86
  @model_serializer(mode="wrap")
87
87
  def serialize_model(self, handler):
88
- optional_fields = [
89
- "buyer_external_identifier",
90
- "buyer_id",
91
- "cardholder_name",
92
- "redirect_url",
93
- "card_suffix",
94
- "card_scheme",
95
- "card_type",
96
- "assurance_details",
97
- ]
98
- nullable_fields = [
99
- "buyer_external_identifier",
100
- "buyer_id",
101
- "cardholder_name",
102
- "redirect_url",
103
- "card_suffix",
104
- "card_scheme",
105
- "card_type",
106
- "assurance_details",
107
- ]
108
- null_default_fields = []
109
-
88
+ optional_fields = set(
89
+ [
90
+ "buyer_external_identifier",
91
+ "buyer_id",
92
+ "cardholder_name",
93
+ "redirect_url",
94
+ "card_suffix",
95
+ "card_scheme",
96
+ "card_type",
97
+ "assurance_details",
98
+ ]
99
+ )
100
+ nullable_fields = set(
101
+ [
102
+ "buyer_external_identifier",
103
+ "buyer_id",
104
+ "cardholder_name",
105
+ "redirect_url",
106
+ "card_suffix",
107
+ "card_scheme",
108
+ "card_type",
109
+ "assurance_details",
110
+ ]
111
+ )
110
112
  serialized = handler(self)
111
-
112
113
  m = {}
113
114
 
114
115
  for n, f in type(self).model_fields.items():
115
116
  k = f.alias or n
116
117
  val = serialized.get(k)
117
- serialized.pop(k, None)
118
-
119
- optional_nullable = k in optional_fields and k in nullable_fields
120
- is_set = (
121
- self.__pydantic_fields_set__.intersection({n})
122
- or k in null_default_fields
123
- ) # pylint: disable=no-member
124
-
125
- if val is not None and val != UNSET_SENTINEL:
126
- m[k] = val
127
- elif val != UNSET_SENTINEL and (
128
- not k in optional_fields or (optional_nullable and is_set)
129
- ):
130
- m[k] = val
118
+ is_nullable_and_explicitly_set = (
119
+ k in nullable_fields
120
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
121
+ )
122
+
123
+ if val != UNSET_SENTINEL:
124
+ if (
125
+ val is not None
126
+ or k not in optional_fields
127
+ or is_nullable_and_explicitly_set
128
+ ):
129
+ m[k] = val
131
130
 
132
131
  return m