classiq 0.50.0__py3-none-any.whl → 0.51.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.
classiq/__init__.py CHANGED
@@ -49,6 +49,8 @@ from classiq.executor import (
49
49
  from classiq.qmod import * # noqa: F403
50
50
  from classiq.qmod import __all__ as _qmod_all
51
51
  from classiq.synthesis import (
52
+ quantum_program_from_qasm,
53
+ quantum_program_from_qasm_async,
52
54
  set_constraints,
53
55
  set_execution_preferences,
54
56
  set_preferences,
@@ -105,6 +107,8 @@ __all__ = (
105
107
  "show",
106
108
  "hamiltonian_to_matrix",
107
109
  "matrix_to_hamiltonian",
110
+ "quantum_program_from_qasm",
111
+ "quantum_program_from_qasm_async",
108
112
  ]
109
113
  + _md_all
110
114
  + _sub_modules
@@ -3,5 +3,5 @@ from packaging.version import Version
3
3
  # This file was generated automatically
4
4
  # Please don't track in version control (DONTTRACK)
5
5
 
6
- SEMVER_VERSION = '0.50.0'
6
+ SEMVER_VERSION = '0.51.0'
7
7
  VERSION = str(Version(SEMVER_VERSION))
@@ -447,6 +447,30 @@ class IntelBackendPreferences(BackendPreferences):
447
447
  )
448
448
 
449
449
 
450
+ class AQTBackendPreferences(BackendPreferences):
451
+ """
452
+ NOTE: This is a work in progress and is subject to change.
453
+
454
+ Represents the backend preferences specific to AQT (Alpine Quantum Technologies).
455
+
456
+ Attributes:
457
+ api_key: The API key required to access AQT's quantum computing services.
458
+ workspace: The AQT workspace where the simulator/hardware is located.
459
+ """
460
+
461
+ # TODO[pydantic]: Add a default value
462
+ backend_service_provider: ProviderTypeVendor.AQT
463
+ api_key: str = pydantic.Field(description="AQT API key")
464
+ workspace: str = pydantic.Field(description="AQT workspace")
465
+
466
+ # TODO[pydantic]: Remove this validator
467
+ @pydantic.root_validator(pre=True)
468
+ def _set_backend_service_provider(cls, values: Dict[str, Any]) -> Dict[str, Any]:
469
+ return values_with_discriminator(
470
+ values, "backend_service_provider", ProviderVendor.AQT
471
+ )
472
+
473
+
450
474
  def is_exact_simulator(backend_preferences: BackendPreferences) -> bool:
451
475
  return backend_preferences.backend_name in EXACT_SIMULATORS
452
476
 
@@ -477,6 +501,7 @@ BackendPreferencesTypes = Union[
477
501
  AliceBobBackendPreferences,
478
502
  OQCBackendPreferences,
479
503
  IntelBackendPreferences,
504
+ AQTBackendPreferences,
480
505
  ]
481
506
 
482
507
  __all__ = [
@@ -499,6 +524,7 @@ __all__ = [
499
524
  "OQCBackendPreferences",
500
525
  "OQCBackendNames",
501
526
  "IntelBackendPreferences",
527
+ "AQTBackendPreferences",
502
528
  ]
503
529
 
504
530
 
@@ -19,6 +19,7 @@ class ProviderVendor(StrEnum):
19
19
  ALICE_AND_BOB = "Alice & Bob"
20
20
  OQC = "OQC"
21
21
  INTEL = "Intel"
22
+ AQT = "AQT"
22
23
 
23
24
 
24
25
  class ProviderTypeVendor:
@@ -31,6 +32,7 @@ class ProviderTypeVendor:
31
32
  ALICE_BOB = Literal[ProviderVendor.ALICE_AND_BOB]
32
33
  OQC = Literal[ProviderVendor.OQC]
33
34
  INTEL = Literal[ProviderVendor.INTEL]
35
+ AQT = Literal[ProviderVendor.AQT]
34
36
 
35
37
 
36
38
  class ClassiqSimulatorBackendNames(StrEnum):
@@ -57,6 +57,14 @@ SupportedNodesTypes = Union[
57
57
  DEFAULT_SUPPORTED_NODE_TYPES = get_args(SupportedNodesTypes)
58
58
 
59
59
 
60
+ def _is_constant(expr: str) -> bool:
61
+ try:
62
+ float(expr)
63
+ return True
64
+ except ValueError:
65
+ return False
66
+
67
+
60
68
  class ExpressionValidator(ast.NodeVisitor):
61
69
  def __init__(
62
70
  self,
@@ -89,7 +97,7 @@ class ExpressionValidator(ast.NodeVisitor):
89
97
  @staticmethod
90
98
  def _get_adjusted_expression(expression: str) -> str:
91
99
  # This works around the simplification of the trivial expressions such as a + 0, 1 * a, etc.
92
- if IDENITIFIER_REGEX.fullmatch(expression):
100
+ if IDENITIFIER_REGEX.fullmatch(expression) or _is_constant(expression):
93
101
  return f"0 + {expression}"
94
102
  return expression
95
103
 
@@ -19,7 +19,10 @@ from pydantic.generics import GenericModel
19
19
  from classiq.interface.enum_utils import StrEnum
20
20
  from classiq.interface.exceptions import ClassiqValueError
21
21
  from classiq.interface.generator.arith import argument_utils, number_utils
22
- from classiq.interface.generator.arith.argument_utils import RegisterOrConst
22
+ from classiq.interface.generator.arith.argument_utils import (
23
+ RegisterOrConst,
24
+ as_arithmetic_info,
25
+ )
23
26
  from classiq.interface.generator.arith.arithmetic_operations import (
24
27
  MODULO_WITH_FRACTION_PLACES_ERROR_MSG,
25
28
  ArithmeticOperationParams,
@@ -59,11 +62,9 @@ class BinaryOpParams(
59
62
  right_arg_name: ClassVar[str] = DEFAULT_RIGHT_ARG_NAME
60
63
 
61
64
  @pydantic.root_validator(pre=True)
62
- def _validate_one_is_register(cls, values: Dict[str, Any]) -> Dict[str, Any]:
65
+ def _clone_repeated_arg(cls, values: Dict[str, Any]) -> Dict[str, Any]:
63
66
  left_arg = values.get("left_arg")
64
67
  right_arg = values.get("right_arg")
65
- if isinstance(left_arg, Numeric) and isinstance(right_arg, Numeric):
66
- raise ClassiqValueError("One argument must be a register")
67
68
  if left_arg is right_arg and isinstance(left_arg, pydantic.BaseModel):
68
69
  # In case both arguments refer to the same object, copy it.
69
70
  # This prevents changes performed on one argument to affect the other.
@@ -288,8 +289,9 @@ class Adder(InplacableBinaryOpParams[RegisterOrConst, RegisterOrConst]):
288
289
 
289
290
  def _get_output_size(self, ub: float, lb: float, fraction_places: int) -> int:
290
291
  if isinstance(self.left_arg, float) and self.left_arg == 0.0:
291
- assert isinstance(self.right_arg, RegisterArithmeticInfo)
292
- return self.right_arg.size
292
+ if isinstance(self.right_arg, RegisterArithmeticInfo):
293
+ return self.right_arg.size
294
+ return as_arithmetic_info(self.right_arg).size
293
295
  elif isinstance(self.right_arg, float) and self.right_arg == 0.0:
294
296
  assert isinstance(self.left_arg, RegisterArithmeticInfo)
295
297
  return self.left_arg.size
@@ -149,6 +149,9 @@ class SynthesisQuantumFunctionCall(BaseModel):
149
149
  description="The name of the function instance. "
150
150
  "If not set, determined automatically.",
151
151
  )
152
+ model_source_id: Optional[UUID] = pydantic.Field(default=None)
153
+ arithmetic_id: Optional[str] = pydantic.Field(default=None)
154
+ inverse_op_id: Optional[UUID] = pydantic.Field(default=None)
152
155
 
153
156
  uuid: UUID = pydantic.Field(default_factory=uuid4)
154
157
 
@@ -21,6 +21,7 @@ class Provider(StrEnum):
21
21
  ALICE_AND_BOB = "Alice & Bob"
22
22
  OQC = "OQC"
23
23
  INTEL = "Intel"
24
+ AQT = "AQT"
24
25
 
25
26
  @property
26
27
  def id(self) -> "ProviderIDEnum":
@@ -11,7 +11,6 @@ class OperationLevel(StrEnum):
11
11
  QMOD_FUNCTION_CALL = "QMOD_CALL"
12
12
  QMOD_STATEMENT = "QMOD_STATEMENT"
13
13
  ENGINE_FUNCTION_CALL = "ENGINE_CALL"
14
- ATOMIC = "ATOMIC"
15
14
  UNKNOWN = "UNKNOWN"
16
15
 
17
16
 
@@ -20,6 +19,7 @@ class OperationType(StrEnum):
20
19
  ALLOCATE = "ALLOCATE"
21
20
  FREE = "FREE"
22
21
  BIND = "BIND"
22
+ ATOMIC = "ATOMIC"
23
23
 
24
24
 
25
25
  class OperationData(pydantic.BaseModel):
@@ -9,7 +9,6 @@ from typing import (
9
9
  Tuple,
10
10
  Union,
11
11
  )
12
- from uuid import UUID, uuid4
13
12
 
14
13
  import pydantic
15
14
 
@@ -49,9 +48,6 @@ class QuantumFunctionCall(QuantumOperation):
49
48
  description="The function that is called"
50
49
  )
51
50
  positional_args: List[ArgValue] = pydantic.Field(default_factory=list)
52
- uuid: UUID = pydantic.Field(
53
- description="A unique identifier for this call", default_factory=uuid4
54
- )
55
51
 
56
52
  _func_decl: Optional[QuantumFunctionDeclaration] = pydantic.PrivateAttr(
57
53
  default=None
@@ -1,5 +1,6 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Any, Callable, Dict, Mapping, Optional, Sequence
3
+ from uuid import UUID, uuid4
3
4
 
4
5
  import pydantic
5
6
  from pydantic import Extra, root_validator
@@ -30,6 +31,9 @@ class HandleMetadata:
30
31
 
31
32
 
32
33
  class QuantumOperation(QuantumStatement):
34
+ uuid: UUID = pydantic.Field(
35
+ description="A unique identifier for this operation", default_factory=uuid4
36
+ )
33
37
  _generative_blocks: Dict[str, Callable] = pydantic.PrivateAttr(default_factory=dict)
34
38
 
35
39
  @property
@@ -161,7 +161,7 @@ class Emitter(Generic[QuantumStatementT]):
161
161
  }
162
162
 
163
163
  port_to_passed_variable_map = {
164
- arg_decl.name: evaluated_arg.value.handle.name
164
+ arg_decl.name: str(evaluated_arg.value.handle)
165
165
  for arg_decl, evaluated_arg in zip(new_positional_arg_decls, evaluated_args)
166
166
  if isinstance(arg_decl, PortDeclaration)
167
167
  }
@@ -35,7 +35,14 @@ from classiq.model_expansions.visitors.boolean_expression_transformers import (
35
35
  BooleanExpressionOptimizer,
36
36
  )
37
37
  from classiq.qmod import builtins
38
- from classiq.qmod.builtins.functions import X
38
+ from classiq.qmod.builtins.functions import X, allocate
39
+
40
+
41
+ def _is_zero(expr: str) -> bool:
42
+ try:
43
+ return float(expr) == 0.0
44
+ except ValueError:
45
+ return False
39
46
 
40
47
 
41
48
  class QuantumAssignmentOperationEmitter(
@@ -43,6 +50,8 @@ class QuantumAssignmentOperationEmitter(
43
50
  ):
44
51
  def emit(self, op: QuantumAssignmentOperation, /) -> None:
45
52
  new_expression = self._evaluate_op_expression(op)
53
+ if self._skip_assignment(op, new_expression.expr):
54
+ return
46
55
  arrays_with_subscript = self._get_symbols_to_split(new_expression)
47
56
  if len(arrays_with_subscript) > 0:
48
57
  self._emit_with_split(op, new_expression, arrays_with_subscript)
@@ -71,8 +80,12 @@ class QuantumAssignmentOperationEmitter(
71
80
  def _emit_inplace_arithmetic_op(
72
81
  self, op: ArithmeticOperation, expression: Expression, is_bool_opt: bool
73
82
  ) -> None:
74
- if op.operation_kind != ArithmeticOperationKind.InplaceXor or (
75
- op.result_type.size_in_bits > 1 or not _is_res_boolean(op)
83
+ target = self._interpreter.evaluate(op.result_var).as_type(QuantumSymbol)
84
+ if (
85
+ op.operation_kind != ArithmeticOperationKind.InplaceXor
86
+ or op.result_type.size_in_bits > 1
87
+ or not _is_res_boolean(op)
88
+ or target.quantum_type.size_in_bits > 1
76
89
  ):
77
90
  _validate_naive_inplace_handles(op)
78
91
  self._build_naive_inplace(op, expression)
@@ -156,6 +169,19 @@ class QuantumAssignmentOperationEmitter(
156
169
  WithinApply(compute=[arith_expression], action=[inplace_store])
157
170
  )
158
171
 
172
+ def _skip_assignment(self, op: QuantumAssignmentOperation, expr: str) -> bool:
173
+ if not isinstance(op, ArithmeticOperation) or not _is_zero(expr):
174
+ return False
175
+ if op.operation_kind != ArithmeticOperationKind.Assignment:
176
+ return True
177
+ allocate_call = QuantumFunctionCall(
178
+ function=allocate.func_decl.name,
179
+ positional_args=[Expression(expr="1"), op.result_var],
180
+ )
181
+ allocate_call.set_func_decl(allocate.func_decl)
182
+ self._interpreter.emit_statement(allocate_call)
183
+ return True
184
+
159
185
 
160
186
  def _validate_naive_inplace_handles(qe: ArithmeticOperation) -> None:
161
187
  if qe.result_var in qe.var_handles:
classiq/synthesis.py CHANGED
@@ -2,6 +2,7 @@ from typing import Any, NewType, Optional
2
2
 
3
3
  import pydantic
4
4
 
5
+ from classiq.interface.analyzer.result import QasmCode
5
6
  from classiq.interface.exceptions import ClassiqValueError
6
7
  from classiq.interface.executor.execution_preferences import ExecutionPreferences
7
8
  from classiq.interface.generator.model.constraints import Constraints
@@ -37,6 +38,26 @@ def show(quantum_program: SerializedQuantumProgram) -> None:
37
38
  circuit.show() # type: ignore[attr-defined]
38
39
 
39
40
 
41
+ async def quantum_program_from_qasm_async(qasm: str) -> SerializedQuantumProgram:
42
+ quantum_program = await ApiWrapper.get_generated_circuit_from_qasm(
43
+ QasmCode(code=qasm)
44
+ )
45
+ return SerializedQuantumProgram(quantum_program.json())
46
+
47
+
48
+ def quantum_program_from_qasm(qasm: str) -> SerializedQuantumProgram:
49
+ """
50
+ generate a quantum program from a QASM file.
51
+
52
+ Args:
53
+ qasm: A QASM2/3 string.
54
+
55
+ Returns:
56
+ SerializedQuantumProgram: Quantum program serialized as a string. (See: QuantumProgram)
57
+ """
58
+ return async_utils.run(quantum_program_from_qasm_async(qasm))
59
+
60
+
40
61
  async def synthesize_async(
41
62
  serialized_model: SerializedModel,
42
63
  ) -> SerializedQuantumProgram:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: classiq
3
- Version: 0.50.0
3
+ Version: 0.51.0
4
4
  Summary: Classiq's Python SDK for quantum computing
5
5
  Home-page: https://classiq.io
6
6
  License: Proprietary
@@ -1,4 +1,4 @@
1
- classiq/__init__.py,sha256=kJpBZtjz012nNg9KoP6bi5TtYTTGOFPi3bF7ZoRUfT4,3290
1
+ classiq/__init__.py,sha256=J4FvaP0HW4-Q3B4ojhK-KHE3alSN3Qwu7EzXYm8Q2_Y,3438
2
2
  classiq/_analyzer_extras/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  classiq/_analyzer_extras/_ipywidgets_async_extension.py,sha256=DF-G1Dhp51P6qlxTJT-kxPMJiYy9tyNoCvqbPQOeJd0,2163
4
4
  classiq/_analyzer_extras/interactive_hardware.py,sha256=f7ad2HeFq1f-2dJtPpgOE_w2IFzm49W6P_c-MzqJ5qE,3257
@@ -93,7 +93,7 @@ classiq/execution/jobs.py,sha256=t7Wdegpi6lylthg23a98rSmoZ8xXNGfz--efHYw39JY,956
93
93
  classiq/execution/qnn.py,sha256=qsOA2mD8Ne_4VwvyGPfuHVDTzyxVnDHwE2gfoaOMsf8,2339
94
94
  classiq/executor.py,sha256=jKD5O_tJpL2NMTC_N0NEuPJEmKZIaqsTpQrgZ88sleg,2594
95
95
  classiq/interface/__init__.py,sha256=cg7hD_XVu1_jJ1fgwmT0rMIoZHopNVeB8xtlmMx-E_A,83
96
- classiq/interface/_version.py,sha256=iHzQs1kSmGAqjEszJd80LP2IqPpGcunBlSect_qAg6o,197
96
+ classiq/interface/_version.py,sha256=QdnvwzI3ZZ950pqsQeD-2OQudc7rtsA7r_qNK3vRu2c,197
97
97
  classiq/interface/analyzer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  classiq/interface/analyzer/analysis_params.py,sha256=043hfS-I3Ec6tkcniKMQQUiRyEC7zlNhntTBpZQB8hw,3725
99
99
  classiq/interface/analyzer/cytoscape_graph.py,sha256=_2GviubgrDMAbF57PTDMhS9W0mTCLYWdyu0HndDPh54,2116
@@ -102,11 +102,11 @@ classiq/interface/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
102
102
  classiq/interface/applications/qsvm.py,sha256=7LElAz4QwTeia7MeAOy8WUHvuFUOUojs8j2wDOwPMao,3363
103
103
  classiq/interface/ast_node.py,sha256=EE06R8KwRA-QkK44Ou9TmMxiaa8J60G9Z9qf9T76k_k,398
104
104
  classiq/interface/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- classiq/interface/backend/backend_preferences.py,sha256=l05slQjXiIFul59f0FmI6M1WHOY67qcBT3wWn3nIqj8,20649
105
+ classiq/interface/backend/backend_preferences.py,sha256=bg_BKeu9jBN_zwMGtgLpmX486RnN57xG_hTE_VSkgKI,21610
106
106
  classiq/interface/backend/ionq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
107
  classiq/interface/backend/ionq/ionq_quantum_program.py,sha256=2DRnrzeSDC34mIdpsafWFSm7ZnHhKYspJYGULHv0XgI,1584
108
108
  classiq/interface/backend/pydantic_backend.py,sha256=aRf8kljUMiLBH2odswSCJ3hbex_1nOGTK3YmBC6EfmQ,1462
109
- classiq/interface/backend/quantum_backend_providers.py,sha256=d77iUBupdvocQTALuFGbeZjkm7Foav03pimGHftmtqs,6463
109
+ classiq/interface/backend/quantum_backend_providers.py,sha256=E4Kf3F_4b-5KtLPZFqDSSI94aPL_vNMX3SfvecMBH3s,6517
110
110
  classiq/interface/chemistry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
111
  classiq/interface/chemistry/ansatz_library.py,sha256=3ki3uaV77cUxUxUzDbn3mVhjvMoKejJ5bIR1kXpBT1k,360
112
112
  classiq/interface/chemistry/elements.py,sha256=Yy8L80SBVgmuKQyW-GlZKzwTqnP1O9po-FGFmKMJLRA,1181
@@ -185,12 +185,12 @@ classiq/interface/generator/arith/arithmetic.py,sha256=DrlA41wZxJwur8Va7-MVHEpVI
185
185
  classiq/interface/generator/arith/arithmetic_arg_type_validator.py,sha256=ut0iSKnrZK01pf59KjqQo5bJqygW8cnkl86zU9FdgZI,1189
186
186
  classiq/interface/generator/arith/arithmetic_expression_abc.py,sha256=FjibKgQcIpj6Yw9BJm7ixzKQXCmFpTTPeNg4e6CJ2ig,6445
187
187
  classiq/interface/generator/arith/arithmetic_expression_parser.py,sha256=8_aCF2XmZBDxlGVy26Y_6p1-PE8Bx2hjTXZk8YG2k8A,5368
188
- classiq/interface/generator/arith/arithmetic_expression_validator.py,sha256=oKaZw_k75xOBAh6JRvNuI10JhTa_PQHa29hVHqnSeqk,6495
188
+ classiq/interface/generator/arith/arithmetic_expression_validator.py,sha256=r6lKdppBdjhYS4YLGYOw9J9x_022hzYf0N_gAA4-qZg,6655
189
189
  classiq/interface/generator/arith/arithmetic_operations.py,sha256=a5eEbnOT9-7HNioNhoeqre5p-3s17epartLQkcAu0WM,1717
190
190
  classiq/interface/generator/arith/arithmetic_param_getters.py,sha256=W-QaPNSmFrtfZF6KSPsJfcQ8cXsdHxz3_r42cQd0Lso,13390
191
191
  classiq/interface/generator/arith/arithmetic_result_builder.py,sha256=c7Oiy6Bp43jbbfHwo5i0S5c_Zuc6oNxRgdNx5lQ0c-c,4255
192
192
  classiq/interface/generator/arith/ast_node_rewrite.py,sha256=GxWvW6HWHS-bQshPr-xgnOlkqRQ6PA1ea0fzMxDNZQY,2769
193
- classiq/interface/generator/arith/binary_ops.py,sha256=RDyN4hX11tGCHAbdvZeVbvKo0nlamwxrnBBFMZE63aE,30816
193
+ classiq/interface/generator/arith/binary_ops.py,sha256=RxpXoEDdkEsBnTUx2AgJvljitnC5xwE8tpL16lSneoU,30755
194
194
  classiq/interface/generator/arith/endianness.py,sha256=buplQY6swjKczmnGbyNxu9JqvzZcNPyjQdOePd9pPCA,116
195
195
  classiq/interface/generator/arith/extremum_operations.py,sha256=eBcFJf3RE8NdqfFDJoCoy5zdGVNMhr6lRwdozQQc5xo,5966
196
196
  classiq/interface/generator/arith/logical_ops.py,sha256=9VGq4hlZ_N85LsTnfJaoB4DAFkcnxpafqXhzUzGbWQM,2579
@@ -287,7 +287,7 @@ classiq/interface/generator/preferences/optimization.py,sha256=7iEWWNFSxqi4XMb4J
287
287
  classiq/interface/generator/qft.py,sha256=SDLcPWYxshDfPl-tAfhpRFb30NpPRRFpje5Jrrkb9Gs,1184
288
288
  classiq/interface/generator/qpe.py,sha256=qc7k1C1joRSH-DL3ULIbHr7xRjQWOwszhyplSFWfcW4,6010
289
289
  classiq/interface/generator/qsvm.py,sha256=iwLn-ACt1dilP60ddXBzLEKA0toJuHJCeAZ0-7VNnCQ,3000
290
- classiq/interface/generator/quantum_function_call.py,sha256=xlO3Sq33I2D5b1-DHbJ717Vuy_iYVRjNZFiTbRPvh8Q,23284
290
+ classiq/interface/generator/quantum_function_call.py,sha256=fFfQMNlrAbqYuhkOzDNVlBDxWqzrntL8EEesaq3gAVg,23480
291
291
  classiq/interface/generator/quantum_program.py,sha256=ahtP8DqNe0Fe0KN5r7kfuQNamanFuufSv8GuzHiQsOk,6811
292
292
  classiq/interface/generator/randomized_benchmarking.py,sha256=D6KI_1fMF5oBydaal2WLmTSit6xSMtz0yDAIZMMO89Q,635
293
293
  classiq/interface/generator/range_types.py,sha256=5TWlKLQSEdhvfRkJEa6WyLWZJDICTW6fWUfi7V_h_jg,2061
@@ -330,7 +330,7 @@ classiq/interface/generator/validations/validator_functions.py,sha256=n-K4R903O2
330
330
  classiq/interface/generator/visitor.py,sha256=4stDieh3p7JYuSL9bH_FqKrn0k0Nl8bMO72RQocZ8M8,2864
331
331
  classiq/interface/grover/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
332
  classiq/interface/grover/grover_modelling_params.py,sha256=eMXdjfuGlVq5qD3QyG-C8mAyIBAoxzkjF052M4b1i-k,390
333
- classiq/interface/hardware.py,sha256=1ZXtKhkhpJo2-Fg7oqGMe-XDG9OBNIUj29gmukuJblQ,2007
333
+ classiq/interface/hardware.py,sha256=9qxWDoVE-234RXe2eROVZo4NOS5DgjDq5EB7byP94DU,2023
334
334
  classiq/interface/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
335
335
  classiq/interface/helpers/classproperty.py,sha256=pt9A39GgEMzj2nbY5gjFp_CId_wom6lOQt_PADidT4Y,279
336
336
  classiq/interface/helpers/custom_encoders.py,sha256=0-9DTHwQr-I_vP1Ie4Z9N4qfzDhFvGT4qsXP-EdDegs,107
@@ -342,7 +342,7 @@ classiq/interface/helpers/validation_helpers.py,sha256=oUD1jMdTSoAkV-HjbkvMovb8Z
342
342
  classiq/interface/helpers/versioned_model.py,sha256=iHB0oO7pWKaE0l62SdfBbY3QwHSiSA0h9oUQQwRrvKI,295
343
343
  classiq/interface/ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
344
344
  classiq/interface/ide/ide_data.py,sha256=Z3keVfjxK8dpC64ZJ0PEoLWgtmOaxiv2CgBzkxbFVmY,2508
345
- classiq/interface/ide/visual_model.py,sha256=-Wn8_0RXgitZr2N5pWArYHpxMEFbXGlsIQrB3DnSMEI,2727
345
+ classiq/interface/ide/visual_model.py,sha256=tXwkxyEmBDwiyw6uM6ecMDV0nVO2-3u83ABeRWBZN-g,2727
346
346
  classiq/interface/interface_version.py,sha256=Q1aeahrMg6ePaFeDei3GEHzHA2_cJnGoJK3KQ3Av55k,24
347
347
  classiq/interface/jobs.py,sha256=QFGSbXpFK589jW4DzGGrNhkwm3ZhTehDt8P3lENXTsc,2749
348
348
  classiq/interface/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -363,10 +363,10 @@ classiq/interface/model/quantum_expressions/__init__.py,sha256=47DEQpj8HBSa-_TIm
363
363
  classiq/interface/model/quantum_expressions/amplitude_loading_operation.py,sha256=v45Eb44VxyBTMH-E1NTb5-YdKCj5EY_rb-BClHI0A48,2428
364
364
  classiq/interface/model/quantum_expressions/arithmetic_operation.py,sha256=HKFZci4z4QSmE8Bpwu6_6sCU1Wb-jzovrmsU1lmxjmw,3428
365
365
  classiq/interface/model/quantum_expressions/quantum_expression.py,sha256=yw-sYXbaaKoUSL8oujDFBjyShxCfAQnPPX64h-Yh-_8,2118
366
- classiq/interface/model/quantum_function_call.py,sha256=YOwmNuz7F0I7jimVjy69eGI044iXS0hAcBjBRuvhsI8,7313
366
+ classiq/interface/model/quantum_function_call.py,sha256=CCLORUqsVDORLJcR-uLzl0egUw4jxIVqQIANPny9T50,7166
367
367
  classiq/interface/model/quantum_function_declaration.py,sha256=N1iccemg-xC4Cc1pPLWT3cBGYO3RIEBPVz_zlWWkLpQ,7704
368
368
  classiq/interface/model/quantum_lambda_function.py,sha256=gNrzQuQ_UKdoZXPtGjhb-L1n67gBbJmuc7A6cKUhu68,2114
369
- classiq/interface/model/quantum_statement.py,sha256=tBWQ9ycUVCGo-9mRvYnfB1_q7zFCfCR_pTaevTXIiqY,2476
369
+ classiq/interface/model/quantum_statement.py,sha256=V-Kv7InndkM9q6RPhO6Kxi0T_-tmsiHWCbGUFJL-FM4,2628
370
370
  classiq/interface/model/quantum_type.py,sha256=19JjWMEU44l7C9VtsFakOZ3c3-ugQzC3_vdygrhieck,8199
371
371
  classiq/interface/model/quantum_variable_declaration.py,sha256=Vmx-aHnss8E_ghqX_wi4Njp-dEtYK-WwYHtHAwmGZxk,229
372
372
  classiq/interface/model/repeat.py,sha256=pSq0rzSDUVQqyzlv-mV1k-Jx57KyjqjZ1KgScGFOQgE,408
@@ -409,13 +409,13 @@ classiq/model_expansions/quantum_operations/__init__.py,sha256=BMruLYFsir2nU9Du9
409
409
  classiq/model_expansions/quantum_operations/bind.py,sha256=yRHOyMw3Kdkr1tJaRfPkbS6amCKl504weaWYqbVvZ0A,2631
410
410
  classiq/model_expansions/quantum_operations/classicalif.py,sha256=6SFumWVIWCTNQsng1GCkZ2zysT8aVrtwPqpwlJ6M_dQ,2151
411
411
  classiq/model_expansions/quantum_operations/control.py,sha256=SibNNK8gwzBMojwmXDg--SXbqhn3PJmIB2y0sK-7rJA,10151
412
- classiq/model_expansions/quantum_operations/emitter.py,sha256=wMuICR_CzLmaiwhS6EZWu4H864ZxTndITQC1gNRVaWA,10899
412
+ classiq/model_expansions/quantum_operations/emitter.py,sha256=z3axE2OfTjIxp6sevyo2VGsN1d5Elx5a8721YgGCpOM,10899
413
413
  classiq/model_expansions/quantum_operations/expression_operation.py,sha256=q2EaNec3kvTw2xDVGrd36p_rHiNMaWzkR0qFC55sJDY,8182
414
414
  classiq/model_expansions/quantum_operations/inplace_binary_operation.py,sha256=OoEBjjE9sXoOuV3h7p29UN6DgGywcXPVHntSLHXAUp4,11142
415
415
  classiq/model_expansions/quantum_operations/invert.py,sha256=iR6ZpTyntchWb5kJFFMCC6rkBURbueJO42H7-8ljbKw,1661
416
416
  classiq/model_expansions/quantum_operations/phase.py,sha256=W3qHfxs9S25yE2Ofgy9NwO5t9og6DxhqSQW8w1ptm1w,7337
417
417
  classiq/model_expansions/quantum_operations/power.py,sha256=89FEo5xJkOxCP7L7Jy9MJatRbbzjVVR0oc8Q7aBzF8Q,2661
418
- classiq/model_expansions/quantum_operations/quantum_assignment_operation.py,sha256=-WjwH-DmRbIZa4BusHl8HC7fvt7pc0U2IeU7-Mz5k-A,7485
418
+ classiq/model_expansions/quantum_operations/quantum_assignment_operation.py,sha256=Kk_7cYqJbwi3Nhh48yu51jIyaDo_dRB4nQnMOkGQKZE,8428
419
419
  classiq/model_expansions/quantum_operations/quantum_function_call.py,sha256=hQcOwaZV0qe7SmlqV3hdlKIcX_EKmxGOysH0lOVh9F0,729
420
420
  classiq/model_expansions/quantum_operations/repeat.py,sha256=zxxKxbMqa_4zkA5x10NrDpgUqEHKId4WxLXmD4aboJk,2060
421
421
  classiq/model_expansions/quantum_operations/variable_decleration.py,sha256=fRMRxctSxQFhPIhTMMVGC0F9p4iBLIMCD59G_j4Rk2Y,1196
@@ -498,7 +498,7 @@ classiq/qmod/symbolic_type.py,sha256=whMy3Uw4iE2SOVfHeyfTpDJ3BH6Rxlhk492ij-4QRU4
498
498
  classiq/qmod/type_attribute_remover.py,sha256=dN9dcsmFQI1UXz_DllGKl2BP4XkyvGdNk8diPan-9RE,1236
499
499
  classiq/qmod/utilities.py,sha256=z_VnIRmOYTWjJp2UlOcWK0rQRtMqysmP_Gr6WYY_nak,2734
500
500
  classiq/qmod/write_qmod.py,sha256=SO7hdBdO31lTzyeaJ-Htyma-aJmrbBNtABNEB2llI4Q,1818
501
- classiq/synthesis.py,sha256=s9-o3lzSxghx0YftQg3iZGvIreJ-H7DSTQYsevKcKw8,7374
502
- classiq-0.50.0.dist-info/METADATA,sha256=wAexI0GGQ4hKonmsIasJW0HL-rFLBLwwec6rPZWUdKA,3458
503
- classiq-0.50.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
504
- classiq-0.50.0.dist-info/RECORD,,
501
+ classiq/synthesis.py,sha256=egu5iUXeED5Lt0sDDQZvybUNVSYckNia5HbqRtoS11A,8035
502
+ classiq-0.51.0.dist-info/METADATA,sha256=F2DecgDdRlMbWpkFWPFgp1fnpKZBfAVb7RfvxXxS9iE,3458
503
+ classiq-0.51.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
504
+ classiq-0.51.0.dist-info/RECORD,,