kard-financial-sdk 0.0.78939__py3-none-any.whl → 1.0.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.
@@ -22,10 +22,10 @@ class BaseClientWrapper:
22
22
 
23
23
  def get_headers(self) -> typing.Dict[str, str]:
24
24
  headers: typing.Dict[str, str] = {
25
- "User-Agent": "kard-financial-sdk/0.0.78939",
25
+ "User-Agent": "kard-financial-sdk/1.0.0",
26
26
  "X-Fern-Language": "Python",
27
27
  "X-Fern-SDK-Name": "kard-financial-sdk",
28
- "X-Fern-SDK-Version": "0.0.78939",
28
+ "X-Fern-SDK-Version": "1.0.0",
29
29
  **(self.get_custom_headers() or {}),
30
30
  }
31
31
  token = self._get_token()
kard/users/__init__.py CHANGED
@@ -20,7 +20,7 @@ if typing.TYPE_CHECKING:
20
20
  UserResponseUnionNoData_User,
21
21
  )
22
22
  from .errors import MultiStatus
23
- from . import attributions, rewards, uploads
23
+ from . import attributions, auth, rewards, uploads
24
24
  from .attributions import (
25
25
  CreateAttributionRequestObject,
26
26
  CreateAttributionRequestUnion,
@@ -35,6 +35,7 @@ if typing.TYPE_CHECKING:
35
35
  OfferAttributionRequest,
36
36
  OfferMedium,
37
37
  )
