celitech-sdk 2.0.1__tar.gz → 2.0.4__tar.gz

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 (85) hide show
  1. {celitech_sdk-2.0.1/src/celitech_sdk.egg-info → celitech_sdk-2.0.4}/PKG-INFO +4 -4
  2. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/PyPI_README.md +3 -3
  3. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/README.md +3 -3
  4. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/pyproject.toml +1 -1
  5. celitech_sdk-2.0.4/src/celitech/models/__init__.py +142 -0
  6. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/cast_models.py +14 -1
  7. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/one_of_base_model.py +12 -0
  8. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/oauth/token_manager.py +1 -1
  9. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/api_error.py +9 -0
  10. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/serializer.py +1 -1
  11. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/o_auth.py +2 -2
  12. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/o_auth.py +7 -7
  13. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4/src/celitech_sdk.egg-info}/PKG-INFO +4 -4
  14. celitech_sdk-2.0.1/src/celitech/models/__init__.py +0 -75
  15. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/LICENSE +0 -0
  16. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/setup.cfg +0 -0
  17. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/__init__.py +0 -0
  18. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/bad_request.py +0 -0
  19. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/create_purchase_ok_response.py +0 -0
  20. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/create_purchase_request.py +0 -0
  21. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/create_purchase_v2_ok_response.py +0 -0
  22. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/create_purchase_v2_request.py +0 -0
  23. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/edit_purchase_ok_response.py +0 -0
  24. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/edit_purchase_request.py +0 -0
  25. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/get_esim_device_ok_response.py +0 -0
  26. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/get_esim_history_ok_response.py +0 -0
  27. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/get_esim_ok_response.py +0 -0
  28. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/get_purchase_consumption_ok_response.py +0 -0
  29. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/grant_type.py +0 -0
  30. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/list_destinations_ok_response.py +0 -0
  31. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/list_packages_ok_response.py +0 -0
  32. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/list_purchases_ok_response.py +0 -0
  33. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/o_auth_token_request.py +0 -0
  34. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/o_auth_token_response.py +0 -0
  35. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/token_ok_response.py +0 -0
  36. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/top_up_esim_ok_response.py +0 -0
  37. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/top_up_esim_request.py +0 -0
  38. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/unauthorized.py +0 -0
  39. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/__init__.py +0 -0
  40. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/base_error.py +0 -0
  41. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/base_model.py +0 -0
  42. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/json_map.py +0 -0
  43. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/models/utils/sentinel.py +0 -0
  44. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/__init__.py +0 -0
  45. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/environment/__init__.py +0 -0
  46. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/environment/environment.py +0 -0
  47. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/headers/__init__.py +0 -0
  48. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/headers/base_header.py +0 -0
  49. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/__init__.py +0 -0
  50. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/handlers/__init__.py +0 -0
  51. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/handlers/base_handler.py +0 -0
  52. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/handlers/http_handler.py +0 -0
  53. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/handlers/oauth_handler.py +0 -0
  54. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/handlers/retry_handler.py +0 -0
  55. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/request_chain/request_chain.py +0 -0
  56. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/sdk_config.py +0 -0
  57. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/__init__.py +0 -0
  58. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/request.py +0 -0
  59. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/request_error.py +0 -0
  60. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/response.py +0 -0
  61. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/net/transport/utils.py +0 -0
  62. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/sdk.py +0 -0
  63. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/sdk_async.py +0 -0
  64. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/__init__.py +0 -0
  65. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/__init__.py +0 -0
  66. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/destinations.py +0 -0
  67. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/e_sim.py +0 -0
  68. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/i_frame.py +0 -0
  69. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/packages.py +0 -0
  70. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/purchases.py +0 -0
  71. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/utils/__init__.py +0 -0
  72. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/async_/utils/to_async.py +0 -0
  73. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/destinations.py +0 -0
  74. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/e_sim.py +0 -0
  75. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/i_frame.py +0 -0
  76. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/packages.py +0 -0
  77. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/purchases.py +0 -0
  78. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/utils/__init__.py +0 -0
  79. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/utils/base_service.py +0 -0
  80. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/utils/default_headers.py +0 -0
  81. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech/services/utils/validator.py +0 -0
  82. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech_sdk.egg-info/SOURCES.txt +0 -0
  83. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech_sdk.egg-info/dependency_links.txt +0 -0
  84. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech_sdk.egg-info/requires.txt +0 -0
  85. {celitech_sdk-2.0.1 → celitech_sdk-2.0.4}/src/celitech_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celitech-sdk
