classiq 0.73.0__py3-none-any.whl → 0.74.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/_internals/client.py +9 -10
- classiq/interface/_version.py +1 -1
- classiq/interface/ast_node.py +5 -2
- classiq/interface/compression_utils.py +31 -0
- classiq/interface/generator/quantum_program.py +14 -0
- classiq/interface/ide/visual_model.py +4 -2
- classiq/interface/model/quantum_lambda_function.py +14 -0
- classiq/model_expansions/capturing/captured_vars.py +28 -6
- classiq/model_expansions/evaluators/type_type_match.py +2 -1
- classiq/model_expansions/interpreters/generative_interpreter.py +1 -5
- classiq/model_expansions/quantum_operations/call_emitter.py +5 -5
- classiq/open_library/functions/__init__.py +2 -0
- classiq/open_library/functions/amplitude_amplification.py +5 -3
- classiq/open_library/functions/state_preparation.py +95 -2
- classiq/qmod/model_state_container.py +11 -8
- classiq/qmod/quantum_function.py +1 -9
- {classiq-0.73.0.dist-info → classiq-0.74.0.dist-info}/METADATA +2 -1
- {classiq-0.73.0.dist-info → classiq-0.74.0.dist-info}/RECORD +19 -18
- {classiq-0.73.0.dist-info → classiq-0.74.0.dist-info}/WHEEL +0 -0
classiq/_internals/client.py
CHANGED
@@ -75,25 +75,23 @@ def _get_user_agent_header() -> Headers:
|
|
75
75
|
python_version = (
|
76
76
|
f"python({_get_python_execution_environment()})/{platform.python_version()}"
|
77
77
|
)
|
78
|
-
|
79
|
-
sdk_env_value = os.getenv("SDK_ENV", "Default")
|
80
78
|
os_platform = f"{os.name}/{platform.platform()}"
|
81
79
|
frontend_version = f"{_FRONTEND_VARIANT}/{_VERSION}"
|
82
80
|
interface_version = f"{_INTERFACE_VARIANT}/{_VERSION}"
|
83
|
-
|
81
|
+
|
84
82
|
return {
|
85
83
|
"User-Agent": _USERAGENT_SEPARATOR.join(
|
86
|
-
(
|
87
|
-
python_version,
|
88
|
-
os_platform,
|
89
|
-
frontend_version,
|
90
|
-
interface_version,
|
91
|
-
sdk_env,
|
92
|
-
)
|
84
|
+
(python_version, os_platform, frontend_version, interface_version)
|
93
85
|
)
|
94
86
|
}
|
95
87
|
|
96
88
|
|
89
|
+
@functools.lru_cache
|
90
|
+
def _get_sdk_env_header() -> Headers:
|
91
|
+
sdk_env_value = os.getenv("SDK_ENV", "Default")
|
92
|
+
return {_SDK_ENV: sdk_env_value}
|
93
|
+
|
94
|
+
|
97
95
|
Ret = TypeVar("Ret")
|
98
96
|
P = ParamSpec("P")
|
99
97
|
|
@@ -327,6 +325,7 @@ class Client:
|
|
327
325
|
if self._session_id is not None:
|
328
326
|
headers[self._SESSION_HEADER] = self._session_id
|
329
327
|
headers.update(_get_user_agent_header())
|
328
|
+
headers.update(_get_sdk_env_header())
|
330
329
|
return headers
|
331
330
|
|
332
331
|
async def update_expired_access_token(self) -> None:
|
classiq/interface/_version.py
CHANGED
classiq/interface/ast_node.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
from typing import Optional, TypeVar
|
1
|
+
from typing import Any, Optional, TypeVar
|
2
2
|
from uuid import UUID
|
3
3
|
|
4
4
|
import pydantic
|
@@ -23,7 +23,10 @@ class ASTNode(HashablePydanticBaseModel):
|
|
23
23
|
def reset_lists(
|
24
24
|
ast_node: ASTNodeType, statement_block_fields: list[str]
|
25
25
|
) -> ASTNodeType:
|
26
|
-
|
26
|
+
update: dict[str, Any] = {field: [] for field in statement_block_fields}
|
27
|
+
if hasattr(ast_node, "uuid"):
|
28
|
+
update["uuid"] = ast_node.uuid
|
29
|
+
return ast_node.model_copy(update=update)
|
27
30
|
|
28
31
|
|
29
32
|
class HashableASTNode(ASTNode, HashablePydanticBaseModel):
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import base64
|
2
|
+
from collections.abc import Sequence
|
3
|
+
from typing import Union
|
4
|
+
|
5
|
+
import zstandard as zstd
|
6
|
+
from pydantic import BaseModel
|
7
|
+
from pydantic_core import from_json, to_json
|
8
|
+
|
9
|
+
|
10
|
+
def compress_pydantic(obj: Union[BaseModel, Sequence[BaseModel]]) -> bytes:
|
11
|
+
json_data = to_json(obj)
|
12
|
+
compressed_data = _compress(json_data, level=22) # max compression level
|
13
|
+
return compressed_data
|
14
|
+
|
15
|
+
|
16
|
+
def decompress(compressed_data: bytes) -> Union[dict, list[dict]]:
|
17
|
+
decompressed_data = _decompress(compressed_data)
|
18
|
+
return from_json(decompressed_data)
|
19
|
+
|
20
|
+
|
21
|
+
def _compress(data: bytes, level: int) -> bytes:
|
22
|
+
compressor = zstd.ZstdCompressor(level=level)
|
23
|
+
compressed_data = compressor.compress(data)
|
24
|
+
b64_compressed_data = base64.b64encode(compressed_data)
|
25
|
+
return b64_compressed_data
|
26
|
+
|
27
|
+
|
28
|
+
def _decompress(data: bytes) -> bytes:
|
29
|
+
compressed_data = base64.b64decode(data)
|
30
|
+
decompressor = zstd.ZstdDecompressor()
|
31
|
+
return decompressor.decompress(compressed_data)
|
@@ -8,6 +8,7 @@ from pydantic import model_validator
|
|
8
8
|
from pydantic_core.core_schema import ValidationInfo
|
9
9
|
from typing_extensions import TypeAlias
|
10
10
|
|
11
|
+
from classiq.interface.compression_utils import decompress
|
11
12
|
from classiq.interface.exceptions import (
|
12
13
|
ClassiqMissingOutputFormatError,
|
13
14
|
ClassiqStateInitializationError,
|
@@ -72,6 +73,7 @@ class QuantumProgram(VersionedModel, CircuitCodeInterface):
|
|
72
73
|
debug_info: Optional[list[FunctionDebugInfoInterface]] = pydantic.Field(
|
73
74
|
default=None
|
74
75
|
)
|
76
|
+
compressed_debug_info: Optional[bytes] = pydantic.Field(default=None)
|
75
77
|
program_id: str = pydantic.Field(default_factory=get_uuid_as_str)
|
76
78
|
execution_primitives_input: Optional[PrimitivesInput] = pydantic.Field(default=None)
|
77
79
|
|
@@ -198,3 +200,15 @@ class QuantumProgram(VersionedModel, CircuitCodeInterface):
|
|
198
200
|
if self.transpiled_circuit and self._can_use_transpiled_code
|
199
201
|
else self
|
200
202
|
)
|
203
|
+
|
204
|
+
def get_debug_info(self) -> Optional[list[FunctionDebugInfoInterface]]:
|
205
|
+
# Support legacy uncompressed debug info
|
206
|
+
if self.debug_info is not None:
|
207
|
+
return self.debug_info
|
208
|
+
if self.compressed_debug_info is None:
|
209
|
+
return None
|
210
|
+
decompressed_debug_info_dict_list = decompress(self.compressed_debug_info)
|
211
|
+
return [
|
212
|
+
FunctionDebugInfoInterface.model_validate(debug_info_dict)
|
213
|
+
for debug_info_dict in decompressed_debug_info_dict_list
|
214
|
+
]
|
@@ -1,4 +1,5 @@
|
|
1
1
|
from collections import Counter
|
2
|
+
from functools import cached_property
|
2
3
|
from typing import Any, Optional
|
3
4
|
|
4
5
|
import pydantic
|
@@ -58,11 +59,11 @@ class OperationLinks(pydantic.BaseModel):
|
|
58
59
|
inputs: list[OperationLink]
|
59
60
|
outputs: list[OperationLink]
|
60
61
|
|
61
|
-
@
|
62
|
+
@cached_property
|
62
63
|
def input_width(self) -> int:
|
63
64
|
return sum(len(link.qubits) for link in self.inputs)
|
64
65
|
|
65
|
-
@
|
66
|
+
@cached_property
|
66
67
|
def output_width(self) -> int:
|
67
68
|
return sum(len(link.qubits) for link in self.outputs)
|
68
69
|
|
@@ -122,6 +123,7 @@ class Operation(pydantic.BaseModel):
|
|
122
123
|
default=AtomicGate.UNKNOWN, description="Gate type"
|
123
124
|
)
|
124
125
|
is_daggered: bool = pydantic.Field(default=False)
|
126
|
+
expanded: bool = pydantic.Field(default=False)
|
125
127
|
|
126
128
|
|
127
129
|
class ProgramVisualModel(VersionedModel):
|
@@ -52,6 +52,20 @@ class QuantumLambdaFunction(ASTNode):
|
|
52
52
|
def set_op_decl(self, fd: AnonQuantumOperandDeclaration) -> None:
|
53
53
|
self._func_decl = fd
|
54
54
|
|
55
|
+
@property
|
56
|
+
def named_func_decl(self) -> AnonQuantumOperandDeclaration:
|
57
|
+
named_params = [
|
58
|
+
param.rename(rename)
|
59
|
+
for param, rename in zip(
|
60
|
+
self.func_decl.positional_arg_declarations,
|
61
|
+
self.pos_rename_params,
|
62
|
+
strict=False, # strict=False enables lambda keyword args
|
63
|
+
)
|
64
|
+
]
|
65
|
+
return self.func_decl.model_copy(
|
66
|
+
update={"positional_arg_declarations": named_params}
|
67
|
+
)
|
68
|
+
|
55
69
|
|
56
70
|
class OperandIdentifier(ASTNode):
|
57
71
|
name: str
|
@@ -116,6 +116,16 @@ class _CapturedHandle(_Captured):
|
|
116
116
|
self.defining_function.depth,
|
117
117
|
)
|
118
118
|
|
119
|
+
@property
|
120
|
+
def mangled_handle(self) -> HandleBinding:
|
121
|
+
return self.handle.rename(
|
122
|
+
mangle_captured_var_name(
|
123
|
+
self.handle.name,
|
124
|
+
self.defining_function.name,
|
125
|
+
self.defining_function.depth,
|
126
|
+
)
|
127
|
+
)
|
128
|
+
|
119
129
|
@property
|
120
130
|
def port(self) -> PortDeclaration:
|
121
131
|
return PortDeclaration(
|
@@ -485,15 +495,14 @@ class CapturedVars:
|
|
485
495
|
(
|
486
496
|
captured_handle.handle
|
487
497
|
if _same_closure(current_function, captured_handle.defining_function)
|
488
|
-
else
|
498
|
+
else captured_handle.mangled_handle
|
489
499
|
)
|
490
500
|
for captured_handle in self._captured_handles
|
491
501
|
]
|
492
502
|
return args
|
493
503
|
|
494
|
-
def
|
495
|
-
|
496
|
-
mapping = {
|
504
|
+
def get_immediate_captured_mapping(self) -> SymbolRenaming:
|
505
|
+
return {
|
497
506
|
captured_handle.handle: [
|
498
507
|
SymbolPart(
|
499
508
|
source_handle=captured_handle.handle,
|
@@ -504,7 +513,21 @@ class CapturedVars:
|
|
504
513
|
for captured_handle in self._captured_handles
|
505
514
|
if not captured_handle.is_propagated
|
506
515
|
}
|
507
|
-
|
516
|
+
|
517
|
+
def get_propagated_captured_mapping(self) -> SymbolRenaming:
|
518
|
+
return {
|
519
|
+
captured_handle.mangled_handle: [
|
520
|
+
SymbolPart(
|
521
|
+
source_handle=captured_handle.mangled_handle,
|
522
|
+
target_var_name=captured_handle.mangled_name,
|
523
|
+
target_var_type=captured_handle.quantum_type,
|
524
|
+
)
|
525
|
+
]
|
526
|
+
for captured_handle in self._captured_handles
|
527
|
+
}
|
528
|
+
|
529
|
+
def get_classical_captured_mapping(self) -> SymbolRenaming:
|
530
|
+
return {
|
508
531
|
(handle := HandleBinding(name=captured_classical_var.name)): [
|
509
532
|
HandleRenaming(
|
510
533
|
source_handle=handle,
|
@@ -514,7 +537,6 @@ class CapturedVars:
|
|
514
537
|
for captured_classical_var in self._captured_classical_vars
|
515
538
|
if not captured_classical_var.is_propagated
|
516
539
|
}
|
517
|
-
return mapping
|
518
540
|
|
519
541
|
def init_var(self, var_name: str, defining_function: "FunctionClosure") -> None:
|
520
542
|
self._handle_states.append((var_name, defining_function, False))
|
@@ -85,6 +85,7 @@ def _check_classical_type_match(
|
|
85
85
|
) -> None:
|
86
86
|
if (
|
87
87
|
not isinstance(op_param, AnonClassicalParameterDeclaration)
|
88
|
-
or decl_param.classical_type
|
88
|
+
or decl_param.classical_type.set_generative()
|
89
|
+
!= op_param.classical_type.set_generative()
|
89
90
|
):
|
90
91
|
raise ClassiqExpansionError(error_message)
|
@@ -95,15 +95,11 @@ class GenerativeInterpreter(BaseInterpreter):
|
|
95
95
|
)
|
96
96
|
|
97
97
|
def evaluate_lambda(self, function: QuantumLambdaFunction) -> Evaluated:
|
98
|
-
renamed_params = [
|
99
|
-
param.rename(function.pos_rename_params[idx])
|
100
|
-
for idx, param in enumerate(function.func_decl.positional_arg_declarations)
|
101
|
-
]
|
102
98
|
func_decl = NamedParamsQuantumFunctionDeclaration(
|
103
99
|
name=self._counted_name_allocator.allocate(
|
104
100
|
function.func_decl.name or "<lambda>"
|
105
101
|
),
|
106
|
-
positional_arg_declarations=
|
102
|
+
positional_arg_declarations=function.named_func_decl.positional_arg_declarations,
|
107
103
|
)
|
108
104
|
|
109
105
|
closure_class: type[FunctionClosure]
|
@@ -263,11 +263,11 @@ class CallEmitter(Generic[QuantumStatementT], Emitter[QuantumStatementT], VarSpl
|
|
263
263
|
chain.from_iterable((func_def.positional_arg_declarations, captured_ports))
|
264
264
|
)
|
265
265
|
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
)
|
266
|
+
rewrite_mapping = dict(captured_vars.get_propagated_captured_mapping())
|
267
|
+
if function_context.is_lambda:
|
268
|
+
rewrite_mapping |= captured_vars.get_immediate_captured_mapping()
|
269
|
+
rewrite_mapping |= captured_vars.get_classical_captured_mapping()
|
270
|
+
func_def.body = self.rewrite(func_def.body, rewrite_mapping)
|
271
271
|
|
272
272
|
return func_def
|
273
273
|
|
@@ -98,6 +98,7 @@ __all__ = [
|
|
98
98
|
"grover_search",
|
99
99
|
"hadamard_transform",
|
100
100
|
"inplace_c_modular_multiply",
|
101
|
+
"inplace_prepare_complex_amplitudes",
|
101
102
|
"inplace_prepare_int",
|
102
103
|
"linear_pauli_rotations",
|
103
104
|
"modular_exp",
|
@@ -105,6 +106,7 @@ __all__ = [
|
|
105
106
|
"multiswap",
|
106
107
|
"phase_oracle",
|
107
108
|
"prepare_bell_state",
|
109
|
+
"prepare_complex_amplitudes",
|
108
110
|
"prepare_exponential_state",
|
109
111
|
"prepare_ghz_state",
|
110
112
|
"prepare_int",
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import numpy as np
|
2
|
+
|
1
3
|
from classiq.open_library.functions.grover import grover_operator
|
2
4
|
from classiq.qmod.builtins.functions.standard_gates import RY
|
3
5
|
from classiq.qmod.builtins.operations import (
|
@@ -11,7 +13,7 @@ from classiq.qmod.cparam import CInt, CReal
|
|
11
13
|
from classiq.qmod.qfunc import qfunc
|
12
14
|
from classiq.qmod.qmod_variable import QArray, QBit
|
13
15
|
from classiq.qmod.quantum_callable import QCallable
|
14
|
-
from classiq.qmod.symbolic import acos, asin, ceiling,
|
16
|
+
from classiq.qmod.symbolic import acos, asin, ceiling, sin
|
15
17
|
|
16
18
|
|
17
19
|
@qfunc
|
@@ -67,8 +69,8 @@ def exact_amplitude_amplification(
|
|
67
69
|
packed_vars: The variable that holds the state to be amplified. Assumed to be in the zero state at the beginning of the algorithm.
|
68
70
|
"""
|
69
71
|
aux = QBit()
|
70
|
-
k = ceiling((pi / (4 * asin(amplitude))) - 0.5)
|
71
|
-
theta = pi / (4 * k + 2)
|
72
|
+
k = ceiling((np.pi / (4 * asin(amplitude))) - 0.5)
|
73
|
+
theta = np.pi / (4 * k + 2)
|
72
74
|
rot_phase = 2 * acos(sin(theta) / amplitude)
|
73
75
|
|
74
76
|
extended_qvars: QArray = QArray()
|
@@ -1,12 +1,23 @@
|
|
1
1
|
import warnings
|
2
2
|
from typing import Literal
|
3
3
|
|
4
|
+
import numpy as np
|
5
|
+
import sympy
|
6
|
+
|
4
7
|
from classiq.interface.exceptions import ClassiqDeprecationWarning
|
5
8
|
|
6
9
|
from classiq.open_library.functions.utility_functions import hadamard_transform
|
7
|
-
from classiq.qmod.builtins.functions
|
10
|
+
from classiq.qmod.builtins.functions import (
|
11
|
+
CX,
|
12
|
+
IDENTITY,
|
13
|
+
RY,
|
14
|
+
RZ,
|
15
|
+
H,
|
16
|
+
X,
|
17
|
+
inplace_prepare_amplitudes,
|
18
|
+
)
|
8
19
|
from classiq.qmod.builtins.operations import allocate, control, if_, inplace_add, repeat
|
9
|
-
from classiq.qmod.cparam import CBool, CInt
|
20
|
+
from classiq.qmod.cparam import CArray, CBool, CInt, CReal
|
10
21
|
from classiq.qmod.qfunc import qfunc
|
11
22
|
from classiq.qmod.qmod_variable import Output, QArray, QBit, QNum
|
12
23
|
from classiq.qmod.symbolic import (
|
@@ -298,3 +309,85 @@ def prepare_int(
|
|
298
309
|
stacklevel=1,
|
299
310
|
)
|
300
311
|
out |= value
|
312
|
+
|
313
|
+
|
314
|
+
def _control_qubit(i: int) -> int:
|
315
|
+
if _msb(_graycode(i)) < _msb(_graycode(i + 1)):
|
316
|
+
return (_graycode(i) & _graycode(i + 1)).bit_length() - 1
|
317
|
+
return (_graycode(i) ^ _graycode(i + 1)).bit_length() - 1
|
318
|
+
|
319
|
+
|
320
|
+
def _graycode(i: int) -> int:
|
321
|
+
return i ^ (i >> 1)
|
322
|
+
|
323
|
+
|
324
|
+
def _msb(x: int) -> int:
|
325
|
+
"""
|
326
|
+
largest non zero bit
|
327
|
+
"""
|
328
|
+
if x == 0:
|
329
|
+
return 0
|
330
|
+
return x.bit_length() - 1
|
331
|
+
|
332
|
+
|
333
|
+
def _classical_hadamard_transform(arr: list[float]) -> np.ndarray:
|
334
|
+
return 1 / np.sqrt(len(arr)) * np.array(sympy.fwht(np.array(arr)))
|
335
|
+
|
336
|
+
|
337
|
+
@qfunc(generative=True)
|
338
|
+
def _load_phases(
|
339
|
+
phases: list[float],
|
340
|
+
target: QArray[QBit, Literal["log(get_field(phases, 'len'), 2)"]],
|
341
|
+
) -> None:
|
342
|
+
alphas = -2 * _classical_hadamard_transform(phases) / np.sqrt(len(phases))
|
343
|
+
|
344
|
+
for i in range(1, len(alphas) - 1):
|
345
|
+
gray = _graycode(i)
|
346
|
+
next_gray = _graycode(i + 1)
|
347
|
+
RZ(alphas[gray], target[_msb(gray)])
|
348
|
+
CX(target[_control_qubit(i)], target[_msb(next_gray)])
|
349
|
+
|
350
|
+
RZ(alphas[_graycode(len(phases) - 1)], target[target.len - 1])
|
351
|
+
|
352
|
+
|
353
|
+
@qfunc
|
354
|
+
def inplace_prepare_complex_amplitudes(
|
355
|
+
magnitudes: CArray[CReal],
|
356
|
+
phases: CArray[CReal],
|
357
|
+
target: QArray[QBit, Literal["log(get_field(magnitudes, 'len'), 2)"]],
|
358
|
+
) -> None:
|
359
|
+
"""
|
360
|
+
|
361
|
+
[Qmod Classiq-library function]
|
362
|
+
|
363
|
+
Prepares a quantum state with amplitudes and phases for each state according to the given parameters, in polar representation.
|
364
|
+
Expects to act on an initialized zero state $|0\\rangle$.
|
365
|
+
|
366
|
+
Args:
|
367
|
+
magnitudes: Absolute values of the state amplitudes.
|
368
|
+
phases: phases of the state amplitudes. should be of the same size as `amplitudes`.
|
369
|
+
target: The quantum variable to act upon.
|
370
|
+
"""
|
371
|
+
inplace_prepare_amplitudes(magnitudes, 0, target)
|
372
|
+
_load_phases(phases, target)
|
373
|
+
|
374
|
+
|
375
|
+
@qfunc
|
376
|
+
def prepare_complex_amplitudes(
|
377
|
+
magnitudes: CArray[CReal],
|
378
|
+
phases: CArray[CReal],
|
379
|
+
out: Output[QArray[QBit, Literal["log(get_field(magnitudes, 'len'), 2)"]]],
|
380
|
+
) -> None:
|
381
|
+
"""
|
382
|
+
|
383
|
+
[Qmod Classiq-library function]
|
384
|
+
|
385
|
+
Initializes and prepares a quantum state with amplitudes and phases for each state according to the given parameters, in polar representation.
|
386
|
+
|
387
|
+
Args:
|
388
|
+
magnitudes: Absolute values of the state amplitudes.
|
389
|
+
phases: phases of the state amplitudes. should be of the same size as `amplitudes`.
|
390
|
+
out: The allocated quantum variable. Must be uninitialized.
|
391
|
+
"""
|
392
|
+
allocate(out)
|
393
|
+
inplace_prepare_complex_amplitudes(magnitudes, phases, out)
|
@@ -24,13 +24,16 @@ class ModelStateContainer:
|
|
24
24
|
generative_functions: dict[str, "GenerativeQFunc"]
|
25
25
|
function_dependencies: dict[str, list[str]]
|
26
26
|
|
27
|
+
def reset(self) -> None:
|
28
|
+
self.enum_decls = {}
|
29
|
+
self.type_decls = {}
|
30
|
+
self.qstruct_decls = {}
|
31
|
+
self.native_defs = {}
|
32
|
+
self.constants = {}
|
33
|
+
self.functions_compilation_metadata = {}
|
34
|
+
self.generative_functions = {}
|
35
|
+
self.function_dependencies = defaultdict(list)
|
36
|
+
|
27
37
|
|
28
38
|
QMODULE = ModelStateContainer()
|
29
|
-
QMODULE.
|
30
|
-
QMODULE.type_decls = {}
|
31
|
-
QMODULE.qstruct_decls = {}
|
32
|
-
QMODULE.native_defs = {}
|
33
|
-
QMODULE.constants = {}
|
34
|
-
QMODULE.functions_compilation_metadata = {}
|
35
|
-
QMODULE.generative_functions = {}
|
36
|
-
QMODULE.function_dependencies = defaultdict(list)
|
39
|
+
QMODULE.reset()
|
classiq/qmod/quantum_function.py
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
import ast
|
2
2
|
import functools
|
3
3
|
from abc import abstractmethod
|
4
|
-
from collections import defaultdict
|
5
4
|
from dataclasses import is_dataclass
|
6
5
|
from enum import EnumMeta
|
7
6
|
from inspect import isclass
|
@@ -120,14 +119,7 @@ class QFunc(BaseQFunc):
|
|
120
119
|
preferences: Optional[Preferences] = None,
|
121
120
|
classical_execution_function: Optional[CFunc] = None,
|
122
121
|
) -> Model:
|
123
|
-
self._qmodule.
|
124
|
-
self._qmodule.type_decls = dict()
|
125
|
-
self._qmodule.qstruct_decls = dict()
|
126
|
-
self._qmodule.native_defs = dict()
|
127
|
-
self._qmodule.constants = dict()
|
128
|
-
self._qmodule.functions_compilation_metadata = dict()
|
129
|
-
self._qmodule.generative_functions = dict()
|
130
|
-
self._qmodule.function_dependencies = defaultdict(list)
|
122
|
+
self._qmodule.reset()
|
131
123
|
QConstant.set_current_model(self._qmodule)
|
132
124
|
self.expand()
|
133
125
|
model_extra_settings: list[tuple[str, Any]] = [
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: classiq
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.74.0
|
4
4
|
Summary: Classiq's Python SDK for quantum computing
|
5
5
|
License: Proprietary
|
6
6
|
Keywords: quantum computing,quantum circuits,quantum algorithms,QAD,QDL
|
@@ -53,6 +53,7 @@ Requires-Dist: tabulate (>=0.8.9,<1)
|
|
53
53
|
Requires-Dist: torch ; extra == "qml"
|
54
54
|
Requires-Dist: torchvision ; extra == "qml"
|
55
55
|
Requires-Dist: tqdm (>=4.67.1,<5.0.0)
|
56
|
+
Requires-Dist: zstandard (>=0.23.0,<0.24.0)
|
56
57
|
Description-Content-Type: text/markdown
|
57
58
|
|
58
59
|
<p align="center">
|
@@ -11,7 +11,7 @@ classiq/_internals/authentication/authentication.py,sha256=58Xv1QtynXwEfBqIV5E3L
|
|
11
11
|
classiq/_internals/authentication/device.py,sha256=dUii1-Z26j0NY4R6J4p0gjYSq5Goj-gwMxXPSnVANuE,4024
|
12
12
|
classiq/_internals/authentication/password_manager.py,sha256=nhJyr8IGrsq3oaGtD0UXZ_rCN4GPI-4LrTYHc1R--sQ,4464
|
13
13
|
classiq/_internals/authentication/token_manager.py,sha256=XStkqCPUQEqc3uj6tt_XzfUIcUlyT-94tBZ8tpQIy_s,5280
|
14
|
-
classiq/_internals/client.py,sha256=
|
14
|
+
classiq/_internals/client.py,sha256=gHnkpKedytRAXaRasU2CkICttbQd2IsT1tAPPGd8oTU,12634
|
15
15
|
classiq/_internals/config.py,sha256=-UKKvPp_61sxXY-URqU1feLqlfh9ww4wCDH4yl14EiA,3534
|
16
16
|
classiq/_internals/help.py,sha256=9gl64Y8nKW-f-8pYt7lMozOP6uERcIIf8dotgn_WKA0,460
|
17
17
|
classiq/_internals/host_checker.py,sha256=D0rgnoZrHo62rYS32yCuYZSyMrMChZG5ITsJxwj0R5g,3969
|
@@ -89,14 +89,14 @@ classiq/execution/jobs.py,sha256=h_aki-Q7RDbG7fyMYdc-kTRNgtq1gX9W5LDub_7J2UM,108
|
|
89
89
|
classiq/execution/qnn.py,sha256=WGPvncz5uS2WxSY3-yBWt2LFiCk6Ug8WKWF-Kp-f7TM,2403
|
90
90
|
classiq/executor.py,sha256=9mae_QMGZYT8CJ5QlS4XH7063OYrrDUnt8gAFV-OhRc,2773
|
91
91
|
classiq/interface/__init__.py,sha256=cg7hD_XVu1_jJ1fgwmT0rMIoZHopNVeB8xtlmMx-E_A,83
|
92
|
-
classiq/interface/_version.py,sha256=
|
92
|
+
classiq/interface/_version.py,sha256=BI-nVueUF-_bvqJGZ-QZZhNBUCxdF-1lsoJ82-C2X4M,197
|
93
93
|
classiq/interface/analyzer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
94
|
classiq/interface/analyzer/analysis_params.py,sha256=dM5rwSks798cxk4FWe4_X5ToRYtgZQh34F1u0XrFkK8,3881
|
95
95
|
classiq/interface/analyzer/cytoscape_graph.py,sha256=MpeRBIYS1TfwYwiFpgTO51IE0KoxhY510pmEM3S0rbw,2361
|
96
96
|
classiq/interface/analyzer/result.py,sha256=CJhZ7Q_VUCyKS1ivtyD9l9534efjEUY6C6Wwrb3kXak,5872
|
97
97
|
classiq/interface/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
98
98
|
classiq/interface/applications/qsvm.py,sha256=4dHVSZH--sv58SvxmpDHPh9JDr4qQUZbbGCeaEv6b1I,3408
|
99
|
-
classiq/interface/ast_node.py,sha256
|
99
|
+
classiq/interface/ast_node.py,sha256=-X3lke3c2Wm0fGDupj0g4cGfuRmLv4hA4EjLsJ1dHqE,941
|
100
100
|
classiq/interface/backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
101
101
|
classiq/interface/backend/backend_preferences.py,sha256=apW0rA9nQSrU8NUa9piFPfoKiMQWQJnUILewn73DVqc,21539
|
102
102
|
classiq/interface/backend/ionq/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -134,6 +134,7 @@ classiq/interface/combinatorial_optimization/optimization_problem.py,sha256=iiC1
|
|
134
134
|
classiq/interface/combinatorial_optimization/result.py,sha256=kDGShpwzhp8KOibngo3SFnfZGBjT0ClmS86a3Yrlgj8,198
|
135
135
|
classiq/interface/combinatorial_optimization/sense.py,sha256=P8_kJRf3aUKbCkIqOP3tOc81Vpz9yW4Z74RGaYbd9TA,262
|
136
136
|
classiq/interface/combinatorial_optimization/solver_types.py,sha256=kcLt80fQucq_DWmJXmmVljwCGV4gtDnqOMlJdemhPQc,135
|
137
|
+
classiq/interface/compression_utils.py,sha256=rX4sD4_8C-liWqBICuE6VaT38yjUK_FneSA5GUmPF2A,973
|
137
138
|
classiq/interface/debug_info/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
138
139
|
classiq/interface/debug_info/back_ref_util.py,sha256=plWBiBMfFIY6aYAR3NVYComsY394ysLVdk_yFy1qcC4,791
|
139
140
|
classiq/interface/debug_info/debug_info.py,sha256=XZ3zNzJb1whiHKLpKZpDITXEeV3tbhwEAhHa5cSzABE,4263
|
@@ -295,7 +296,7 @@ classiq/interface/generator/qft.py,sha256=SDLcPWYxshDfPl-tAfhpRFb30NpPRRFpje5Jrr
|
|
295
296
|
classiq/interface/generator/qpe.py,sha256=C6CddpuD196TUVpUEvvlA9uaRLmFlTkwrHheaWbGojY,6526
|
296
297
|
classiq/interface/generator/qsvm.py,sha256=Ry2iTC2NIoh0u9BsuwVaO-ICUBbRIF7Of9scJG4sGFs,3056
|
297
298
|
classiq/interface/generator/quantum_function_call.py,sha256=BlqclMwh_Qj6_yXUTIBM23eLdQ_X3x_KTQ4WWwBN4JY,24123
|
298
|
-
classiq/interface/generator/quantum_program.py,sha256=
|
299
|
+
classiq/interface/generator/quantum_program.py,sha256=k4NU1up8UCofrPNZMTYurCAJfiVwBJ1oH0-e3ER8vGA,8131
|
299
300
|
classiq/interface/generator/randomized_benchmarking.py,sha256=D6KI_1fMF5oBydaal2WLmTSit6xSMtz0yDAIZMMO89Q,635
|
300
301
|
classiq/interface/generator/range_types.py,sha256=X6CtSyimlpISz9QNbCdqqQkRg1pOGHEQCXy4aEeSwA4,2044
|
301
302
|
classiq/interface/generator/register_role.py,sha256=moerPIO9gQUuG5pe43TemmScSVjTK7_gi-qbrhIgLOA,1147
|
@@ -352,7 +353,7 @@ classiq/interface/helpers/validation_helpers.py,sha256=Jt0xs5EZeEQZOBEZPRmKctHmA
|
|
352
353
|
classiq/interface/helpers/versioned_model.py,sha256=kBgEghNdSidohb0-p_EjRFZLs7LAmLZ_uKIHZFSZ8cQ,159
|
353
354
|
classiq/interface/ide/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
354
355
|
classiq/interface/ide/ide_data.py,sha256=TtFsBttR7L34DeRx4NaswpdyMqEyAuguEWSvGXfZtZs,2504
|
355
|
-
classiq/interface/ide/visual_model.py,sha256=
|
356
|
+
classiq/interface/ide/visual_model.py,sha256=nnauOxOCJrWmc_W0Qtn7RoXlXYY3dPxr_ZPNCtHDaaE,3274
|
356
357
|
classiq/interface/interface_version.py,sha256=w1gZSbPPwcEizEoNhHnkmxXxmkHXCNsHFARLKnhrUbk,24
|
357
358
|
classiq/interface/jobs.py,sha256=i8hrBR2qtptCbxNI-PVYZedH_EDehOe2i09JbJUlD1g,2339
|
358
359
|
classiq/interface/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -378,7 +379,7 @@ classiq/interface/model/quantum_expressions/arithmetic_operation.py,sha256=kqABv
|
|
378
379
|
classiq/interface/model/quantum_expressions/quantum_expression.py,sha256=hSWdSJmsEYaZZ62dWI8ueIl_-lqn7FBnwadsqozzZOI,2228
|
379
380
|
classiq/interface/model/quantum_function_call.py,sha256=fKDQwYBg8v_WvDsl9QDAA-RBVsW4GOn-zOnpqlhamPg,7384
|
380
381
|
classiq/interface/model/quantum_function_declaration.py,sha256=Er0RfxfpcVO5-ufMkBqSFxKz0BHtu7zCMKnTWOwU_ZM,8675
|
381
|
-
classiq/interface/model/quantum_lambda_function.py,sha256=
|
382
|
+
classiq/interface/model/quantum_lambda_function.py,sha256=Jvw8N_GYSwqlAg5RchBSJ3LwYO2U5ImmELaHpvRTWOg,2420
|
382
383
|
classiq/interface/model/quantum_statement.py,sha256=XthtcTISbdRIv4NW-fckV4jB-dkvYotAZnphMIiK-Ww,3359
|
383
384
|
classiq/interface/model/quantum_type.py,sha256=KcwykkbjctiQsMc7XaM3EugKYNE2wVmyPYcclH8K3Lc,10311
|
384
385
|
classiq/interface/model/quantum_variable_declaration.py,sha256=Vmx-aHnss8E_ghqX_wi4Njp-dEtYK-WwYHtHAwmGZxk,229
|
@@ -399,7 +400,7 @@ classiq/interface/source_reference.py,sha256=a-4Vdc511ux-0lDPDTRGAzouRWWtu4A3MPA
|
|
399
400
|
classiq/model_expansions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
400
401
|
classiq/model_expansions/atomic_expression_functions_defs.py,sha256=68iOZfdN_WHPbrdChoMgdElokBqp97mLscMNwmUE82U,9841
|
401
402
|
classiq/model_expansions/capturing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
402
|
-
classiq/model_expansions/capturing/captured_vars.py,sha256=
|
403
|
+
classiq/model_expansions/capturing/captured_vars.py,sha256=l1niB6GGOayu6PkfY4ImyjkQbRnORp93S60wHRBOpjs,27002
|
403
404
|
classiq/model_expansions/capturing/mangling_utils.py,sha256=wfCsjP0pScZv9YP6JXq3oVhkS-lCFyUoZ9IROBHS3Ek,1858
|
404
405
|
classiq/model_expansions/closure.py,sha256=vCNdYyn_pzoyNGIs4w-ZEm_Vj9925mfu64TDnTdHkys,4975
|
405
406
|
classiq/model_expansions/debug_flag.py,sha256=JWzl9FFq2CLcvTg_sh-K8Dp_xXvewsTuFKhPjTCrsrs,107
|
@@ -411,14 +412,14 @@ classiq/model_expansions/evaluators/classical_type_inference.py,sha256=Ex2A8uhiU
|
|
411
412
|
classiq/model_expansions/evaluators/control.py,sha256=rFSP5kuQZfh0OPMuf0OmiDVlX_c0stl2mKX4tnIhAHA,4110
|
412
413
|
classiq/model_expansions/evaluators/parameter_types.py,sha256=OjGQspqVkHJfSft7InuwH6SCvB9Pfc6ktNjDCL8pBDY,9261
|
413
414
|
classiq/model_expansions/evaluators/quantum_type_utils.py,sha256=s2kqPenO3qaJsiVa1bo5t4cpJ-MZeRqlVvM9TXPtyBI,7729
|
414
|
-
classiq/model_expansions/evaluators/type_type_match.py,sha256=
|
415
|
+
classiq/model_expansions/evaluators/type_type_match.py,sha256=iNDLigrBiSuAQE0zReJFuvtlYyWjk86Gv7ytz3h0LHI,3262
|
415
416
|
classiq/model_expansions/expression_evaluator.py,sha256=Yn_bzK-qtO99XPC3GgbRyn3bMGHy1WoqxYovVjUEOgk,4780
|
416
417
|
classiq/model_expansions/function_builder.py,sha256=oVmXhyEu6wr8Ru8LSxIqxwn9gdDoQ26SAPlNnYWCGMI,8697
|
417
418
|
classiq/model_expansions/generative_functions.py,sha256=pBOE9gBXDK8CDRwJdTHFOJo0nvBiCMYqUmWyrvYebJY,6714
|
418
419
|
classiq/model_expansions/interpreters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
419
420
|
classiq/model_expansions/interpreters/base_interpreter.py,sha256=tvs7Q0LEfzZEUOhcn0gcYXf8obeGbFgyDO7BeN-OxUs,11411
|
420
421
|
classiq/model_expansions/interpreters/frontend_generative_interpreter.py,sha256=db1BKh-MDWqLTK8WCXpbNYxxQM4mjqWIhwFtDil7Vd0,3768
|
421
|
-
classiq/model_expansions/interpreters/generative_interpreter.py,sha256=
|
422
|
+
classiq/model_expansions/interpreters/generative_interpreter.py,sha256=HYh782nXN9_0xFTF6PwQsU8m79wbmiwP1aHIWqFvZF8,11967
|
422
423
|
classiq/model_expansions/model_tables.py,sha256=dlrOGRS2x4Fd_dzClIcV7V8edmbbQzePv9eqxtJQrpo,620
|
423
424
|
classiq/model_expansions/quantum_operations/__init__.py,sha256=iLROXHuWaYKWPYJHUM_6uRNKa9-I7oDPYn1yqYFpYgM,309
|
424
425
|
classiq/model_expansions/quantum_operations/allocate.py,sha256=Y00O9rVbXHt_yShLv63UJHO4gju0L-ft4I-xIvSNlFE,3037
|
@@ -427,7 +428,7 @@ classiq/model_expansions/quantum_operations/arithmetic/explicit_boolean_expressi
|
|
427
428
|
classiq/model_expansions/quantum_operations/assignment_result_processor.py,sha256=OtiqKU6-KxrMBNigSyX4jqohUPzg9qOFa2I-d0DZDK0,2671
|
428
429
|
classiq/model_expansions/quantum_operations/bind.py,sha256=KCX_J94-m3taogRGQN7d9sphJyM0XTYaGW_ssBlwIe4,4557
|
429
430
|
classiq/model_expansions/quantum_operations/block_evaluator.py,sha256=bESmqOLibwosu4KUh7UdAluwX3ICwO2hbLB7l4x2GYo,3083
|
430
|
-
classiq/model_expansions/quantum_operations/call_emitter.py,sha256=
|
431
|
+
classiq/model_expansions/quantum_operations/call_emitter.py,sha256=Bt8nVgJxQWZHMFIirHc0V0eZ_7nfmIAyKlUKlGZga-4,15003
|
431
432
|
classiq/model_expansions/quantum_operations/composite_emitter.py,sha256=B09YGldhWcqdNiyhNzQQU-85mJ_9cRrtNgruDvuyEUE,824
|
432
433
|
classiq/model_expansions/quantum_operations/declarative_call_emitter.py,sha256=BlcjV0AG05qpKyWFD2-GJQKqTDWcFfRl7y1z3yIpllc,3209
|
433
434
|
classiq/model_expansions/quantum_operations/emitter.py,sha256=jArt-eMikrGbR9fOzY9mP1Vc11Zmkn1UkGcHQWy5sIQ,9700
|
@@ -455,8 +456,8 @@ classiq/model_expansions/visitors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
455
456
|
classiq/model_expansions/visitors/boolean_expression_transformers.py,sha256=a8ITXY48uROZFd9MF8tXdXs14Uxh8XbBpuvRXvRehjY,8067
|
456
457
|
classiq/model_expansions/visitors/variable_references.py,sha256=HBgzONJujH8hbtRoqBkT8kBGgE2wDErtfAF_BJXcZC8,5299
|
457
458
|
classiq/open_library/__init__.py,sha256=bmg_qqXCXo85hcU7_QCce-qYGrpAVSFNwTKCClsclrg,114
|
458
|
-
classiq/open_library/functions/__init__.py,sha256=
|
459
|
-
classiq/open_library/functions/amplitude_amplification.py,sha256=
|
459
|
+
classiq/open_library/functions/__init__.py,sha256=Xf4XbgHLZphUO5Qw6v5kIi3_fW77jidivjmoHDa3qe8,3358
|
460
|
+
classiq/open_library/functions/amplitude_amplification.py,sha256=4lmK7-26VhZmWhBmhYCNrA44A8uo2Njycg8lFcVLc_U,4198
|
460
461
|
classiq/open_library/functions/amplitude_estimation.py,sha256=iCkca5SQN_HQoJWk1_tLT56fHT72hu5QIt2pxSZQRko,1766
|
461
462
|
classiq/open_library/functions/discrete_sine_cosine_transform.py,sha256=mutvfffkrEEFrFJp1bUliJBnOEnkv4rUQ7q1Pka9V8E,4439
|
462
463
|
classiq/open_library/functions/grover.py,sha256=yoMnx4jAF0b2hQqwaKMpPgdbqe9ZCsx2u95Yr029q_I,4367
|
@@ -468,7 +469,7 @@ classiq/open_library/functions/qaoa_penalty.py,sha256=Uz_ZSn7fRwynP5w2eSOEcft2z4
|
|
468
469
|
classiq/open_library/functions/qft_functions.py,sha256=7pdPBq48QvyQkxHrF3rEKTf0J50qUu_2bN17lfSc7I0,1382
|
469
470
|
classiq/open_library/functions/qpe.py,sha256=e7MBpOthBn73BdqhWpNGT0lkd6Jw3ZG7tE6n--IM0jc,2140
|
470
471
|
classiq/open_library/functions/qsvt.py,sha256=wpLq0P-pmhdTaRQJJWRHwbTZqRnE1M58MfQ2y1C0YUI,14271
|
471
|
-
classiq/open_library/functions/state_preparation.py,sha256=
|
472
|
+
classiq/open_library/functions/state_preparation.py,sha256=g5UHPYNpP8mvRFM61jk_6c1KhWmmzqi9k0AR_GKnNLg,13202
|
472
473
|
classiq/open_library/functions/swap_test.py,sha256=hAjiJjZGeJP2qzEkVYmBVlEK44VcNibWZ-KqJwPEcFY,1048
|
473
474
|
classiq/open_library/functions/utility_functions.py,sha256=MFxuk49vdjNIqLPxdloigACfXmuxmqrP_oSJbO49Rbc,2541
|
474
475
|
classiq/open_library/functions/variational.py,sha256=KYoqPKYRjgUXk_10RvogV0YiCG5kl7GZBHBJeeX82II,1715
|
@@ -499,7 +500,7 @@ classiq/qmod/create_model_function.py,sha256=JhPFmI-_K4Yv-RFcKwWLLhFMpcs35K651It
|
|
499
500
|
classiq/qmod/declaration_inferrer.py,sha256=mcqUrrMfolphtNeCn7B0uT4TVAYdx481v6jebmmiRcc,7749
|
500
501
|
classiq/qmod/expression_query.py,sha256=24gsE5hJ1o9ZuqPILH7aaoOzKRQY2RZtvIK35xuubGA,1629
|
501
502
|
classiq/qmod/generative.py,sha256=MSy-LUsmxteVm3sQSTSWPiYgAskBfYcRHm5EJCYBVZo,1255
|
502
|
-
classiq/qmod/model_state_container.py,sha256=
|
503
|
+
classiq/qmod/model_state_container.py,sha256=eeE5sCo7dbMI6A_opNo0rGEtB7uSIQfv6szBcbamANI,1435
|
503
504
|
classiq/qmod/native/__init__.py,sha256=gm0L3ew0KAy0eSqaMQrvpnKWx85HoA1p9ADaAlyejdA,126
|
504
505
|
classiq/qmod/native/expression_to_qmod.py,sha256=a33dDr7BGWl7YhsFjpfAuI9Ys7amJjMo4DImSrD4NZg,7143
|
505
506
|
classiq/qmod/native/pretty_printer.py,sha256=hcvv2PJLeZbJfh7jsWA_ZhpA3kpo9E_cWkW6iVJ7jwE,17421
|
@@ -513,7 +514,7 @@ classiq/qmod/qmod_parameter.py,sha256=3WYO11-F8dmbZKqTokmKxzehLdb-aEPYwyiDcAFbbQ
|
|
513
514
|
classiq/qmod/qmod_variable.py,sha256=_Wbg7FyrpBYSLnySJhHt96hWkH0EOwDaHoQJhq1x2ow,24806
|
514
515
|
classiq/qmod/quantum_callable.py,sha256=RifbkZEmZ4COOHfluPD2jfd-qYSda2ytW173diR3tI4,2501
|
515
516
|
classiq/qmod/quantum_expandable.py,sha256=3GjFdIP7rDv5SMG9scE3_niu04tWELS6u7it2zpRZUg,17640
|
516
|
-
classiq/qmod/quantum_function.py,sha256=
|
517
|
+
classiq/qmod/quantum_function.py,sha256=vXytpoxeeOao08AkLc_yZ1em4xujqFf4dMeASUJBPi0,12422
|
517
518
|
classiq/qmod/semantics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
518
519
|
classiq/qmod/semantics/annotation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
519
520
|
classiq/qmod/semantics/annotation/call_annotation.py,sha256=I94YDffDP-PDx3-r8XRFtg7D8B07OyuwnWOGwJVOOOA,3804
|
@@ -537,6 +538,6 @@ classiq/qmod/type_attribute_remover.py,sha256=NZmTXAsngWqthXjE8n-n6yE72fiWTFM12-
|
|
537
538
|
classiq/qmod/utilities.py,sha256=XoB9JU6Vn4p8ZirrUUaP-UpOInm3jwuuYjB6R_V3XLo,5467
|
538
539
|
classiq/qmod/write_qmod.py,sha256=Q3TWQU9p_Uy42STmX5GA_4Ts2TTOgYjt7I8LTRxTbb0,2047
|
539
540
|
classiq/synthesis.py,sha256=_1W-_shxXEmlhNFKuYz3npiv6P3pWonVn55B0qKRYSo,9052
|
540
|
-
classiq-0.
|
541
|
-
classiq-0.
|
542
|
-
classiq-0.
|
541
|
+
classiq-0.74.0.dist-info/METADATA,sha256=M6xZoSaXkyGLUXsariLsJ16P9l858Zo5ELuwYcYcOnI,3382
|
542
|
+
classiq-0.74.0.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
543
|
+
classiq-0.74.0.dist-info/RECORD,,
|
File without changes
|