gr4vy 1.10.12__py3-none-any.whl → 1.10.15__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 (293) 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/method.py +1 -0
  163. gr4vy/models/mockcardmerchantadvicecodeoptions.py +14 -19
  164. gr4vy/models/mockcardoptions.py +14 -19
  165. gr4vy/models/networktoken.py +18 -1
  166. gr4vy/models/networktokencreate.py +14 -19
  167. gr4vy/models/networktokenpaymentmethodcreate.py +34 -35
  168. gr4vy/models/nuveiairlinedataoptions.py +14 -19
  169. gr4vy/models/nuveiidealoptions.py +14 -19
  170. gr4vy/models/nuveioptions.py +14 -19
  171. gr4vy/models/nuveipseoptions.py +13 -18
  172. gr4vy/models/oxxooptions.py +14 -19
  173. gr4vy/models/paymentlink.py +59 -60
  174. gr4vy/models/paymentlinkcreate.py +59 -60
  175. gr4vy/models/paymentlinks.py +14 -19
  176. gr4vy/models/paymentmethod.py +51 -52
  177. gr4vy/models/paymentmethodcard.py +14 -19
  178. gr4vy/models/paymentmethoddetailscard.py +14 -19
  179. gr4vy/models/paymentmethods.py +14 -19
  180. gr4vy/models/paymentmethodstoredcard.py +18 -1
  181. gr4vy/models/paymentmethodsummary.py +47 -48
  182. gr4vy/models/paymentoption.py +14 -19
  183. gr4vy/models/paymentoptioncontext.py +14 -19
  184. gr4vy/models/paymentoptioncontextapprovalui.py +14 -19
  185. gr4vy/models/paymentoptionrequest.py +18 -26
  186. gr4vy/models/paymentservice.py +35 -36
  187. gr4vy/models/paymentservicecreate.py +36 -37
  188. gr4vy/models/paymentservicedefinition.py +14 -19
  189. gr4vy/models/paymentservicedefinitions.py +14 -19
  190. gr4vy/models/paymentservices.py +14 -19
  191. gr4vy/models/paymentservicetoken.py +14 -19
  192. gr4vy/models/paymentservicetokencreate.py +14 -19
  193. gr4vy/models/paymentserviceupdate.py +45 -46
  194. gr4vy/models/payoutconnectionoptions.py +14 -19
  195. gr4vy/models/payoutcreate.py +34 -35
  196. gr4vy/models/payoutmerchant.py +14 -19
  197. gr4vy/models/payoutmerchantsummary.py +14 -19
  198. gr4vy/models/payoutpaymentservice.py +14 -19
  199. gr4vy/models/payoutsummaries.py +14 -19
  200. gr4vy/models/payoutsummary.py +35 -36
  201. gr4vy/models/paypaloptions.py +14 -19
  202. gr4vy/models/paypalshippingoptions.py +14 -19
  203. gr4vy/models/paypalshippingoptionsitem.py +14 -19
  204. gr4vy/models/plaidpaymentmethodcreate.py +31 -32
  205. gr4vy/models/powertranzoptions.py +14 -19
  206. gr4vy/models/recipient.py +14 -19
  207. gr4vy/models/redirectpaymentmethodcreate.py +19 -27
  208. gr4vy/models/refund.py +39 -40
  209. gr4vy/models/refunds.py +14 -19
  210. gr4vy/models/register_digital_wallet_domainop.py +34 -1
  211. gr4vy/models/report.py +33 -34
  212. gr4vy/models/reportcreate.py +14 -19
  213. gr4vy/models/reportexecution.py +18 -1
  214. gr4vy/models/reportexecutions.py +14 -19
  215. gr4vy/models/reportexecutionsummary.py +18 -1
  216. gr4vy/models/reportexecutionurlgenerate.py +18 -1
  217. gr4vy/models/reports.py +14 -19
  218. gr4vy/models/reportsummary.py +16 -19
  219. gr4vy/models/reportupdate.py +14 -19
  220. gr4vy/models/requiredcheckoutfields.py +14 -19
  221. gr4vy/models/resume_payment_method_network_tokenop.py +34 -1
  222. gr4vy/models/security.py +18 -1
  223. gr4vy/models/settlement.py +16 -25
  224. gr4vy/models/shippingdetails.py +35 -36
  225. gr4vy/models/shippingdetailscreate.py +18 -31
  226. gr4vy/models/shippingdetailsupdate.py +18 -31
  227. gr4vy/models/statementdescriptor.py +34 -35
  228. gr4vy/models/stripeconnectoptions.py +30 -31
  229. gr4vy/models/stripeoptions.py +14 -19
  230. gr4vy/models/suspend_payment_method_network_tokenop.py +34 -1
  231. gr4vy/models/sync_transactionop.py +34 -1
  232. gr4vy/models/threedsecure.py +14 -19
  233. gr4vy/models/threedsecuredatav1.py +14 -19
  234. gr4vy/models/threedsecuredatav2.py +14 -19
  235. gr4vy/models/threedsecureerror.py +14 -19
  236. gr4vy/models/threedsecurescenario.py +77 -0
  237. gr4vy/models/threedsecurescenarioconditions.py +84 -0
  238. gr4vy/models/threedsecurescenariocreate.py +24 -0
  239. gr4vy/models/threedsecurescenariooutcome.py +57 -0
  240. gr4vy/models/threedsecurescenariooutcomeauthentication.py +31 -0
  241. gr4vy/models/threedsecurescenariooutcomeresult.py +27 -0
  242. gr4vy/models/threedsecurescenarios.py +58 -0
  243. gr4vy/models/threedsecurescenarioupdate.py +54 -0
  244. gr4vy/models/threedsecurev2.py +34 -35
  245. gr4vy/models/tokenpaymentmethodcreate.py +14 -19
  246. gr4vy/models/transaction.py +111 -112
  247. gr4vy/models/transactionaction.py +18 -1
  248. gr4vy/models/transactionbuyer.py +31 -32
  249. gr4vy/models/transactioncancel.py +14 -19
  250. gr4vy/models/transactioncapture.py +14 -19
  251. gr4vy/models/transactioncapturecreate.py +14 -19
  252. gr4vy/models/transactionconnectionoptions.py +104 -105
  253. gr4vy/models/transactioncreate.py +88 -89
  254. gr4vy/models/transactionevent.py +18 -1
  255. gr4vy/models/transactionevents.py +14 -19
  256. gr4vy/models/transactiongiftcard.py +14 -19
  257. gr4vy/models/transactionpaymentmethod.py +49 -50
  258. gr4vy/models/transactionpaymentservice.py +18 -1
  259. gr4vy/models/transactionrefundallcreate.py +14 -19
  260. gr4vy/models/transactionrefundcreate.py +16 -25
  261. gr4vy/models/transactionretriesreportspec.py +18 -1
  262. gr4vy/models/transactionsreportspec.py +18 -1
  263. gr4vy/models/transactionsummaries.py +14 -19
  264. gr4vy/models/transactionsummary.py +50 -51
  265. gr4vy/models/transactionthreedsecuresummary.py +18 -33
  266. gr4vy/models/transactionupdate.py +14 -19
  267. gr4vy/models/transactionvoid.py +14 -19
  268. gr4vy/models/travelhubcustomdata.py +14 -19
  269. gr4vy/models/travelhuboptions.py +14 -19
  270. gr4vy/models/trustlyoptions.py +14 -19
  271. gr4vy/models/unregister_digital_wallet_domainop.py +34 -1
  272. gr4vy/models/update_buyer_shipping_detailsop.py +34 -1
  273. gr4vy/models/update_buyerop.py +34 -1
  274. gr4vy/models/update_checkout_sessionop.py +34 -1
  275. gr4vy/models/update_digital_walletop.py +34 -1
  276. gr4vy/models/update_payment_serviceop.py +34 -1
  277. gr4vy/models/update_reportop.py +34 -1
  278. gr4vy/models/update_three_ds_scenarioop.py +91 -0
  279. gr4vy/models/update_transactionop.py +34 -1
  280. gr4vy/models/verify_payment_service_credentialsop.py +34 -1
  281. gr4vy/models/verifycredentials.py +14 -19
  282. gr4vy/models/void_transactionop.py +30 -19
  283. gr4vy/models/wpayeverdaypayoptions.py +30 -31
  284. gr4vy/models/wpaypaytooptions.py +14 -19
  285. gr4vy/models/wpaypaytoresourceoptions.py +14 -19
  286. gr4vy/models/wpaypaytosimulationoptions.py +14 -19
  287. gr4vy/sdk.py +3 -0
  288. gr4vy/three_ds_scenarios.py +1322 -0
  289. gr4vy/utils/__init__.py +13 -1
  290. {gr4vy-1.10.12.dist-info → gr4vy-1.10.15.dist-info}/METADATA +8 -1
  291. gr4vy-1.10.15.dist-info/RECORD +464 -0
  292. gr4vy-1.10.12.dist-info/RECORD +0 -451
  293. {gr4vy-1.10.12.dist-info → gr4vy-1.10.15.dist-info}/WHEEL +0 -0