3
- Version: 2.0.1
3
+ Version: 2.0.4
4
4
  Summary: Welcome to the CELITECH API documentation!
5
5
  License: MIT
6
6
  Project-URL: Repository, https://github.com/Celitech/CelitechSDKPython
@@ -11,14 +11,14 @@ Requires-Dist: requests>=2.31.0
11
11
  Requires-Dist: pydantic<3.0.0,>=2.0.0
12
12
  Dynamic: license-file
13
13
 
14
- # Celitech Python SDK 2.0.1<a id="celitech-python-sdk-201"></a>
14
+ # Celitech Python SDK 2.0.4<a id="celitech-python-sdk-204"></a>
15
15
 
16
16
  Welcome to the Celitech SDK documentation. This guide will help you get started with integrating and using the Celitech SDK in your project.
17
17
 
18
18
  ## Versions<a id="versions"></a>
19
19
 
20
- - API version: `2.0.1`
21
- - SDK version: `2.0.1`
20
+ - API version: `2.0.4`
21
+ - SDK version: `2.0.4`
22
22
 
23
23
  ## About the API<a id="about-the-api"></a>
24
24
 
@@ -1,11 +1,11 @@
1
- # Celitech Python SDK 2.0.1<a id="celitech-python-sdk-201"></a>
1
+ # Celitech Python SDK 2.0.4<a id="celitech-python-sdk-204"></a>
2
2
 
3
3
  Welcome to the Celitech SDK documentation. This guide will help you get started with integrating and using the Celitech SDK in your project.
4
4
 
5
5
  ## Versions<a id="versions"></a>
6
6
 
7
- - API version: `2.0.1`
8
- - SDK version: `2.0.1`
7
+ - API version: `2.0.4`
8
+ - SDK version: `2.0.4`
9
9
 
10
10
  ## About the API<a id="about-the-api"></a>
11
11
 
@@ -1,11 +1,11 @@
1
- # Celitech Python SDK 2.0.1
1
+ # Celitech Python SDK 2.0.4
2
2
 
3
3
  Welcome to the Celitech SDK documentation. This guide will help you get started with integrating and using the Celitech SDK in your project.
4
4
 
5
5
  ## Versions
6
6
 
7
- - API version: `2.0.1`
8
- - SDK version: `2.0.1`
7
+ - API version: `2.0.4`
8
+ - SDK version: `2.0.4`
9
9
 
10
10
  ## About the API
11
11
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "celitech-sdk"
7
- version = "2.0.1"
7
+ version = "2.0.4"
8
8
  license = { text = "MIT" }
9
9
  description = """Welcome to the CELITECH API documentation!\n\nUseful links: [Homepage](https://www.celitech.com) | [Support email](mailto:support@celitech.com) | [Blog](https://www.celitech.com/blog/)\n"""
10
10
  readme = "PyPI_README.md"
