luna-quantum 1.0.4rc4__cp313-cp313-macosx_10_12_x86_64.whl → 1.0.5rc2__cp313-cp313-macosx_10_12_x86_64.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.

Potentially problematic release.


This version of luna-quantum might be problematic. Click here for more details.

Binary file
luna_quantum/_core.pyi CHANGED
@@ -854,6 +854,14 @@ class Solution:
854
854
  """
855
855
  ...
856
856
 
857
+ def repr_html(self, /) -> str:
858
+ """Represent the solution as a html table.
859
+
860
+ Returns
861
+ -------
862
+ str
863
+ """
864
+
857
865
  def __getitem__(self, item: int, /) -> ResultView:
858
866
  """
859
867
  Extract a result view from the `Solution` object.
@@ -952,6 +960,22 @@ class Solution:
952
960
  """Get the names of all variables in the solution."""
953
961
  ...
954
962
 
963
+ def cvar(self, /, alpha: float) -> float:
964
+ """
965
+ Compute the Conditional Value at Rist (CVaR) of the solution.
966
+
967
+ Returns
968
+ -------
969
+ float
970
+ The CVaR.
971
+
972
+ Raises
973
+ ------
974
+ ComputationError
975
+ If the computation fails for any reason.
976
+ """
977
+ ...
978
+
955
979
  def expectation_value(self, /) -> float:
956
980
  """
957
981
  Compute the expectation value of the solution.
@@ -2907,6 +2931,20 @@ class Expression:
2907
2931
  """
2908
2932
  ...
2909
2933
 
2934
+ def equal_contents(self, other: Expression, /) -> bool:
2935
+ """
2936
+ Check whether this expression has equal contents as `other`.
2937
+
2938
+ Parameters
2939
+ ----------
2940
+ other : Expression
2941
+
2942
+ Returns
2943
+ -------
2944
+ bool
2945
+ """
2946
+ ...
2947
+
2910
2948
  @overload
2911
2949
  def encode(self, /) -> bytes: ...
2912
2950
  @overload
@@ -2959,7 +2997,7 @@ class Expression:
2959
2997
  ...
2960
2998
 
2961
2999
  @classmethod
2962
- def decode(cls, data: bytes) -> Expression:
3000
+ def decode(cls, data: bytes, env: Environment) -> Expression:
2963
3001
  """
2964
3002
  Reconstruct an expression from encoded bytes.
2965
3003
 
@@ -2967,6 +3005,8 @@ class Expression:
2967
3005
  ----------
2968
3006
  data : bytes
2969
3007
  Binary blob returned by `encode()`.
3008
+ env : Environment
3009
+ The environment of the expression.
2970
3010
 
2971
3011
  Returns
2972
3012
  -------
@@ -2981,7 +3021,7 @@ class Expression:
2981
3021
  ...
2982
3022
 
2983
3023
  @classmethod
2984
- def deserialize(cls, data: bytes) -> Expression:
3024
+ def deserialize(cls, data: bytes, env: Environment) -> Expression:
2985
3025
  """
2986
3026
  Alias for `decode()`.
2987
3027
 
@@ -3549,6 +3589,20 @@ class Environment:
3549
3589
  """
3550
3590
  ...
3551
3591
 
3592
+ def equal_contents(self, other: Environment, /) -> bool:
3593
+ """
3594
+ Check whether this environment has equal contents as `other`.
3595
+
3596
+ Parameters
3597
+ ----------
3598
+ other : Environment
3599
+
3600
+ Returns
3601
+ -------
3602
+ bool
3603
+ """
3604
+ ...
3605
+
3552
3606
  def __eq__(self, other: Environment, /) -> bool: ...
3553
3607
  def __str__(self, /) -> str: ...
3554
3608
  def __repr__(self, /) -> str: ...
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import os
4
+ from abc import abstractmethod
4
5
  from contextlib import suppress
5
6
  from enum import Enum
6
7
  from http import HTTPStatus
@@ -48,6 +49,9 @@ class APIKeyAuth(httpx.Auth):
48
49
  def __init__(self, token: str) -> None:
49
50
  self.token = token
50
51
 
52
+ self.dev_header_value = os.getenv("LUNA_DEV_EXTRA_HEADER_VALUE", None)
53
+ self.dev_header_name = os.getenv("LUNA_DEV_EXTRA_HEADER_NAME", None)
54
+
51
55
  def auth_flow(self, request: Request) -> Generator[Request, Response]:
52
56
  """
