gr4vy 1.10.12__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 +111 -112
  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.12.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.12.dist-info/RECORD +0 -451
  292. {gr4vy-1.10.12.dist-info → gr4vy-1.10.14.dist-info}/WHEEL +0 -0
@@ -22,30 +22,25 @@ class PaypalShippingOptions(BaseModel):
22
22
 
23
23
  @model_serializer(mode="wrap")
24
24
  def serialize_model(self, handler):
25
- optional_fields = ["options"]
26
- nullable_fields = ["options"]
27
- null_default_fields = []
28
-
25
+ optional_fields = set(["options"])
26
+ nullable_fields = set(["options"])
29
27
  serialized = handler(self)
30
-
31
28
  m = {}
32
29
 
33
30
  for n, f in type(self).model_fields.items():
34
31
  k = f.alias or n
35
32
  val = serialized.get(k)
36
- serialized.pop(k, None)
37
-
38
- optional_nullable = k in optional_fields and k in nullable_fields
39
- is_set = (
40
- self.__pydantic_fields_set__.intersection({n})
41
- or k in null_default_fields
42
- ) # pylint: disable=no-member
43
-
44
- if val is not None and val != UNSET_SENTINEL:
45
- m[k] = val
46
- elif val != UNSET_SENTINEL and (
47
- not k in optional_fields or (optional_nullable and is_set)
48
- ):
49
- m[k] = val
33
+ is_nullable_and_explicitly_set = (
34
+ k in nullable_fields
35
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
36
+ )
37
+
38
+ if val != UNSET_SENTINEL:
39
+ if (
40
+ val is not None
41
+ or k not in optional_fields
42
+ or is_nullable_and_explicitly_set
43
+ ):
44
+ m[k] = val
50
45
 
51
46
  return m
@@ -60,30 +60,25 @@ class PaypalShippingOptionsItem(BaseModel):
60
60
 
61
61
  @model_serializer(mode="wrap")
62
62
  def serialize_model(self, handler):
63
- optional_fields = ["type", "amount"]
64
- nullable_fields = ["type", "amount"]
65
- null_default_fields = []
66
-
63
+ optional_fields = set(["type", "amount"])
64
+ nullable_fields = set(["type", "amount"])
67
65
  serialized = handler(self)
68
-
69
66
  m = {}
70
67
 
71
68
  for n, f in type(self).model_fields.items():
72
69
  k = f.alias or n
73
70
  val = serialized.get(k)
74
- serialized.pop(k, None)
75
-
76
- optional_nullable = k in optional_fields and k in nullable_fields
77
- is_set = (
78
- self.__pydantic_fields_set__.intersection({n})
79
- or k in null_default_fields
80
- ) # pylint: disable=no-member
81
-
82
- if val is not None and val != UNSET_SENTINEL:
83
- m[k] = val
84
- elif val != UNSET_SENTINEL and (
85
- not k in optional_fields or (optional_nullable and is_set)
86
- ):
87
- m[k] = val
71
+ is_nullable_and_explicitly_set = (
72
+ k in nullable_fields
73
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
74
+ )
75
+
76
+ if val != UNSET_SENTINEL:
77
+ if (
78
+ val is not None
79
+ or k not in optional_fields
80
+ or is_nullable_and_explicitly_set
81
+ ):
82
+ m[k] = val
88
83
 
89
84
  return m
@@ -64,43 +64,42 @@ class PlaidPaymentMethodCreate(BaseModel):
64
64
 
65
65
  @model_serializer(mode="wrap")
66
66
  def serialize_model(self, handler):
67
- optional_fields = [
68
- "method",
69
- "account_id",
70
- "payment_service_id",
71
- "buyer_id",
72
- "buyer_external_identifier",
73
- "external_identifier",
74
- ]
75
- nullable_fields = [
76
- "account_id",
77
- "payment_service_id",
78
- "buyer_id",
79
- "buyer_external_identifier",
80
- "external_identifier",
81
- ]
82
- null_default_fields = []
83
-
67
+ optional_fields = set(
68
+ [
69
+ "method",
70
+ "account_id",
71
+ "payment_service_id",
72
+ "buyer_id",
73
+ "buyer_external_identifier",
74
+ "external_identifier",
75
+ ]
76
+ )
77
+ nullable_fields = set(
78
+ [
79
+ "account_id",
80
+ "payment_service_id",
81
+ "buyer_id",
82
+ "buyer_external_identifier",
83
+ "external_identifier",
84
+ ]
85
+ )
84
86
  serialized = handler(self)