@@ -0,0 +1,142 @@
1
+ """Lazy model exports.
2
+
3
+ Names are resolved on first attribute access via PEP 562 ``__getattr__``,
4
+ then cached in module globals. Avoids the multi-second eager-import cost
5
+ on SDKs with thousands of generated models.
6
+ """
7
+
8
+ import importlib
9
+
10
+ _MODEL_TO_MODULE = {
11
+ "ListDestinationsOkResponse": "list_destinations_ok_response",
12
+ "Destinations": "list_destinations_ok_response",
13
+ "ListPackagesOkResponse": "list_packages_ok_response",
14
+ "Packages": "list_packages_ok_response",
15
+ "CreatePurchaseV2Request": "create_purchase_v2_request",
16
+ "CreatePurchaseV2RequestLanguage": "create_purchase_v2_request",
17
+ "CreatePurchaseV2OkResponse": "create_purchase_v2_ok_response",
18
+ "CreatePurchaseV2OkResponsePurchase": "create_purchase_v2_ok_response",
19
+ "CreatePurchaseV2OkResponseProfile": "create_purchase_v2_ok_response",
20
+ "ListPurchasesOkResponse": "list_purchases_ok_response",
21
+ "Purchases": "list_purchases_ok_response",
22
+ "CreatePurchaseRequest": "create_purchase_request",
23
+ "CreatePurchaseRequestLanguage": "create_purchase_request",
24
+ "CreatePurchaseOkResponse": "create_purchase_ok_response",
25
+ "CreatePurchaseOkResponsePurchase": "create_purchase_ok_response",
26
+ "CreatePurchaseOkResponseProfile": "create_purchase_ok_response",
27
+ "TopUpEsimRequest": "top_up_esim_request",
28
+ "TopUpEsimOkResponse": "top_up_esim_ok_response",
29
+ "TopUpEsimOkResponsePurchase": "top_up_esim_ok_response",
30
+ "TopUpEsimOkResponseProfile": "top_up_esim_ok_response",
31
+ "EditPurchaseRequest": "edit_purchase_request",
32
+ "EditPurchaseOkResponse": "edit_purchase_ok_response",
33
+ "GetPurchaseConsumptionOkResponse": "get_purchase_consumption_ok_response",
34
+ "GetEsimOkResponse": "get_esim_ok_response",
35
+ "GetEsimOkResponseEsim": "get_esim_ok_response",
36
+ "GetEsimDeviceOkResponse": "get_esim_device_ok_response",
37
+ "Device": "get_esim_device_ok_response",
38
+ "GetEsimHistoryOkResponse": "get_esim_history_ok_response",
39
+ "GetEsimHistoryOkResponseEsim": "get_esim_history_ok_response",
40
+ "TokenOkResponse": "token_ok_response",
41
+ "OAuthTokenRequest": "o_auth_token_request",
42
+ "OAuthTokenResponse": "o_auth_token_response",
43
+ "GrantType": "grant_type",
44
+ "BadRequest": "bad_request",
45
+ "Unauthorized": "unauthorized",
46
+ }
47
+
48
+ _REBUILD_NAMES = frozenset(
49
+ {
50
+ "ListDestinationsOkResponse",
51
+ "Destinations",
52
+ "ListPackagesOkResponse",
53
+ "Packages",
54
+ "CreatePurchaseV2Request",
55
+ "CreatePurchaseV2OkResponse",
56
+ "CreatePurchaseV2OkResponsePurchase",
57
+ "CreatePurchaseV2OkResponseProfile",
58
+ "ListPurchasesOkResponse",
59
+ "Purchases",
60
+ "CreatePurchaseRequest",
61
+ "CreatePurchaseOkResponse",
62
+ "CreatePurchaseOkResponsePurchase",
63
+ "CreatePurchaseOkResponseProfile",
64
+ "TopUpEsimRequest",
65
+ "TopUpEsimOkResponse",
66
+ "TopUpEsimOkResponsePurchase",
67
+ "TopUpEsimOkResponseProfile",
68
+ "EditPurchaseRequest",
69
+ "EditPurchaseOkResponse",
70
+ "GetPurchaseConsumptionOkResponse",
71
+ "GetEsimOkResponse",
72
+ "GetEsimOkResponseEsim",
73
+ "GetEsimDeviceOkResponse",
74
+ "Device",
75
+ "GetEsimHistoryOkResponse",
76
+ "GetEsimHistoryOkResponseEsim",
77
+ "TokenOkResponse",
78
+ "OAuthTokenRequest",
79
+ "OAuthTokenResponse",
80
+ }
81
+ )
82
+
83
+ __all__ = list(_MODEL_TO_MODULE.keys())
84
+
85
+ _rebuilt = False
86
+
87
+
88
+ def _load(name):
89
+ module = _MODEL_TO_MODULE.get(name)
90
+ if module is None:
91
+ return None
92
+ obj = getattr(importlib.import_module("." + module, __name__), name)
93
+ globals()[name] = obj
94
+ return obj
95
+
96
+
97
+ def _ensure_rebuilt():
98
+ """Resolve forward refs across every BaseModel in one batched pass.
99
+
100
+ Individual model files import their cross-references inside a
101
+ ``TYPE_CHECKING`` block, so at runtime each file's globals contain
102
+ only itself. ``model_rebuild()`` walks the call stack to find
103
+ forward-ref names — calling it from this module once every
104
+ BaseModel has been loaded into our globals is what lets pydantic
105
+ resolve circular refs (the same shape the prior eager-import form
106
+ relied on). Enums, Union types, and error models stay lazy.
107
+ """
108
+ global _rebuilt
109
+ if _rebuilt:
110
+ return
111
+ _rebuilt = True
112
+ for name in _REBUILD_NAMES:
113
+ if name not in globals():
114
+ try:
115
+ _load(name)
116
+ except Exception:
117
+ pass
118
+ ns = globals()
119
+ for name in _REBUILD_NAMES:
120
+ cls = ns.get(name)
121
+ if cls is None:
122
+ continue
123
+ try:
124
+ # _types_namespace is mandatory: pydantic resolves forward refs
125
+ # against caller-frame locals by default, but we're calling from
126
+ # inside a helper — the names live in this module's globals.
127
+ cls.model_rebuild(_types_namespace=ns)
128
+ except Exception:
129
+ pass
130
+
131
+
132
+ def __getattr__(name):
133
+ if name not in _MODEL_TO_MODULE:
134
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
135
+ obj = _load(name)
136
+ if name in _REBUILD_NAMES:
137
+ _ensure_rebuilt()
138
+ return obj
139
+
140
+
141
+ def __dir__():
142
+ return sorted(set(globals()).union(_MODEL_TO_MODULE))
@@ -1,5 +1,5 @@
1
1
  from enum import Enum