@@ -2,9 +2,10 @@
2
2
 
3
3
  from __future__ import annotations
4
4
  from .reportcreate import ReportCreate, ReportCreateTypedDict
5
- from gr4vy.types import BaseModel
5
+ from gr4vy.types import BaseModel, UNSET_SENTINEL
6
6
  from gr4vy.utils import FieldMetadata, HeaderMetadata, RequestMetadata
7
7
  import pydantic
8
+ from pydantic import model_serializer
8
9
  from typing import Optional
9
10
  from typing_extensions import Annotated, NotRequired, TypedDict
10
11
 
@@ -22,6 +23,22 @@ class AddReportGlobals(BaseModel):
22
23
  ] = None
23
24
  r"""The ID of the merchant account to use for this request."""
24
25
 
26
+ @model_serializer(mode="wrap")
27
+ def serialize_model(self, handler):
28
+ optional_fields = set(["merchant_account_id"])
29
+ serialized = handler(self)
30
+ m = {}
31
+
32
+ for n, f in type(self).model_fields.items():
33
+ k = f.alias or n
34
+ val = serialized.get(k)
35
+
36
+ if val != UNSET_SENTINEL:
37
+ if val is not None or k not in optional_fields:
38
+ m[k] = val
39
+
40
+ return m
41
+
25
42
 