85
-
86
87
  m = {}
87
88
 
88
89
  for n, f in type(self).model_fields.items():
89
90
  k = f.alias or n
90
91
  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
92
+ is_nullable_and_explicitly_set = (
93
+ k in nullable_fields
94
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
95
+ )
96
+
97
+ if val != UNSET_SENTINEL:
98
+ if (
99
+ val is not None
100
+ or k not in optional_fields
101
+ or is_nullable_and_explicitly_set
102
+ ):
103
+ m[k] = val
105
104
 
106
105
  return m
@@ -20,30 +20,25 @@ class PowertranzOptions(BaseModel):
20
20
 
21
21
  @model_serializer(mode="wrap")
22
22
  def serialize_model(self, handler):
23
- optional_fields = ["skipThreeDSecure"]
24
- nullable_fields = ["skipThreeDSecure"]
25
- null_default_fields = []
26
-
23
+ optional_fields = set(["skipThreeDSecure"])
24
+ nullable_fields = set(["skipThreeDSecure"])
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
gr4vy/models/recipient.py CHANGED
@@ -43,30 +43,25 @@ class Recipient(BaseModel):
43
43
 
44
44
  @model_serializer(mode="wrap")
45
45
  def serialize_model(self, handler):
46
- optional_fields = ["address", "account_number", "date_of_birth"]
47
- nullable_fields = ["address", "account_number", "date_of_birth"]
48
- null_default_fields = []
49
-
46
+ optional_fields = set(["address", "account_number", "date_of_birth"])
47
+ nullable_fields = set(["address", "account_number", "date_of_birth"])
50
48
  serialized = handler(self)
51
-
52
49
  m = {}
53
50
 
54
51
  for n, f in type(self).model_fields.items():
55
52
  k = f.alias or n
56
53
  val = serialized.get(k)
57
- serialized.pop(k, None)
58
-
59
- optional_nullable = k in optional_fields and k in nullable_fields
60
- is_set = (
61
- self.__pydantic_fields_set__.intersection({n})
62
- or k in null_default_fields
63
- ) # pylint: disable=no-member
64
-
65
- if val is not None and val != UNSET_SENTINEL:
66
- m[k] = val
67
- elif val != UNSET_SENTINEL and (
68
- not k in optional_fields or (optional_nullable and is_set)
69
- ):
70
- m[k] = val
54
+ is_nullable_and_explicitly_set = (
55
+ k in nullable_fields
56
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
57
+ )
58
+
59
+ if val != UNSET_SENTINEL:
60
+ if (
61
+ val is not None
62
+ or k not in optional_fields
63
+ or is_nullable_and_explicitly_set
64
+ ):
65
+ m[k] = val
71
66
 
72
67
  return m
@@ -165,38 +165,29 @@ class RedirectPaymentMethodCreate(BaseModel):
165
165
 
166
166
  @model_serializer(mode="wrap")
167
167
  def serialize_model(self, handler):
168
- optional_fields = [
169
- "buyer_id",
170
- "buyer_external_identifier",
171
- "external_identifier",
172
- ]
173
- nullable_fields = [
174
- "buyer_id",
175
- "buyer_external_identifier",
176
- "external_identifier",
177
- ]
178
- null_default_fields = []
179
-
168
+ optional_fields = set(
169
+ ["buyer_id", "buyer_external_identifier", "external_identifier"]
170
+ )
171
+ nullable_fields = set(
172
+ ["buyer_id", "buyer_external_identifier", "external_identifier"]
173
+ )
180
174
  serialized = handler(self)
181
-
182
175
  m = {}
183
176
 
184
177
  for n, f in type(self).model_fields.items():
185
178
  k = f.alias or n
186
179
  val = serialized.get(k)
187
- serialized.pop(k, None)
188
-
189
- optional_nullable = k in optional_fields and k in nullable_fields
190
- is_set = (
191
- self.__pydantic_fields_set__.intersection({n})
192
- or k in null_default_fields
193
- ) # pylint: disable=no-member
194
-
195
- if val is not None and val != UNSET_SENTINEL:
196
- m[k] = val
197
- elif val != UNSET_SENTINEL and (
198
- not k in optional_fields or (optional_nullable and is_set)
199
- ):
200
- m[k] = val
180
+ is_nullable_and_explicitly_set = (
181
+ k in nullable_fields
182
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
183
+ )
184
+
185
+ if val != UNSET_SENTINEL:
186
+ if (
187
+ val is not None
188
+ or k not in optional_fields
189
+ or is_nullable_and_explicitly_set
190
+ ):
191
+ m[k] = val
201
192
 