2
- from typing import get_args, Union
2
+ from typing import Any, get_args, Union
3
3
  from inspect import isclass
4
4
  from .one_of_base_model import OneOfBaseModel
5
5
  from pydantic import ValidationError
@@ -40,6 +40,14 @@ def cast_models(func):
40
40
  :param input_type: The type of the input.
41
41
  :return: The instanced type.
42
42
  """
43
+ # `typing.Any` means "no validation" — pass the data through
44
+ # unchanged. Without this guard, downstream branches eventually
45
+ # call `isinstance(data, Any)`, which raises
46
+ # `TypeError: typing.Any cannot be used with isinstance()` and
47
+ # crashes any method whose annotation propagates an Any-schema.
48
+ if input_type is Any:
49
+ return data
50
+
43
51
  # Instanciate oneOf models
44
52
  if _is_one_of_model(input_type):
45
53
  class_list = {
@@ -72,6 +80,11 @@ def cast_models(func):
72
80
  # Instanciate list of object models
73
81
  elif isinstance(data, list) and all(isinstance(i, dict) for i in data):
74
82
  element_type = get_args(input_type)[0]
83
+ # `List[Any]` — no per-item validation, just return the list as-is.
84
+ # Otherwise the else-branch would call `Any(**item)` which raises
85
+ # `TypeError: Cannot instantiate typing.Any`.
86
+ if element_type is Any:
87
+ return data
75
88
  # Pydantic models: use model_validate() for each item
76
89
  if hasattr(element_type, "model_validate"):
77
90
  try:
@@ -68,6 +68,13 @@ class OneOfBaseModel:
68
68
  :return: An instance of the class if the input data matches the class constructor
69
69
  or can be used to initialize the class, None otherwise.
70
70
  """
71
+ # `Union[..., Any]` / `Optional[Any]` propagate `typing.Any` through
72
+ # `class_list`. `isinstance(..., Any)` raises, so short-circuit and
73
+ # pass the data through — `Any` in a oneOf means the branch accepts
74
+ # anything by definition.
75
+ if class_constructor is Any:
76
+ return input_data
77
+
71
78
  # Check if the class is only a TypeHint.
72
79
  origin = get_origin(class_constructor)
73
80
  if origin is not None and isinstance(input_data, list):
@@ -108,6 +115,11 @@ class OneOfBaseModel:
108
115
 
109
116
  inner_type = args[0]
110
117
 
118
+ # `List[Any]` inside a oneOf branch — every item satisfies it by
119
+ # definition, and `isinstance(item, Any)` would raise.
120
+ if inner_type is Any:
121
+ return input_data
122
+
111
123
  if not all(isinstance(item, inner_type) for item in input_data):
112
124
  return [inner_type._unmap(item) for item in input_data]
113
125
 
@@ -108,7 +108,7 @@ class TokenManager:
108
108
  from ...services.o_auth import OAuthService
109
109
 
110
110
  service = OAuthService(base_url=self._base_oauth_url, token_manager=self)