26
43
  class AddReportRequestTypedDict(TypedDict):
27
44
  report_create: ReportCreateTypedDict
@@ -41,3 +58,19 @@ class AddReportRequest(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/address.py CHANGED
@@ -57,50 +57,49 @@ class Address(BaseModel):
57
57
 
58
58
  @model_serializer(mode="wrap")
59
59
  def serialize_model(self, handler):
60
- optional_fields = [
61
- "city",
62
- "country",
63
- "postal_code",
64
- "state",
65
- "state_code",
66
- "house_number_or_name",
67
- "line1",
68
- "line2",
69
- "organization",
70
- ]
71
- nullable_fields = [
72
- "city",
73
- "country",
74
- "postal_code",
75
- "state",
76
- "state_code",
77
- "house_number_or_name",
78
- "line1",
79
- "line2",
80
- "organization",
81
- ]
82
- null_default_fields = []
83
-
60
+ optional_fields = set(
61
+ [
62
+ "city",
63
+ "country",
64
+ "postal_code",
65
+ "state",
66
+ "state_code",
67
+ "house_number_or_name",
68
+ "line1",
69
+ "line2",
70
+ "organization",
71
+ ]
72
+ )
73
+ nullable_fields = set(
74
+ [
75
+ "city",
76
+ "country",
77
+ "postal_code",
78
+ "state",
79
+ "state_code",
80
+ "house_number_or_name",
81
+ "line1",
82
+ "line2",
83
+ "organization",
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
@@ -55,44 +55,43 @@ class AdyenCardOptions(BaseModel):
55
55
 
56
56
  @model_serializer(mode="wrap")
57
57
  def serialize_model(self, handler):
58
- optional_fields = [
59
- "autoRescue",
60
- "maxDaysToRescue",
61
- "additionalData",
62
- "autoRescueScenario",
63
- "window_origin",
64
- "splits",
65
- ]
66
- nullable_fields = [
67
- "autoRescue",
68
- "maxDaysToRescue",
69
- "additionalData",
70
- "autoRescueScenario",
71
- "window_origin",
72
- "splits",
73
- ]
74
- null_default_fields = []
75
-
58
+ optional_fields = set(
59
+ [
60
+ "autoRescue",
61
+ "maxDaysToRescue",
62
+ "additionalData",
63
+ "autoRescueScenario",
64
+ "window_origin",
65
+ "splits",
66
+ ]
67
+ )
68
+ nullable_fields = set(
69
+ [
70
+ "autoRescue",
71
+ "maxDaysToRescue",
72
+ "additionalData",
73
+ "autoRescueScenario",
74
+ "window_origin",
75
+ "splits",
76
+ ]
77
+ )
76
78
  serialized = handler(self)
77
-
78
79
  m = {}
79
80
 
80
81
  for n, f in type(self).model_fields.items():
81
82
  k = f.alias or n
82
83
  val = serialized.get(k)
83
- serialized.pop(k, None)
84
-
85
- optional_nullable = k in optional_fields and k in nullable_fields
86
- is_set = (
87
- self.__pydantic_fields_set__.intersection({n})
88
- or k in null_default_fields
89
- ) # pylint: disable=no-member
90
-
91
- if val is not None and val != UNSET_SENTINEL:
92
- m[k] = val
93
- elif val != UNSET_SENTINEL and (
94
- not k in optional_fields or (optional_nullable and is_set)
95
- ):
96
- m[k] = val
84
+ is_nullable_and_explicitly_set = (
85
+ k in nullable_fields
86
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
87
+ )
88
+
89
+ if val != UNSET_SENTINEL:
90
+ if (
91
+ val is not None
92
+ or k not in optional_fields
93
+ or is_nullable_and_explicitly_set
94
+ ):
95
+ m[k] = val
97
96
 
98
97
  return m
@@ -21,30 +21,25 @@ class AdyenOptions(BaseModel):
21
21
 
22
22
  @model_serializer(mode="wrap")
23
23
  def serialize_model(self, handler):
24
- optional_fields = ["additionalData"]
25
- nullable_fields = ["additionalData"]
26
- null_default_fields = []
27
-
24
+ optional_fields = set(["additionalData"])
25
+ nullable_fields = set(["additionalData"])
28
26
  serialized = handler(self)
29
-
30
27
  m = {}
31
28
 
32
29
  for n, f in type(self).model_fields.items():
33
30
  k = f.alias or n
34
31
  val = serialized.get(k)
35
- serialized.pop(k, None)
36
-
37
- optional_nullable = k in optional_fields and k in nullable_fields
38
- is_set = (
39
- self.__pydantic_fields_set__.intersection({n})
40
- or k in null_default_fields
41
- ) # pylint: disable=no-member
42
-
43
- if val is not None and val != UNSET_SENTINEL:
44
- m[k] = val
45
- elif val != UNSET_SENTINEL and (
46
- not k in optional_fields or (optional_nullable and is_set)
47
- ):
48
- m[k] = val
32
+ is_nullable_and_explicitly_set = (
33
+ k in nullable_fields
34
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
35
+ )
36
+
37
+ if val != UNSET_SENTINEL:
38
+ if (
39
+ val is not None
40
+ or k not in optional_fields
41
+ or is_nullable_and_explicitly_set
42
+ ):
43
+ m[k] = val
49
44
 
50
45
  return m
@@ -51,42 +51,41 @@ class AdyenSepaOptions(BaseModel):
51
51
 
52
52
  @model_serializer(mode="wrap")
53
53
  def serialize_model(self, handler):
54
- optional_fields = [
55
- "autoRescue",
56
- "maxDaysToRescue",
57
- "additionalData",
58
- "autoRescueSepaScenario",
59
- "ownerName",
60
- ]
61
- nullable_fields = [
62
- "autoRescue",
63
- "maxDaysToRescue",
64
- "additionalData",
65
- "autoRescueSepaScenario",
66
- "ownerName",
67
- ]
68
- null_default_fields = []
69
-
54
+ optional_fields = set(
55
+ [
56
+ "autoRescue",
57
+ "maxDaysToRescue",
58
+ "additionalData",
59
+ "autoRescueSepaScenario",
60
+ "ownerName",
61
+ ]
62
+ )
63
+ nullable_fields = set(
64
+ [
65
+ "autoRescue",
66
+ "maxDaysToRescue",
67
+ "additionalData",
68
+ "autoRescueSepaScenario",
69
+ "ownerName",
70
+ ]
71
+ )
70
72
  serialized = handler(self)
71
-
72
73
  m = {}
73
74
 
74
75
  for n, f in type(self).model_fields.items():
75
76
  k = f.alias or n
76
77
  val = serialized.get(k)
77
- serialized.pop(k, None)
78
-
79
- optional_nullable = k in optional_fields and k in nullable_fields
80
- is_set = (
81
- self.__pydantic_fields_set__.intersection({n})
82
- or k in null_default_fields
83
- ) # pylint: disable=no-member
84
-
85
- if val is not None and val != UNSET_SENTINEL:
86
- m[k] = val
87
- elif val != UNSET_SENTINEL and (
88
- not k in optional_fields or (optional_nullable and is_set)
89
- ):
90
- m[k] = val
78
+ is_nullable_and_explicitly_set = (
79
+ k in nullable_fields
80
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
81
+ )
82
+
83
+ if val != UNSET_SENTINEL:
84
+ if (
85
+ val is not None
86
+ or k not in optional_fields
87
+ or is_nullable_and_explicitly_set
88
+ ):
89
+ m[k] = val
91
90
 
92
91
  return m
@@ -28,30 +28,25 @@ class AdyenSplitsOptions(BaseModel):
28
28
 
29
29
  @model_serializer(mode="wrap")
30
30
  def serialize_model(self, handler):
31
- optional_fields = ["authorization", "capture", "refund"]
32
- nullable_fields = ["authorization", "capture", "refund"]
33
- null_default_fields = []
34
-
31
+ optional_fields = set(["authorization", "capture", "refund"])
32
+ nullable_fields = set(["authorization", "capture", "refund"])
35
33
  serialized = handler(self)
36
-
37
34
  m = {}
38
35
 
39
36
  for n, f in type(self).model_fields.items():
40
37
  k = f.alias or n
41
38
  val = serialized.get(k)
42
- serialized.pop(k, None)
43
-
44
- optional_nullable = k in optional_fields and k in nullable_fields
45
- is_set = (
46
- self.__pydantic_fields_set__.intersection({n})
47
- or k in null_default_fields
48
- ) # pylint: disable=no-member
49
-
50
- if val is not None and val != UNSET_SENTINEL:
51
- m[k] = val
52
- elif val != UNSET_SENTINEL and (
53
- not k in optional_fields or (optional_nullable and is_set)
54
- ):
55
- m[k] = val
39
+ is_nullable_and_explicitly_set = (
40
+ k in nullable_fields
41
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
42
+ )
43
+
44
+ if val != UNSET_SENTINEL:
45
+ if (
46
+ val is not None
47
+ or k not in optional_fields
48
+ or is_nullable_and_explicitly_set
49
+ ):
50
+ m[k] = val
56
51
 
57
52
  return m
@@ -47,46 +47,45 @@ class AffirmItineraryOptions(BaseModel):
47
47
 
48
48
  @model_serializer(mode="wrap")
49
49
  def serialize_model(self, handler):
50
- optional_fields = [
51
- "type",
52
- "sku",
53
- "display_name",
54
- "venue",
55
- "location",
56
- "date_start",
57
- "management",
58
- ]
59
- nullable_fields = [
60
- "type",
61
- "sku",
62
- "display_name",
63
- "venue",
64
- "location",
65
- "date_start",
66
- "management",
67
- ]
68
- null_default_fields = []
69
-
50
+ optional_fields = set(
51
+ [
52
+ "type",
53
+ "sku",
54
+ "display_name",
55
+ "venue",
56
+ "location",
57
+ "date_start",
58
+ "management",
59
+ ]
60
+ )
61
+ nullable_fields = set(
62
+ [
63
+ "type",
64
+ "sku",
65
+ "display_name",
66
+ "venue",
67
+ "location",
68
+ "date_start",
69
+ "management",
70
+ ]
71
+ )
70
72
  serialized = handler(self)
71
-
72
73
  m = {}
73
74
 
74
75
  for n, f in type(self).model_fields.items():
75
76
  k = f.alias or n
76
77
  val = serialized.get(k)
77
- serialized.pop(k, None)
78
-
79
- optional_nullable = k in optional_fields and k in nullable_fields
80
- is_set = (
81
- self.__pydantic_fields_set__.intersection({n})
82
- or k in null_default_fields
83
- ) # pylint: disable=no-member
84
-
85
- if val is not None and val != UNSET_SENTINEL:
86
- m[k] = val
87
- elif val != UNSET_SENTINEL and (
88
- not k in optional_fields or (optional_nullable and is_set)
89
- ):
90
- m[k] = val
78
+ is_nullable_and_explicitly_set = (
79
+ k in nullable_fields
80
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
81
+ )
82
+
83
+ if val != UNSET_SENTINEL:
84
+ if (
85
+ val is not None
86
+ or k not in optional_fields
87
+ or is_nullable_and_explicitly_set
88
+ ):
89
+ m[k] = val
91
90
 
92
91
  return m
@@ -27,30 +27,25 @@ class AffirmOptions(BaseModel):
27
27
 
28
28
  @model_serializer(mode="wrap")
29
29
  def serialize_model(self, handler):
30
- optional_fields = ["discounts", "itinerary"]
31
- nullable_fields = ["discounts", "itinerary"]
32
- null_default_fields = []
33
-
30
+ optional_fields = set(["discounts", "itinerary"])
31
+ nullable_fields = set(["discounts", "itinerary"])
34
32
  serialized = handler(self)
35
-
36
33
  m = {}
37
34
 
38
35
  for n, f in type(self).model_fields.items():
39
36
  k = f.alias or n
40
37
  val = serialized.get(k)
41
- serialized.pop(k, None)
42
-
43
- optional_nullable = k in optional_fields and k in nullable_fields
44
- is_set = (
45
- self.__pydantic_fields_set__.intersection({n})
46
- or k in null_default_fields
47
- ) # pylint: disable=no-member
48
-
49
- if val is not None and val != UNSET_SENTINEL:
50
- m[k] = val
51
- elif val != UNSET_SENTINEL and (
52
- not k in optional_fields or (optional_nullable and is_set)
53
- ):
54
- m[k] = val
38
+ is_nullable_and_explicitly_set = (
39
+ k in nullable_fields
40
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
41
+ )
42
+
43
+ if val != UNSET_SENTINEL:
44
+ if (
45
+ val is not None
46
+ or k not in optional_fields
47
+ or is_nullable_and_explicitly_set
48
+ ):
49
+ m[k] = val
55
50
 
56
51
  return m
gr4vy/models/airline.py CHANGED
@@ -131,70 +131,69 @@ class Airline(BaseModel):
131
131
 
132
132
  @model_serializer(mode="wrap")
133
133
  def serialize_model(self, handler):
134
- optional_fields = [
135
- "booking_code",
136
- "is_cardholder_traveling",
137
- "issued_address",
138
- "issued_at",
139
- "issuing_carrier_code",
140
- "issuing_carrier_name",
141
- "issuing_iata_designator",
142
- "issuing_icao_code",
143
- "legs",
144
- "passenger_name_record",
145
- "passengers",
146
- "reservation_system",
147
- "restricted_ticket",
148
- "ticket_delivery_method",
149
- "ticket_number",
150
- "travel_agency_code",
151
- "travel_agency_invoice_number",
152
- "travel_agency_name",
153
- "travel_agency_plan_name",
154
- ]
155
- nullable_fields = [
156
- "booking_code",
157
- "is_cardholder_traveling",
158
- "issued_address",
159
- "issued_at",
160
- "issuing_carrier_code",
161
- "issuing_carrier_name",
162
- "issuing_iata_designator",
163
- "issuing_icao_code",
164
- "legs",
165
- "passenger_name_record",
166
- "passengers",
167
- "reservation_system",
168
- "restricted_ticket",
169
- "ticket_delivery_method",
170
- "ticket_number",
171
- "travel_agency_code",
172
- "travel_agency_invoice_number",
173
- "travel_agency_name",
174
- "travel_agency_plan_name",
175
- ]
176
- null_default_fields = []
177
-
134
+ optional_fields = set(
135
+ [
136
+ "booking_code",
137
+ "is_cardholder_traveling",
138
+ "issued_address",
139
+ "issued_at",
140
+ "issuing_carrier_code",
141
+ "issuing_carrier_name",
142
+ "issuing_iata_designator",
143
+ "issuing_icao_code",
144
+ "legs",
145
+ "passenger_name_record",
146
+ "passengers",
147
+ "reservation_system",
148
+ "restricted_ticket",
149
+ "ticket_delivery_method",
150
+ "ticket_number",
151
+ "travel_agency_code",
152
+ "travel_agency_invoice_number",
153
+ "travel_agency_name",
154
+ "travel_agency_plan_name",
155
+ ]
156
+ )
157
+ nullable_fields = set(
158
+ [
159
+ "booking_code",
160
+ "is_cardholder_traveling",
161
+ "issued_address",
162
+ "issued_at",
163
+ "issuing_carrier_code",
164
+ "issuing_carrier_name",
165
+ "issuing_iata_designator",
166
+ "issuing_icao_code",
167
+ "legs",
168
+ "passenger_name_record",
169
+ "passengers",
170
+ "reservation_system",
171
+ "restricted_ticket",
172
+ "ticket_delivery_method",
173
+ "ticket_number",
174
+ "travel_agency_code",
175
+ "travel_agency_invoice_number",
176
+ "travel_agency_name",
177
+ "travel_agency_plan_name",
178
+ ]
179
+ )
178
180
  serialized = handler(self)
179
-
180
181
  m = {}
181
182
 
182
183
  for n, f in type(self).model_fields.items():
183
184
  k = f.alias or n
184
185
  val = serialized.get(k)
185
- serialized.pop(k, None)
186
-
187
- optional_nullable = k in optional_fields and k in nullable_fields
188
- is_set = (
189
- self.__pydantic_fields_set__.intersection({n})
190
- or k in null_default_fields
191
- ) # pylint: disable=no-member
192
-
193
- if val is not None and val != UNSET_SENTINEL:
194
- m[k] = val
195
- elif val != UNSET_SENTINEL and (
196
- not k in optional_fields or (optional_nullable and is_set)
197
- ):
198
- m[k] = val
186
+ is_nullable_and_explicitly_set = (
187
+ k in nullable_fields
188
+ and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
189
+ )
190
+
191
+ if val != UNSET_SENTINEL:
192
+ if (
193
+ val is not None
194
+ or k not in optional_fields
195
+ or is_nullable_and_explicitly_set
196
+ ):
197
+ m[k] = val
199
198
 
200
199
  return m