202
193
  return m
gr4vy/models/refund.py CHANGED
@@ -121,51 +121,50 @@ class Refund(BaseModel):
121
121
 
122
122
  @model_serializer(mode="wrap")
123
123
  def serialize_model(self, handler):
124
- optional_fields = [
125
- "type",
126
- "payment_service_refund_id",
127
- "reason",
128
- "target_id",
129
- "external_identifier",
130
- "transaction_external_identifier",
131
- "creator",
132
- "error_code",
133
- "raw_response_code",
134
- "raw_response_description",
135
- ]
136
- nullable_fields = [
137
- "payment_service_refund_id",
138
- "reason",
139
- "target_id",
140
- "external_identifier",
141
- "transaction_external_identifier",
142
- "creator",
143
- "error_code",
144
- "raw_response_code",
145
- "raw_response_description",
146
- ]
147
- null_default_fields = []
148
-
124
+ optional_fields = set(
125
+ [
126
+ "type",
127
+ "payment_service_refund_id",
128
+ "reason",
129
+ "target_id",
130
+ "external_identifier",
131
+ "transaction_external_identifier",
132
+ "creator",
133
+ "error_code",
134
+ "raw_response_code",
135
+ "raw_response_description",
136
+ ]
137
+ )
138
+ nullable_fields = set(
139
+ [
140
+ "payment_service_refund_id",
141
+ "reason",
142
+ "target_id",
143
+ "external_identifier",
144
+ "transaction_external_identifier",
145
+ "creator",
146
+ "error_code",
147
+ "raw_response_code",
148
+ "raw_response_description",
149
+ ]
150
+ )
149
151
  serialized = handler(self)
150
-
151
152
  m = {}
152
153
 
153
154
  for n, f in type(self).model_fields.items():
154
155
  k = f.alias or n
155
156
  val = serialized.get(k)
156
- serialized.pop(k, None)
157
-
158
- optional_nullable = k in optional_fields and k in nullable_fields
159
- is_set = (
160
- self.__pydantic_fields_set__.intersection({n})
161
- or k in null_default_fields
162
- ) # pylint: disable=no-member
163
-
164
- if val is not None and val != UNSET_SENTINEL:
165
- m[k] = val
166
- elif val != UNSET_SENTINEL and (
167
- not k in optional_fields or (optional_nullable and is_set)
168
- ):
169
- m[k] = val
157
+ is_nullable_and_explicitly_set = (
158
+ k in nullable_fields
159
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
160
+ )
161
+
162
+ if val != UNSET_SENTINEL:
163
+ if (
164
+ val is not None
165
+ or k not in optional_fields
166
+ or is_nullable_and_explicitly_set
167
+ ):
168
+ m[k] = val
170
169
 
171
170
  return m
gr4vy/models/refunds.py CHANGED
@@ -34,30 +34,25 @@ class Refunds(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,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .digitalwalletdomain import DigitalWalletDomain, DigitalWalletDomainTypedDict
5
- from gr4vy.types import BaseModel
5
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
6
6
  from gr4vy.utils import (
7
7
  FieldMetadata,
8
8
  HeaderMetadata,
@@ -10,6 +10,7 @@ from gr4vy.utils import (
10
10
  RequestMetadata,
11
11
  )
12
12
  import pydantic
13
+ from pydantic import model_serializer
13
14
  from typing import Optional
14
15
  from typing_extensions import Annotated, NotRequired, TypedDict
15
16
 
@@ -27,6 +28,22 @@ class RegisterDigitalWalletDomainGlobals(BaseModel):
27
28
  ] = None
28
29
  r"""The ID of the merchant account to use for this request."""
29
30
 
31
+ @model_serializer(mode="wrap")
32
+ def serialize_model(self, handler):
33
+ optional_fields = set(["merchant_account_id"])
34
+ serialized = handler(self)
35
+ m = {}
36
+
37
+ for n, f in type(self).model_fields.items():
38
+ k = f.alias or n
39
+ val = serialized.get(k)
40
+
41
+ if val != UNSET_SENTINEL:
42
+ if val is not None or k not in optional_fields:
43
+ m[k] = val
44
+
45
+ return m
46
+
30
47
 
31
48
  class RegisterDigitalWalletDomainRequestTypedDict(TypedDict):
32
49
  digital_wallet_id: str
@@ -53,3 +70,19 @@ class RegisterDigitalWalletDomainRequest(BaseModel):
53
70
  FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
54
71
  ] = None