38
+ from .auth import WebviewTokenResponse
38
39
  from .rewards import (
39
40
  Amount,
40
41
  AmountType,
@@ -178,7 +179,9 @@ _dynamic_imports: typing.Dict[str, str] = {
178
179
  "UserResponseNoData": ".types",
179
180
  "UserResponseUnionNoData": ".types",
180
181
  "UserResponseUnionNoData_User": ".types",
182
+ "WebviewTokenResponse": ".auth",
181
183
  "attributions": ".attributions",
184
+ "auth": ".auth",
182
185
  "rewards": ".rewards",
183
186
  "uploads": ".uploads",
184
187
  }
@@ -287,7 +290,9 @@ __all__ = [
287
290
  "UserResponseNoData",
288
291
  "UserResponseUnionNoData",
289
292
  "UserResponseUnionNoData_User",
293
+ "WebviewTokenResponse",
290
294
  "attributions",
295
+ "auth",
291
296
  "rewards",
292
297
  "uploads",
293
298
  ]
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .types import WebviewTokenResponse
10
+ _dynamic_imports: typing.Dict[str, str] = {"WebviewTokenResponse": ".types"}
11
+
12
+
13
+ def __getattr__(attr_name: str) -> typing.Any:
14
+ module_name = _dynamic_imports.get(attr_name)
15
+ if module_name is None:
16
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
17
+ try:
18
+ module = import_module(module_name, __package__)
19
+ if module_name == f".{attr_name}":
20
+ return module
21
+ else:
22
+ return getattr(module, attr_name)
23
+ except ImportError as e:
24
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
25
+ except AttributeError as e:
26
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
27
+
28
+
29
+ def __dir__():
30
+ lazy_attrs = list(_dynamic_imports.keys())
31
+ return sorted(lazy_attrs)
32
+
33
+
34
+ __all__ = ["WebviewTokenResponse"]
@@ -0,0 +1,128 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ...commons.types.organization_id import OrganizationId
6
+ from ...commons.types.user_id import UserId
7
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ...core.request_options import RequestOptions
9
+ from .raw_client import AsyncRawAuthClient, RawAuthClient
10
+ from .types.webview_token_response import WebviewTokenResponse
11
+
12
+
13
+ class AuthClient:
14
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
15
+ self._raw_client = RawAuthClient(client_wrapper=client_wrapper)
16
+
17
+ @property
18
+ def with_raw_response(self) -> RawAuthClient:
19
+ """
20
+ Retrieves a raw implementation of this client that returns raw responses.
21
+
22
+ Returns
23
+ -------
24
+ RawAuthClient
25
+ """
26
+ return self._raw_client
27
+
28
+ def get_webview_token(
29
+ self,
30
+ organization_id: OrganizationId,
31
+ user_id: UserId,
32
+ *,
33
+ request_options: typing.Optional[RequestOptions] = None,
34
+ ) -> WebviewTokenResponse:
35
+ """
36
+ Retrieves an OAuth token for webview authentication.
37
+
38
+ Parameters
39
+ ----------
40
+ organization_id : OrganizationId
41
+
42
+ user_id : UserId
43
+
44
+ request_options : typing.Optional[RequestOptions]
45
+ Request-specific configuration.
46
+
47
+ Returns
48
+ -------
49
+ WebviewTokenResponse
50
+
51
+ Examples
52
+ --------
53
+ from kard import KardApi
54
+
55
+ client = KardApi(
56
+ client_id="YOUR_CLIENT_ID",
57
+ client_secret="YOUR_CLIENT_SECRET",
58
+ )
59
+ client.users.auth.get_webview_token(
60
+ organization_id="organization-123",
61
+ user_id="user-123",
62
+ )
63
+ """
64
+ _response = self._raw_client.get_webview_token(organization_id, user_id, request_options=request_options)
65
+ return _response.data
66
+
67
+
68
+ class AsyncAuthClient:
69
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
70
+ self._raw_client = AsyncRawAuthClient(client_wrapper=client_wrapper)
71
+
72
+ @property
73
+ def with_raw_response(self) -> AsyncRawAuthClient:
74
+ """
75
+ Retrieves a raw implementation of this client that returns raw responses.
76
+
77
+ Returns
78
+ -------
79
+ AsyncRawAuthClient
80
+ """
81
+ return self._raw_client
82
+
83
+ async def get_webview_token(
84
+ self,
85
+ organization_id: OrganizationId,
86
+ user_id: UserId,
87
+ *,
88
+ request_options: typing.Optional[RequestOptions] = None,
89
+ ) -> WebviewTokenResponse:
90
+ """
91
+ Retrieves an OAuth token for webview authentication.
92
+
93
+ Parameters
94
+ ----------
95
+ organization_id : OrganizationId
96
+
97
+ user_id : UserId
98
+
99
+ request_options : typing.Optional[RequestOptions]
100
+ Request-specific configuration.
101
+
102
+ Returns
103
+ -------
104
+ WebviewTokenResponse
105
+
106
+ Examples
107
+ --------
108
+ import asyncio
109
+
110
+ from kard import AsyncKardApi
111
+
112
+ client = AsyncKardApi(
113
+ client_id="YOUR_CLIENT_ID",
114
+ client_secret="YOUR_CLIENT_SECRET",
115
+ )
116
+
117
+
118
+ async def main() -> None:
119
+ await client.users.auth.get_webview_token(
120
+ organization_id="organization-123",
121
+ user_id="user-123",
122
+ )
123
+
124
+
125
+ asyncio.run(main())
126
+ """
127
+ _response = await self._raw_client.get_webview_token(organization_id, user_id, request_options=request_options)
128
+ return _response.data
@@ -0,0 +1,157 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ...commons.errors.internal_server_error import InternalServerError
7
+ from ...commons.errors.unauthorized_error import UnauthorizedError
8
+ from ...commons.types.error_response import ErrorResponse
9
+ from ...commons.types.organization_id import OrganizationId
10
+ from ...commons.types.user_id import UserId
11
+ from ...core.api_error import ApiError
12
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
13
+ from ...core.http_response import AsyncHttpResponse, HttpResponse
14
+ from ...core.jsonable_encoder import jsonable_encoder
15
+ from ...core.pydantic_utilities import parse_obj_as
16
+ from ...core.request_options import RequestOptions
17
+ from .types.webview_token_response import WebviewTokenResponse
18
+
19
+
20
+ class RawAuthClient:
21
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
22
+ self._client_wrapper = client_wrapper
23
+
24
+ def get_webview_token(
25
+ self,
26
+ organization_id: OrganizationId,
27
+ user_id: UserId,
28
+ *,
29
+ request_options: typing.Optional[RequestOptions] = None,
30
+ ) -> HttpResponse[WebviewTokenResponse]:
31
+ """
32
+ Retrieves an OAuth token for webview authentication.
33
+
34
+ Parameters
35
+ ----------
36
+ organization_id : OrganizationId
37
+
38
+ user_id : UserId
39
+
40
+ request_options : typing.Optional[RequestOptions]
41
+ Request-specific configuration.
42
+
43
+ Returns
44
+ -------
45
+ HttpResponse[WebviewTokenResponse]
46
+ """
47
+ _response = self._client_wrapper.httpx_client.request(
48
+ f"v2/auth/issuers/{jsonable_encoder(organization_id)}/users/{jsonable_encoder(user_id)}/token",
49
+ method="POST",
50
+ request_options=request_options,
51
+ )
52
+ try:
53
+ if 200 <= _response.status_code < 300:
54
+ _data = typing.cast(
55
+ WebviewTokenResponse,
56
+ parse_obj_as(
57
+ type_=WebviewTokenResponse, # type: ignore
58
+ object_=_response.json(),
59
+ ),
60
+ )
61
+ return HttpResponse(response=_response, data=_data)
62
+ if _response.status_code == 500:
63
+ raise InternalServerError(
64
+ headers=dict(_response.headers),
65
+ body=typing.cast(
66
+ ErrorResponse,
67
+ parse_obj_as(
68
+ type_=ErrorResponse, # type: ignore
69
+ object_=_response.json(),
70
+ ),
71
+ ),
72
+ )
73
+ if _response.status_code == 401:
74
+ raise UnauthorizedError(
75
+ headers=dict(_response.headers),
76
+ body=typing.cast(
77
+ ErrorResponse,
78
+ parse_obj_as(
79
+ type_=ErrorResponse, # type: ignore
80
+ object_=_response.json(),
81
+ ),
82
+ ),
83
+ )
84
+ _response_json = _response.json()
85
+ except JSONDecodeError:
86
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
87
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
88
+
89
+
90
+ class AsyncRawAuthClient:
91
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
92
+ self._client_wrapper = client_wrapper
93
+
94
+ async def get_webview_token(
95
+ self,
96
+ organization_id: OrganizationId,
97
+ user_id: UserId,
98
+ *,
99
+ request_options: typing.Optional[RequestOptions] = None,
100
+ ) -> AsyncHttpResponse[WebviewTokenResponse]:
101
+ """
102
+ Retrieves an OAuth token for webview authentication.
103
+
104
+ Parameters
105
+ ----------
106
+ organization_id : OrganizationId
107
+
108
+ user_id : UserId
109
+
110
+ request_options : typing.Optional[RequestOptions]
111
+ Request-specific configuration.
112
+
113
+ Returns
114
+ -------
115
+ AsyncHttpResponse[WebviewTokenResponse]
116
+ """
117
+ _response = await self._client_wrapper.httpx_client.request(
118
+ f"v2/auth/issuers/{jsonable_encoder(organization_id)}/users/{jsonable_encoder(user_id)}/token",
119
+ method="POST",
120
+ request_options=request_options,
121
+ )
122
+ try:
123
+ if 200 <= _response.status_code < 300:
124
+ _data = typing.cast(
125
+ WebviewTokenResponse,
126
+ parse_obj_as(
127
+ type_=WebviewTokenResponse, # type: ignore
128
+ object_=_response.json(),
129
+ ),
130
+ )
131
+ return AsyncHttpResponse(response=_response, data=_data)
132
+ if _response.status_code == 500:
133
+ raise InternalServerError(
134
+ headers=dict(_response.headers),
135
+ body=typing.cast(
136
+ ErrorResponse,
137
+ parse_obj_as(
138
+ type_=ErrorResponse, # type: ignore
139
+ object_=_response.json(),
140
+ ),
141
+ ),
142
+ )
143
+ if _response.status_code == 401:
144
+ raise UnauthorizedError(
145
+ headers=dict(_response.headers),
146
+ body=typing.cast(
147
+ ErrorResponse,
148
+ parse_obj_as(
149
+ type_=ErrorResponse, # type: ignore
150
+ object_=_response.json(),
151
+ ),
152
+ ),
153
+ )
154
+ _response_json = _response.json()
155
+ except JSONDecodeError:
156
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
157
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -0,0 +1,34 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
5
+ import typing
6
+ from importlib import import_module
7
+
8
+ if typing.TYPE_CHECKING:
9
+ from .webview_token_response import WebviewTokenResponse
10
+ _dynamic_imports: typing.Dict[str, str] = {"WebviewTokenResponse": ".webview_token_response"}
11
+
12
+
13
+ def __getattr__(attr_name: str) -> typing.Any:
14
+ module_name = _dynamic_imports.get(attr_name)
15
+ if module_name is None:
16
+ raise AttributeError(f"No {attr_name} found in _dynamic_imports for module name -> {__name__}")
17
+ try:
18
+ module = import_module(module_name, __package__)
19
+ if module_name == f".{attr_name}":
20
+ return module
21
+ else:
22
+ return getattr(module, attr_name)
23
+ except ImportError as e:
24
+ raise ImportError(f"Failed to import {attr_name} from {module_name}: {e}") from e
25
+ except AttributeError as e:
26
+ raise AttributeError(f"Failed to get {attr_name} from {module_name}: {e}") from e
27
+
28
+
29
+ def __dir__():
30
+ lazy_attrs = list(_dynamic_imports.keys())
31
+ return sorted(lazy_attrs)
32
+
33
+
34
+ __all__ = ["WebviewTokenResponse"]
@@ -0,0 +1,35 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ import pydantic
6
+ from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
+
8
+
9
+ class WebviewTokenResponse(UniversalBaseModel):
10
+ """
11
+ An OAuth token response.
12
+
13
+ Examples
14
+ --------
15
+ from kard.users.auth import WebviewTokenResponse
16
+
17
+ WebviewTokenResponse(
18
+ access_token="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
19
+ expires_in=3600,
20
+ token_type="Bearer",
21
+ )
22
+ """
23
+
24
+ access_token: str
25
+ expires_in: int
26
+ token_type: str
27
+
28
+ if IS_PYDANTIC_V2:
29
+ model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
30
+ else:
31
+
32
+ class Config:
33
+ frozen = True
34
+ smart_union = True
35
+ extra = pydantic.Extra.allow
kard/users/client.py CHANGED
@@ -16,6 +16,7 @@ from .types.user_request_data_union import UserRequestDataUnion
16
16
 
17
17
  if typing.TYPE_CHECKING:
18
18
  from .attributions.client import AsyncAttributionsClient, AttributionsClient
19
+ from .auth.client import AsyncAuthClient, AuthClient
19
20
  from .rewards.client import AsyncRewardsClient, RewardsClient
20
21
  from .uploads.client import AsyncUploadsClient, UploadsClient
21
22
  # this is used as the default value for optional parameters
@@ -27,6 +28,7 @@ class UsersClient:
27
28
  self._raw_client = RawUsersClient(client_wrapper=client_wrapper)
28
29
  self._client_wrapper = client_wrapper
29
30
  self._attributions: typing.Optional[AttributionsClient] = None
31
+ self._auth: typing.Optional[AuthClient] = None
30
32
  self._rewards: typing.Optional[RewardsClient] = None
31
33
  self._uploads: typing.Optional[UploadsClient] = None
32
34
 
@@ -234,6 +236,14 @@ class UsersClient:
234
236
  self._attributions = AttributionsClient(client_wrapper=self._client_wrapper)
235
237
  return self._attributions
236
238
 
239
+ @property
240
+ def auth(self):
241
+ if self._auth is None:
242
+ from .auth.client import AuthClient # noqa: E402
243
+
244
+ self._auth = AuthClient(client_wrapper=self._client_wrapper)
245
+ return self._auth
246
+
237
247
  @property
238
248
  def rewards(self):
239
249
  if self._rewards is None:
@@ -256,6 +266,7 @@ class AsyncUsersClient:
256
266
  self._raw_client = AsyncRawUsersClient(client_wrapper=client_wrapper)
257
267
  self._client_wrapper = client_wrapper
258
268
  self._attributions: typing.Optional[AsyncAttributionsClient] = None
269
+ self._auth: typing.Optional[AsyncAuthClient] = None
259
270
  self._rewards: typing.Optional[AsyncRewardsClient] = None
260
271
  self._uploads: typing.Optional[AsyncUploadsClient] = None
261
272
 
@@ -495,6 +506,14 @@ class AsyncUsersClient:
495
506
  self._attributions = AsyncAttributionsClient(client_wrapper=self._client_wrapper)
496
507
  return self._attributions
497
508
 
509
+ @property
510
+ def auth(self):
511
+ if self._auth is None:
512
+ from .auth.client import AsyncAuthClient # noqa: E402
513
+
514
+ self._auth = AsyncAuthClient(client_wrapper=self._client_wrapper)
515
+ return self._auth
516
+
498
517
  @property
499
518
  def rewards(self):
500
519
  if self._rewards is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kard-financial-sdk
3
- Version: 0.0.78939
3
+ Version: 1.0.0
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -39,7 +39,7 @@ kard/commons/types/subscription_id.py,sha256=ftC0pKiUnQhd0vuGIjrK9NDTQeAjPALtrYb
39
39
  kard/commons/types/user_id.py,sha256=S2yE4rCRcapLUQ4_49O2n-Ph5Bm8uywFdnSXSz-otCU,78
40
40
  kard/core/__init__.py,sha256=GkNNgA0CeqvpCzo2vVtAafE8YcnGV-VGtbU5op93lbc,3624
41
41
  kard/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
42
- kard/core/client_wrapper.py,sha256=Q1JK8rzgnMKvi0aoh-knZ9PJubYtOFHnR3o7kjXdaI0,3293
42
+ kard/core/client_wrapper.py,sha256=u8pDJtUskT2TK71RWfilZXZsI_FAIJ9ToXsfcd5spFU,3285
43
43
  kard/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
44
44
  kard/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
45
45
  kard/core/force_multipart.py,sha256=cH981xLy0kZVKiZZkFoeUjgJ2Zuq7KXB2aRAnmHzRDc,477
@@ -208,7 +208,7 @@ kard/transactions/types/transactions_response.py,sha256=J_GYrJ3Rs8fXakrdrlzemMaF
208
208
  kard/transactions/types/transactions_response_data.py,sha256=nHFzk-sgUHea2c-LZ5cH5sNTUXMB2RNF5pUcNsFdwzA,740
209
209
  kard/transactions/types/visa_mid.py,sha256=inLd8mrhQ1hmdHo7g03NYMbGtq-UGo6OuhR9IFtKVjY,658
210
210
  kard/transactions/types/visa_mid_details.py,sha256=TKck88YVWuhUvvydkfB-xUfNa1sx3h2Q8GSsiCBLqiM,724
211
- kard/users/__init__.py,sha256=iAhq11fmBfS5KxNgEGEXxT-i-SpQ7b6_jUPZ89II7iw,10400
211
+ kard/users/__init__.py,sha256=pV4d3eJhMlb9c2P6hEd1CTujgmRZspD1TznlA23FLuk,10547
212
212
  kard/users/attributions/__init__.py,sha256=kKMcKJ2Sjlc-1Mi2BERYYA8VPUXSTQjDqi7VTJ82y94,2446
213
213
  kard/users/attributions/client.py,sha256=VTEw6XP9Ey9O6gRZhgdXeY7ox21F02lLvhwsZ9HqjT4,8614
214
214
  kard/users/attributions/raw_client.py,sha256=fqZre0qsFvgk-gWWfvvbjmH1gk21RgTakGUldNnIeBI,8999
@@ -223,7 +223,12 @@ kard/users/attributions/types/notification_medium.py,sha256=2ay0h6nIqf0DeolWfk9d
223
223
  kard/users/attributions/types/offer_attribution_attributes.py,sha256=B2FZiEgSeQbF3yHZ5rSnBLYuOTBx1zNIgO5MPYdY_9g,1169
224
224
  kard/users/attributions/types/offer_attribution_request.py,sha256=aU4vKiuKv-YRlyKdvY-90jNUXEmvHtMll1FvPii8MFU,630
225
225
  kard/users/attributions/types/offer_medium.py,sha256=5K3bGlrPdxFu4FSPvYRqdjSY5VD7DYnX43nUJ1IqnDQ,171
226
- kard/users/client.py,sha256=uWmsS_ADD385A8_69-xJhR-VfTQIvQPZ7iaNsQTaofA,15251
226
+ kard/users/auth/__init__.py,sha256=v2IcrKuUr-jatX1SYrXq5BBWHaJElel8vC_8TXlZ1xQ,1080
227
+ kard/users/auth/client.py,sha256=mVe77Mq0JG3qFgw8mZ7f47DHEAQgxNk3CntQMmrgTaE,3494
228
+ kard/users/auth/raw_client.py,sha256=53IWsFINVLRVX0l7BDScmAH5fejU0yx9L_-M1VvK13k,6007
229
+ kard/users/auth/types/__init__.py,sha256=ySRGQnVJk_77Dr7dSHg3bLpyHeDNL5REl3PhrSrl1To,1114
230
+ kard/users/auth/types/webview_token_response.py,sha256=YMYgo72zFTluKp5MfVsmKu12cNmT-fFQgTiVGCyqVbI,854
231
+ kard/users/client.py,sha256=PV2xvrB2fbcxgx75WD-eRjlyEDSMbh0XBeRTkosuQzc,15889
227
232
  kard/users/errors/__init__.py,sha256=BYAoqh-RDSspC-n4ilOC_7zA1XRP7cHdikIiLsD2BkU,1067
228
233
  kard/users/errors/multi_status.py,sha256=6SScVu3LIZ_AghltI8DKd1g8l-1KJdEo9GwjP0TwmsE,424
229
234
  kard/users/raw_client.py,sha256=vGX7EYcyivMXrf6egmpePuD6gHy6WkcQ2B9UeT9ksGg,30492
@@ -297,6 +302,6 @@ kard/users/uploads/types/update_upload_response_data.py,sha256=au2tb-iSvkMBDhU6s
297
302
  kard/users/uploads/types/update_upload_response_data_union.py,sha256=717YqC18LeMNyAkDgYZM2Us40enHiatm3s6UXiMCMPA,871
298
303
  kard/users/uploads/types/update_upload_response_object.py,sha256=0iwmSNlgVGPGh9BwzteN1FrhArQStYfjeBkwhOUNAMY,1087
299
304
  kard/version.py,sha256=V9m3K1LBEp-MG1T3GWvmb-JWKp8CK-cti5N4GIfQe2I,85
300
- kard_financial_sdk-0.0.78939.dist-info/METADATA,sha256=YV3E5oDZJKZjECr9o4GVTPLc4tUlMNK2hg8snoN6uC0,7054
301
- kard_financial_sdk-0.0.78939.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
302
- kard_financial_sdk-0.0.78939.dist-info/RECORD,,
305
+ kard_financial_sdk-1.0.0.dist-info/METADATA,sha256=aAdCKKMf_aTY09Sk7VJ204RX8ocwLgjHL0LvrsNDVqs,7050
306
+ kard_financial_sdk-1.0.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
307
+ kard_financial_sdk-1.0.0.dist-info/RECORD,,