53
57
  Authenticate a request to Luna platform.
@@ -59,20 +63,44 @@ class APIKeyAuth(httpx.Auth):
59
63
  """
60
64
  request.headers["Luna-API-Key"] = self.token
61
65
 
62
- dev_header_value = os.getenv("LUNA_DEV_EXTRA_HEADER_VALUE", None)
63
- dev_header_name = os.getenv("LUNA_DEV_EXTRA_HEADER_NAME", None)
64
- if dev_header_name and dev_header_value:
65
- request.headers[dev_header_name] = dev_header_value
66
+ if self.dev_header_name and self.dev_header_value:
67
+ request.headers[self.dev_header_name] = self.dev_header_value
66
68
  yield request
67
69
 
70
+ def __eq__(self, other: object) -> bool:
71
+ """
72
+ Check if the object is equal to the current instance.
73
+
74
+ Parameters
75
+ ----------
76
+ other: object
77
+ Object to compare with the current instance.
78
+
79
+ Returns
80
+ -------
81
+ bool:
82
+ True if the object is equal to the current instance, False otherwise.
83
+
84
+ """
85
+ if self is other:
86
+ return True
87
+ if not isinstance(other, APIKeyAuth):
88
+ return False
89
+ return (
90
+ self.token == other.token
91
+ and self.dev_header_name == other.dev_header_name
92
+ and self.dev_header_value == other.dev_header_value
93
+ )
94
+
68
95
 
69
96
  class LunaPlatformClient(IService):
70
97
  """Luna platform REST client."""
71
98
 
72
- _base_url: str = ""
99
+ _base_url: str
73
100
 
74
101
  _httpx_client: httpx.Client
75
102
  _api_key: ClassVar[str | None] = None
103
+ _timeout: float | None = None
76
104
 
77
105
  @property
78
106
  def client(self) -> httpx.Client:
@@ -85,9 +113,13 @@ class LunaPlatformClient(IService):
85
113
  """
86
114
  return self._httpx_client
87
115
 