111
- return service.get_access_token(
111
+ return service.get_access_token_(
112
112
  request_body={
113
113
  k: v
114
114
  for k, v in {
@@ -25,3 +25,12 @@ class ApiError(Exception):
25
25
  self.message = message
26
26
  self.status = status
27
27
  self.response = response
28
+ super().__init__(message)
29
+
30
+ def __str__(self) -> str:
31
+ parts = []
32
+ if self.status is not None:
33
+ parts.append(f"status={self.status}")
34
+ if self.message:
35
+ parts.append(self.message)
36
+ return ": ".join(parts)
@@ -45,7 +45,7 @@ class Serializer:
45
45
  self.errors: dict[int, ApiError] = {}
46
46
  self.config: Optional["SdkConfig"] = config
47
47
 
48
- self.headers["User-Agent"] = "postman-codegen/1.3.3 celitech-sdk/2.0.1 (python)"
48
+ self.headers["User-Agent"] = "postman-codegen/1.5.0 celitech-sdk/2.0.4 (python)"
49
49
 
50
50
  # Apply default headers
51
51
  for header in default_headers:
@@ -10,12 +10,12 @@ class OAuthServiceAsync(OAuthService):
10
10
  Async Wrapper for OAuthServiceAsync
11
11
  """
12
12
 
13
- def get_access_token(
13
+ def get_access_token_(
14
14
  self,
15
15
  request_body: OAuthTokenRequest,
16
16
  *,
17
17
  request_config: Optional[SdkConfig] = None,
18
18
  ) -> Awaitable[OAuthTokenResponse]:
19
- return to_async(super().get_access_token)(
19
+ return to_async(super().get_access_token_)(
20
20
  request_body, request_config=request_config
21
21
  )
@@ -18,26 +18,26 @@ class OAuthService(BaseService):
18
18
  def __init__(self, *args, **kwargs):
19
19
  """Initialize the service and method-level configurations."""
20
20
  super().__init__(*args, **kwargs)
21
- self._get_access_token_config: SdkConfig = {}
21
+ self._get_access_token__config: SdkConfig = {}
22
22
 
23
- def set_get_access_token_config(self, config: SdkConfig):
23
+ def set_get_access_token__config(self, config: SdkConfig):
24
24
  """
25
- Sets method-level configuration for get_access_token.
25
+ Sets method-level configuration for get_access_token_.
26
26
 
27
27
  :param SdkConfig config: Configuration dictionary to override service-level defaults.
28
28
  :return: The service instance for method chaining.
29
29
  """
30
- self._get_access_token_config = config
30
+ self._get_access_token__config = config
31
31
  return self
32
32
 
33
33
  @cast_models
34
- def get_access_token(
34
+ def get_access_token_(
35
35
  self,
36
36
  request_body: OAuthTokenRequest,
37
37
  *,
38
38
  request_config: Optional[SdkConfig] = None,
39
39
  ) -> OAuthTokenResponse:
40
- """get_access_token
40
+ """get_access_token_
41
41
 
42
42
  :param request_body: The request body.
43
43
  :type request_body: OAuthTokenRequest
@@ -51,7 +51,7 @@ class OAuthService(BaseService):
51
51
  Validator(OAuthTokenRequest).validate(request_body)
52
52
 
53
53
  resolved_config = self._get_resolved_config(
54
- self._get_access_token_config, request_config
54
+ self._get_access_token__config, request_config
55
55
  )
56
56
 
57
57
  serialized_request = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: celitech-sdk
3
- Version: 2.0.1
3
+ Version: 2.0.4
4
4
  Summary: Welcome to the CELITECH API documentation!
5
5
  License: MIT
6
6
  Project-URL: Repository, https://github.com/Celitech/CelitechSDKPython
@@ -11,14 +11,14 @@ Requires-Dist: requests>=2.31.0
11
11
  Requires-Dist: pydantic<3.0.0,>=2.0.0
12
12
  Dynamic: license-file
13
13
 
14
- # Celitech Python SDK 2.0.1<a id="celitech-python-sdk-201"></a>
14
+ # Celitech Python SDK 2.0.4<a id="celitech-python-sdk-204"></a>
15
15
 
16
16
  Welcome to the Celitech SDK documentation. This guide will help you get started with integrating and using the Celitech SDK in your project.
17
17
 
18
18
  ## Versions<a id="versions"></a>
19
19
 
20
- - API version: `2.0.1`
21
- - SDK version: `2.0.1`
20
+ - API version: `2.0.4`
21
+ - SDK version: `2.0.4`
22
22
 
23
23
  ## About the API<a id="about-the-api"></a>
24
24
 
@@ -1,75 +0,0 @@
1
- from .list_destinations_ok_response import ListDestinationsOkResponse, Destinations
2
- from .list_packages_ok_response import ListPackagesOkResponse, Packages
3
- from .create_purchase_v2_request import (
4
- CreatePurchaseV2Request,
5
- CreatePurchaseV2RequestLanguage,
6
- )
7
- from .create_purchase_v2_ok_response import (
8
- CreatePurchaseV2OkResponse,
9
- CreatePurchaseV2OkResponsePurchase,
10
- CreatePurchaseV2OkResponseProfile,
11
- )
12
- from .list_purchases_ok_response import ListPurchasesOkResponse, Purchases
13
- from .create_purchase_request import (
14
- CreatePurchaseRequest,
15
- CreatePurchaseRequestLanguage,
16
- )
17
- from .create_purchase_ok_response import (
18
- CreatePurchaseOkResponse,
19
- CreatePurchaseOkResponsePurchase,
20
- CreatePurchaseOkResponseProfile,
21
- )
22
- from .top_up_esim_request import TopUpEsimRequest
23
- from .top_up_esim_ok_response import (
24
- TopUpEsimOkResponse,
25
- TopUpEsimOkResponsePurchase,
26
- TopUpEsimOkResponseProfile,
27
- )
28
- from .edit_purchase_request import EditPurchaseRequest
29
- from .edit_purchase_ok_response import EditPurchaseOkResponse
30
- from .get_purchase_consumption_ok_response import GetPurchaseConsumptionOkResponse
31
- from .get_esim_ok_response import GetEsimOkResponse, GetEsimOkResponseEsim
32
- from .get_esim_device_ok_response import GetEsimDeviceOkResponse, Device
33
- from .get_esim_history_ok_response import (
34
- GetEsimHistoryOkResponse,
35
- GetEsimHistoryOkResponseEsim,
36
- )
37
- from .token_ok_response import TokenOkResponse
38
- from .o_auth_token_request import OAuthTokenRequest
39
- from .o_auth_token_response import OAuthTokenResponse
40
- from .grant_type import GrantType
41
- from .bad_request import BadRequest
42
- from .unauthorized import Unauthorized
43
-
44
- # Rebuild models to resolve circular forward references
45
- # This ensures Pydantic can properly validate models that reference each other
46
- ListDestinationsOkResponse.model_rebuild()
47
- Destinations.model_rebuild()
48
- ListPackagesOkResponse.model_rebuild()
49
- Packages.model_rebuild()
50
- CreatePurchaseV2Request.model_rebuild()
51
- CreatePurchaseV2OkResponse.model_rebuild()
52
- CreatePurchaseV2OkResponsePurchase.model_rebuild()
53
- CreatePurchaseV2OkResponseProfile.model_rebuild()
54
- ListPurchasesOkResponse.model_rebuild()
55
- Purchases.model_rebuild()
56
- CreatePurchaseRequest.model_rebuild()
57
- CreatePurchaseOkResponse.model_rebuild()
58
- CreatePurchaseOkResponsePurchase.model_rebuild()
59
- CreatePurchaseOkResponseProfile.model_rebuild()
60
- TopUpEsimRequest.model_rebuild()
61
- TopUpEsimOkResponse.model_rebuild()
62
- TopUpEsimOkResponsePurchase.model_rebuild()
63
- TopUpEsimOkResponseProfile.model_rebuild()
64
- EditPurchaseRequest.model_rebuild()
65
- EditPurchaseOkResponse.model_rebuild()
66
- GetPurchaseConsumptionOkResponse.model_rebuild()
67
- GetEsimOkResponse.model_rebuild()
68
- GetEsimOkResponseEsim.model_rebuild()
69
- GetEsimDeviceOkResponse.model_rebuild()
70
- Device.model_rebuild()
71
- GetEsimHistoryOkResponse.model_rebuild()
72
- GetEsimHistoryOkResponseEsim.model_rebuild()
73
- TokenOkResponse.model_rebuild()
74
- OAuthTokenRequest.model_rebuild()
75
- OAuthTokenResponse.model_rebuild()
File without changes
File without changes