luna-quantum 1.0.2__cp312-cp312-macosx_10_12_x86_64.whl → 1.0.3__cp312-cp312-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.

luna_quantum/__init__.py CHANGED
@@ -1,6 +1,7 @@
1
1
  from luna_quantum._core import __luna_quantum_version__
2
2
  from luna_quantum.aqm_overwrites.model import Model
3
3
  from luna_quantum.client.controllers import LunaQ, LunaSolve
4
+ from luna_quantum.config import config
4
5
  from luna_quantum.factories.luna_solve_client_factory import LunaSolveClientFactory
5
6
  from luna_quantum.factories.usecase_factory import UseCaseFactory
6
7
  from luna_quantum.solve import DefaultToken
@@ -107,6 +108,7 @@ __all__ = [
107
108
  "__version__",
108
109
  "algorithms",
109
110
  "backends",
111
+ "config",
110
112
  "constants",
111
113
  "debug_info",
112
114
  "errors",
luna_quantum/__init__.pyi CHANGED
@@ -33,6 +33,7 @@ from .utils import quicksum
33
33
  from luna_quantum._core import __luna_quantum_version__
34
34
  from luna_quantum.aqm_overwrites.model import Model
35
35
  from luna_quantum.client.controllers import LunaQ, LunaSolve
36
+ from luna_quantum.config import config
36
37
  from luna_quantum.solve import DefaultToken
37
38
  from luna_quantum.solve.parameters import algorithms, backends, constants
38
39
  from luna_quantum.util.debug_info import debug_info
@@ -73,6 +74,7 @@ __all__ = [
73
74
  "__version__",
74
75
  "algorithms",
75
76
  "backends",
77
+ "config",
76
78
  "constants",
77
79
  "debug_info",
78
80
  "errors",
Binary file
luna_quantum/_core.pyi CHANGED
@@ -205,6 +205,11 @@ class Variable:
205
205
  """
206
206
  ...
207
207
 
208
+ @property
209
+ def id(self, /) -> int:
210
+ """Get the id of the variable."""
211
+ ...
212
+
208
213
  @property
209
214
  def name(self, /) -> str:
210
215
  """Get the name of the variable."""
@@ -1409,6 +1414,7 @@ class Solution:
1409
1414
  timing: (Timing | None) = ...,
1410
1415
  sense: (Sense | None) = ...,
1411
1416
  bit_order: Literal["LTR", "RTL"] = "RTL",
1417
+ raw_energies: (list[float] | None) = ...,
1412
1418
  ) -> Solution:
1413
1419
  """
1414
1420
  Create a `Solution` from a dict that maps measured bitstrings to counts.
@@ -1431,6 +1437,8 @@ class Solution:
1431
1437
  The sense the model the solution belongs to. Default: Sense.Min
1432
1438
  bit_order : Literal["LTR", "RTL"]
1433
1439
  The order of the bits in the bitstring. Default "RTL".
1440
+ energies: list[float], optional
1441
+ The raw energies for each sample. Default None.
1434
1442
 
1435
1443
  Returns
1436
1444
  -------
@@ -2167,6 +2175,18 @@ class Model:
2167
2175
  """
2168
2176
  ...
2169
2177
 
2178
+ @property
2179
+ def num_variables(self, /) -> int:
2180
+ """
2181
+ Return the number of variables defined in the model.
2182
+
2183
+ Returns
2184
+ -------
2185
+ int
2186
+ Total number of variables.
2187
+ """
2188
+ ...
2189
+
2170
2190
  @property
2171
2191
  def num_constraints(self, /) -> int:
2172
2192
  """
@@ -2369,6 +2389,10 @@ class Model:
2369
2389
  """
2370
2390
  ...
2371
2391
 
2392
+ def vtypes(self, /) -> list[Vtype]:
2393
+ """Get a list of all unique variable types of all variables in this model."""
2394
+ ...
2395
+
2372
2396
  def __str__(self, /) -> str: ...
2373
2397
  def __repr__(self, /) -> str: ...
2374
2398
  def __hash__(self, /) -> int: ...
@@ -2598,6 +2622,17 @@ class Expression:
2598
2622
  """
2599
2623
  ...
2600
2624
 
2625
+ def variables(self, /) -> list[Variable]:
2626
+ """
2627
+ Get all variables that are part of this expression.
2628
+
2629
+ Returns
2630
+ -------
2631
+ list[Variable]
2632
+ The list of active variables
2633
+ """
2634
+ ...
2635
+
2601
2636
  def is_equal(self, /, other: Expression) -> bool:
2602
2637
  """
2603
2638
  Compare two expressions for equality.
@@ -3075,6 +3110,10 @@ class Expression:
3075
3110
  """
3076
3111
  ...
3077
3112
 
3113
+ def degree(self, /) -> int:
3114
+ """Get the degree of this expression."""
3115
+ ...
3116
+
3078
3117
  @property
3079
3118
  def _environment(self, /) -> Environment:
3080
3119
  """Get this expression's environment."""
@@ -3704,6 +3743,10 @@ class Constraints:
3704
3743
  """
3705
3744
  ...
3706
3745
 
3746
+ def ctypes(self, /) -> list[Comparator]:
3747
+ """Get all unique constraint types identified using their comparator."""
3748
+ ...
3749
+
3707
3750
  __version__: str
3708
3751
  __aq_model_version__: str
3709
3752
  __luna_quantum_version__: str
@@ -48,7 +48,7 @@ class APIKeyAuth(httpx.Auth):
48
48
  def __init__(self, token: str) -> None:
49
49
  self.token = token
50
50
 
51
- def auth_flow(self, request: Request) -> Generator[Request, Response, None]:
51
+ def auth_flow(self, request: Request) -> Generator[Request, Response]:
52
52
  """
53
53
  Authenticate a request to Luna platform.
54
54
 
@@ -89,7 +89,7 @@ class LunaPlatformClient(IService):
89
89
  self,
90
90
  api: LunaPrefixEnum,
91
91
  api_key: str | None = None,
92
- base_url: str = os.getenv("LUNA_BASE_URL", "https://api.aqarios.com"),
92
+ base_url: str | None = None,
93
93
  timeout: float | None = 240.0,
94
94
  ) -> None:
95
95
  """
@@ -116,6 +116,8 @@ class LunaPlatformClient(IService):
116
116
  itself will time out after 240 seconds.
117
117
  Default: 240.0
118
118
  """
119
+ if base_url is None:
120
+ base_url = os.getenv("LUNA_BASE_URL", "https://api.aqarios.com")
119
121
  if os.getenv("LUNA_DISABLE_SUFFIX", "false").lower() == "true":
120
122
  self._base_url = f"{base_url}/api/v1"
121
123
  else:
luna_quantum/config.py ADDED
@@ -0,0 +1,11 @@
1
+ from pydantic_settings import BaseSettings
2
+
3
+
4
+ class Config(BaseSettings):
5
+ """Class for all config values."""
6
+
7
+ LUNA_LOG_DEFAULT_LEVEL: str = "INFO"
8
+ LUNA_LOG_DISABLE_SPINNER: bool = False
9
+
10
+
11
+ config = Config()
luna_quantum/errors.pyi CHANGED
@@ -239,6 +239,13 @@ class StartCannotBeInferredError(TypeError):
239
239
  class NoConstraintForKeyError(IndexError):
240
240
  """Raised getting a constraint from the constraints that does not exist."""
241
241
 
242
+ def __str__(self, /) -> str: ...
243
+
244
+ class InternalPanicError(RuntimeError):
245
+ """Raised when an internal and unrecoverable error occurred."""
246
+
247
+ def __str__(self, /) -> str: ...
248
+
242
249
  __all__ = [
243
250
  "ComputationError",
244
251
  "ComputationError",
@@ -247,6 +254,7 @@ __all__ = [
247
254
  "DuplicateConstraintNameError",
248
255
  "EvaluationError",
249
256
  "IllegalConstraintNameError",
257
+ "InternalPanicError",
250
258
  "ModelNotQuadraticError",
251
259
  "ModelNotUnconstrainedError",
252
260
  "ModelSenseNotMinimizeError",
@@ -49,34 +49,6 @@ class Qctrl(QpuTokenBackend):
49
49
  https://docs.q-ctrl.com/fire-opal/topics/fire-opals-qaoa-solver)
50
50
  """
51
51
 
52
- class IBMQ(BaseModel):
53
- """
54
- Configuration parameters for the IBM Quantum backend.
55
-
56
- Attributes
57
- ----------
58
- hub: str, default="ibm-q"
59
- The IBM Quantum hub to use for accessing quantum resources.
60
- This defines your access level and available systems.
61
-
62
- group: str, default="open"
63
- The IBM Quantum group within your hub.
64
- Groups help organize users and projects within a hub.
65
-
66
- project: str, default="main"
67
- The IBM Quantum project within your group.
68
- Projects help organize work and resource allocation.
69
-
70
- token: Union[str, None, QpuToken], default=None
71
- The IBM API token.
72
- """
73
-
74
- hub: str = "ibm-q"
75
- group: str = "open"
76
- project: str = "main"
77
-
78
- token: str | QpuToken | None = Field(repr=False, exclude=True, default=None)
79
-
80
52
  class IBMCloud(BaseModel):
81
53
  """
82
54
  Configuration parameters for the IBM Cloud backend.
@@ -90,14 +62,14 @@ class Qctrl(QpuTokenBackend):
90
62
  The IBM API token.
91
63
  """
92
64
 
93
- instance: str
65
+ instance: str = ""
94
66
 
95
67
  token: str | QpuToken | None = Field(repr=False, exclude=True, default=None)
96
68
 
97
69
  organization_slug: Any = None
98
70
  backend_name: str | None = None
99
71
 
100
- ibm_credentials: IBMQ | IBMCloud = Field(default=IBMQ())
72
+ ibm_credentials: IBMCloud = Field(default=IBMCloud())
101
73
 
102
74
  token: str | QpuToken | None = Field(repr=False, exclude=True, default=None)
103
75
 
@@ -3,13 +3,15 @@ from __future__ import annotations
3
3
  import logging
4
4
  from contextlib import contextmanager
5
5
  from functools import wraps
6
- from typing import TYPE_CHECKING, ClassVar, ParamSpec, TypeVar
6
+ from typing import TYPE_CHECKING, ParamSpec, TypeVar
7
7
 
8
8
  from rich.console import Console
9
9
  from rich.logging import RichHandler
10
10
  from rich.progress import Progress, SpinnerColumn, TaskID, TextColumn
11
11
  from rich.theme import Theme
12
12
 
13
+ from luna_quantum.config import config
14
+
13
15
  if TYPE_CHECKING:
14
16
  from collections.abc import Callable, Generator
15
17
 
@@ -27,7 +29,20 @@ class Logging:
27
29
  - Manage consistent logging behavior across the SDK
28
30
  """
29
31
 
30
- _log_level: ClassVar[int] = logging.INFO
32
+ @staticmethod
33
+ def is_process_bar_shown() -> bool:
34
+ """
35
+ Return whether to use a process bar for progress bars.
36
+
37
+ Returns
38
+ -------
39
+ bool
40
+ Returns whether to use a process bar for progress bars.
41
+ """
42
+ return (
43
+ not config.LUNA_LOG_DISABLE_SPINNER
44
+ and Logging.get_level() != logging.NOTSET
45
+ )
31
46
 
32
47
  @staticmethod
33
48
  def set_level(log_level: int) -> None:
@@ -38,12 +53,12 @@ class Logging:
38
53
  log_level : int
39
54
  Logging level to set (e.g., logging.DEBUG, logging.INFO)
40
55
  """
56
+ config.LUNA_LOG_DEFAULT_LEVEL = logging.getLevelName(log_level)
57
+
41
58
  for logger_name in logging.root.manager.loggerDict:
42
59
  if logger_name.startswith("luna_quantum"): # Only modify SDK loggers
43
60
  logging.getLogger(logger_name).setLevel(log_level)
44
61
 
45
- Logging._log_level = log_level
46
-
47
62
  @staticmethod
48
63
  def get_level() -> int:
49
64
  """Return the current logging level for the SDK.
@@ -54,7 +69,7 @@ class Logging:
54
69
  Current logging level as defined in the logging module
55
70
  (e.g., logging.DEBUG, logging.INFO, etc.)
56
71
  """
57
- return Logging._log_level
72
+ return logging._nameToLevel.get(config.LUNA_LOG_DEFAULT_LEVEL, logging.INFO) # noqa: SLF001 #No other way to map these log levels.
58
73
 
59
74
  @staticmethod
60
75
  def get_console() -> Console:
@@ -85,7 +100,7 @@ class Logging:
85
100
  Configured logger instance with appropriate handlers
86
101
  """
87
102
  logger = logging.getLogger(name)
88
- logger.setLevel(Logging._log_level)
103
+ logger.setLevel(Logging.get_level())
89
104
  logger.propagate = False
90
105
 
91
106
  if logger.hasHandlers():
@@ -107,7 +122,7 @@ class Logging:
107
122
  @contextmanager
108
123
  def progress_bar(
109
124
  total: int | None, desc: str = "", unit: str = "steps"
110
- ) -> Generator[tuple[Progress, TaskID], None, None]:
125
+ ) -> Generator[tuple[Progress, TaskID]]:
111
126
  """Create a progress bar using Rich as a context manager.
112
127
 
113
128
  Parameters
@@ -136,6 +151,7 @@ def progress_bar(
136
151
  )
137
152
  ),
138
153
  transient=True,
154
+ disable=not Logging.is_process_bar_shown(),
139
155
  ) as progress:
140
156
  task = progress.add_task(f"[blue]{desc}", total=total, unit=unit)
141
157
  yield progress, task # Yield both progress and task for updates
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: luna-quantum
3
- Version: 1.0.2
3
+ Version: 1.0.3
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: License :: OSI Approved :: Apache Software License
6
6
  Classifier: Operating System :: OS Independent
7
7
  Classifier: Topic :: Scientific/Engineering
8
8
  Requires-Dist: httpx>=0.28.1,<0.29
9
9
  Requires-Dist: numpy>=1
10
+ Requires-Dist: pydantic-settings>=2.10.1
10
11
  Requires-Dist: pydantic[email]>=2.11.3,<3
11
12
  Requires-Dist: python-dateutil>=2.9.0,<3
12
13
  Requires-Dist: rich>=14.0.0
@@ -15,7 +16,7 @@ License-File: NOTICE
15
16
  Summary: Python SDK for Aqarios' Luna Platform
16
17
  Keywords: aqarios,luna,quantum computing,quantum optimization,optimization,sdk
17
18
  Author-email: Aqarios <pypi@aqarios.com>
18
- License: Apache-2.0
19
+ License-Expression: Apache-2.0
19
20
  Requires-Python: >=3.11.0, <3.14
20
21
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
21
22
  Project-URL: Homepage, https://aqarios.com/
@@ -1,11 +1,11 @@
1
- luna_quantum-1.0.2.dist-info/METADATA,sha256=9lTewsIfCY4ToenZtDn_98Dt5nRwB9evm7As2rgKUnk,1530
2
- luna_quantum-1.0.2.dist-info/WHEEL,sha256=KVbmEBK8XTzklTUWbxeuu65d5JTBhtdzc5NXYKGXnwg,106
3
- luna_quantum-1.0.2.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
4
- luna_quantum-1.0.2.dist-info/licenses/NOTICE,sha256=noPOS8eDj5XoyRO8ZrCxIOh5fSjk0RildIrrqxQlepY,588
5
- luna_quantum/__init__.py,sha256=VVqJBFKl8ET7gJmebXVnTsD33sIFfhxKm7_eB12YVkU,3170
6
- luna_quantum/__init__.pyi,sha256=dG3-NeEI8ApxHUcVq-Ov9Pa9D3Px_5yWUWkxhLsfL80,1608
7
- luna_quantum/_core.cpython-312-darwin.so,sha256=3vnycggN8ftURRpPts6yf7prqkBQ3T92jT-sKZl2lO4,4545372
8
- luna_quantum/_core.pyi,sha256=7HL0LZHypfEWlrnjzk3dT0kG3K92v3FkPylQmc9EITs,105472
1
+ luna_quantum-1.0.3.dist-info/METADATA,sha256=WqZud5UbrQ8KLAVMwHQRW0nvWNBA1IsdGZiZKPkOtCw,1582
2
+ luna_quantum-1.0.3.dist-info/WHEEL,sha256=3A4CNWchZH0MOUJN1Lb2j_exGriVkqYfe_9teGJ9S-Q,106
3
+ luna_quantum-1.0.3.dist-info/licenses/LICENSE,sha256=psuoW8kuDP96RQsdhzwOqi6fyWv0ct8CR6Jr7He_P_k,10173
4
+ luna_quantum-1.0.3.dist-info/licenses/NOTICE,sha256=noPOS8eDj5XoyRO8ZrCxIOh5fSjk0RildIrrqxQlepY,588
5
+ luna_quantum/__init__.py,sha256=RV92O-Th8ktm0S9kcpfRfECkeeORP-tbDKfpa4u1CiY,3223
6
+ luna_quantum/__init__.pyi,sha256=tcM9H4ZAKxgt8KYnFmKH5OHSJZ0zv7J8dMdYMZp6m3s,1661
7
+ luna_quantum/_core.cpython-312-darwin.so,sha256=FGNekSqzDAo4i7qABARABqdASQiYnDsA8dFM7xukMV0,5005316
8
+ luna_quantum/_core.pyi,sha256=CMLYlowGnQD-ZS8JeG2_JUwEn4eOGi0fWMm2aWfs3qs,106566
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,7 +13,7 @@ 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=IqkI3BKbwrtoCZk4pE_lTPFshMyWPEeKkkEm3C6Slvc,5158
16
+ luna_quantum/client/controllers/luna_platform_client.py,sha256=-X16kNpuvmFmVZl_QE9y-Qyek8XB90M2uXDqHYCefss,5216
17
17
  luna_quantum/client/controllers/luna_q.py,sha256=S8-Uvv9TYKC-yRo67T-g0kwIlDoEmluoAQlAl4otrQ4,1930
18
18
  luna_quantum/client/controllers/luna_solve.py,sha256=oqG_dR_82ccysm5Q4Gp9x7vQBb1xvCb9-mRA8qD8xzE,3399
19
19
  luna_quantum/client/error/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -80,8 +80,9 @@ luna_quantum/client/schemas/wrappers/__init__.py,sha256=tfd-JKBLr-0FwVEGKJFfvY1y
80
80
  luna_quantum/client/schemas/wrappers/datetime_wrapper.py,sha256=8K2jexTarxGCgD1ukgVUW5TCroYGWXGfzDfjLcJfYlk,768
81
81
  luna_quantum/client/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  luna_quantum/client/utils/qpu_token_utils.py,sha256=xeWIKcBwXGSQ0INfUY3NMTu6H90T03jkT85yHs2QXmk,4768
83
+ luna_quantum/config.py,sha256=xx7DnjAvOeLUMlXvbXqQ4_EBAy53bjPYU1-QQO6I2lY,217
83
84
  luna_quantum/errors.py,sha256=yjeXB3i07LlTuuJ18IKgwsC5wmtJElN8cDwlg3JkcEs,1424
84
- luna_quantum/errors.pyi,sha256=daGAwiOdpgHPILYVSUy360AZQilRb-vdwh2pwAAn3CU,8900
85
+ luna_quantum/errors.pyi,sha256=qrGBpkd_eOpgjHuNBAoIYJOk7s64jvVO4Bcipue4P3k,9111
85
86
  luna_quantum/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
87
  luna_quantum/exceptions/base_luna_quantum_error.py,sha256=qC712QkF04FiY_qwQ5HlIYVhg5P6WzXJ_chJDVTpWXI,89
87
88
  luna_quantum/exceptions/patch_class_field_exists_error.py,sha256=3TGKb-MNyjwntrJkbRaBKEvlsj68ROTwCltDt6Zg7Gg,398
@@ -174,7 +175,7 @@ luna_quantum/solve/parameters/backends/aws/rigetti.py,sha256=04Rg7CEz_70Aqd1f28O
174
175
  luna_quantum/solve/parameters/backends/dwave.py,sha256=ZIbZa0lY4TN1jYl5ddlAxhb5_lK4Zuuf1gyQ1fncf8w,358
175
176
  luna_quantum/solve/parameters/backends/dwave_qpu.py,sha256=8RJ4zPqLvplPsTmN3D8pNU5-XjwwAEYEvlIgTUPc5Ag,7314
176
177
  luna_quantum/solve/parameters/backends/ibm.py,sha256=pDw-0sifu_dfJS4zH2INu6txPh0NgaYDNxPQHEhaF7o,4231
177
- luna_quantum/solve/parameters/backends/qctrl.py,sha256=FEFd-FjLwS7QfrELs25-w_8L_9Ye5KLSZSN4xWFE0IE,4397
178
+ luna_quantum/solve/parameters/backends/qctrl.py,sha256=BADuXCvZzFNS9d6MNQIKdPixeQM_2q-dBoRVwEglG7c,3503
178
179
  luna_quantum/solve/parameters/backends/zib.py,sha256=SqlLFYWCBHiPkxiCJGb1MH5JNtdKApllpd2f8lzn_D8,352
179
180
  luna_quantum/solve/parameters/constants.py,sha256=N1_p4zBN_a_rbdnNPxyinN5FygO8Sd7iVPN3vCTwtYA,510
180
181
  luna_quantum/solve/parameters/mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -250,9 +251,9 @@ luna_quantum/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
250
251
  luna_quantum/util/active_waiting.py,sha256=MkLL7UEtWh8jU1Zwd9rYqfcReYPGB7FJLUjQe2v9_Tg,3029
251
252
  luna_quantum/util/class_patcher.py,sha256=-vD_7Auh1dQTOJXOKv-4sTQ5EzH3n6I0EsHDFQ_ZPOY,5456
252
253
  luna_quantum/util/debug_info.py,sha256=UjMcmX5waYEEH51cK8REUOdjpNX0D6HWSR0ns7yQp54,1755
253
- luna_quantum/util/log_utils.py,sha256=M8Gbt0Pb2CsQsG3fGyuKeT-rl264laEGGXcPCGfBhaQ,4918
254
+ luna_quantum/util/log_utils.py,sha256=8WK0ivN3Dq3QntIYu-eGRBrGyiBoFnZkRiX_GCc-IHQ,5471
254
255
  luna_quantum/util/pretty_base.py,sha256=Vv3dYpMsydOPYFOm-0lCCuJIe-62oYkI64Zy_bahl3s,2115
255
256
  luna_quantum/util/pydantic_utils.py,sha256=nhl_SdLJVAizrtLVHvnbco84g8CdBVdVxN_jlXiv82w,1263
256
257
  luna_quantum/utils.py,sha256=pBOkGXNJXlOzxAwTJv8nCj32Q6WNeh3t6Ka3lmTgy9c,134
257
258
  luna_quantum/utils.pyi,sha256=afjDJhGiM9KmN2zqVkd6agP8JAsbwUxJBW9tEyiFrdY,1941
258
- luna_quantum-1.0.2.dist-info/RECORD,,
259
+ luna_quantum-1.0.3.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: maturin (1.9.1)
2
+ Generator: maturin (1.9.2)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_10_12_x86_64