116
+ @classmethod
117
+ @abstractmethod
118
+ def get_api(cls) -> LunaPrefixEnum:
119
+ """Return the api of the client."""
120
+
88
121
  def __init__(
89
122
  self,
90
- api: LunaPrefixEnum,
91
123
  api_key: str | None = None,
92
124
  base_url: str | None = None,
93
125
  timeout: float | None = 240.0,
@@ -116,12 +148,46 @@ class LunaPlatformClient(IService):
116
148
  itself will time out after 240 seconds.
117
149
  Default: 240.0
118
150
  """
119
- if base_url is None:
120
- base_url = os.getenv("LUNA_BASE_URL", "https://api.aqarios.com")
121
- if os.getenv("LUNA_DISABLE_SUFFIX", "false").lower() == "true":
122
- self._base_url = f"{base_url}/api/v1"
123
- else:
124
- self._base_url = f"{base_url}/{api.value}/api/v1"
151
+ self._base_url = self._get_base_url(base_url)
152
+ self._timeout = timeout
153
+
154
+ api_key = self._get_api_key(api_key)
155
+
156
+ self.dev_header_value = os.getenv("LUNA_DEV_EXTRA_HEADER_VALUE", None)
157
+ self.dev_header_name = os.getenv("LUNA_DEV_EXTRA_HEADER_NAME", None)
158
+
159
+ self._httpx_client = LunaHTTPClient(
160
+ auth=APIKeyAuth(api_key),
161
+ base_url=self._base_url,
162
+ follow_redirects=True,
163
+ timeout=self._timeout,
164
+ event_hooks={"response": [check_httpx_exceptions]},
165
+ )
166
+
167
+ self._authenticate()
168
+
169
+ def _get_api_key(self, api_key: str | None = None) -> str:
170
+ """
171
+ Retrieve the API key for authentication.
172
+
173
+ Get the API key from provided arguments, class-specific key, or environment
174
+ variables. Raises an error if no API key is available.
175
+
176
+ Parameters
177
+ ----------
178
+ api_key : str or None, optional
179
+ An API key string if provided.
180
+
181
+ Returns
182
+ -------
183
+ str
184
+ The API key to be used for authentication.
185
+
186
+ Raises
187
+ ------
188
+ LunaApiKeyMissingError
189
+ If no API key is available from any source.
190
+ """
125
191
  if api_key:
126
192
  auth_key = api_key
127
193
  elif self.__class__._api_key: # noqa: SLF001 Use here self.__class__ so that LunaSolve and LunaQ can have different api keys set
@@ -130,16 +196,31 @@ class LunaPlatformClient(IService):
130
196
  auth_key = key
131
197
  else:
132
198
  raise LunaApiKeyMissingError
199
+ return auth_key
133
200
 
134
- self._httpx_client = LunaHTTPClient(
135
- auth=APIKeyAuth(auth_key),
136
- base_url=self._base_url,
137
- follow_redirects=True,
138
- timeout=timeout,
139
- event_hooks={"response": [check_httpx_exceptions]},
140
- )
201
+ def _get_base_url(self, base_url: str | None = None) -> str:
202
+ """
203
+ Get the base url.
141
204
 
142
- self._authenticate()
205
+ Parameters
206
+ ----------
207
+ base_url: str
208
+ Base API URL.
209
+ If you want to use API not on your local PC then change it.
210
+ You can do that by setting the environment variable LUNA_BASE_URL.
211
+ Default value https://api.aqarios.com.
212
+
213
+ Returns
214
+ -------
215
+ str
216
+ Base url.
217
+
218
+ """
219
+ if base_url is None:
220
+ base_url = os.getenv("LUNA_BASE_URL", "https://api.aqarios.com")
221
+ if os.getenv("LUNA_DISABLE_SUFFIX", "false").lower() == "true":
222
+ return f"{base_url}/api/v1"
223
+ return f"{base_url}/{self.get_api().value}/api/v1"
143
224
 
144
225
  def __del__(self) -> None: # noqa: D105
145
226
  if hasattr(self, "_httpx_client"):
@@ -153,3 +234,23 @@ class LunaPlatformClient(IService):
153
234
  if exception.response.status_code == HTTPStatus.UNAUTHORIZED:
154
235
  raise LunaApiKeyInvalidError from exception
155
236
  raise
237
+
238
+ def is_same(
239
+ self,
240
+ api_key: str | None = None,
241
+ ) -> bool:
242
+ """
243
+ Whether the service is created with the current environment variables.
244
+
245
+ Returns
246
+ -------
247
+ bool:
248
+ True if the service is created with the current environment variables.
249
+ False otherwise.
250
+ """
251
+ api_key = self._get_api_key(api_key)
252
+
253
+ return (
254
+ self._get_base_url() == self._base_url
255
+ and APIKeyAuth(api_key) == self._httpx_client.auth
256
+ )
@@ -38,11 +38,16 @@ class LunaQ(LunaPlatformClient, ILunaQ):
38
38
  itself will time out after 240 seconds.
39
39
  Default: 240.0
40
40
  """
41
- super().__init__(api_key=api_key, api=LunaPrefixEnum.LUNA_Q, timeout=timeout)
41
+ super().__init__(api_key=api_key, timeout=timeout)
42
42
 
43
43
  self.circuit = CircuitRestClient(self)
44
44
  self.qpu_token = QpuTokenRestClient(self)
45
45
 
46
+ @classmethod
47
+ def get_api(cls) -> LunaPrefixEnum:
48
+ """Return the api of the client."""
49
+ return LunaPrefixEnum.LUNA_Q
50
+
46
51
  @classmethod
47
52
  def authenticate(cls, api_key: str) -> None:
48
53
  """
@@ -53,7 +53,6 @@ class LunaSolve(LunaPlatformClient, ILunaSolve):
53
53
  """
54
54
  super().__init__(
55
55
  api_key=api_key,
56
- api=LunaPrefixEnum.LUNA_SOLVE,
57
56
  timeout=timeout,
58
57
  )
59
58
 
@@ -62,6 +61,11 @@ class LunaSolve(LunaPlatformClient, ILunaSolve):
62
61
  self._qpu_token = QpuTokenRestClient(self)
63
62
  self._info = InfoRestClient(self)
64
63
 
64
+ @classmethod
65
+ def get_api(cls) -> LunaPrefixEnum:
66
+ """Return the api of the client."""
67
+ return LunaPrefixEnum.LUNA_SOLVE
68
+
65
69
  @classmethod
66
70
  def authenticate(cls, api_key: str) -> None:
67
71
  """
@@ -34,3 +34,23 @@ class IService(ABC):
34
34
  None
35
35
  This method does not return any value.
36
36
  """
37
+
38
+ @abstractmethod
39
+ def is_same(
40
+ self,
41
+ api_key: str | None = None,
42
+ ) -> bool:
43
+ """
44
+ Whether the service is created with the current environment variables.
45
+
46
+ Parameters
47
+ ----------
48
+ api_key: str
49
+ User's API key
50
+
51
+ Returns
52
+ -------
53
+ bool:
54
+ True if the service is created with the current environment variables.
55
+ False otherwise.
56
+ """
@@ -1,6 +1,8 @@
1
+ from logging import Logger
1
2
  from typing import ClassVar
2
3
 
3
4
  from luna_quantum.client.interfaces.services.luna_solve_i import ILunaSolve
5
+ from luna_quantum.util.log_utils import Logging
4
6
 
5
7
 
6
8
  class LunaSolveClientFactory:
@@ -11,8 +13,11 @@ class LunaSolveClientFactory:
11
13
  based on class configurations and input specifications.
12
14
  """
13
15
 
16
+ _logger: Logger = Logging.get_logger(__name__)
14
17
  _client_class: ClassVar[type[ILunaSolve]]
15
18
 
19
+ _client: ClassVar[ILunaSolve | None] = None
20
+
16
21
  @staticmethod
17
22
  def get_client(client: ILunaSolve | str | None) -> ILunaSolve:
18
23
  """
@@ -34,10 +39,30 @@ class LunaSolveClientFactory:
34
39
  An ILunaSolve client instance.
35
40
  """
36
41
  if isinstance(client, ILunaSolve):
42
+ LunaSolveClientFactory._logger.debug(
43
+ "Client is already an instance of ILunaSolve"
44
+ )
37
45
  return client
38
- if isinstance(client, str):
39
- return LunaSolveClientFactory.get_client_class()(client)
40
- return LunaSolveClientFactory.get_client_class()()
46
+
47
+ if (
48
+ LunaSolveClientFactory._client
49
+ and isinstance(
50
+ LunaSolveClientFactory._client,
51
+ LunaSolveClientFactory.get_client_class(),
52
+ )
53
+ and LunaSolveClientFactory._client.is_same(client)
54
+ ):
55
+ LunaSolveClientFactory._logger.debug(
56
+ "Cache hit. Last used default client is the same as the new one."
57
+ )
58
+ return LunaSolveClientFactory._client
59
+ LunaSolveClientFactory._logger.debug(
60
+ "Cache miss. No used default client or configuration changed. "
61
+ "Creating new client."
62
+ )
63
+ client = LunaSolveClientFactory.get_client_class()(client)
64
+ LunaSolveClientFactory._client = client
65
+ return client
41
66
 
42
67
  @staticmethod
43
68
  def get_client_class() -> type[ILunaSolve]:
@@ -2,7 +2,7 @@ from abc import abstractmethod
2
2
  from logging import Logger
3
3
  from typing import TYPE_CHECKING, Any, ClassVar, Generic
4
4
 
5
- from pydantic import BaseModel, ConfigDict, Field, field_validator
5
+ from pydantic import ConfigDict, Field, field_validator
6
6
 
7
7
  from luna_quantum.aqm_overwrites.model import Model
8
8
  from luna_quantum.client.controllers.luna_solve import LunaSolve
@@ -18,7 +18,7 @@ if TYPE_CHECKING:
18
18
  from luna_quantum.solve.interfaces.usecases import ISolveJobCreateUseCase
19
19
 
20
20
 
21
- class LunaAlgorithm(IAlgorithm[BACKEND_TYPE], BaseModel, Generic[BACKEND_TYPE]):
21
+ class LunaAlgorithm(IAlgorithm[BACKEND_TYPE], Generic[BACKEND_TYPE]):
22
22
  """
23
23
  Class representing a solver for Luna model problems.
24
24
 
@@ -1,6 +1,8 @@
1
1
  from abc import ABC, abstractmethod
2
2
  from typing import Any, Generic, TypeVar
3
3
 
4
+ from pydantic import BaseModel
5
+
4
6
  from luna_quantum.aqm_overwrites.model import Model
5
7
  from luna_quantum.solve.domain.solve_job import SolveJob
6
8
  from luna_quantum.solve.interfaces.backend_i import IBackend
@@ -8,7 +10,7 @@ from luna_quantum.solve.interfaces.backend_i import IBackend
8
10
  BACKEND_TYPE = TypeVar("BACKEND_TYPE", bound=IBackend)
9
11
 
10
12
 
11
- class IAlgorithm(ABC, Generic[BACKEND_TYPE]):
13
+ class IAlgorithm(ABC, BaseModel, Generic[BACKEND_TYPE]):
12
14
  """
13
15
  Interface for an algorithm that performs solve tasks based on a given model.
14
16
 
@@ -123,8 +123,12 @@ class TransformationOutcome:
123
123
  action: ActionType
124
124
  analysis: ...
125
125
 
126
+ @overload
127
+ def __init__(self, model: Model, action: ActionType) -> None: ...
128
+ @overload
129
+ def __init__(self, model: Model, action: ActionType, analysis: object) -> None: ...
126
130
  def __init__(
127
- self, model: Model, action: ActionType, analysis: ... = None
131
+ self, model: Model, action: ActionType, analysis: object | None = ...
128
132
  ) -> None: ...
129
133
  @staticmethod
130
134
  def nothing(model: Model) -> TransformationOutcome:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luna-quantum
3
- Version: 1.0.4rc4
3
+ Version: 1.0.5rc2
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: License :: OSI Approved :: Apache Software License
6
6
  Classifier: Operating System :: OS Independent
@@ -1,11 +1,11 @@
1
- luna_quantum-1.0.4rc4.dist-info/METADATA,sha256=qMWjD8dN2kyDUrpTou7oiHl9ddVZ6ITs_6I3aY7f63c,1585
2
- luna_quantum-1.0.4rc4.dist-info/WHEEL,sha256=NvZaK6sFPuu8Uh9tMXGKWxMrGLxBro5TQniO6rRq4wQ,106
3
- luna_quantum-1.0.4rc4.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
4
- luna_quantum-1.0.4rc4.dist-info/licenses/NOTICE,sha256=noPOS8eDj5XoyRO8ZrCxIOh5fSjk0RildIrrqxQlepY,588
1
+ luna_quantum-1.0.5rc2.dist-info/METADATA,sha256=omOGZhEsSxty6-LeXM-JIbbA9rayjvMjKBMUCnfhdvU,1585
2
+ luna_quantum-1.0.5rc2.dist-info/WHEEL,sha256=iXfRWk7-127zCPB-_BNFDQE-qLd9Rsj-fJMRKNRg-kg,106
3
+ luna_quantum-1.0.5rc2.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
4
+ luna_quantum-1.0.5rc2.dist-info/licenses/NOTICE,sha256=noPOS8eDj5XoyRO8ZrCxIOh5fSjk0RildIrrqxQlepY,588
5
5
  luna_quantum/__init__.py,sha256=RV92O-Th8ktm0S9kcpfRfECkeeORP-tbDKfpa4u1CiY,3223
6
6
  luna_quantum/__init__.pyi,sha256=1Joa1farT1Ey22yWYPMNPgQrGHIKL8bycrdPUgtQqw8,1661
7
- luna_quantum/_core.cpython-313-darwin.so,sha256=T1yOjUKQPv860aNvbi3HZymI00daJDbb3Hyn_WREQbw,5544112
8
- luna_quantum/_core.pyi,sha256=JnKcoRh_ZUjeWZRZl_K9usnPYHSaIzbYPuXnevjtoYY,113649
7
+ luna_quantum/_core.cpython-313-darwin.so,sha256=wICryRvzaI9kfXKChTMm76YauV1C0icSdvFgO2V-CvE,5532032
8
+ luna_quantum/_core.pyi,sha256=sA0nkwnwiubpOZGb_lSJwJ8mBa4c4YIMLMTK7MBUK4E,114792
9
9
  luna_quantum/algorithms/__init__.py,sha256=IX9ZpzY3Do3mTgKqto5vAWwdYrZrM-RemYSf64yxefg,69
10
10
  luna_quantum/aqm_overwrites/__init__.py,sha256=rteObr5JHDnTnRime0Euq9Qy2iDIp6VMpFNHTGVNBe0,46
11
11
  luna_quantum/aqm_overwrites/model.py,sha256=La5mh-aS2LNLaQFp_B1EnhrKUXVRRmIqGnIvX66uc8Y,6099
@@ -13,9 +13,9 @@ luna_quantum/backends/__init__.py,sha256=OaE9cTpXP07x2mhJ_kLFaHPYZJBzdEQhlP_ztnq
13
13
  luna_quantum/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  luna_quantum/client/controllers/__init__.py,sha256=yG8Gwatlm6f-OH2p3WLTyAsNePUER84eBxx67pkRi4A,156
15
15
  luna_quantum/client/controllers/luna_http_client.py,sha256=Siwtm0wQzdRZXw0ilkUmFXbD8tbRuJI7cEceWwfXos4,1057
16
- luna_quantum/client/controllers/luna_platform_client.py,sha256=-X16kNpuvmFmVZl_QE9y-Qyek8XB90M2uXDqHYCefss,5216
17
- luna_quantum/client/controllers/luna_q.py,sha256=S8-Uvv9TYKC-yRo67T-g0kwIlDoEmluoAQlAl4otrQ4,1930
18
- luna_quantum/client/controllers/luna_solve.py,sha256=oqG_dR_82ccysm5Q4Gp9x7vQBb1xvCb9-mRA8qD8xzE,3399
16
+ luna_quantum/client/controllers/luna_platform_client.py,sha256=hOGDqlKN-w_CjUpU1wVDUTL58AiIsND0iis-SiBGAtc,8013
17
+ luna_quantum/client/controllers/luna_q.py,sha256=27umEkIfMGIYhkEHMz96th3a8KM4phb5Wa9pPY2RqHE,2042
18
+ luna_quantum/client/controllers/luna_solve.py,sha256=ZQSCQXCnc-QfQTPtlMBEohkjk2ppQMoYoW4kU1rPOPg,3499
19
19
  luna_quantum/client/error/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  luna_quantum/client/error/luna_api_key_invalid_error.py,sha256=kCutxPim7PPfzrpNUONychCOhIxYNzJFHiKL6gcaM74,298
21
21
  luna_quantum/client/error/luna_api_key_missing_error.py,sha256=alnuUWV7UOXmteQ0hJ_7_-lAp9IzdLVRTVxHz7ykrss,311
@@ -37,7 +37,7 @@ luna_quantum/client/interfaces/clients/users_rest_client_i.py,sha256=dswGOtmyvAi
37
37
  luna_quantum/client/interfaces/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
38
  luna_quantum/client/interfaces/services/luna_q_i.py,sha256=uHwVwGkJAMsOPUlHQFTy7_8Zkm_1NJFZGz_kr38KIzc,830
39
39
  luna_quantum/client/interfaces/services/luna_solve_i.py,sha256=jp_ZfWv_7lQBBwNuz0OTCsa1uN45FNiy8hpLph3QzVc,1678
40
- luna_quantum/client/interfaces/services/service_i.py,sha256=ruEeQ7zfNRSXgANqHghTYprlC78lovCT5i7Ih-xoT7s,706
40
+ luna_quantum/client/interfaces/services/service_i.py,sha256=8PGI7UELvLOA9bk2p8REDp4PWdWiUc7uBwLTC1TAigc,1158
41
41
  luna_quantum/client/rest_client/__init__.py,sha256=eX8kt99OxkvKvHG1IZK9pvSlPuO4Vn5fVtHfpW3F6Bs,552
42
42
  luna_quantum/client/rest_client/circuit_rest_client.py,sha256=va23jfQPDJ7E7YAL3dnwCKotAoOYtdW7NSsZoYpDzeA,3288
43
43
  luna_quantum/client/rest_client/info_rest_client.py,sha256=Yv8rbJ3QraUpqNsi7rKdpNrYQOff_wD95p2IJhkkrsQ,2222
@@ -88,14 +88,14 @@ luna_quantum/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG
88
88
  luna_quantum/exceptions/base_luna_quantum_error.py,sha256=qC712QkF04FiY_qwQ5HlIYVhg5P6WzXJ_chJDVTpWXI,89
89
89
  luna_quantum/exceptions/patch_class_field_exists_error.py,sha256=3TGKb-MNyjwntrJkbRaBKEvlsj68ROTwCltDt6Zg7Gg,398
90
90
  luna_quantum/factories/__init__.py,sha256=XT0vIcm65KVpYSLbqXdeoPd7yypSj36o1IC55CTaoj4,162
91
- luna_quantum/factories/luna_solve_client_factory.py,sha256=bayl3fQqYsr5uuerHC5F55t7EKktAhI6viDs4AoKWhs,2367
91
+ luna_quantum/factories/luna_solve_client_factory.py,sha256=Y5vqDe8F0HMj3WluHxPl0KbB8KDWRTgWgbZ1igzt3hM,3284
92
92
  luna_quantum/factories/usecase_factory.py,sha256=vp7ZsMOOsPAvyLCdsPNMM-pqLAOnrP2_GqLiB6RP_IQ,14996
93
93
  luna_quantum/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
94
  luna_quantum/solve/__init__.py,sha256=Qu363Ci54FhrhRvuLm6WIFAsyxMwtza8n7ImHPQfxj0,307
95
95
  luna_quantum/solve/default_token.py,sha256=JpMrRtQsczmBYFeMvDOsbabpBfUubGWNVLlwFn2O4Ew,8691
96
96
  luna_quantum/solve/domain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
97
  luna_quantum/solve/domain/abstract/__init__.py,sha256=My23tGRFFJYVe6vwgUM4RAFr26Two1QnNryo5KXyfGU,137
98
- luna_quantum/solve/domain/abstract/luna_algorithm.py,sha256=E0_GAay9cTfsjB_T-tS5PNlh5GkxH9av6uuAZXtUdec,7025
98
+ luna_quantum/solve/domain/abstract/luna_algorithm.py,sha256=Demv5yKfTwbTRQKKO4zg8jbvIN3_zDwjI4azEpdQC8M,7003
99
99
  luna_quantum/solve/domain/abstract/qpu_token_backend.py,sha256=2vLMzDrrJsi2ejVMdNOEuhf9x1e7zGijkIn2GCH--j8,1229
100
100
  luna_quantum/solve/domain/model_metadata.py,sha256=eGwoRxtUBhZLdEJTf8LJdeoundKSllVX2djt4fer6So,1644
101
101
  luna_quantum/solve/domain/solve_job.py,sha256=Svi1PJrqvc3JS1jP7Jj0fu7KXH-VtQ_Swj5q8LYHQqY,6607
@@ -105,7 +105,7 @@ luna_quantum/solve/errors/model_metadata_missing_error.py,sha256=TBTokypD8drCFPF
105
105
  luna_quantum/solve/errors/solve_base_error.py,sha256=WhKaKTbWuQSxA6JLWtGT2x_CY0BUKuGMnB0oCutbA90,170
106
106
  luna_quantum/solve/errors/token_missing_error.py,sha256=PK3n0fe4a57rdSm6gj0qbeh8MQqen91ECpQXZVbGvmw,346
107
107
  luna_quantum/solve/interfaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- luna_quantum/solve/interfaces/algorithm_i.py,sha256=TQ8sScb9vyCxm8CxfX2mWVHbxBmOlogkY2R6LOWszcM,1622
108
+ luna_quantum/solve/interfaces/algorithm_i.py,sha256=dTWDW1CoFElIbVxjnSnA9lPIcrKDV1YJlySTR_p02xI,1665
109
109
  luna_quantum/solve/interfaces/backend_i.py,sha256=dNszKrHSFjBb66ABHPjUUGiENBP3jVN9nGSHJr2R0co,602
110
110
  luna_quantum/solve/interfaces/usecases/__init__.py,sha256=B3_AztBd0sIdDfhttHiydSN2mD5EJJYDb84eZAX0q3k,1414
111
111
  luna_quantum/solve/interfaces/usecases/model_delete_usecase_i.py,sha256=wQL0nE2d5UF9_cRpC-sbeHqKrA_46j9wGtO0_FI4gX8,648
@@ -245,7 +245,7 @@ luna_quantum/solve/usecases/solve_job_delete_usecase.py,sha256=hUOLeFLU9NCggWMGu
245
245
  luna_quantum/solve/usecases/solve_job_fetch_updates_usecase.py,sha256=W-Z6Q7IuyodjZmFKEsJGaa9V2fnGMPWj9FRN9gEdPNc,1686
246
246
  luna_quantum/solve/usecases/solve_job_get_result_usecase.py,sha256=dk6LSjInOfH5d7LlbUmawnqytKig_vFTCKTDK5KlDlI,3541
247
247
  luna_quantum/transformations.py,sha256=AZtGBaJ0PTWsr4mpONoJq5BpNOXPcM85CnWDhPgXx_I,902
248
- luna_quantum/transformations.pyi,sha256=vqx3I1hxKpQivG0WQ_60-Isocme_DD0veVAUO7xycuk,10768
248
+ luna_quantum/transformations.pyi,sha256=wajxfV6QiD6R_7lUfk5kjAXp-ZHhOvLjtPqZCCX3UuU,10963
249
249
  luna_quantum/translator.py,sha256=xi5eiIRNv8ATz69GYpUY5kbEIUmQEtK6_dF5t2Mwpec,1134
250
250
  luna_quantum/translator.pyi,sha256=edLGrIFl6do9LaCH4znjnOD8Zb3va-9nBGq-H3XQHso,26478
251
251
  luna_quantum/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -257,4 +257,4 @@ luna_quantum/util/pretty_base.py,sha256=Vv3dYpMsydOPYFOm-0lCCuJIe-62oYkI64Zy_bah
257
257
  luna_quantum/util/pydantic_utils.py,sha256=nhl_SdLJVAizrtLVHvnbco84g8CdBVdVxN_jlXiv82w,1263
258
258
  luna_quantum/utils.py,sha256=pBOkGXNJXlOzxAwTJv8nCj32Q6WNeh3t6Ka3lmTgy9c,134
259
259
  luna_quantum/utils.pyi,sha256=yHHPluEJArUltZ2jJ9bPtTugj59E9TOTmYdyH35EHtU,1934
260
- luna_quantum-1.0.4rc4.dist-info/RECORD,,
260
+ luna_quantum-1.0.5rc2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.9.3)
2
+ Generator: maturin (1.9.4)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp313-cp313-macosx_10_12_x86_64