gr4vy 1.1.34__py3-none-any.whl → 1.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gr4vy/_version.py +3 -3
- gr4vy/account_updater.py +6 -3
- gr4vy/basesdk.py +11 -1
- gr4vy/buyers_sdk.py +13 -5
- gr4vy/digital_wallets_sdk.py +6 -4
- gr4vy/errors/__init__.py +15 -3
- gr4vy/gift_cards_sdk.py +5 -3
- gr4vy/models/__init__.py +17 -1
- gr4vy/models/braintreedynamicdatafieldsoptions.py +35 -4
- gr4vy/models/internal/__init__.py +14 -1
- gr4vy/models/transactionevent.py +1 -0
- gr4vy/payment_methods_network_tokens.py +7 -3
- gr4vy/payment_methods_sdk.py +8 -4
- gr4vy/reports_sdk.py +5 -3
- gr4vy/sdk.py +15 -2
- gr4vy/transactions.py +11 -5
- gr4vy/transactions_refunds.py +5 -3
- gr4vy/utils/__init__.py +15 -3
- gr4vy/utils/eventstreaming.py +10 -0
- {gr4vy-1.1.34.dist-info → gr4vy-1.2.0.dist-info}/METADATA +1 -1
- {gr4vy-1.1.34.dist-info → gr4vy-1.2.0.dist-info}/RECORD +22 -22
- {gr4vy-1.1.34.dist-info → gr4vy-1.2.0.dist-info}/WHEEL +0 -0
gr4vy/_version.py
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import importlib.metadata
|
|
4
4
|
|
|
5
5
|
__title__: str = "gr4vy"
|
|
6
|
-
__version__: str = "1.
|
|
6
|
+
__version__: str = "1.2.0"
|
|
7
7
|
__openapi_doc_version__: str = "1.0.0"
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 1.
|
|
8
|
+
__gen_version__: str = "2.687.13"
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 1.2.0 2.687.13 1.0.0 gr4vy"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
gr4vy/account_updater.py
CHANGED
|
@@ -3,15 +3,18 @@
|
|
|
3
3
|
from .basesdk import BaseSDK
|
|
4
4
|
from .sdkconfiguration import SDKConfiguration
|
|
5
5
|
from gr4vy.jobs import Jobs
|
|
6
|
+
from typing import Optional
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class AccountUpdater(BaseSDK):
|
|
9
10
|
jobs: Jobs
|
|
10
11
|
|
|
11
|
-
def __init__(
|
|
12
|
-
|
|
12
|
+
def __init__(
|
|
13
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
14
|
+
) -> None:
|
|
15
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
13
16
|
self.sdk_configuration = sdk_config
|
|
14
17
|
self._init_sdks()
|
|
15
18
|
|
|
16
19
|
def _init_sdks(self):
|
|
17
|
-
self.jobs = Jobs(self.sdk_configuration)
|
|
20
|
+
self.jobs = Jobs(self.sdk_configuration, parent_ref=self.parent_ref)
|
gr4vy/basesdk.py
CHANGED
|
@@ -11,9 +11,19 @@ from urllib.parse import parse_qs, urlparse
|
|
|
11
11
|
|
|
12
12
|
class BaseSDK:
|
|
13
13
|
sdk_configuration: SDKConfiguration
|
|
14
|
+
parent_ref: Optional[object] = None
|
|
15
|
+
"""
|
|
16
|
+
Reference to the root SDK instance, if any. This will prevent it from
|
|
17
|
+
being garbage collected while there are active streams.
|
|
18
|
+
"""
|
|
14
19
|
|
|
15
|
-
def __init__(
|
|
20
|
+
def __init__(
|
|
21
|
+
self,
|
|
22
|
+
sdk_config: SDKConfiguration,
|
|
23
|
+
parent_ref: Optional[object] = None,
|
|
24
|
+
) -> None:
|
|
16
25
|
self.sdk_configuration = sdk_config
|
|
26
|
+
self.parent_ref = parent_ref
|
|
17
27
|
|
|
18
28
|
def _get_url(self, base_url, url_variables):
|
|
19
29
|
sdk_url, sdk_variables = self.sdk_configuration.get_server_details()
|
gr4vy/buyers_sdk.py
CHANGED
|
@@ -19,15 +19,23 @@ class BuyersSDK(BaseSDK):
|
|
|
19
19
|
gift_cards: BuyersGiftCards
|
|
20
20
|
shipping_details: BuyersShippingDetails
|
|
21
21
|
|
|
22
|
-
def __init__(
|
|
23
|
-
|
|
22
|
+
def __init__(
|
|
23
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
24
|
+
) -> None:
|
|
25
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
24
26
|
self.sdk_configuration = sdk_config
|
|
25
27
|
self._init_sdks()
|
|
26
28
|
|
|
27
29
|
def _init_sdks(self):
|
|
28
|
-
self.payment_methods = BuyersPaymentMethods(
|
|
29
|
-
|
|
30
|
-
|
|
30
|
+
self.payment_methods = BuyersPaymentMethods(
|
|
31
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
32
|
+
)
|
|
33
|
+
self.gift_cards = BuyersGiftCards(
|
|
34
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
35
|
+
)
|
|
36
|
+
self.shipping_details = BuyersShippingDetails(
|
|
37
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
38
|
+
)
|
|
31
39
|
|
|
32
40
|
def list(
|
|
33
41
|
self,
|
gr4vy/digital_wallets_sdk.py
CHANGED
|
@@ -16,14 +16,16 @@ class DigitalWalletsSDK(BaseSDK):
|
|
|
16
16
|
sessions: Sessions
|
|
17
17
|
domains: Domains
|
|
18
18
|
|
|
19
|
-
def __init__(
|
|
20
|
-
|
|
19
|
+
def __init__(
|
|
20
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
21
|
+
) -> None:
|
|
22
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
21
23
|
self.sdk_configuration = sdk_config
|
|
22
24
|
self._init_sdks()
|
|
23
25
|
|
|
24
26
|
def _init_sdks(self):
|
|
25
|
-
self.sessions = Sessions(self.sdk_configuration)
|
|
26
|
-
self.domains = Domains(self.sdk_configuration)
|
|
27
|
+
self.sessions = Sessions(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
28
|
+
self.domains = Domains(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
27
29
|
|
|
28
30
|
def create(
|
|
29
31
|
self,
|
gr4vy/errors/__init__.py
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
|
+
from .gr4vyerror import Gr4vyError
|
|
3
4
|
from typing import TYPE_CHECKING
|
|
4
5
|
from importlib import import_module
|
|
5
6
|
import builtins
|
|
7
|
+
import sys
|
|
6
8
|
|
|
7
9
|
if TYPE_CHECKING:
|
|
8
10
|
from .apierror import APIError
|
|
@@ -17,7 +19,6 @@ if TYPE_CHECKING:
|
|
|
17
19
|
from .error500 import Error500, Error500Data
|
|
18
20
|
from .error502 import Error502, Error502Data
|
|
19
21
|
from .error504 import Error504, Error504Data
|
|
20
|
-
from .gr4vyerror import Gr4vyError
|
|
21
22
|
from .httpvalidationerror import HTTPValidationError, HTTPValidationErrorData
|
|
22
23
|
from .no_response_error import NoResponseError
|
|
23
24
|
from .responsevalidationerror import ResponseValidationError
|
|
@@ -77,7 +78,6 @@ _dynamic_imports: dict[str, str] = {
|
|
|
77
78
|
"Error502Data": ".error502",
|
|
78
79
|
"Error504": ".error504",
|
|
79
80
|
"Error504Data": ".error504",
|
|
80
|
-
"Gr4vyError": ".gr4vyerror",
|
|
81
81
|
"HTTPValidationError": ".httpvalidationerror",
|
|
82
82
|
"HTTPValidationErrorData": ".httpvalidationerror",
|
|
83
83
|
"NoResponseError": ".no_response_error",
|
|
@@ -85,6 +85,18 @@ _dynamic_imports: dict[str, str] = {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
|
|
88
|
+
def dynamic_import(modname, retries=3):
|
|
89
|
+
for attempt in range(retries):
|
|
90
|
+
try:
|
|
91
|
+
return import_module(modname, __package__)
|
|
92
|
+
except KeyError:
|
|
93
|
+
# Clear any half-initialized module and retry
|
|
94
|
+
sys.modules.pop(modname, None)
|
|
95
|
+
if attempt == retries - 1:
|
|
96
|
+
break
|
|
97
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
98
|
+
|
|
99
|
+
|
|
88
100
|
def __getattr__(attr_name: str) -> object:
|
|
89
101
|
module_name = _dynamic_imports.get(attr_name)
|
|
90
102
|
if module_name is None:
|
|
@@ -93,7 +105,7 @@ def __getattr__(attr_name: str) -> object:
|
|
|
93
105
|
)
|
|
94
106
|
|
|
95
107
|
try:
|
|
96
|
-
module =
|
|
108
|
+
module = dynamic_import(module_name)
|
|
97
109
|
result = getattr(module, attr_name)
|
|
98
110
|
return result
|
|
99
111
|
except ImportError as e:
|
gr4vy/gift_cards_sdk.py
CHANGED
|
@@ -15,13 +15,15 @@ from typing import Any, Dict, List, Mapping, Optional, Union
|
|
|
15
15
|
class GiftCardsSDK(BaseSDK):
|
|
16
16
|
balances: Balances
|
|
17
17
|
|
|
18
|
-
def __init__(
|
|
19
|
-
|
|
18
|
+
def __init__(
|
|
19
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
20
|
+
) -> None:
|
|
21
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
20
22
|
self.sdk_configuration = sdk_config
|
|
21
23
|
self._init_sdks()
|
|
22
24
|
|
|
23
25
|
def _init_sdks(self):
|
|
24
|
-
self.balances = Balances(self.sdk_configuration)
|
|
26
|
+
self.balances = Balances(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
25
27
|
|
|
26
28
|
def get(
|
|
27
29
|
self,
|
gr4vy/models/__init__.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
from importlib import import_module
|
|
5
5
|
import builtins
|
|
6
|
+
import sys
|
|
6
7
|
|
|
7
8
|
if TYPE_CHECKING:
|
|
8
9
|
from .accountsreceivablesreportspec import (
|
|
@@ -88,6 +89,7 @@ if TYPE_CHECKING:
|
|
|
88
89
|
from .braintreedynamicdatafieldsoptions import (
|
|
89
90
|
BraintreeDynamicDataFieldsOptions,
|
|
90
91
|
BraintreeDynamicDataFieldsOptionsTypedDict,
|
|
92
|
+
VaultPaymentMethodCriteria,
|
|
91
93
|
)
|
|
92
94
|
from .braintreeoptions import BraintreeOptions, BraintreeOptionsTypedDict
|
|
93
95
|
from .browserinfo import BrowserInfo, BrowserInfoTypedDict, UserDevice
|
|
@@ -1993,6 +1995,7 @@ __all__ = [
|
|
|
1993
1995
|
"UserStatus",
|
|
1994
1996
|
"ValidationError",
|
|
1995
1997
|
"ValidationErrorTypedDict",
|
|
1998
|
+
"VaultPaymentMethodCriteria",
|
|
1996
1999
|
"VerifyCredentials",
|
|
1997
2000
|
"VerifyCredentialsTypedDict",
|
|
1998
2001
|
"VerifyPaymentServiceCredentialsGlobals",
|
|
@@ -2092,6 +2095,7 @@ _dynamic_imports: dict[str, str] = {
|
|
|
2092
2095
|
"BillingDetailsOutputTypedDict": ".billingdetails_output",
|
|
2093
2096
|
"BraintreeDynamicDataFieldsOptions": ".braintreedynamicdatafieldsoptions",
|
|
2094
2097
|
"BraintreeDynamicDataFieldsOptionsTypedDict": ".braintreedynamicdatafieldsoptions",
|
|
2098
|
+
"VaultPaymentMethodCriteria": ".braintreedynamicdatafieldsoptions",
|
|
2095
2099
|
"BraintreeOptions": ".braintreeoptions",
|
|
2096
2100
|
"BraintreeOptionsTypedDict": ".braintreeoptions",
|
|
2097
2101
|
"BrowserInfo": ".browserinfo",
|
|
@@ -2902,6 +2906,18 @@ _dynamic_imports: dict[str, str] = {
|
|
|
2902
2906
|
}
|
|
2903
2907
|
|
|
2904
2908
|
|
|
2909
|
+
def dynamic_import(modname, retries=3):
|
|
2910
|
+
for attempt in range(retries):
|
|
2911
|
+
try:
|
|
2912
|
+
return import_module(modname, __package__)
|
|
2913
|
+
except KeyError:
|
|
2914
|
+
# Clear any half-initialized module and retry
|
|
2915
|
+
sys.modules.pop(modname, None)
|
|
2916
|
+
if attempt == retries - 1:
|
|
2917
|
+
break
|
|
2918
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
2919
|
+
|
|
2920
|
+
|
|
2905
2921
|
def __getattr__(attr_name: str) -> object:
|
|
2906
2922
|
module_name = _dynamic_imports.get(attr_name)
|
|
2907
2923
|
if module_name is None:
|
|
@@ -2910,7 +2926,7 @@ def __getattr__(attr_name: str) -> object:
|
|
|
2910
2926
|
)
|
|
2911
2927
|
|
|
2912
2928
|
try:
|
|
2913
|
-
module =
|
|
2929
|
+
module = dynamic_import(module_name)
|
|
2914
2930
|
result = getattr(module, attr_name)
|
|
2915
2931
|
return result
|
|
2916
2932
|
except ImportError as e:
|
|
@@ -1,9 +1,24 @@
|
|
|
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
|
|
4
|
+
from gr4vy.types import (
|
|
5
|
+
BaseModel,
|
|
6
|
+
Nullable,
|
|
7
|
+
OptionalNullable,
|
|
8
|
+
UNSET,
|
|
9
|
+
UNSET_SENTINEL,
|
|
10
|
+
UnrecognizedStr,
|
|
11
|
+
)
|
|
12
|
+
from gr4vy.utils import validate_open_enum
|
|
5
13
|
from pydantic import model_serializer
|
|
6
|
-
from
|
|
14
|
+
from pydantic.functional_validators import PlainValidator
|
|
15
|
+
from typing import Literal, Union
|
|
16
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
VaultPaymentMethodCriteria = Union[
|
|
20
|
+
Literal["ALWAYS", "ON_SUCCESSFUL_TRANSACTION"], UnrecognizedStr
|
|
21
|
+
]
|
|
7
22
|
|
|
8
23
|
|
|
9
24
|
class BraintreeDynamicDataFieldsOptionsTypedDict(TypedDict):
|
|
@@ -11,6 +26,8 @@ class BraintreeDynamicDataFieldsOptionsTypedDict(TypedDict):
|
|
|
11
26
|
r"""Passes the 3DS status to the Braintree API using `customFields` with the key set to the value of `three_ds_auth_status`"""
|
|
12
27
|
purchase_order_number: NotRequired[Nullable[str]]
|
|
13
28
|
r"""Passes the `transaction.purchaseOrderNumber` field when creating a new transaction."""
|
|
29
|
+
vault_payment_method_criteria: NotRequired[Nullable[VaultPaymentMethodCriteria]]
|
|
30
|
+
r"""Passes the `vaultPaymentMethodCriteria` field when creating a new transaction."""
|
|
14
31
|
|
|
15
32
|
|
|
16
33
|
class BraintreeDynamicDataFieldsOptions(BaseModel):
|
|
@@ -20,10 +37,24 @@ class BraintreeDynamicDataFieldsOptions(BaseModel):
|
|
|
20
37
|
purchase_order_number: OptionalNullable[str] = UNSET
|
|
21
38
|
r"""Passes the `transaction.purchaseOrderNumber` field when creating a new transaction."""
|
|
22
39
|
|
|
40
|
+
vault_payment_method_criteria: Annotated[
|
|
41
|
+
OptionalNullable[VaultPaymentMethodCriteria],
|
|
42
|
+
PlainValidator(validate_open_enum(False)),
|
|
43
|
+
] = UNSET
|
|
44
|
+
r"""Passes the `vaultPaymentMethodCriteria` field when creating a new transaction."""
|
|
45
|
+
|
|
23
46
|
@model_serializer(mode="wrap")
|
|
24
47
|
def serialize_model(self, handler):
|
|
25
|
-
optional_fields = [
|
|
26
|
-
|
|
48
|
+
optional_fields = [
|
|
49
|
+
"three_ds_auth_status",
|
|
50
|
+
"purchase_order_number",
|
|
51
|
+
"vault_payment_method_criteria",
|
|
52
|
+
]
|
|
53
|
+
nullable_fields = [
|
|
54
|
+
"three_ds_auth_status",
|
|
55
|
+
"purchase_order_number",
|
|
56
|
+
"vault_payment_method_criteria",
|
|
57
|
+
]
|
|
27
58
|
null_default_fields = []
|
|
28
59
|
|
|
29
60
|
serialized = handler(self)
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
from importlib import import_module
|
|
5
5
|
import builtins
|
|
6
|
+
import sys
|
|
6
7
|
|
|
7
8
|
if TYPE_CHECKING:
|
|
8
9
|
from .globals import Globals, GlobalsTypedDict
|
|
@@ -15,6 +16,18 @@ _dynamic_imports: dict[str, str] = {
|
|
|
15
16
|
}
|
|
16
17
|
|
|
17
18
|
|
|
19
|
+
def dynamic_import(modname, retries=3):
|
|
20
|
+
for attempt in range(retries):
|
|
21
|
+
try:
|
|
22
|
+
return import_module(modname, __package__)
|
|
23
|
+
except KeyError:
|
|
24
|
+
# Clear any half-initialized module and retry
|
|
25
|
+
sys.modules.pop(modname, None)
|
|
26
|
+
if attempt == retries - 1:
|
|
27
|
+
break
|
|
28
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
29
|
+
|
|
30
|
+
|
|
18
31
|
def __getattr__(attr_name: str) -> object:
|
|
19
32
|
module_name = _dynamic_imports.get(attr_name)
|
|
20
33
|
if module_name is None:
|
|
@@ -23,7 +36,7 @@ def __getattr__(attr_name: str) -> object:
|
|
|
23
36
|
)
|
|
24
37
|
|
|
25
38
|
try:
|
|
26
|
-
module =
|
|
39
|
+
module = dynamic_import(module_name)
|
|
27
40
|
result = getattr(module, attr_name)
|
|
28
41
|
return result
|
|
29
42
|
except ImportError as e:
|
gr4vy/models/transactionevent.py
CHANGED
|
@@ -44,6 +44,7 @@ Name = Union[
|
|
|
44
44
|
"payment-connector-response-transaction-capture-failed",
|
|
45
45
|
"payment-connector-response-transaction-capture-declined",
|
|
46
46
|
"payment-connector-response-transaction-cancel-succeeded",
|
|
47
|
+
"payment-connector-response-transaction-cancel-pending",
|
|
47
48
|
"payment-connector-response-transaction-cancel-failed",
|
|
48
49
|
"payment-connector-response-transaction-void-succeeded",
|
|
49
50
|
"payment-connector-response-transaction-void-declined",
|
|
@@ -14,13 +14,17 @@ from typing import Any, Mapping, Optional
|
|
|
14
14
|
class PaymentMethodsNetworkTokens(BaseSDK):
|
|
15
15
|
cryptogram: NetworkTokensCryptogram
|
|
16
16
|
|
|
17
|
-
def __init__(
|
|
18
|
-
|
|
17
|
+
def __init__(
|
|
18
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
19
|
+
) -> None:
|
|
20
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
19
21
|
self.sdk_configuration = sdk_config
|
|
20
22
|
self._init_sdks()
|
|
21
23
|
|
|
22
24
|
def _init_sdks(self):
|
|
23
|
-
self.cryptogram = NetworkTokensCryptogram(
|
|
25
|
+
self.cryptogram = NetworkTokensCryptogram(
|
|
26
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
27
|
+
)
|
|
24
28
|
|
|
25
29
|
def list(
|
|
26
30
|
self,
|
gr4vy/payment_methods_sdk.py
CHANGED
|
@@ -19,16 +19,20 @@ class PaymentMethodsSDK(BaseSDK):
|
|
|
19
19
|
payment_service_tokens: PaymentMethodsPaymentServiceTokens
|
|
20
20
|
network_tokens: PaymentMethodsNetworkTokens
|
|
21
21
|
|
|
22
|
-
def __init__(
|
|
23
|
-
|
|
22
|
+
def __init__(
|
|
23
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
24
|
+
) -> None:
|
|
25
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
24
26
|
self.sdk_configuration = sdk_config
|
|
25
27
|
self._init_sdks()
|
|
26
28
|
|
|
27
29
|
def _init_sdks(self):
|
|
28
30
|
self.payment_service_tokens = PaymentMethodsPaymentServiceTokens(
|
|
29
|
-
self.sdk_configuration
|
|
31
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
32
|
+
)
|
|
33
|
+
self.network_tokens = PaymentMethodsNetworkTokens(
|
|
34
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
30
35
|
)
|
|
31
|
-
self.network_tokens = PaymentMethodsNetworkTokens(self.sdk_configuration)
|
|
32
36
|
|
|
33
37
|
def list(
|
|
34
38
|
self,
|
gr4vy/reports_sdk.py
CHANGED
|
@@ -15,13 +15,15 @@ from typing import Any, Dict, List, Mapping, Optional, Union
|
|
|
15
15
|
class ReportsSDK(BaseSDK):
|
|
16
16
|
executions: Executions
|
|
17
17
|
|
|
18
|
-
def __init__(
|
|
19
|
-
|
|
18
|
+
def __init__(
|
|
19
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
20
|
+
) -> None:
|
|
21
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
20
22
|
self.sdk_configuration = sdk_config
|
|
21
23
|
self._init_sdks()
|
|
22
24
|
|
|
23
25
|
def _init_sdks(self):
|
|
24
|
-
self.executions = Executions(self.sdk_configuration)
|
|
26
|
+
self.executions = Executions(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
25
27
|
|
|
26
28
|
def list(
|
|
27
29
|
self,
|
gr4vy/sdk.py
CHANGED
|
@@ -11,6 +11,7 @@ from gr4vy.models import internal
|
|
|
11
11
|
from gr4vy.types import OptionalNullable, UNSET
|
|
12
12
|
import httpx
|
|
13
13
|
import importlib
|
|
14
|
+
import sys
|
|
14
15
|
from typing import Any, Callable, Dict, Optional, TYPE_CHECKING, Union, cast
|
|
15
16
|
import weakref
|
|
16
17
|
|
|
@@ -173,6 +174,7 @@ class Gr4vy(BaseSDK):
|
|
|
173
174
|
timeout_ms=timeout_ms,
|
|
174
175
|
debug_logger=debug_logger,
|
|
175
176
|
),
|
|
177
|
+
parent_ref=self,
|
|
176
178
|
)
|
|
177
179
|
|
|
178
180
|
hooks = SDKHooks()
|
|
@@ -197,13 +199,24 @@ class Gr4vy(BaseSDK):
|
|
|
197
199
|
self.sdk_configuration.async_client_supplied,
|
|
198
200
|
)
|
|
199
201
|
|
|
202
|
+
def dynamic_import(self, modname, retries=3):
|
|
203
|
+
for attempt in range(retries):
|
|
204
|
+
try:
|
|
205
|
+
return importlib.import_module(modname)
|
|
206
|
+
except KeyError:
|
|
207
|
+
# Clear any half-initialized module and retry
|
|
208
|
+
sys.modules.pop(modname, None)
|
|
209
|
+
if attempt == retries - 1:
|
|
210
|
+
break
|
|
211
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
212
|
+
|
|
200
213
|
def __getattr__(self, name: str):
|
|
201
214
|
if name in self._sub_sdk_map:
|
|
202
215
|
module_path, class_name = self._sub_sdk_map[name]
|
|
203
216
|
try:
|
|
204
|
-
module =
|
|
217
|
+
module = self.dynamic_import(module_path)
|
|
205
218
|
klass = getattr(module, class_name)
|
|
206
|
-
instance = klass(self.sdk_configuration)
|
|
219
|
+
instance = klass(self.sdk_configuration, parent_ref=self)
|
|
207
220
|
setattr(self, name, instance)
|
|
208
221
|
return instance
|
|
209
222
|
except ImportError as e:
|
gr4vy/transactions.py
CHANGED
|
@@ -20,15 +20,21 @@ class Transactions(BaseSDK):
|
|
|
20
20
|
events: Events
|
|
21
21
|
settlements: TransactionsSettlements
|
|
22
22
|
|
|
23
|
-
def __init__(
|
|
24
|
-
|
|
23
|
+
def __init__(
|
|
24
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
25
|
+
) -> None:
|
|
26
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
25
27
|
self.sdk_configuration = sdk_config
|
|
26
28
|
self._init_sdks()
|
|
27
29
|
|
|
28
30
|
def _init_sdks(self):
|
|
29
|
-
self.refunds = TransactionsRefunds(
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
self.refunds = TransactionsRefunds(
|
|
32
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
33
|
+
)
|
|
34
|
+
self.events = Events(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
35
|
+
self.settlements = TransactionsSettlements(
|
|
36
|
+
self.sdk_configuration, parent_ref=self.parent_ref
|
|
37
|
+
)
|
|
32
38
|
|
|
33
39
|
def list(
|
|
34
40
|
self,
|
gr4vy/transactions_refunds.py
CHANGED
|
@@ -14,13 +14,15 @@ from typing import Any, Mapping, Optional
|
|
|
14
14
|
class TransactionsRefunds(BaseSDK):
|
|
15
15
|
all: All
|
|
16
16
|
|
|
17
|
-
def __init__(
|
|
18
|
-
|
|
17
|
+
def __init__(
|
|
18
|
+
self, sdk_config: SDKConfiguration, parent_ref: Optional[object] = None
|
|
19
|
+
) -> None:
|
|
20
|
+
BaseSDK.__init__(self, sdk_config, parent_ref=parent_ref)
|
|
19
21
|
self.sdk_configuration = sdk_config
|
|
20
22
|
self._init_sdks()
|
|
21
23
|
|
|
22
24
|
def _init_sdks(self):
|
|
23
|
-
self.all = All(self.sdk_configuration)
|
|
25
|
+
self.all = All(self.sdk_configuration, parent_ref=self.parent_ref)
|
|
24
26
|
|
|
25
27
|
def list(
|
|
26
28
|
self,
|
gr4vy/utils/__init__.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
from importlib import import_module
|
|
5
5
|
import builtins
|
|
6
|
+
import sys
|
|
6
7
|
|
|
7
8
|
if TYPE_CHECKING:
|
|
8
9
|
from .annotations import get_discriminator
|
|
@@ -162,6 +163,18 @@ _dynamic_imports: dict[str, str] = {
|
|
|
162
163
|
}
|
|
163
164
|
|
|
164
165
|
|
|
166
|
+
def dynamic_import(modname, retries=3):
|
|
167
|
+
for attempt in range(retries):
|
|
168
|
+
try:
|
|
169
|
+
return import_module(modname, __package__)
|
|
170
|
+
except KeyError:
|
|
171
|
+
# Clear any half-initialized module and retry
|
|
172
|
+
sys.modules.pop(modname, None)
|
|
173
|
+
if attempt == retries - 1:
|
|
174
|
+
break
|
|
175
|
+
raise KeyError(f"Failed to import module '{modname}' after {retries} attempts")
|
|
176
|
+
|
|
177
|
+
|
|
165
178
|
def __getattr__(attr_name: str) -> object:
|
|
166
179
|
module_name = _dynamic_imports.get(attr_name)
|
|
167
180
|
if module_name is None:
|
|
@@ -170,9 +183,8 @@ def __getattr__(attr_name: str) -> object:
|
|
|
170
183
|
)
|
|
171
184
|
|
|
172
185
|
try:
|
|
173
|
-
module =
|
|
174
|
-
|
|
175
|
-
return result
|
|
186
|
+
module = dynamic_import(module_name)
|
|
187
|
+
return getattr(module, attr_name)
|
|
176
188
|
except ImportError as e:
|
|
177
189
|
raise ImportError(
|
|
178
190
|
f"Failed to import {attr_name} from {module_name}: {e}"
|
gr4vy/utils/eventstreaming.py
CHANGED
|
@@ -17,6 +17,9 @@ T = TypeVar("T")
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class EventStream(Generic[T]):
|
|
20
|
+
# Holds a reference to the SDK client to avoid it being garbage collected
|
|
21
|
+
# and cause termination of the underlying httpx client.
|
|
22
|
+
client_ref: Optional[object]
|
|
20
23
|
response: httpx.Response
|
|
21
24
|
generator: Generator[T, None, None]
|
|
22
25
|
|
|
@@ -25,9 +28,11 @@ class EventStream(Generic[T]):
|
|
|
25
28
|
response: httpx.Response,
|
|
26
29
|
decoder: Callable[[str], T],
|
|
27
30
|
sentinel: Optional[str] = None,
|
|
31
|
+
client_ref: Optional[object] = None,
|
|
28
32
|
):
|
|
29
33
|
self.response = response
|
|
30
34
|
self.generator = stream_events(response, decoder, sentinel)
|
|
35
|
+
self.client_ref = client_ref
|
|
31
36
|
|
|
32
37
|
def __iter__(self):
|
|
33
38
|
return self
|
|
@@ -43,6 +48,9 @@ class EventStream(Generic[T]):
|
|
|
43
48
|
|
|
44
49
|
|
|
45
50
|
class EventStreamAsync(Generic[T]):
|
|
51
|
+
# Holds a reference to the SDK client to avoid it being garbage collected
|
|
52
|
+
# and cause termination of the underlying httpx client.
|
|
53
|
+
client_ref: Optional[object]
|
|
46
54
|
response: httpx.Response
|
|
47
55
|
generator: AsyncGenerator[T, None]
|
|
48
56
|
|
|
@@ -51,9 +59,11 @@ class EventStreamAsync(Generic[T]):
|
|
|
51
59
|
response: httpx.Response,
|
|
52
60
|
decoder: Callable[[str], T],
|
|
53
61
|
sentinel: Optional[str] = None,
|
|
62
|
+
client_ref: Optional[object] = None,
|
|
54
63
|
):
|
|
55
64
|
self.response = response
|
|
56
65
|
self.generator = stream_events_async(response, decoder, sentinel)
|
|
66
|
+
self.client_ref = client_ref
|
|
57
67
|
|
|
58
68
|
def __aiter__(self):
|
|
59
69
|
return self
|
|
@@ -2,22 +2,22 @@ gr4vy/__init__.py,sha256=w2u919V3Tzv4zEPQ-OYJ79gQ_4_SyW7GOFFoHtqXDFA,401
|
|
|
2
2
|
gr4vy/_hooks/__init__.py,sha256=p5J13DeYuISQyQWirjJAObHIf2VtIlOtFqnIpvjjVwk,118
|
|
3
3
|
gr4vy/_hooks/sdkhooks.py,sha256=3jKTs2B1lcAxBMJge9C-qL0RGbKGLcrHvikzi67Tbdo,2493
|
|
4
4
|
gr4vy/_hooks/types.py,sha256=0O7dbbolkiFAnHkNULvwoLsiXJu0_Wmhev163bvZbW8,3039
|
|
5
|
-
gr4vy/_version.py,sha256=
|
|
6
|
-
gr4vy/account_updater.py,sha256=
|
|
5
|
+
gr4vy/_version.py,sha256=wjF0z5Lxbzrt5OMLRVfcBYO22uK802C6Elnk-umzM40,454
|
|
6
|
+
gr4vy/account_updater.py,sha256=mmTd25Oap80PBqQ3p4MvZ_buT5VS0zWc8s8cqfI7iyA,607
|
|
7
7
|
gr4vy/all.py,sha256=WwnLoNn3RgXNpf4Xoz12ct94JD7NMpLz-kzesHHh4m8,15172
|
|
8
8
|
gr4vy/audit_logs.py,sha256=iAT3rnS0NYNKZGw5IVl_MC_RPAHMJNXHfd_K--HIplU,17015
|
|
9
9
|
gr4vy/auth.py,sha256=gxS5MjLUA0r1mSZADniCIQV4khqAn7FMvrTh-9Czm1g,8714
|
|
10
10
|
gr4vy/balances.py,sha256=I5ImXo3bgkaCVigCTnUf1SQK-0LxZEHOex4Dx6MuGRk,14396
|
|
11
|
-
gr4vy/basesdk.py,sha256=
|
|
11
|
+
gr4vy/basesdk.py,sha256=blX6OgKfbCxGZ93GxJuXZaAOmfdIoi-yLHe8Zo5Wg1o,12173
|
|
12
12
|
gr4vy/buyers_gift_cards.py,sha256=TRQD2w-J82928Q8htFgnJ-Ulr7_1K4EsGayL-9NO84U,14114
|
|
13
13
|
gr4vy/buyers_payment_methods.py,sha256=lhYTmPxRo0b5_wvotz9NtfAJjfqd8fJ9pOvDdHv7PlY,15591
|
|
14
|
-
gr4vy/buyers_sdk.py,sha256=
|
|
14
|
+
gr4vy/buyers_sdk.py,sha256=zjlEF3mRmR-2sPQHarM-93hlEdxq7me2nzoXNHRw5hM,73526
|
|
15
15
|
gr4vy/buyers_shipping_details.py,sha256=BPnFwoJNXU8F6ChOctILxHfQY8vJvK218Am6nUnhckA,73399
|
|
16
16
|
gr4vy/card_scheme_definitions_sdk.py,sha256=qwoymeumRGbAi1G3rGPh-BRqsCaXEB-IQcTN0MNaekc,13639
|
|
17
17
|
gr4vy/checkout_sessions.py,sha256=njjoKuvOUSH09Rhw0vfrwbvBTPUYzLcoP-DE-NOZn34,57130
|
|
18
|
-
gr4vy/digital_wallets_sdk.py,sha256=
|
|
18
|
+
gr4vy/digital_wallets_sdk.py,sha256=W4QNFKk3N4xtoiUPpEcrVJGN62aZnuHrPQIpppw3ZN0,71233
|
|
19
19
|
gr4vy/domains.py,sha256=fzBmPm5fA9rwO8smhC2ob7TrnkT1o1rnyc9Y9x6j_uA,28586
|
|
20
|
-
gr4vy/errors/__init__.py,sha256=
|
|
20
|
+
gr4vy/errors/__init__.py,sha256=ZDz7v86-UM-FLysIfPwSWRu-TH_1Xfu8xo8SCpVeFY8,3697
|
|
21
21
|
gr4vy/errors/apierror.py,sha256=9ejCsDbUjHPHMM3Ml_LIVOfMQMyTYp6csY8PdqkMxps,1215
|
|
22
22
|
gr4vy/errors/error400.py,sha256=I09HbmsGnS2eN4SjDYn_2dmW-a2NDbAatuu62Q1fqoM,1425
|
|
23
23
|
gr4vy/errors/error401.py,sha256=yMSFG4sAFHYB-tpmgBnwXySzSqhA5Qeg5BXlHEAruX4,1447
|
|
@@ -36,11 +36,11 @@ gr4vy/errors/no_response_error.py,sha256=FQG44Lq6uF7uUlzbUYfM3dJon6sbqXzJ0Ri6YrD
|
|
|
36
36
|
gr4vy/errors/responsevalidationerror.py,sha256=pGG3nQxVp1R4aUNpFcfZt9eFkTmghX_mpaXk7PzOYUU,682
|
|
37
37
|
gr4vy/events.py,sha256=BIMBWIzunyVMD86pj2zzWaUd_o5WY1MQZN77uxHe7es,14735
|
|
38
38
|
gr4vy/executions.py,sha256=e9OaF4qVIo-7ggjDUad3OH_V1PANev6avArdMRu9K8o,43060
|
|
39
|
-
gr4vy/gift_cards_sdk.py,sha256=
|
|
39
|
+
gr4vy/gift_cards_sdk.py,sha256=wGmWTaQqsnVOUNXQ7dFZcDAcw9c5wq8xyoO189ctmpo,57465
|
|
40
40
|
gr4vy/httpclient.py,sha256=Eu73urOAiZQtdUIyOUnPccxCiBbWEKrXG-JrRG3SLM4,3946
|
|
41
41
|
gr4vy/jobs.py,sha256=WHx0epnlxOMHFSXTJPwuI5dhOO_acGTX72Lbz6fvD8A,14565
|
|
42
42
|
gr4vy/merchant_accounts_sdk.py,sha256=TGwGZqyD_b7xR2pggTsOa3H813-zhakhtjS9d_NsfmA,80907
|
|
43
|
-
gr4vy/models/__init__.py,sha256=
|
|
43
|
+
gr4vy/models/__init__.py,sha256=azuF-cmOxGeZLBzktu2NumYuWZ4lIHMJewxGR8lDJwE,130435
|
|
44
44
|
gr4vy/models/accountsreceivablesreportspec.py,sha256=X4YKJ5TII4KFi1I47BYt1Egxsfs84EaqXsb7g90IpLw,1012
|
|
45
45
|
gr4vy/models/accountupdaterinquirysummary.py,sha256=rOJn5uG7cNFUkd6BbsAve6ueUlAJzU5_d_zeDu6RBTg,1097
|
|
46
46
|
gr4vy/models/accountupdaterjob.py,sha256=JKuRwrc5yYSAQ9lD5Ta4MALtfXBF7tn_37lllQsH2B0,1972
|
|
@@ -74,7 +74,7 @@ gr4vy/models/auditlogentryuser.py,sha256=lpofD8s853q1-lGvFKLj5jSza_RdenvlRd6icgt
|
|
|
74
74
|
gr4vy/models/avsresponsecode.py,sha256=8ozUlzHAkMoAmIW3lBHkBPkZs62foCEvWHLdFYQC6Bg,409
|
|
75
75
|
gr4vy/models/billingdetails_input.py,sha256=_dAZlZgDxhrByze2tF5cRYmg8Qrm3hNcNCk3ogAfkns,3004
|
|
76
76
|
gr4vy/models/billingdetails_output.py,sha256=x-hzFKeM5zkpVYFbwKTMtsmV_vftRhZBtTSxcRdLgxs,3006
|
|
77
|
-
gr4vy/models/braintreedynamicdatafieldsoptions.py,sha256=
|
|
77
|
+
gr4vy/models/braintreedynamicdatafieldsoptions.py,sha256=Y5pSknTpIIfi_pH7BX_E0QL3PMAPVaOE9SiuWen9USE,2951
|
|
78
78
|
gr4vy/models/braintreeoptions.py,sha256=A8igahmK4kHgOhZ0tUHjwaDFpqy0K0nnSb5fZcfXwBQ,2701
|
|
79
79
|
gr4vy/models/browserinfo.py,sha256=zDTJTe2gbG0JDBIEAGEg4k215XTd4HLKY7Y_sFWrciU,2649
|
|
80
80
|
gr4vy/models/buyer.py,sha256=KEN4eeI7HSPr8NcrR8ieEhwCeqZpALWHwCebfRSeL7U,3569
|
|
@@ -206,7 +206,7 @@ gr4vy/models/googlepaysessionrequest.py,sha256=Z5kTOUSN707Xz9urjaqfhRwW1oRRbnlzv
|
|
|
206
206
|
gr4vy/models/guestbuyer_input.py,sha256=PhJnN3DMRqd6Lc-_JPLjHVHn0lxT_cez86OdLGLwDTQ,2877
|
|
207
207
|
gr4vy/models/guestbuyer_output.py,sha256=fDSHUtYbZsVoI0Od3Lzxzp6wA-4TrKwHHGGt8aMuTQo,2884
|
|
208
208
|
gr4vy/models/instrumenttype.py,sha256=cPt9UC0QeqeC2EXKJJD0x8t27OS6lQsnRZ22IGUdf_g,400
|
|
209
|
-
gr4vy/models/internal/__init__.py,sha256=
|
|
209
|
+
gr4vy/models/internal/__init__.py,sha256=xowceJVTVAP3WRyQ0NEGkm9PAoYU1l0_VYgXZP0ZvlM,1569
|
|
210
210
|
gr4vy/models/internal/globals.py,sha256=LOin0ZxkLmWMhPRtR0I9rutYwe8KvZ4c-yJyfv9A8Qw,755
|
|
211
211
|
gr4vy/models/latitudeoptions.py,sha256=dswG3n30p01I1F7R49WvUvu6WSCdQUw0E47ipuWgKds,1546
|
|
212
212
|
gr4vy/models/list_all_report_executionsop.py,sha256=ndtvXxp1Lv78pdH7kyE_3nVs0OjWRoS0T4Nrj_SKkuU,6624
|
|
@@ -344,7 +344,7 @@ gr4vy/models/transactioncapture.py,sha256=7WD3uoUyDJ1sejtjIb7b5B5BFtpKEi7KkegVtB
|
|
|
344
344
|
gr4vy/models/transactioncapturecreate.py,sha256=Hs8tTi8iG3xUBptznKHfUD7rvcGZX0OwDzpXOBegd8E,2188
|
|
345
345
|
gr4vy/models/transactionconnectionoptions.py,sha256=GeXBb1VgGyRJvOxt8Dl0-psTHERjFWM5GBBgcvuBGKI,18231
|
|
346
346
|
gr4vy/models/transactioncreate.py,sha256=eMZkJnfkuv50JzEeI3MzlHKs01PSuYLfxoRu4VV1dgE,24223
|
|
347
|
-
gr4vy/models/transactionevent.py,sha256=
|
|
347
|
+
gr4vy/models/transactionevent.py,sha256=rZm6VX53piqFWSMMP1rLsRqV2rw6_5J7BHrUt4Nfh2M,3871
|
|
348
348
|
gr4vy/models/transactionevents.py,sha256=5l2Yc69SMePDlFtcby4i3BxGBkbT62SWQf4X5Xvfypw,2210
|
|
349
349
|
gr4vy/models/transactiongiftcard.py,sha256=E4f_76ezJJdPlW9kIbrXt-PIx2Zgg3bhqPjVzhWdjpM,2329
|
|
350
350
|
gr4vy/models/transactionintent.py,sha256=D_Mfcssx4vzhs2dX_rRdeUWMSb1i6fXmorA_z_g_Aos,260
|
|
@@ -388,9 +388,9 @@ gr4vy/models/wpaypaytoresourceoptions.py,sha256=Ub4XCfIiXKjGXkDERkXmyBWEaFBRxoiB
|
|
|
388
388
|
gr4vy/models/wpaypaytosimulationoptions.py,sha256=_UHWxMSXhhEOjXwf4hOdelhtZNOFoqk7OoaqSjGofmY,1876
|
|
389
389
|
gr4vy/network_tokens_cryptogram.py,sha256=HBv4aCe9FxTmOzV6gONFU9peYVjD3Ww3B9xh93ooU9E,14950
|
|
390
390
|
gr4vy/payment_links_sdk.py,sha256=ezTPTc54698TVlwuS5fZABxx7o0tnpKrE1FFSyMz9DU,64481
|
|
391
|
-
gr4vy/payment_methods_network_tokens.py,sha256=
|
|
391
|
+
gr4vy/payment_methods_network_tokens.py,sha256=MZ92irp_W7i-u7c88SXudOiTCyUv5-oDgW4PUcoZiTk,70265
|
|
392
392
|
gr4vy/payment_methods_payment_service_tokens.py,sha256=NO2Fip0_Aa3CQfvgBC9_5oZNrk4Z8F1N0AtcMWU4kjg,43209
|
|
393
|
-
gr4vy/payment_methods_sdk.py,sha256=
|
|
393
|
+
gr4vy/payment_methods_sdk.py,sha256=B2eaabKEfZoiGoEkjqFk88gb0B2QJ_LyaLNZxb7ZfrY,58032
|
|
394
394
|
gr4vy/payment_options_sdk.py,sha256=i8_MNRvP2_0I0WK0fH_hcuORYbEWOTpNnvvvdHnLBi8,17079
|
|
395
395
|
gr4vy/payment_service_definitions_sdk.py,sha256=FeopZyGstUfbG30vvgzAzxGN5UFxM4oQ6XWXPXAiOPY,41246
|
|
396
396
|
gr4vy/payment_services_sdk.py,sha256=crnzsrsC6q8A43wf6kapeSH-SkpLOgLjFs71CC2sZg4,113732
|
|
@@ -398,20 +398,20 @@ gr4vy/payouts.py,sha256=XdxuCEknh7-feW4r_W4NKoZb4zO54YM7_ducYrrpzj4,47677
|
|
|
398
398
|
gr4vy/py.typed,sha256=zrp19r0G21lr2yRiMC0f8MFkQFGj9wMpSbboePMg8KM,59
|
|
399
399
|
gr4vy/refunds_sdk.py,sha256=kpU3NaVMsgKxhWblTF-jfAl_Cdpw1HqARP81TypFsjs,13551
|
|
400
400
|
gr4vy/report_executions_sdk.py,sha256=He-YQa3iTStnx2xAx8jfpnj8qX4vO4_cVHgvuVCWqos,18877
|
|
401
|
-
gr4vy/reports_sdk.py,sha256=
|
|
402
|
-
gr4vy/sdk.py,sha256=
|
|
401
|
+
gr4vy/reports_sdk.py,sha256=lUuxAgnAO0CIDYEoP3VAHnYoG8d4Vq-pi-41uJ4sKPs,59557
|
|
402
|
+
gr4vy/sdk.py,sha256=XqkSODRWO2VLYcVBhQjX0EdgKson0juO_oQMsgJ_h5o,10477
|
|
403
403
|
gr4vy/sdkconfiguration.py,sha256=aBQ8gY9aOjf1TL0kSLat8hEIoH4lCE9_PhihyhBpRE4,1985
|
|
404
404
|
gr4vy/sessions.py,sha256=yg9L1vMfHT6dNc6zjthULHFS2dC67QzXCv5WUFMn3DI,41609
|
|
405
|
-
gr4vy/transactions.py,sha256=
|
|
406
|
-
gr4vy/transactions_refunds.py,sha256=
|
|
405
|
+
gr4vy/transactions.py,sha256=zH9eJO1h4HAgG-wwIsuBRnUOXwZLCABi3PmSXBFN-oA,151423
|
|
406
|
+
gr4vy/transactions_refunds.py,sha256=_YXYEbNw-F5PotIxZE83zU__987Asqz_9JnqBIKhEvw,43591
|
|
407
407
|
gr4vy/transactions_settlements.py,sha256=YOH0JAGvli36XhKKXyQ81JIIuv59uCOpqBri6SlYfa0,27750
|
|
408
408
|
gr4vy/types/__init__.py,sha256=RArOwSgeeTIva6h-4ttjXwMUeCkz10nAFBL9D-QljI4,377
|
|
409
409
|
gr4vy/types/basemodel.py,sha256=L79WXvTECbSqaJzs8D3ud_KdIWkU7Cx2wbohDAktE9E,1127
|
|
410
|
-
gr4vy/utils/__init__.py,sha256=
|
|
410
|
+
gr4vy/utils/__init__.py,sha256=CAG0O76aEToGKXpT6Ft87Vd-iiQTh4XdBrQ37BVbsiM,5861
|
|
411
411
|
gr4vy/utils/annotations.py,sha256=aR7mZG34FzgRdew7WZPYEu9QGBerpuKxCF4sek5Z_5Y,1699
|
|
412
412
|
gr4vy/utils/datetimes.py,sha256=oppAA5e3V35pQov1-FNLKxAaNF1_XWi-bQtyjjql3H8,855
|
|
413
413
|
gr4vy/utils/enums.py,sha256=REU6ydF8gsVL3xaeGX4sMNyiL3q5P9h29-f6Sa6luAE,2633
|
|
414
|
-
gr4vy/utils/eventstreaming.py,sha256=
|
|
414
|
+
gr4vy/utils/eventstreaming.py,sha256=SgFqMcUOYKlrTQ4gAp_dNcKLvDXukeiEMNU3DP8mXk8,6692
|
|
415
415
|
gr4vy/utils/forms.py,sha256=EJdnrfIkuwpDtekyHutla0HjI_FypTYcmYNyPKEu_W0,6874
|
|
416
416
|
gr4vy/utils/headers.py,sha256=cPxWSmUILrefTGDzTH1Hdj7_Hlsj-EY6K5Tyc4iH4dk,3663
|
|
417
417
|
gr4vy/utils/logger.py,sha256=WdT856mADqljmNjIW_Y1ntFJrIWz3CCOowhK8kcGobk,669
|
|
@@ -425,6 +425,6 @@ gr4vy/utils/unmarshal_json_response.py,sha256=H7jxugtMDuagdBXdpGiPf0Vr5-PWLETp8B
|
|
|
425
425
|
gr4vy/utils/url.py,sha256=BgGPgcTA6MRK4bF8fjP2dUopN3NzEzxWMXPBVg8NQUA,5254
|
|
426
426
|
gr4vy/utils/values.py,sha256=CcaCXEa3xHhkUDROyXZocN8f0bdITftv9Y0P9lTf0YM,3517
|
|
427
427
|
gr4vy/webhooks.py,sha256=2L-ZhdK-XU2X0AkVqgZvhfRqDCKUVs7R4UNCmZJR78w,1359
|
|
428
|
-
gr4vy-1.
|
|
429
|
-
gr4vy-1.
|
|
430
|
-
gr4vy-1.
|
|
428
|
+
gr4vy-1.2.0.dist-info/METADATA,sha256=7-q0NoZ2bCXpnuLAtA9hEAdy3RkCUXn5ZWadrdAELNk,44028
|
|
429
|
+
gr4vy-1.2.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
430
|
+
gr4vy-1.2.0.dist-info/RECORD,,
|
|
File without changes
|