classiq 0.41.2__py3-none-any.whl → 0.42.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.
Files changed (48) hide show
  1. classiq/applications/chemistry/chemistry_model_constructor.py +31 -31
  2. classiq/execution/execution_session.py +42 -3
  3. classiq/interface/_version.py +1 -1
  4. classiq/interface/analyzer/analysis_params.py +16 -6
  5. classiq/interface/analyzer/result.py +2 -1
  6. classiq/interface/ast_node.py +2 -2
  7. classiq/interface/backend/pydantic_backend.py +1 -3
  8. classiq/interface/chemistry/fermionic_operator.py +17 -7
  9. classiq/interface/generator/amplitude_loading.py +12 -3
  10. classiq/interface/generator/application_apis/finance_declarations.py +22 -1
  11. classiq/interface/generator/expressions/atomic_expression_functions.py +2 -1
  12. classiq/interface/generator/expressions/enums/classical_enum.py +11 -0
  13. classiq/interface/generator/expressions/enums/ladder_operator.py +0 -10
  14. classiq/interface/generator/expressions/expression_constants.py +1 -0
  15. classiq/interface/generator/expressions/qmod_qarray_proxy.py +14 -1
  16. classiq/interface/generator/expressions/qmod_qscalar_proxy.py +7 -2
  17. classiq/interface/generator/expressions/qmod_sized_proxy.py +8 -3
  18. classiq/interface/generator/expressions/qmod_struct_instance.py +12 -1
  19. classiq/interface/generator/functions/builtins/core_library/atomic_quantum_functions.py +262 -195
  20. classiq/interface/generator/functions/builtins/internal_operators.py +1 -0
  21. classiq/interface/generator/functions/builtins/open_lib_functions.py +1645 -44
  22. classiq/interface/generator/functions/classical_type.py +21 -3
  23. classiq/interface/generator/generated_circuit_data.py +2 -0
  24. classiq/interface/generator/model/model.py +1 -1
  25. classiq/interface/{model → generator/model}/quantum_register.py +3 -0
  26. classiq/interface/helpers/classproperty.py +8 -0
  27. classiq/interface/ide/visual_model.py +68 -0
  28. classiq/interface/model/control.py +11 -1
  29. classiq/interface/model/quantum_expressions/amplitude_loading_operation.py +3 -8
  30. classiq/interface/model/quantum_expressions/quantum_expression.py +1 -30
  31. classiq/interface/model/quantum_function_call.py +0 -12
  32. classiq/interface/model/validations/handles_validator.py +2 -7
  33. classiq/interface/server/routes.py +1 -0
  34. classiq/qmod/builtins/classical_execution_primitives.py +1 -1
  35. classiq/qmod/builtins/functions.py +83 -31
  36. classiq/qmod/builtins/operations.py +16 -1
  37. classiq/qmod/declaration_inferrer.py +28 -4
  38. classiq/qmod/pretty_print/pretty_printer.py +22 -2
  39. classiq/qmod/qmod_constant.py +2 -1
  40. classiq/qmod/qmod_parameter.py +9 -2
  41. classiq/qmod/quantum_expandable.py +35 -11
  42. classiq/qmod/quantum_function.py +6 -5
  43. classiq/qmod/symbolic.py +22 -1
  44. classiq/qmod/utilities.py +5 -5
  45. {classiq-0.41.2.dist-info → classiq-0.42.0.dist-info}/METADATA +1 -1
  46. {classiq-0.41.2.dist-info → classiq-0.42.0.dist-info}/RECORD +47 -46
  47. classiq/interface/model/call_synthesis_data.py +0 -57
  48. {classiq-0.41.2.dist-info → classiq-0.42.0.dist-info}/WHEEL +0 -0
@@ -206,7 +206,7 @@ class PythonPrettyPrinter(Visitor):
206
206
  def visit_QuantumBitvector(self, qtype: QuantumBitvector) -> str:
207
207
  self._imports.update({"QArray": 1, "QBit": 1})
208
208
  if qtype.length is not None:
209
- return f"QArray[QBit, {self.visit(qtype.length)}]"
209
+ return f"QArray[QBit, {_add_quotes(self.visit(qtype.length))}]"
210
210
  return "QArray[QBit]"
211
211
 
212
212
  def visit_QuantumNumeric(self, qtype: QuantumNumeric) -> str:
@@ -218,7 +218,7 @@ class PythonPrettyPrinter(Visitor):
218
218
 
219
219
  params = "[{}]".format(
220
220
  ", ".join(
221
- self.visit(param)
221
+ _add_quotes(self.visit(param))
222
222
  for param in [qtype.size, qtype.is_signed, qtype.fraction_digits]
223
223
  )
224
224
  )
@@ -340,6 +340,8 @@ class PythonPrettyPrinter(Visitor):
340
340
  def _visit_body(
341
341
  self, body: StatementBlock, operand_arguments: Optional[List[str]] = None
342
342
  ) -> str:
343
+ if len(body) == 0:
344
+ return "None"
343
345
  argument_string = (
344
346
  (" " + ", ".join(operand_arguments))
345
347
  if operand_arguments is not None
@@ -419,3 +421,21 @@ class PythonPrettyPrinter(Visitor):
419
421
  @property
420
422
  def _indent(self) -> str:
421
423
  return " " * self._level
424
+
425
+
426
+ def _add_quotes(exp: str) -> str:
427
+ if exp.lower() == "true" or exp.lower() == "false" or _convertible_to_number(exp):
428
+ return exp
429
+
430
+ return f'"{exp}"'
431
+
432
+
433
+ def _convertible_to_number(exp: str) -> bool:
434
+ for number_type in [int, float]:
435
+ try:
436
+ number_type(exp)
437
+ except ValueError:
438
+ pass
439
+ else:
440
+ return True
441
+ return False
@@ -13,9 +13,10 @@ from classiq.exceptions import ClassiqError
13
13
  from classiq.qmod.declaration_inferrer import python_type_to_qmod
14
14
  from classiq.qmod.model_state_container import ModelStateContainer
15
15
  from classiq.qmod.qmod_parameter import CParam, CParamList, CParamStruct
16
+ from classiq.qmod.symbolic_expr import SymbolicExpr
16
17
 
17
18
 
18
- class QConstant:
19
+ class QConstant(SymbolicExpr):
19
20
  CURRENT_QMODULE: Optional[ModelStateContainer] = None
20
21
 
21
22
  def __init__(self, name: str, py_type: type, value: Any) -> None:
@@ -26,6 +26,8 @@ _T = TypeVar("_T")
26
26
 
27
27
 
28
28
  if TYPE_CHECKING:
29
+ from classiq.qmod.qmod_variable import QNum
30
+
29
31
  SymbolicSuperclass = SymbolicExpr
30
32
  else:
31
33
  SymbolicSuperclass = Symbolic
@@ -64,9 +66,13 @@ class CArray(CParam, ArrayBase[_P]):
64
66
  @property
65
67
  def len(self) -> int: ...
66
68
 
69
+ def __getitem__(self, idx: Union[int, CInt, slice, "QNum"]) -> Any: ...
70
+
67
71
 
68
72
  class CParamScalar(CParam, SymbolicExpr):
69
- pass
73
+
74
+ def __hash__(self) -> int:
75
+ return hash(str(self))
70
76
 
71
77
 
72
78
  class CParamList(CParam):
@@ -131,7 +137,8 @@ class CParamStruct(CParam):
131
137
  field_type = struct_decl.variables.get(field_name)
132
138
  if field_type is None:
133
139
  raise ClassiqValueError(
134
- f"Struct {struct_name!r} doesn't have field {field_name!r}"
140
+ f"{struct_name} {variable_name!r} has no field {field_name!r}. "
141
+ f"Available fields: {', '.join(struct_decl.variables.keys())}"
135
142
  )
136
143
 
137
144
  return create_param(
@@ -15,10 +15,14 @@ from typing import (
15
15
  overload,
16
16
  )
17
17
 
18
+ from sympy import Basic
18
19
  from typing_extensions import Self
19
20
 
20
21
  from classiq.interface.ast_node import SourceReference
21
22
  from classiq.interface.generator.expressions.expression import Expression
23
+ from classiq.interface.generator.functions.classical_type import (
24
+ PythonClassicalTypes,
25
+ )
22
26
  from classiq.interface.model.classical_parameter_declaration import (
23
27
  ClassicalParameterDeclaration,
24
28
  )
@@ -46,6 +50,7 @@ from classiq.qmod.qmod_constant import QConstant
46
50
  from classiq.qmod.qmod_parameter import CInt, CParam, CParamScalar, create_param
47
51
  from classiq.qmod.qmod_variable import QVar, create_qvar_for_port_decl
48
52
  from classiq.qmod.quantum_callable import QCallable, QExpandableInterface
53
+ from classiq.qmod.symbolic_expr import SymbolicExpr
49
54
  from classiq.qmod.utilities import mangle_keyword
50
55
 
51
56
  ArgType = Union[CParam, QVar, QCallable]
@@ -196,40 +201,59 @@ class QTerminalCallable(QCallable):
196
201
 
197
202
  @overload
198
203
  def prepare_arg(
199
- arg_decl: PositionalArg, val: Union[QCallable, Callable[..., None]]
204
+ arg_decl: PositionalArg, val: Union[QCallable, Callable[..., None]], func_name: str
200
205
  ) -> QuantumLambdaFunction: ...
201
206
 
202
207
 
203
208
  @overload
204
- def prepare_arg(arg_decl: PositionalArg, val: Any) -> ArgValue: ...
209
+ def prepare_arg(arg_decl: PositionalArg, val: Any, func_name: str) -> ArgValue: ...
205
210
 
206
211
 
207
- def prepare_arg(arg_decl: PositionalArg, val: Any) -> ArgValue:
212
+ def prepare_arg(arg_decl: PositionalArg, val: Any, func_name: str) -> ArgValue:
208
213
  if isinstance(val, QConstant):
209
214
  val.add_to_model()
210
215
  return Expression(expr=str(val.name))
211
216
  if isinstance(arg_decl, ClassicalParameterDeclaration):
217
+ _validate_classical_arg(val, arg_decl, func_name)
212
218
  return Expression(expr=str(val))
213
219
  elif isinstance(arg_decl, PortDeclaration):
220
+ if not isinstance(val, QVar):
221
+ raise ClassiqValueError(
222
+ f"Argument {str(val)!r} to parameter {arg_decl.name!r} of function "
223
+ f"{func_name!r} has incompatible type; expected quantum variable"
224
+ )
214
225
  return val.get_handle_binding()
215
226
  else:
216
227
  if isinstance(val, list):
217
228
  if not all(isinstance(v, QCallable) or callable(v) for v in val):
218
229
  raise ClassiqValueError(
219
- f"Quantum operand {arg_decl.name!r} cannot be initialized with a list of non-callables"
230
+ f"Quantum operand {arg_decl.name!r} cannot be initialized with a "
231
+ f"list of non-callables"
220
232
  )
221
233
  val = cast(List[Union[QCallable, Callable[[Any], None]]], val)
222
- return [prepare_arg(arg_decl, v) for v in val]
234
+ return [prepare_arg(arg_decl, v, func_name) for v in val]
223
235
 
224
236
  if not isinstance(val, QCallable):
225
237
  val = QLambdaFunction(arg_decl, val)
238
+ val.expand()
239
+ return QuantumLambdaFunction(
240
+ rename_params=val.infer_rename_params(),
241
+ body=val.body,
242
+ )
243
+
244
+ if isinstance(val, QExpandable):
245
+ val.expand()
246
+ return val.func_decl.name
226
247
 
227
- if not isinstance(val, QExpandable):
228
- return val.func_decl.name
229
248
 
230
- val.expand()
231
- return QuantumLambdaFunction(
232
- rename_params=val.infer_rename_params(), body=val.body
249
+ def _validate_classical_arg(
250
+ arg: Any, arg_decl: ClassicalParameterDeclaration, func_name: str
251
+ ) -> None:
252
+ if not isinstance(arg, (*PythonClassicalTypes, CParam, SymbolicExpr, Basic)):
253
+ raise ClassiqValueError(
254
+ f"Argument {str(arg)!r} to parameter {arg_decl.name!r} of function "
255
+ f"{func_name!r} has incompatible type; expected "
256
+ f"{arg_decl.classical_type.qmod_type.__name__}"
233
257
  )
234
258
 
235
259
 
@@ -275,7 +299,7 @@ def _prepare_args(
275
299
  if isinstance(arg_decl, QuantumOperandDeclaration):
276
300
  error_message += _get_operand_hint(decl, arg_decl)
277
301
  raise ClassiqValueError(error_message)
278
- result.append(prepare_arg(arg_decl, arg))
302
+ result.append(prepare_arg(arg_decl, arg, decl.name))
279
303
 
280
304
  return result
281
305
 
@@ -15,7 +15,7 @@ from classiq.interface.model.quantum_function_declaration import (
15
15
 
16
16
  from classiq.exceptions import ClassiqError
17
17
  from classiq.qmod.classical_function import CFunc
18
- from classiq.qmod.declaration_inferrer import infer_func_decl
18
+ from classiq.qmod.declaration_inferrer import ENUM_TYPE_MAPPING, infer_func_decl
19
19
  from classiq.qmod.qmod_constant import QConstant
20
20
  from classiq.qmod.qmod_parameter import CArray, CParam
21
21
  from classiq.qmod.qmod_variable import QVar
@@ -62,7 +62,7 @@ class QFunc(QExpandable):
62
62
 
63
63
  def __call__(self, *args: Any, **kwargs: Any) -> None:
64
64
  super().__call__(*args, **kwargs)
65
- self._add_native_func_def()
65
+ self.expand()
66
66
 
67
67
  def create_model(
68
68
  self,
@@ -75,7 +75,7 @@ class QFunc(QExpandable):
75
75
  self._qmodule.native_defs = dict()
76
76
  self._qmodule.constants = dict()
77
77
  QConstant.set_current_model(self._qmodule)
78
- self._add_native_func_def()
78
+ self.expand()
79
79
  model_extra_settings: List[Tuple[str, Any]] = [
80
80
  ("constraints", constraints),
81
81
  ("execution_preferences", execution_preferences),
@@ -93,10 +93,10 @@ class QFunc(QExpandable):
93
93
  **{key: value for key, value in model_extra_settings if value},
94
94
  )
95
95
 
96
- def _add_native_func_def(self) -> None:
96
+ def expand(self) -> None:
97
97
  if self.func_decl.name in self._qmodule.native_defs:
98
98
  return
99
- self.expand()
99
+ super().expand()
100
100
  self._qmodule.native_defs[self.func_decl.name] = NativeFunctionDefinition(
101
101
  **{**self.func_decl.dict(), **{"body": self.body}}
102
102
  )
@@ -171,6 +171,7 @@ def _validate_no_gen_params(annotations: Dict[str, Any]) -> None:
171
171
  or (get_origin(annotation) or annotation) is QCallable
172
172
  or (get_origin(annotation) or annotation) is QCallableList
173
173
  or QVar.from_type_hint(annotation) is not None
174
+ or annotation in ENUM_TYPE_MAPPING
174
175
  )
175
176
  }
176
177
  if _illegal_params:
classiq/qmod/symbolic.py CHANGED
@@ -7,13 +7,21 @@ from typing import (
7
7
  Tuple,
8
8
  Type,
9
9
  TypeVar,
10
+ Union,
10
11
  overload,
11
12
  )
12
13
 
13
14
  from classiq.exceptions import ClassiqValueError
14
15
  from classiq.qmod import model_state_container
15
16
  from classiq.qmod.declaration_inferrer import python_type_to_qmod
16
- from classiq.qmod.qmod_parameter import CParam, CParamScalar, create_param
17
+ from classiq.qmod.qmod_parameter import (
18
+ CArray,
19
+ CParam,
20
+ CParamScalar,
21
+ CReal,
22
+ create_param,
23
+ )
24
+ from classiq.qmod.qmod_variable import QNum
17
25
  from classiq.qmod.symbolic_expr import SymbolicExpr
18
26
  from classiq.qmod.symbolic_type import SymbolicTypes
19
27
 
@@ -285,6 +293,17 @@ def mod_inverse(a: SymbolicTypes, m: SymbolicTypes) -> CParamScalar:
285
293
  return symbolic_function(a, m)
286
294
 
287
295
 
296
+ def sum(arr: SymbolicTypes) -> CParamScalar:
297
+ return symbolic_function(arr)
298
+
299
+
300
+ def subscript(
301
+ amplitudes: Union[List[float], List[CReal], List[CParamScalar], CArray[CReal]],
302
+ index: QNum,
303
+ ) -> CParamScalar:
304
+ return CParamScalar(expr=f"{amplitudes}[{index}]")
305
+
306
+
288
307
  __all__ = [
289
308
  "pi",
290
309
  "E",
@@ -348,6 +367,8 @@ __all__ = [
348
367
  "logical_or",
349
368
  "logical_not",
350
369
  "mod_inverse",
370
+ "subscript",
371
+ "sum",
351
372
  ]
352
373
 
353
374
 
classiq/qmod/utilities.py CHANGED
@@ -38,7 +38,7 @@ def get_source_ref(frame: FrameType) -> SourceReference:
38
38
  if sys.version_info[0:2] < (3, 11) or frame.f_lasti < 0:
39
39
  source_ref = SourceReference(
40
40
  file_name=filename,
41
- start_line=lineno,
41
+ start_line=lineno - 1,
42
42
  start_column=-1,
43
43
  end_line=-1,
44
44
  end_column=-1,
@@ -48,9 +48,9 @@ def get_source_ref(frame: FrameType) -> SourceReference:
48
48
  positions = next(itertools.islice(positions_gen, frame.f_lasti // 2, None))
49
49
  source_ref = SourceReference(
50
50
  file_name=filename,
51
- start_line=positions[0],
52
- start_column=positions[2],
53
- end_line=positions[1],
54
- end_column=positions[3],
51
+ start_line=(positions[0] or 0) - 1,
52
+ start_column=(positions[2] or 0) - 1,
53
+ end_line=(positions[1] or 0) - 1,
54
+ end_column=(positions[3] or 0) - 1,
55
55
  )
56
56
  return source_ref
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: classiq
3
- Version: 0.41.2
3
+ Version: 0.42.0
4
4
  Summary: Classiq's Python SDK for quantum computing
5
5
  Home-page: https://classiq.io
6
6
  License: Proprietary
@@ -30,7 +30,7 @@ classiq/applications/__init__.py,sha256=ANRW68--0PJMxA2Z5XuhGrDKLilkTdj3U5y9EAmP
30
30
  classiq/applications/chemistry/__init__.py,sha256=JwKGDR6NiKoykoNdOSovbZges6i40N2xkxYbAMHOS2A,1119
31
31
  classiq/applications/chemistry/ansatz_parameters.py,sha256=548erjkahfpWds6l0wJ_ddskzONaaHa441uySj0qVAo,686
32
32
  classiq/applications/chemistry/chemistry_execution_parameters.py,sha256=bqzXBwEl56a7OGKNk_aV2MGPxdMebwG7bIUqVJQyJQ0,505
33
- classiq/applications/chemistry/chemistry_model_constructor.py,sha256=e4o5LavaKGm5OyqdH2epsDRw7xDYIvwmRU8_dbqOcZk,15907
33
+ classiq/applications/chemistry/chemistry_model_constructor.py,sha256=nnVCtZJhI5PGJ0F-6obPnMDW77lN-ASKhf8aF7vA9JY,16139
34
34
  classiq/applications/chemistry/ground_state_problem.py,sha256=Ekkb4eDJkVXeTe4_hsoUUDaNZA83lJi2C0VwXf6haLk,1634
35
35
  classiq/applications/combinatorial_helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
36
  classiq/applications/combinatorial_helpers/allowed_constraints.py,sha256=UmrHXO6ArJgN9kKr-aMDtz5kA75enHaIEgUW05F4h9M,626
@@ -90,29 +90,29 @@ classiq/applications/qsvm/qsvm_model_constructor.py,sha256=nk4RR2Vz51Ay5acK_kz0O
90
90
  classiq/exceptions.py,sha256=kEfPEEeKS4eEl_ezrWSd-tPGoWFD3kH8X1FIJz6Cf5E,3689
91
91
  classiq/execution/__init__.py,sha256=wyqoTGjB8KNTiPr9TLY1hXZbwz6SC2qYywmm-sQr5D0,1057
92
92
  classiq/execution/all_hardware_devices.py,sha256=J7LilVskLZFDSqNnIcaqN3_esbs9JgKPrbdApHKU6FI,393
93
- classiq/execution/execution_session.py,sha256=XlXWt5rQuHUHKNUOI5r0rpFJRzge8VXwSPhMRFUX9Gc,5328
93
+ classiq/execution/execution_session.py,sha256=o4w4e2qol_FYvYOB3F5rNKpy7vHoh80m4j_roEri9gY,6601
94
94
  classiq/execution/jobs.py,sha256=feJy2_UvGHEvVAFwL8bgxHwhXfkRKHgKwP7egTSfJSg,4937
95
95
  classiq/execution/qnn.py,sha256=fw2Dzx9ppxdFGbc9i7N-RnbrvLajJ2QwSHRApNJi6yY,2319
96
96
  classiq/executor.py,sha256=bqYSCtTPhRTg-6O00sHcc548GWDfrqOgAX2Tvhd9piQ,2108
97
97
  classiq/interface/__init__.py,sha256=cg7hD_XVu1_jJ1fgwmT0rMIoZHopNVeB8xtlmMx-E_A,83
98
- classiq/interface/_version.py,sha256=eDcX446s9CDfrCEObEKx9C8KJ-cdPpkrOtbKWgmvdsk,197
98
+ classiq/interface/_version.py,sha256=r7qdJNPcX0qsIy_nxZJTqAXs18TH9SqKe8MbKTP9jSU,197
99
99
  classiq/interface/analyzer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
- classiq/interface/analyzer/analysis_params.py,sha256=AdLhVnFwoJI-JwbzHLlE7uqgjKWQXddabGa9KTbZ470,3311
100
+ classiq/interface/analyzer/analysis_params.py,sha256=043hfS-I3Ec6tkcniKMQQUiRyEC7zlNhntTBpZQB8hw,3725
101
101
  classiq/interface/analyzer/cytoscape_graph.py,sha256=xcGMwxwrRvBjZ_JXMwmahBOmRQ7ryR1zpW_zppUvMos,2118
102
- classiq/interface/analyzer/result.py,sha256=fSrkEC7G-zzNP4kBh7L5UbLCKhI7bbrq4s9QZac_bZ4,5778
102
+ classiq/interface/analyzer/result.py,sha256=hVmBzdT5MVCVqI30hK_u8NKbFOYQ0BtBnQWri0vGd3c,5890
103
103
  classiq/interface/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
104
  classiq/interface/applications/qsvm.py,sha256=7LElAz4QwTeia7MeAOy8WUHvuFUOUojs8j2wDOwPMao,3363
105
- classiq/interface/ast_node.py,sha256=AVMObXeDWj8ff7YNRJioGwFaZLOmK7hiNKWMvdKAoOk,882
105
+ classiq/interface/ast_node.py,sha256=ytZvsW7UK59VoXRNjADm3WOY7mpQcRFDg50F0ITz4Ic,894
106
106
  classiq/interface/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
107
  classiq/interface/backend/backend_preferences.py,sha256=9jfmkWRauzzds7oq3HlUJf7vyL0hUz4g2w7spe8jcvk,10824
108
108
  classiq/interface/backend/ionq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
109
109
  classiq/interface/backend/ionq/ionq_quantum_program.py,sha256=6AmVz8u5LOUgGAWWx1LypkYQT_uVKZBYfcanFMmzOds,1584
110
- classiq/interface/backend/pydantic_backend.py,sha256=_mOuvRw92GtInfBjE9MJxzdSoAnKQtsGBn96jZXAS5o,1713
110
+ classiq/interface/backend/pydantic_backend.py,sha256=8AFpwRivCsG_Pe_P_t6_pMv8-3Wfu3aySqdf9mko5-E,1683
111
111
  classiq/interface/backend/quantum_backend_providers.py,sha256=dR7RBrWMPkUIQpT5TKBD5QiBgqWhGVuCX_VH6MpuHZs,5573
112
112
  classiq/interface/chemistry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  classiq/interface/chemistry/ansatz_library.py,sha256=3ki3uaV77cUxUxUzDbn3mVhjvMoKejJ5bIR1kXpBT1k,360
114
114
  classiq/interface/chemistry/elements.py,sha256=Yy8L80SBVgmuKQyW-GlZKzwTqnP1O9po-FGFmKMJLRA,1181
115
- classiq/interface/chemistry/fermionic_operator.py,sha256=C2Xb9lEhbulADBHwLtGTbXlmGye0yy3vZRR1Qw7NIIQ,7244
115
+ classiq/interface/chemistry/fermionic_operator.py,sha256=dyEcfm1jMjd2GzK_gKPnn0_pzPYeiFMGjL8w8h8xnaY,7438
116
116
  classiq/interface/chemistry/ground_state_problem.py,sha256=GlZfOpC-V_NbCcaTw28oOHqMgLiRekwL__OjYV_zyhE,3828
117
117
  classiq/interface/chemistry/ground_state_result.py,sha256=zXfQoiGbhPmrZrlB7jbeAXXj7UX0QN7WrOa1CgJwUQU,175
118
118
  classiq/interface/chemistry/molecule.py,sha256=WYY_z9dOsaVt5a4K2ShqalhZZAjqaBmpAyivWbungTM,2584
@@ -166,14 +166,14 @@ classiq/interface/finance/model_input.py,sha256=rTYZ0HqAGbvzZ8z38zXp970ZniC6TdQS
166
166
  classiq/interface/generator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
167
  classiq/interface/generator/adjacency.py,sha256=Pi3zjPWCC33gUU_B3fRiNmpqK8wMze4AP6WVCVY8eY0,453
168
168
  classiq/interface/generator/amplitude_estimation.py,sha256=DDhNQM2v4gPTyCgoPxRquQ2GTifBrw_j3mAI0WuXT5Q,1302
169
- classiq/interface/generator/amplitude_loading.py,sha256=QzMTI64fgLgsgxadMCXxyAwDhh2fqR6lpRAp96jhle4,3368
169
+ classiq/interface/generator/amplitude_loading.py,sha256=XTmbAC57KlCERv2kIC1fW8XsjTqama19ep-NpJ6Gtc8,3728
170
170
  classiq/interface/generator/ansatz_library.py,sha256=TR-UwyCliMMozfLVANWbB8aMcZ0tr_tFk4XhObCPwcc,1368
171
171
  classiq/interface/generator/application_apis/__init__.py,sha256=2SkP8lW7-ktcTUh1R-Zjl_Mrjm_MbGwWih-wt_fqsRQ,471
172
172
  classiq/interface/generator/application_apis/arithmetic_declarations.py,sha256=G-eNPwmzPkmT-gkNJcHaVHKP9HF8xXbYBQRyGST0oto,428
173
173
  classiq/interface/generator/application_apis/chemistry_declarations.py,sha256=8YIfsk6a5lg5WhuFz9z7_DVEaU1j2IyAs7OZZuNDD3o,6281
174
174
  classiq/interface/generator/application_apis/combinatorial_optimization_declarations.py,sha256=E7gG2aPtArAi-C6WzK9m4wm5Baxm9kQdwrMCF4yurIc,1271
175
175
  classiq/interface/generator/application_apis/entangler_declarations.py,sha256=_wPWp0XPrADqAzXYXtsbozLdcIfZ6LehSOJjY8ucKOA,758
176
- classiq/interface/generator/application_apis/finance_declarations.py,sha256=mNFXiWmL_U8CwAd3SXO_1e_H0OpOmtcx3YLgs8EIcZw,3903
176
+ classiq/interface/generator/application_apis/finance_declarations.py,sha256=zlSv2Hnsf0FKAjyPI1pTxZl11nmACff2Bac5RQqD-m4,4575
177
177
  classiq/interface/generator/application_apis/qsvm_declarations.py,sha256=DejjQF8DZ1IJl0E0ZDaxjApEcJvHrkniCFJUru6wHYY,2167
178
178
  classiq/interface/generator/arith/__init__.py,sha256=3_jBZcaL8gQOiWx9lDj84K6rmJG2p_8MGCBw1aMtddg,135
179
179
  classiq/interface/generator/arith/argument_utils.py,sha256=-H0_YVxkXmpBgnVHkBYQs9Wu8P2qGSMGW5zMi89oO5M,1812
@@ -215,24 +215,24 @@ classiq/interface/generator/entangler_params.py,sha256=wU5fzmTQ-sinEwsswdjsnX9_I
215
215
  classiq/interface/generator/entanglers.py,sha256=MYA87sgpZPfu68qUO9Zb0Asln1HOiVMrVj9UArX8vOI,421
216
216
  classiq/interface/generator/excitations.py,sha256=AGm_MowNKXwphMZ8NrcErDdmynnnRWCvtdcfgmuEPYY,142
217
217
  classiq/interface/generator/expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
218
- classiq/interface/generator/expressions/atomic_expression_functions.py,sha256=qof43faLRaSFKoDmYscvs2_Len2JzNCLoIJ2iGo7qys,764
218
+ classiq/interface/generator/expressions/atomic_expression_functions.py,sha256=zyQDfjjgcBtpZXjjf8GtEE6-IvcggSFeQJfnCtSWfCM,784
219
219
  classiq/interface/generator/expressions/enums/__init__.py,sha256=DB6t3Q6OkB-iGhbuHyU_EclbSnZGZ7G_bGsKMvJf2-A,553
220
220
  classiq/interface/generator/expressions/enums/chemistry.py,sha256=Ubiy3oDw96xx7x8xggq-D0nmxHz_fsGlRuijxcdzKa0,810
221
- classiq/interface/generator/expressions/enums/classical_enum.py,sha256=7DDZ_wPIsEvZQQCWe0qEPFCyn9YT9JOXVwEZQLRpOgk,190
221
+ classiq/interface/generator/expressions/enums/classical_enum.py,sha256=ZUnUyTD35ZE2-jToUnuW8VP7bWnb97pYgPRwqVeP2VM,521
222
222
  classiq/interface/generator/expressions/enums/finance_functions.py,sha256=Ni6OKsoWPcu3tW1iFmOu06kw4Rcd7XW496kzc9Eoams,630
223
- classiq/interface/generator/expressions/enums/ladder_operator.py,sha256=RtCjSsqWElXW4oq97VthJwrO0vCfVeXQAnKa5erj1pI,402
223
+ classiq/interface/generator/expressions/enums/ladder_operator.py,sha256=b2GOlCDpQ8ywIiYLl99KWf66AptDAVYhi1ciRoLQT9Q,153
224
224
  classiq/interface/generator/expressions/enums/optimizers.py,sha256=FAcD0EBmcwGbSCPWKkZH29P4u4qroKeFJGHOEsW9iFU,199
225
225
  classiq/interface/generator/expressions/enums/pauli.py,sha256=x1cU28lP9xnjt8TQfnU5ak6o5QE_8wqaDJdSaIo7RAs,171
226
226
  classiq/interface/generator/expressions/enums/qsvm_feature_map_entanglement.py,sha256=fqU1SY_-L-a42Ed7hlcHA_OQ04cxMdxMNc_8ahcGSHc,212
227
227
  classiq/interface/generator/expressions/evaluated_expression.py,sha256=WlO0laKUUhqp3Bb3zx8DmRdjqP-7C553JWpO3AhgeJw,2374
228
228
  classiq/interface/generator/expressions/expression.py,sha256=876JzZTlx7iYQinno_8beSGhwTTOq81LXYkLj-v2e3U,2951
229
- classiq/interface/generator/expressions/expression_constants.py,sha256=edBxAdg-EE4IpPD7g6DnV-xulda8hhtH-7NgpnH4Kz8,590
229
+ classiq/interface/generator/expressions/expression_constants.py,sha256=Az_uFF9dg-6StA6NYDcT5vayv9yDRojOTk6X3RRGdI8,627
230
230
  classiq/interface/generator/expressions/expression_types.py,sha256=BcqLJ_v0Rwm7gPLhdAnsZxPauFxdE6WHdiOGBVdpXtw,685
231
231
  classiq/interface/generator/expressions/handle_identifier.py,sha256=Vf1EsfzkW3tBk9S6QOLPn5yuLW1EChQ4Ja6OpLWPLFw,93
232
- classiq/interface/generator/expressions/qmod_qarray_proxy.py,sha256=7vwq0YLjWX4qaOYgylTzVLtoRYjHeVSgGromugpX-Go,2867
233
- classiq/interface/generator/expressions/qmod_qscalar_proxy.py,sha256=nvvq6ozRsuihToLJ9UIO4nHgqAactoA0pecyC0SG8MA,1368
234
- classiq/interface/generator/expressions/qmod_sized_proxy.py,sha256=-zNQfn8d4g-08JCG4Qkb2DV_Wwlj_QzZPukUcOXGZNQ,647
235
- classiq/interface/generator/expressions/qmod_struct_instance.py,sha256=9tadFw0PgygLvuskq7MQ9LjKg0DtVcsK7FhwNfD14eo,738
232
+ classiq/interface/generator/expressions/qmod_qarray_proxy.py,sha256=XMwkX2tIkSVwio7uSKp2vTzHgdmcbVFVHbi_vGLeiIw,3136
233
+ classiq/interface/generator/expressions/qmod_qscalar_proxy.py,sha256=ZGGwzlmmlUBbYow37IWQkP1pfKYnQ0feOIHE_AY0M_0,1513
234
+ classiq/interface/generator/expressions/qmod_sized_proxy.py,sha256=cHzirulkxw6mqkegcz3aJpbCocFbugVnUp4_mSDeArE,753
235
+ classiq/interface/generator/expressions/qmod_struct_instance.py,sha256=oMXVjU6243RmykMD0EU4Jnjup4pXveeuXv2UFchZTpM,1067
236
236
  classiq/interface/generator/expressions/sympy_supported_expressions.py,sha256=_FDbCY_0uENSQq6ijVpNk9Tz0uih_OL-x-NDWDk1-70,1577
237
237
  classiq/interface/generator/expressions/type_proxy.py,sha256=2TSxdmmhnz78jxzPTqGAAfuY-jWUkyXHsE5bXx1A_es,311
238
238
  classiq/interface/generator/finance.py,sha256=m5311uWI888fDgD05Vfvcc8fKfUEfJdwC3df7p6okCw,3975
@@ -243,13 +243,13 @@ classiq/interface/generator/function_params.py,sha256=3asmMN4_WNXL8Hw9L0ZMj0S-Xy
243
243
  classiq/interface/generator/functions/__init__.py,sha256=z0VXGH2Q8dNhsbAfxFO1L8MqSL8wh9RnicIuoJgOyBI,868
244
244
  classiq/interface/generator/functions/builtins/__init__.py,sha256=R_N4ZEayC7FWVrbO78tI5fM_mmQoxA4C2wdN4GtSdDI,618
245
245
  classiq/interface/generator/functions/builtins/core_library/__init__.py,sha256=42Gn3X68tJyq8WLklvsB0SB6pl7bV76Rj60-_R37lpE,711
246
- classiq/interface/generator/functions/builtins/core_library/atomic_quantum_functions.py,sha256=QsbYwT35KStyyZqmw97uAAO5WizSyH-85Bnpbuhmda0,16054
246
+ classiq/interface/generator/functions/builtins/core_library/atomic_quantum_functions.py,sha256=LvtAG1e6NQF2qaY4DJzrHt-AvZSpVS6Z0IRvdgSyqDY,17785
247
247
  classiq/interface/generator/functions/builtins/core_library/exponentiation_functions.py,sha256=xbtrrt5Uots4HW_5Y0eVLMiTiGohrz8HtaBCihpFAZk,2715
248
- classiq/interface/generator/functions/builtins/internal_operators.py,sha256=5eqsJ9s0NDvzgtU8TKdO-mrrUB37zG7KMJmQDm6uc_M,230
249
- classiq/interface/generator/functions/builtins/open_lib_functions.py,sha256=RoqPyxykvlwyLPDfrEP8Zv6_2AI5gG360_edzB8b_74,66389
248
+ classiq/interface/generator/functions/builtins/internal_operators.py,sha256=492JSUgrWt2st06o7ZVOeI2JLHkw1C6Jb5FO-uKkJg4,265
249
+ classiq/interface/generator/functions/builtins/open_lib_functions.py,sha256=Xe8Fd3lZh9adJ58T1-UDp5JV4uTLg-mBjMyC9kzh_7w,117914
250
250
  classiq/interface/generator/functions/builtins/quantum_operators.py,sha256=l6twE-rgD9fJ4g_Yb9oxKQN3tTvU0GBfg5xzC3uyFG8,881
251
251
  classiq/interface/generator/functions/classical_function_declaration.py,sha256=Gvm9b-F1kulKaEj6DpCex3DXhvsYc0etxSZaJ-sd2Ls,1018
252
- classiq/interface/generator/functions/classical_type.py,sha256=SIVoIR-L42l-yHj22BrC0-4DS5xTjQePnegd5KkNkS0,7385
252
+ classiq/interface/generator/functions/classical_type.py,sha256=Ll7zpBRJAaqgtK69r2faxvIe2d_3ueN7Q96wDe2Kcdo,7871
253
253
  classiq/interface/generator/functions/foreign_function_definition.py,sha256=TBVN7etxnlS_FoX7EzC3XJcw0dPC7BqUffyiT7QJbKU,4053
254
254
  classiq/interface/generator/functions/function_declaration.py,sha256=NKistwyWGIUaPkQ7PSVvH5TyBL2syp0rARXWn3um7C0,670
255
255
  classiq/interface/generator/functions/function_implementation.py,sha256=0JUn_qfwNR95Fzz1f2t9k0812mOr2Bwffuzms2SKH90,3698
@@ -259,7 +259,7 @@ classiq/interface/generator/functions/qmod_python_interface.py,sha256=DVHHTMtbWn
259
259
  classiq/interface/generator/functions/quantum_function_declaration.py,sha256=C5Hz9erjSR14C-fRTuYWWHl7hTswFiISqj1lRSj8Qzo,2168
260
260
  classiq/interface/generator/functions/register.py,sha256=KKMDrBOJIQUqvsv0MJHQKzJ75AUaaymPX5M4T_VECGk,1286
261
261
  classiq/interface/generator/functions/register_mapping_data.py,sha256=cKfD1VlZcg4tgHrj1goJZ3SitNqZ1rtdCoGz-l4-kMg,4104
262
- classiq/interface/generator/generated_circuit_data.py,sha256=Lb2NGCrPN8z53FwzuPRSWqfBlV74fccmS3714O7fvl8,3618
262
+ classiq/interface/generator/generated_circuit_data.py,sha256=76doTMNL0q53iADfQgSltX5ZhmzNwD9y-Flemgsffqs,3699
263
263
  classiq/interface/generator/grover_diffuser.py,sha256=9EMpmHdQKjGISZEWB37C58IFGqLSUu9jKySy-hNG6WA,3521
264
264
  classiq/interface/generator/grover_operator.py,sha256=73EOlswuDGVZqmLP5zILhRfGXDrWkbdaX98b92OSYf0,3813
265
265
  classiq/interface/generator/hadamard_transform.py,sha256=NI4oZBpDCGfaw2OTb5SL3iSGI_nDtyUgElTCO4pEKnk,673
@@ -282,10 +282,11 @@ classiq/interface/generator/mcx.py,sha256=jP5n7BqPgEnjqe0doyVDU2O7maSpSmT0WOMsXh
282
282
  classiq/interface/generator/model/__init__.py,sha256=pz2VG6qvreSrSdeRL-ehPVSA_2nUD6o5zIXiDhHHGEU,482
283
283
  classiq/interface/generator/model/classical_main_validator.py,sha256=Vflih0MEqoXdueBxdDjQ25opnDN-XBT0OPnRqQC_JtI,3577
284
284
  classiq/interface/generator/model/constraints.py,sha256=LZy4TsmDROjsVwqkgvyhSLfxtkj7l07mruFJWD3Seto,1625
285
- classiq/interface/generator/model/model.py,sha256=dpO8fZwrJA3uJK-GwmuoZTxJ-AKfmPQfnmdlm1wXejU,8512
285
+ classiq/interface/generator/model/model.py,sha256=hPyVaKfKnKm-cfreRC79NBDVsKlP6GuxgaRs6g1Fqds,8522
286
286
  classiq/interface/generator/model/preferences/__init__.py,sha256=KTNkU8hK3cpqzXvw_C1maxhBRTm1H53WUen1jJwZ0fQ,256
287
287
  classiq/interface/generator/model/preferences/preferences.py,sha256=t-cEL2l6jZg8uXfs4NN4qgHjNyXStqGgTi-86T1HTPM,7943
288
288
  classiq/interface/generator/model/preferences/randomness.py,sha256=nAI8Fu9NQ0uJxuwIQCUDspJKMCQVHBbvPNqCTtrBEos,248
289
+ classiq/interface/generator/model/quantum_register.py,sha256=B5DrMGyStGyB5nFrA9qgzAbZu6rDsvr1ZgbakIIMRnw,8066
289
290
  classiq/interface/generator/noise_properties.py,sha256=onvXd_FeBznwu1AcOpAkL7-fo9Dc6tPcAIiL5Qxs2Ok,425
290
291
  classiq/interface/generator/oracles/__init__.py,sha256=CB95SeU1BsqVWxQssKJYzB4DGje87UQAKGuyv-vkx7k,122
291
292
  classiq/interface/generator/oracles/arithmetic_oracle.py,sha256=D_fjjY1TD9-Id9VRSzEo_bivYzDtIgz1iB8Os2qhGkg,3271
@@ -346,6 +347,7 @@ classiq/interface/grover/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
346
347
  classiq/interface/grover/grover_modelling_params.py,sha256=eMXdjfuGlVq5qD3QyG-C8mAyIBAoxzkjF052M4b1i-k,390
347
348
  classiq/interface/hardware.py,sha256=hUSU8x7yL1FNhSXt5cmo3J0AuhC8I9UHGFK5RSDtJso,1801
348
349
  classiq/interface/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
350
+ classiq/interface/helpers/classproperty.py,sha256=pt9A39GgEMzj2nbY5gjFp_CId_wom6lOQt_PADidT4Y,279
349
351
  classiq/interface/helpers/custom_encoders.py,sha256=0-9DTHwQr-I_vP1Ie4Z9N4qfzDhFvGT4qsXP-EdDegs,107
350
352
  classiq/interface/helpers/custom_pydantic_types.py,sha256=4vYO5fBEWMbF6jw1312bHCp_UfLaglkOAhbDlQ5Kg0g,3068
351
353
  classiq/interface/helpers/hashable_mixin.py,sha256=w6aqoVdjqbjTOetwS2lbgiOPUQLcJFY0vPiz_cqNAuk,1079
@@ -356,13 +358,13 @@ classiq/interface/helpers/versioned_model.py,sha256=iHB0oO7pWKaE0l62SdfBbY3QwHSi
356
358
  classiq/interface/ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
357
359
  classiq/interface/ide/ide_data.py,sha256=Z3keVfjxK8dpC64ZJ0PEoLWgtmOaxiv2CgBzkxbFVmY,2508
358
360
  classiq/interface/ide/show.py,sha256=MkSSCV4-uKomLDQkiqmXtaWfwqJufkOrAx8_MjWn6v4,1084
361
+ classiq/interface/ide/visual_model.py,sha256=TvhvKNXjO6lam7E_VVGPz1oV3oHjqYvnQWI1xHSMeM8,1933
359
362
  classiq/interface/jobs.py,sha256=cLTS1x7guaPn8KTa5L2K3AnU3nrCW4BjYdIAFqfR_cs,3385
360
363
  classiq/interface/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
361
364
  classiq/interface/model/bind_operation.py,sha256=-I0mBTr4e_dPz3y46gSA0rQzb-agpVxLFyhxVO-iGGk,1158
362
- classiq/interface/model/call_synthesis_data.py,sha256=feXqT9CUzHcYQv_ENSmOUYIJEUSEckcmb3Dv14No4x8,1973
363
365
  classiq/interface/model/classical_if.py,sha256=Qr726EEiim47PexMd8lTRfHLziUoiTUitnHrM3-oSgI,432
364
366
  classiq/interface/model/classical_parameter_declaration.py,sha256=CDCZFC-Bu8jfkRQwnTU8T4qHZcatG-leRnGGKBBKiiA,651
365
- classiq/interface/model/control.py,sha256=r8C7gMeF1Qu47N9EzbxUeAq3deN0kNfBG9-ZDqBAZnA,346
367
+ classiq/interface/model/control.py,sha256=v7fOSrUDBrdDkhZJ2YgtNS9mxpGTHPYUlGRW50lY8qQ,593
366
368
  classiq/interface/model/handle_binding.py,sha256=2T0U-Msekvbea61tBfR2f1rvwMkLWLPh1pCUte5EkEQ,947
367
369
  classiq/interface/model/inplace_binary_operation.py,sha256=Abf3UTyeKkuqPSZE9XHfez2xKJiPP72wDbiqA5uwiWM,1195
368
370
  classiq/interface/model/invert.py,sha256=9gN0vmy4892_ItwPxKc0lTjjagyKUX6mEer2vINdL5o,294
@@ -371,13 +373,12 @@ classiq/interface/model/native_function_definition.py,sha256=NRUDCJPeIyHIVvJYUHI
371
373
  classiq/interface/model/port_declaration.py,sha256=Tks9NzKi2EgrCSS-hu1yGeymxPQU-QOcuWnUGzgNIE4,1148
372
374
  classiq/interface/model/power.py,sha256=3C2NOkq_t8AafvYsN51hmgMIJB0pic_DvZxYbID9WX4,388
373
375
  classiq/interface/model/quantum_expressions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
374
- classiq/interface/model/quantum_expressions/amplitude_loading_operation.py,sha256=XGWu0jWihdYbSupOUNioCUYiDtqvLIcv-P3pWUqr55s,2030
376
+ classiq/interface/model/quantum_expressions/amplitude_loading_operation.py,sha256=gaZdbRCsZsvEG8AsHBaTBwc1rQgqiVd0gdu8HP8nTYc,1903
375
377
  classiq/interface/model/quantum_expressions/arithmetic_operation.py,sha256=AUvtxUkBz3seLx69DB8oGhONPaLsa7aiPvSCFlRW91c,1642
376
- classiq/interface/model/quantum_expressions/quantum_expression.py,sha256=AKUjjrZblUBQYVp7qsCt_iBir2Ri_9d5_g4OefK7qN8,3169
377
- classiq/interface/model/quantum_function_call.py,sha256=nDu6SHnSAa1mqlQ0gAUsr-Wj9eQa-P2WIpNWSsnVbk0,14284
378
+ classiq/interface/model/quantum_expressions/quantum_expression.py,sha256=8EnMa8OOEMtdn-82hJReN-2Af-1zm80xWk1sr3fMoWE,2216
379
+ classiq/interface/model/quantum_function_call.py,sha256=G3JuUt6_MCp38Fg4iUmyZ_UJw3I4rZ88gJ1paP8BZT8,13860
378
380
  classiq/interface/model/quantum_function_declaration.py,sha256=ep9Z-CkGo_je6L0iZpbY2ApLdbHXD1YJKyXAymWwBAo,8337
379
381
  classiq/interface/model/quantum_lambda_function.py,sha256=4McI9Bv8SDYPlrJTQ-Nr-s7h8U9ej7vsmXGX6joMIww,1172
380
- classiq/interface/model/quantum_register.py,sha256=nTefxxhLKFsF6zkxv5B6hJPwNL2CIE2mmFwtnVUWhCk,7998
381
382
  classiq/interface/model/quantum_statement.py,sha256=2Gng1kNUvsG8hV-T4NaIxwMu62wXYG8_0V7xWbiLP3A,1062
382
383
  classiq/interface/model/quantum_type.py,sha256=ci1p2Ig-z757p6UEVFp5eTT0kPpThTtZ2xenA2Nb1Rk,5500
383
384
  classiq/interface/model/quantum_variable_declaration.py,sha256=ye5chA8t0uO_4OaHQPsysaQGWGcKpWPLwqdLeH7zx40,929
@@ -388,7 +389,7 @@ classiq/interface/model/statement_block.py,sha256=gKWZ9XfoeWvhlhq51dgq-Afk7x5Z0P
388
389
  classiq/interface/model/validation_handle.py,sha256=MnGJ1LJS_aQG6WH0NusSHJjjrjQXQgy5F1Cfvnguiz8,1310
389
390
  classiq/interface/model/validations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
390
391
  classiq/interface/model/validations/handle_validation_base.py,sha256=UFlJEMhmXUNYLRy_Mje2UJNOBfX2WJCzYjFzlBcaYjw,2134
391
- classiq/interface/model/validations/handles_validator.py,sha256=Q09wIhbPx6zU7T1tRSgiqN59FWV2Wu_QJzlZZ2--SNM,6375
392
+ classiq/interface/model/validations/handles_validator.py,sha256=LyDP3gRiQ6TCJp7zuhNZVVArgyvmOHn_MszfPX-6Awo,6169
392
393
  classiq/interface/model/validations/port_to_wire_name_generator.py,sha256=71wZjbiYtf4OlOhJ6pnX7bcwtSoZZGX_e6UhcaIwf00,345
393
394
  classiq/interface/model/variable_declaration_statement.py,sha256=zI6erlZhoyiZHOhPzSjLNokqBeoDZvz8Jkbp0kIUPgQ,334
394
395
  classiq/interface/model/within_apply_operation.py,sha256=N60LGRHKxl5NKm-aCaVUuCsp02CO-Ar5FYjHEUTLIP8,336
@@ -399,18 +400,18 @@ classiq/interface/pyomo_extension/pyomo_sympy_bimap.py,sha256=sE8lGR2qQDwI-a-7Mg
399
400
  classiq/interface/pyomo_extension/set_pprint.py,sha256=jlyYUHfQXwyzPQIzstnTeIK6T62BcSPn3eJdD1Qjy7E,344
400
401
  classiq/interface/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
401
402
  classiq/interface/server/global_versions.py,sha256=Oh6K8kD3mVSYeEjHNHbmDUezcfbrhSLswuF0F_mE-8E,384
402
- classiq/interface/server/routes.py,sha256=sXAXVFmMi3pqtZ4hgqPQltsPG9y-lHODndF9qfCZ-Oc,3014
403
+ classiq/interface/server/routes.py,sha256=kE-STfZONiBexfxr1mbSizyh-ZO-dj-qWlB1EbuYPNY,3073
403
404
  classiq/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
404
405
  classiq/qmod/__init__.py,sha256=XPh4879op6uby4i9EISBdwW2NURSmmRVRSVjC1dz5j8,898
405
406
  classiq/qmod/builtins/__init__.py,sha256=yY5NcYgy9T2812k8jro52_jpyNKTE2CWGI40ydnT0FI,727
406
- classiq/qmod/builtins/classical_execution_primitives.py,sha256=xsiu4OjzVXUFHEilMd05RzgLUb3cYO0EtB8VVzg09yc,3185
407
+ classiq/qmod/builtins/classical_execution_primitives.py,sha256=_Rw5wbnBGUzfqAQ5Rew3x3kIOwpTANyGVHZ1cG54I7k,3209
407
408
  classiq/qmod/builtins/classical_functions.py,sha256=sOMYm_vU24mAGgR63qmJ5eMTgpacXCRIhNEXa6pl0Q4,1914
408
- classiq/qmod/builtins/functions.py,sha256=NSVTreCNocSxY1VsEd83his-Dhn-9juyENJEWXA9sPk,14670
409
- classiq/qmod/builtins/operations.py,sha256=7xSVlCgHi8oblhSD4h25mrUxStOGtlutk4w5xHpfcNA,9012
409
+ classiq/qmod/builtins/functions.py,sha256=YQ3ZvZQbA_t6-IkiMxlAMYiJlPyS5V5sSx9lZ6TIjnc,15174
410
+ classiq/qmod/builtins/operations.py,sha256=ncDUsi37_VjtcmlmyLmbryKuJ3_batBztVCmGuR-KTU,9637
410
411
  classiq/qmod/builtins/structs.py,sha256=pT8ntsW8k4nbcpG3Wf9uFwFvmKQdQ7of0bYB_WS11HY,2250
411
412
  classiq/qmod/cfunc.py,sha256=quwJdgYRgqI2C13SRrRunLi-Kuf7nCAk2-O2B46QtoY,1093
412
413
  classiq/qmod/classical_function.py,sha256=VEjx47jccSbbKuvicgqhwOYxrLO-pb_n0FWYcnCH-lk,1211
413
- classiq/qmod/declaration_inferrer.py,sha256=_j2j9gADxiHwoYTSyzEeokk_lEo1aynHr2Pi-8mS5NU,5370
414
+ classiq/qmod/declaration_inferrer.py,sha256=WwXcdiqA5ncxfDpRHX9j2ifOXVOuCx7CCp4IYYyCRQM,5930
414
415
  classiq/qmod/expression_query.py,sha256=Jv_aSgoV6tT7HeMtnDs3B40_HFtVEHckYbbMHma1ER0,908
415
416
  classiq/qmod/model_state_container.py,sha256=yZT2IdAz-CUwXsd-DReLLKEZCXiicHb3qjh18mKREZg,406
416
417
  classiq/qmod/native/__init__.py,sha256=00ZlOKotzZ5MPkwwWNTnwrPeNRTFurFNJgueixP6BVo,151
@@ -418,21 +419,21 @@ classiq/qmod/native/expression_to_qmod.py,sha256=p_WHipErHWbIDZkRPT487xik_49Mhea
418
419
  classiq/qmod/native/pretty_printer.py,sha256=W6DVCfkSxhTPr0ny_RNlpuDxRM9_sjYPj5S2jPXRliE,13469
419
420
  classiq/qmod/pretty_print/__init__.py,sha256=TY7bQpDw75-oLUinUoCUMQnbjUcFzcFqHO1sEK-DgPE,157
420
421
  classiq/qmod/pretty_print/expression_to_python.py,sha256=e9PG553YlTh1R7ywRFYoMyMIsh1oehWU3n0XN8Mj6GY,7471
421
- classiq/qmod/pretty_print/pretty_printer.py,sha256=PzgLRRHaaEz-WMoF4wsU-AFbUpJg9iLot19o5RTUAy8,17263
422
+ classiq/qmod/pretty_print/pretty_printer.py,sha256=WZceGF7ykhhqeAX_BLhsvhVr6KsB6nbQDwHxXAsUOi8,17733
422
423
  classiq/qmod/qfunc.py,sha256=G320Fc-4CxzuV7muho2tPro2EIBLgBKmZStkSIAWzyI,691
423
- classiq/qmod/qmod_constant.py,sha256=zBHgYax4DpPeDJU5x6-1-zMTopV9g0F--2zLV0mjwRQ,3310
424
- classiq/qmod/qmod_parameter.py,sha256=RBNPqO4QoAmGFichfzXiebJwOKXjpmI7ZcIRIDnW1TA,3819
424
+ classiq/qmod/qmod_constant.py,sha256=CUiEBtpbA2kBO2hMiUTrD7CdtcPjjyMmt1jeCyqIJGg,3376
425
+ classiq/qmod/qmod_parameter.py,sha256=RBxuJRGh0_fqtt6IzgC68jxIzG0lk3rPQ1EUCH0AvD8,4087
425
426
  classiq/qmod/qmod_struct.py,sha256=mzfF8M5qNhcqKVPCuGFKWx4nzDmH_aewGyUgGhN_8H4,1078
426
427
  classiq/qmod/qmod_variable.py,sha256=lffhAQ7V36XV6VMKDMgIHtE2CWxd_xU6LuMTCJZHdR4,14074
427
428
  classiq/qmod/quantum_callable.py,sha256=s3PHLnXdFpUBkxKwugP67QsCChJeRFML9Ffe0xECvAg,2358
428
- classiq/qmod/quantum_expandable.py,sha256=t2WicxjGaimBZ98k9BZPfG0wfFS7BIvJtCWU2kizZnw,10884
429
- classiq/qmod/quantum_function.py,sha256=2N9dKR5s0dHM-oOWN2yQ_fxW0Yp7DaBa4dQulY-Kkjo,7456
430
- classiq/qmod/symbolic.py,sha256=tntFLESoVq-UGohcAyv_mzUgAMDP9ICKSMjJ-WdRl_s,7189
429
+ classiq/qmod/quantum_expandable.py,sha256=D1gNbM5Rr8hIT_GQ3TjeCobL4FpHWGCjfdLYi5PAtXw,11952
430
+ classiq/qmod/quantum_function.py,sha256=tfsjBzOowbp5myxpQhUYfyc7us1w1Sxzww_xBO-Pzs8,7483
431
+ classiq/qmod/symbolic.py,sha256=Ezjia8JsIEvMfxCF6fsXK6CGMo8O8GLlcwadE5TbsoA,7585
431
432
  classiq/qmod/symbolic_expr.py,sha256=7SKYR977tooR4ZZC7pPE7kCJNxi2diLlnu10pNnyYnk,5480
432
433
  classiq/qmod/symbolic_type.py,sha256=whMy3Uw4iE2SOVfHeyfTpDJ3BH6Rxlhk492ij-4QRU4,169
433
- classiq/qmod/utilities.py,sha256=Mu4w-UFdtc4N5A3bvIj6wWtIJckyL_MEYVbhGF0xkmw,1527
434
+ classiq/qmod/utilities.py,sha256=VkFb57vTinOkrAXkRpSssXV7yrWPwQoSkNOqQfCdOPc,1575
434
435
  classiq/qmod/write_qmod.py,sha256=2LK5CdlxRzJhM5p2EOwWACGkg2L9IhHkkOFtXFH1fOo,1222
435
436
  classiq/synthesis.py,sha256=A7Sri3W4UJfbXVSqjhWxphI5dJHMT-QZudMUb8sA9oQ,1788
436
- classiq-0.41.2.dist-info/METADATA,sha256=hRoI5P_iaWXzBGauFQ7zC2WgPzMITUVn9LK9OSwq1rA,3087
437
- classiq-0.41.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
438
- classiq-0.41.2.dist-info/RECORD,,
437
+ classiq-0.42.0.dist-info/METADATA,sha256=yjwiDdurlGXyAnGHqHkwLoIrDes4eBqH492WQ60Yl6g,3087
438
+ classiq-0.42.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
439
+ classiq-0.42.0.dist-info/RECORD,,
@@ -1,57 +0,0 @@
1
- import dataclasses
2
- from typing import Any, Iterator, List, Mapping
3
-
4
- from sympy import sympify
5
-
6
- from classiq.interface.generator.control_state import ControlState
7
- from classiq.interface.generator.synthesis_execution_parameter import PydanticPowerType
8
-
9
- from classiq.exceptions import ClassiqValueError
10
-
11
- ILLEGAL_NESTED_POWER_ERROR = "Nested power calls with a parametric power and an integer power are unsupported: {a}, {b}"
12
-
13
-
14
- def _merge_power(a: PydanticPowerType, b: PydanticPowerType) -> PydanticPowerType:
15
- symbolic_res = sympify(a) * sympify(b)
16
- if symbolic_res.is_Integer:
17
- return int(symbolic_res)
18
- elif symbolic_res.is_symbol:
19
- return str(symbolic_res)
20
- else:
21
- raise ClassiqValueError(ILLEGAL_NESTED_POWER_ERROR.format(a=a, b=b))
22
-
23
-
24
- @dataclasses.dataclass
25
- class CallSynthesisData(Mapping):
26
- power: PydanticPowerType = 1
27
- is_inverse: bool = False
28
- control_states: List[ControlState] = dataclasses.field(default_factory=list)
29
- should_control: bool = True
30
-
31
- def merge(self, other: "CallSynthesisData") -> "CallSynthesisData":
32
- return CallSynthesisData(
33
- power=_merge_power(self.power, other.power),
34
- is_inverse=self.is_inverse != other.is_inverse,
35
- control_states=self.control_states + other.control_states,
36
- should_control=self.should_control and other.should_control,
37
- )
38
-
39
- def set_control(self, ctrl_name: str, ctrl_size: int, ctrl_state: str) -> None:
40
- self.control_states = [
41
- ControlState(
42
- name=ctrl_name, num_ctrl_qubits=ctrl_size, ctrl_state=ctrl_state
43
- )
44
- ]
45
-
46
- @property
47
- def has_control(self) -> bool:
48
- return bool(self.control_states)
49
-
50
- def __getitem__(self, key: str) -> Any:
51
- return dataclasses.asdict(self)[key]
52
-
53
- def __iter__(self) -> Iterator[str]:
54
- return iter(dataclasses.asdict(self))
55
-
56
- def __len__(self) -> int:
57
- return len(dataclasses.asdict(self))