55
72
  r"""The ID of the merchant account to use for this request."""
73
+
74
+ @model_serializer(mode="wrap")
75
+ def serialize_model(self, handler):
76
+ optional_fields = set(["merchant_account_id"])
77
+ serialized = handler(self)
78
+ m = {}
79
+
80
+ for n, f in type(self).model_fields.items():
81
+ k = f.alias or n
82
+ val = serialized.get(k)
83
+
84
+ if val != UNSET_SENTINEL:
85
+ if val is not None or k not in optional_fields:
86
+ m[k] = val
87
+
88
+ return m
gr4vy/models/report.py CHANGED
@@ -105,45 +105,44 @@ class Report(BaseModel):
105
105
 
106
106
  @model_serializer(mode="wrap")
107
107
  def serialize_model(self, handler):
108
- optional_fields = [
109
- "type",
110
- "creator_id",
111
- "creator_display_name",
112
- "creator_type",
113
- "next_execution_at",
114
- "description",
115
- "latest_execution",
116
- ]
117
- nullable_fields = [
118
- "creator_id",
119
- "creator_display_name",
120
- "creator_type",
121
- "next_execution_at",
122
- "description",
123
- "latest_execution",
124
- ]
125
- null_default_fields = []
126
-
108
+ optional_fields = set(
109
+ [
110
+ "type",
111
+ "creator_id",
112
+ "creator_display_name",
113
+ "creator_type",
114
+ "next_execution_at",
115
+ "description",
116
+ "latest_execution",
117
+ ]
118
+ )
119
+ nullable_fields = set(
120
+ [
121
+ "creator_id",
122
+ "creator_display_name",
123
+ "creator_type",
124
+ "next_execution_at",
125
+ "description",
126
+ "latest_execution",
127
+ ]
128
+ )
127
129
  serialized = handler(self)
128
-
129
130
  m = {}
130
131
 
131
132
  for n, f in type(self).model_fields.items():
132
133
  k = f.alias or n
133
134
  val = serialized.get(k)
134
- serialized.pop(k, None)
135
-
136
- optional_nullable = k in optional_fields and k in nullable_fields
137
- is_set = (
138
- self.__pydantic_fields_set__.intersection({n})
139
- or k in null_default_fields
140
- ) # pylint: disable=no-member
141
-
142
- if val is not None and val != UNSET_SENTINEL:
143
- m[k] = val
144
- elif val != UNSET_SENTINEL and (
145
- not k in optional_fields or (optional_nullable and is_set)
146
- ):
147
- m[k] = val
135
+ is_nullable_and_explicitly_set = (
136
+ k in nullable_fields
137
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
138
+ )
139
+
140
+ if val != UNSET_SENTINEL:
141
+ if (
142
+ val is not None
143
+ or k not in optional_fields
144
+ or is_nullable_and_explicitly_set
145
+ ):
146
+ m[k] = val
148
147
 
149
148
  return m
@@ -83,30 +83,25 @@ class ReportCreate(BaseModel):
83
83
 
84
84
  @model_serializer(mode="wrap")
85
85
  def serialize_model(self, handler):
86
- optional_fields = ["description", "schedule_timezone"]
87
- nullable_fields = ["description"]
88
- null_default_fields = []
89
-
86
+ optional_fields = set(["description", "schedule_timezone"])
87
+ nullable_fields = set(["description"])
90
88
  serialized = handler(self)
91
-
92
89
  m = {}
93
90
 
94
91
  for n, f in type(self).model_fields.items():
95
92
  k = f.alias or n
96
93
  val = serialized.get(k)
97
- serialized.pop(k, None)
98
-
99
- optional_nullable = k in optional_fields and k in nullable_fields
100
- is_set = (
101
- self.__pydantic_fields_set__.intersection({n})
102
- or k in null_default_fields
103
- ) # pylint: disable=no-member
104
-
105
- if val is not None and val != UNSET_SENTINEL:
106
- m[k] = val
107
- elif val != UNSET_SENTINEL and (
108
- not k in optional_fields or (optional_nullable and is_set)
109
- ):
110
- m[k] = val
94
+ is_nullable_and_explicitly_set = (
95
+ k in nullable_fields
96
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
97
+ )
98
+
99
+ if val != UNSET_SENTINEL:
100
+ if (
101
+ val is not None
102
+ or k not in optional_fields
103
+ or is_nullable_and_explicitly_set
104
+ ):
105
+ m[k] = val
111
106
 
112
107
  return m