qadence 1.5.2__py3-none-any.whl → 1.6.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 (51) hide show
  1. qadence/__init__.py +33 -5
  2. qadence/backend.py +2 -2
  3. qadence/backends/adjoint.py +8 -4
  4. qadence/backends/braket/backend.py +3 -2
  5. qadence/backends/braket/config.py +2 -2
  6. qadence/backends/gpsr.py +1 -1
  7. qadence/backends/horqrux/backend.py +4 -0
  8. qadence/backends/horqrux/config.py +2 -2
  9. qadence/backends/pulser/backend.py +71 -45
  10. qadence/backends/pulser/config.py +0 -28
  11. qadence/backends/pulser/pulses.py +2 -2
  12. qadence/backends/pyqtorch/backend.py +3 -2
  13. qadence/backends/pyqtorch/config.py +2 -2
  14. qadence/blocks/block_to_tensor.py +4 -4
  15. qadence/blocks/matrix.py +2 -2
  16. qadence/blocks/utils.py +2 -2
  17. qadence/circuit.py +5 -2
  18. qadence/constructors/__init__.py +1 -10
  19. qadence/constructors/ansatze.py +1 -65
  20. qadence/constructors/daqc/daqc.py +3 -2
  21. qadence/constructors/daqc/gen_parser.py +3 -2
  22. qadence/constructors/daqc/utils.py +3 -3
  23. qadence/constructors/feature_maps.py +2 -90
  24. qadence/constructors/hamiltonians.py +2 -6
  25. qadence/constructors/rydberg_feature_maps.py +2 -2
  26. qadence/decompose.py +2 -2
  27. qadence/engines/torch/differentiable_expectation.py +7 -0
  28. qadence/extensions.py +4 -15
  29. qadence/log_config.yaml +24 -0
  30. qadence/logger.py +9 -27
  31. qadence/ml_tools/models.py +10 -2
  32. qadence/ml_tools/saveload.py +14 -5
  33. qadence/ml_tools/train_grad.py +3 -3
  34. qadence/ml_tools/train_no_grad.py +2 -2
  35. qadence/models/quantum_model.py +13 -6
  36. qadence/noise/readout.py +2 -3
  37. qadence/operations/__init__.py +0 -2
  38. qadence/operations/analog.py +2 -12
  39. qadence/operations/control_ops.py +3 -2
  40. qadence/operations/ham_evo.py +2 -2
  41. qadence/operations/parametric.py +3 -2
  42. qadence/operations/primitive.py +2 -2
  43. qadence/parameters.py +2 -2
  44. qadence/serialization.py +2 -2
  45. qadence/transpile/block.py +2 -2
  46. qadence/types.py +2 -2
  47. qadence/utils.py +2 -2
  48. {qadence-1.5.2.dist-info → qadence-1.6.0.dist-info}/METADATA +16 -8
  49. {qadence-1.5.2.dist-info → qadence-1.6.0.dist-info}/RECORD +51 -50
  50. {qadence-1.5.2.dist-info → qadence-1.6.0.dist-info}/WHEEL +0 -0
  51. {qadence-1.5.2.dist-info → qadence-1.6.0.dist-info}/licenses/LICENSE +0 -0
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  import os
4
4
  from collections import Counter, OrderedDict
5
5
  from dataclasses import asdict
6
+ from logging import getLogger
6
7
  from pathlib import Path
7
8
  from typing import Any, Callable, Optional, Sequence
8
9
 
@@ -21,14 +22,13 @@ from qadence.blocks.abstract import AbstractBlock
21
22
  from qadence.blocks.utils import chain, unique_parameters
22
23
  from qadence.circuit import QuantumCircuit
23
24
  from qadence.engines.differentiable_backend import DifferentiableBackend
24
- from qadence.logger import get_logger
25
25
  from qadence.measurements import Measurements
26
26
  from qadence.mitigations import Mitigations
27
27
  from qadence.noise import Noise
28
28
  from qadence.parameters import Parameter
29
29
  from qadence.types import DiffMode, Endianness
30
30
 
31
- logger = get_logger(__name__)
31
+ logger = getLogger(__name__)
32
32
 
33
33
 
34
34
  class QuantumModel(nn.Module):
@@ -44,6 +44,7 @@ class QuantumModel(nn.Module):
44
44
  _params: nn.ParameterDict
45
45
  _circuit: ConvertedCircuit
46
46
  _observable: list[ConvertedObservable] | None
47
+ logger.debug("Initialised")
47
48
 
48
49
  def __init__(
49
50
  self,
@@ -185,8 +186,6 @@ class QuantumModel(nn.Module):
185
186
  params = self.embedding_fn(self._params, values)
186
187
  if noise is None:
187
188
  noise = self._noise
188
- else:
189
- self._noise = noise
190
189
  if mitigation is None:
191
190
  mitigation = self._mitigation
192
191
  return self.backend.sample(
@@ -316,7 +315,7 @@ class QuantumModel(nn.Module):
316
315
  try:
317
316
  torch.save(self._to_dict(save_params), folder / Path(file_name))
318
317
  except Exception as e:
319
- print(f"Unable to write QuantumModel to disk due to {e}")
318
+ logger.error(f"Unable to write QuantumModel to disk due to {e}")
320
319
 
321
320
  @classmethod
322
321
  def load(
@@ -333,7 +332,7 @@ class QuantumModel(nn.Module):
333
332
  try:
334
333
  qm_pt = torch.load(file_path, map_location=map_location)
335
334
  except Exception as e:
336
- print(f"Unable to load QuantumModel due to {e}")
335
+ logger.error(f"Unable to load QuantumModel due to {e}")
337
336
  return cls._from_dict(qm_pt, as_torch)
338
337
 
339
338
  def assign_parameters(self, values: dict[str, Tensor]) -> Any:
@@ -365,3 +364,11 @@ class QuantumModel(nn.Module):
365
364
  except Exception as e:
366
365
  logger.warning(f"Unable to move {self} to {args}, {kwargs} due to {e}.")
367
366
  return self
367
+
368
+ @property
369
+ def device(self) -> torch.device:
370
+ return (
371
+ self._circuit.native.device
372
+ if self.backend.backend.name == "pyqtorch" # type: ignore[union-attr]
373
+ else torch.device("cpu")
374
+ )
qadence/noise/readout.py CHANGED
@@ -2,14 +2,13 @@ from __future__ import annotations
2
2
 
3
3
  from collections import Counter
4
4
  from enum import Enum
5
+ from logging import getLogger
5
6
 
6
7
  import torch
7
8
  from torch import Tensor
8
9
  from torch.distributions import normal, poisson, uniform
9
10
 
10
- from qadence.logger import get_logger
11
-
12
- logger = get_logger(__name__)
11
+ logger = getLogger(__name__)
13
12
 
14
13
 
15
14
  class WhiteNoise(Enum):
@@ -10,7 +10,6 @@ from .analog import (
10
10
  AnalogSWAP,
11
11
  ConstantAnalogRotation,
12
12
  entangle,
13
- wait,
14
13
  )
15
14
  from .control_ops import (
16
15
  CNOT,
@@ -89,7 +88,6 @@ __all__ = [
89
88
  "CSWAP",
90
89
  "MCPHASE",
91
90
  "Toffoli",
92
- "wait",
93
91
  "entangle",
94
92
  "AnalogEntanglement",
95
93
  "AnalogInteraction",
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  from dataclasses import dataclass
4
+ from logging import getLogger
4
5
  from typing import Any, Tuple
5
6
 
6
7
  import numpy as np
@@ -19,7 +20,6 @@ from qadence.blocks.utils import (
19
20
  add, # noqa
20
21
  kron,
21
22
  )
22
- from qadence.logger import get_logger
23
23
  from qadence.parameters import (
24
24
  Parameter,
25
25
  ParamMap,
@@ -29,7 +29,7 @@ from qadence.types import PI, OpName, TNumber, TParameter
29
29
  from .ham_evo import HamEvo
30
30
  from .primitive import I, X, Z
31
31
 
32
- logger = get_logger(__name__)
32
+ logger = getLogger(__name__)
33
33
 
34
34
 
35
35
  class AnalogSWAP(HamEvo):
@@ -84,16 +84,6 @@ def AnalogInteraction(
84
84
  return InteractionBlock(parameters=ps, qubit_support=q, add_pattern=add_pattern)
85
85
 
86
86
 
87
- # FIXME: Remove in v1.5.0
88
- def wait(
89
- duration: TNumber | sympy.Basic,
90
- qubit_support: str | QubitSupport | tuple = "global",
91
- add_pattern: bool = True,
92
- ) -> InteractionBlock:
93
- logger.warning("The alias `wait` is deprecated, please use `AnalogInteraction`")
94
- return AnalogInteraction(duration, qubit_support, add_pattern)
95
-
96
-
97
87
  # FIXME: clarify the usage of this gate, rename more formally, and implement in PyQ
98
88
  @dataclass(eq=False, repr=False)
99
89
  class AnalogEntanglement(AnalogBlock):
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from logging import getLogger
4
+
3
5
  import sympy
4
6
  import torch
5
7
  from rich.console import Console, RenderableType
@@ -16,7 +18,6 @@ from qadence.blocks.utils import (
16
18
  chain,
17
19
  kron,
18
20
  )
19
- from qadence.logger import get_logger
20
21
  from qadence.parameters import (
21
22
  Parameter,
22
23
  evaluate,
@@ -26,7 +27,7 @@ from qadence.types import OpName, TNumber, TParameter
26
27
  from .parametric import PHASE, RX, RY, RZ
27
28
  from .primitive import SWAP, I, N, X, Y, Z
28
29
 
29
- logger = get_logger(__name__)
30
+ logger = getLogger(__name__)
30
31
 
31
32
 
32
33
  class CNOT(ControlBlock):
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from copy import deepcopy
4
4
  from functools import cached_property
5
+ from logging import getLogger
5
6
  from typing import Any, Union
6
7
 
7
8
  import numpy as np
@@ -22,7 +23,6 @@ from qadence.blocks.utils import (
22
23
  expressions,
23
24
  )
24
25
  from qadence.decompose import lie_trotter_suzuki
25
- from qadence.logger import get_logger
26
26
  from qadence.parameters import (
27
27
  Parameter,
28
28
  ParamMap,
@@ -32,7 +32,7 @@ from qadence.parameters import (
32
32
  from qadence.types import LTSOrder, OpName, TGenerator, TParameter
33
33
  from qadence.utils import eigenvalues
34
34
 
35
- logger = get_logger(__name__)
35
+ logger = getLogger(__name__)
36
36
 
37
37
 
38
38
  class HamEvo(TimeEvolutionBlock):
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from logging import getLogger
4
+
3
5
  import numpy as np
4
6
  import sympy
5
7
  import torch
@@ -13,7 +15,6 @@ from qadence.blocks.utils import (
13
15
  add, # noqa
14
16
  chain,
15
17
  )
16
- from qadence.logger import get_logger
17
18
  from qadence.parameters import (
18
19
  Parameter,
19
20
  ParamMap,
@@ -23,7 +24,7 @@ from qadence.types import OpName, TNumber, TParameter
23
24
 
24
25
  from .primitive import I, X, Y, Z
25
26
 
26
- logger = get_logger(__name__)
27
+ logger = getLogger(__name__)
27
28
 
28
29
 
29
30
  class PHASE(ParametricBlock):
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from logging import getLogger
3
4
  from typing import Union
4
5
 
5
6
  import numpy as np
@@ -17,13 +18,12 @@ from qadence.blocks.utils import (
17
18
  chain,
18
19
  kron,
19
20
  )
20
- from qadence.logger import get_logger
21
21
  from qadence.parameters import (
22
22
  Parameter,
23
23
  )
24
24
  from qadence.types import OpName, TNumber
25
25
 
26
- logger = get_logger(__name__)
26
+ logger = getLogger(__name__)
27
27
 
28
28
 
29
29
  class X(PrimitiveBlock):
qadence/parameters.py CHANGED
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ from logging import getLogger
3
4
  from typing import Any, ItemsView, KeysView, ValuesView, get_args
4
5
  from uuid import uuid4
5
6
 
@@ -12,13 +13,12 @@ from sympy.physics.quantum.dagger import Dagger
12
13
  from sympytorch import SymPyModule as torchSympyModule
13
14
  from torch import Tensor, heaviside, no_grad, rand, tensor
14
15
 
15
- from qadence.logger import get_logger
16
16
  from qadence.types import DifferentiableExpression, Engine, TNumber
17
17
 
18
18
  # Modules to be automatically added to the qadence namespace
19
19
  __all__ = ["FeatureParameter", "Parameter", "VariationalParameter"]
20
20
 
21
- logger = get_logger(__file__)
21
+ logger = getLogger(__name__)
22
22
 
23
23
  dagger_expression = Dagger
24
24
 
qadence/serialization.py CHANGED
@@ -6,6 +6,7 @@ import sys
6
6
  from dataclasses import dataclass
7
7
  from dataclasses import field as dataclass_field
8
8
  from functools import lru_cache
9
+ from logging import getLogger
9
10
  from pathlib import Path
10
11
  from typing import Any, Callable, get_args
11
12
  from typing import Union as TypingUnion
@@ -20,7 +21,6 @@ from qadence import QuantumCircuit, operations, parameters
20
21
  from qadence import blocks as qadenceblocks
21
22
  from qadence.blocks import AbstractBlock
22
23
  from qadence.blocks.utils import tag
23
- from qadence.logger import get_logger
24
24
  from qadence.models import QuantumModel
25
25
  from qadence.parameters import Parameter
26
26
  from qadence.register import Register
@@ -30,7 +30,7 @@ from qadence.types import SerializationFormat
30
30
  __all__ = ["deserialize", "load", "save", "serialize"]
31
31
 
32
32
 
33
- logger = get_logger(__name__)
33
+ logger = getLogger(__name__)
34
34
 
35
35
 
36
36
  def file_extension(file: Path | str) -> str:
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from copy import deepcopy
4
4
  from functools import singledispatch
5
+ from logging import getLogger
5
6
  from typing import Callable, Iterable, Type
6
7
 
7
8
  import sympy
@@ -26,11 +27,10 @@ from qadence.blocks.utils import (
26
27
  _construct,
27
28
  parameters,
28
29
  )
29
- from qadence.logger import get_logger
30
30
  from qadence.operations import SWAP, I
31
31
  from qadence.parameters import Parameter
32
32
 
33
- logger = get_logger(__name__)
33
+ logger = getLogger(__name__)
34
34
 
35
35
 
36
36
  def repeat(
qadence/types.py CHANGED
@@ -9,8 +9,8 @@ import sympy
9
9
  from numpy.typing import ArrayLike
10
10
  from torch import Tensor, pi
11
11
 
12
- TNumber = Union[int, float, complex]
13
- """Union of python number types."""
12
+ TNumber = Union[int, float, complex, np.int64, np.float64]
13
+ """Union of python and numpy numeric types."""
14
14
 
15
15
  TDrawColor = Tuple[float, float, float, float]
16
16
 
qadence/utils.py CHANGED
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import math
4
4
  from collections import Counter
5
+ from logging import getLogger
5
6
  from typing import Any
6
7
 
7
8
  import numpy as np
@@ -11,14 +12,13 @@ from torch import Tensor, stack, vmap
11
12
  from torch import complex as make_complex
12
13
  from torch.linalg import eigvals
13
14
 
14
- from qadence.logger import get_logger
15
15
  from qadence.types import Endianness, ResultType, TNumber
16
16
 
17
17
  # Modules to be automatically added to the qadence namespace
18
18
  __all__ = [] # type: ignore
19
19
 
20
20
 
21
- logger = get_logger(__name__)
21
+ logger = getLogger(__name__)
22
22
 
23
23
 
24
24
  def basis_to_int(basis: str, endianness: Endianness = Endianness.BIG) -> int:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: qadence
3
- Version: 1.5.2
3
+ Version: 1.6.0
4
4
  Summary: Pasqal interface for circuit-based quantum computing SDKs
5
5
  Author-email: Aleksander Wennersteen <aleksander.wennersteen@pasqal.com>, Gert-Jan Both <gert-jan.both@pasqal.com>, Niklas Heim <niklas.heim@pasqal.com>, Mario Dagrada <mario.dagrada@pasqal.com>, Vincent Elfving <vincent.elfving@pasqal.com>, Dominik Seitz <dominik.seitz@pasqal.com>, Roland Guichard <roland.guichard@pasqal.com>, "Joao P. Moutinho" <joao.moutinho@pasqal.com>, Vytautas Abramavicius <vytautas.abramavicius@pasqal.com>, Gergana Velikova <gergana.velikova@pasqal.com>, Eduardo Maschio <eduardo.maschio@pasqal.com>
6
6
  License: Apache 2.0
@@ -11,9 +11,10 @@ Classifier: Programming Language :: Python :: 3
11
11
  Classifier: Programming Language :: Python :: 3.9
12
12
  Classifier: Programming Language :: Python :: 3.10
13
13
  Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
14
15
  Classifier: Programming Language :: Python :: Implementation :: CPython
15
16
  Classifier: Programming Language :: Python :: Implementation :: PyPy
16
- Requires-Python: <3.13,>=3.9
17
+ Requires-Python: >=3.9
17
18
  Requires-Dist: arpeggio==2.0.2
18
19
  Requires-Dist: deepdiff
19
20
  Requires-Dist: jsonschema
@@ -21,20 +22,26 @@ Requires-Dist: matplotlib
21
22
  Requires-Dist: nevergrad
22
23
  Requires-Dist: numpy
23
24
  Requires-Dist: openfermion
24
- Requires-Dist: pyqtorch==1.1.0
25
+ Requires-Dist: pyqtorch==1.1.2
26
+ Requires-Dist: pyyaml
25
27
  Requires-Dist: rich
26
28
  Requires-Dist: scipy
27
29
  Requires-Dist: sympytorch>=0.1.2
28
30
  Requires-Dist: tensorboard>=2.12.0
29
31
  Requires-Dist: torch
30
32
  Provides-Extra: all
31
- Requires-Dist: amazon-braket-sdk==1.71.0; extra == 'all'
33
+ Requires-Dist: amazon-braket-sdk<1.71.2; extra == 'all'
32
34
  Requires-Dist: graphviz; extra == 'all'
33
35
  Requires-Dist: libs; extra == 'all'
36
+ Requires-Dist: pasqal-cloud==0.8.1; extra == 'all'
34
37
  Requires-Dist: protocols; extra == 'all'
35
- Requires-Dist: pulser>=0.15.2; extra == 'all'
38
+ Requires-Dist: pulser-core==0.18.0; extra == 'all'
39
+ Requires-Dist: pulser-simulation==0.18.0; extra == 'all'
36
40
  Provides-Extra: braket
37
- Requires-Dist: amazon-braket-sdk==1.71.0; extra == 'braket'
41
+ Requires-Dist: amazon-braket-sdk<1.71.2; extra == 'braket'
42
+ Provides-Extra: dlprof
43
+ Requires-Dist: nvidia-dlprof[pytorch]; extra == 'dlprof'
44
+ Requires-Dist: nvidia-pyindex; extra == 'dlprof'
38
45
  Provides-Extra: horqrux
39
46
  Requires-Dist: einops; extra == 'horqrux'
40
47
  Requires-Dist: flax; extra == 'horqrux'
@@ -48,8 +55,9 @@ Requires-Dist: qadence-libs; extra == 'libs'
48
55
  Provides-Extra: protocols
49
56
  Requires-Dist: qadence-protocols; extra == 'protocols'
50
57
  Provides-Extra: pulser
51
- Requires-Dist: pasqal-cloud>=0.3.5; extra == 'pulser'
52
- Requires-Dist: pulser>=v0.15.2; extra == 'pulser'
58
+ Requires-Dist: pasqal-cloud==0.8.1; extra == 'pulser'
59
+ Requires-Dist: pulser-core==0.18.0; extra == 'pulser'
60
+ Requires-Dist: pulser-simulation==0.18.0; extra == 'pulser'
53
61
  Provides-Extra: visualization
54
62
  Requires-Dist: graphviz; extra == 'visualization'
55
63
  Description-Content-Type: text/markdown
@@ -1,24 +1,25 @@
1
- qadence/__init__.py,sha256=-UKQQ_dYiaa7viishl2baAbxS82eS6dAoCnq_CLSmao,1708
2
- qadence/backend.py,sha256=qxTCLfSqjtFAxlu3QgNj_npx_xbY9P2f3SP0mFkL-e8,14410
3
- qadence/circuit.py,sha256=EGBPRRWlK-mcXaaAhJnp-hxVWQ8NxngGKbvhPqrEeKM,6892
4
- qadence/decompose.py,sha256=_L0hI3SbYErXEDp-aXFeNk0JR9ffJ_JD_EnRJbJKT20,5230
1
+ qadence/__init__.py,sha256=LY5QUBt19J4PNAXsDa8w-ClsAXyoAUi1lqzDgsGjemY,2640
2
+ qadence/backend.py,sha256=TTzWEHEyOg7EH02IBiDkhE-Uwtj0fSLNMvQ48qtAcOk,14401
3
+ qadence/circuit.py,sha256=3lQdjj_srxgk6f5M3eh3kE-Qdov4FA9TZxZZb0E1_mI,6966
4
+ qadence/decompose.py,sha256=C4LYia_GcC9Rx3QO0ZLWTI9dN63a8WTEAXO0ZVQWuiE,5221
5
5
  qadence/divergences.py,sha256=JhpELhWSnuDvQxa9hJp_DE3EQg2Ban-Ta0mHZ_fVrHg,1832
6
6
  qadence/execution.py,sha256=5_P5OSatiwEAu7aAkCLau5VcmtIZiC3VFIj5YYdwAbY,9287
7
- qadence/extensions.py,sha256=CgaUR3amh80g_zwxGaAjFvgI-JT_pmDiUMzzzVQP7zc,4582
7
+ qadence/extensions.py,sha256=qly8STovIr_tB9yJSlIjkaYfKFY-1VLto-Zqq0RdLAw,4247
8
8
  qadence/finitediff.py,sha256=TijuaWUbX9VlbLyMYco6HkK9eCoRTVnKug4Ekd6mlTI,1592
9
9
  qadence/libs.py,sha256=HetkKO8TCTlVCViQdVQJvxwBekrhd-y_iMox4UJMY1M,410
10
- qadence/logger.py,sha256=mdTr52nL30ipPRwp11nIHKLEoB3hqs7J-Mric5KVfyM,912
10
+ qadence/log_config.yaml,sha256=WwSpxqMSXgPJ7wO_wh46UnFzXdgX9NVA4MbN3TcJFyE,485
11
+ qadence/logger.py,sha256=Hb76pK3VyQjVjJb4_NqFlOJgjYJVa8t7DHJFlzOM86M,407
11
12
  qadence/overlap.py,sha256=3vsg0HLOO3X8LiVgvjSc5s-cs8Di4TpEA657LWZ5HEY,17294
12
- qadence/parameters.py,sha256=svZ3L-Z4pzm2PkPDIlb-DWkwGOQLAm1eECCtu7nd3W0,12334
13
+ qadence/parameters.py,sha256=9BuEt2MZRwxhmPZHVPLt-GF1ZUgXkmg63owgDiJa74U,12325
13
14
  qadence/protocols.py,sha256=bcYTxSjgMPV-a-D6yv90jCpnGik8myzaNpFv9z1gzJ0,442
14
15
  qadence/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
16
  qadence/qubit_support.py,sha256=Nkn1Q01RVViTcggSIom7EFKdWpAuM4TMGwBZ5feCUxA,2120
16
17
  qadence/register.py,sha256=cBMzwZ7GWZ5ieuFt0bpproEI6a2ncNwfjj7ic379zyg,10276
17
18
  qadence/serial_expr_grammar.peg,sha256=z5ytL7do9kO8o4h-V5GrsDuLdso0KsRcMuIYURFfmAY,328
18
- qadence/serialization.py,sha256=ra6oBB2KPDj0BlAL2fWqOSce9IBCfZuSKgFlh0Zjv-A,15695
19
+ qadence/serialization.py,sha256=0UdcDQP2tJOtygVQI258G3MgnDiZJmBY4o15w0G-O0Y,15686
19
20
  qadence/states.py,sha256=_J__vZuDPsKqKDFSCfgWxSNY2Ho6cCqTHjJ9-gMtd8M,14341
20
- qadence/types.py,sha256=cA3L3hlPW320_03n8_weCuAUXmDX5Jq3puawtkgOK7s,9699
21
- qadence/utils.py,sha256=tSLXSt8pC1Oixs3gmgkAkHYG9MEH_Dfzyt6uxYfWhwg,9065
21
+ qadence/types.py,sha256=wsxZNik5d8xdw46Dp1xRHpVS1-mSM-kMl2J_W64UhgA,9732
22
+ qadence/utils.py,sha256=Y-Xc7zP6DOZDwn7QI43qA4670-n8yuCK01pG4BpypSI,9056
22
23
  qadence/analog/__init__.py,sha256=BCyS9R4KUjzUXN0Ax3b0eMo8ZAuSkGoJQVtZ4_pvAFs,279
23
24
  qadence/analog/addressing.py,sha256=fu5-xW9lquEbagApNp23S_ET1kl0iDtZUrIYSVNmw9s,6435
24
25
  qadence/analog/constants.py,sha256=B2phQoN1ASL8CwM-Dsa1rbraYwGwwPSeiB3HbVe-MPA,1243
@@ -26,55 +27,55 @@ qadence/analog/device.py,sha256=RmPXWxq77pJXzvV6CIVSUVxxy-oKd6SqoSnQESNLIqg,2412
26
27
  qadence/analog/hamiltonian_terms.py,sha256=9LKidqqEMJTTdXeaxkxP_otTmcv9i4yeJ-JKCLOCK3Y,3421
27
28
  qadence/analog/parse_analog.py,sha256=ppvMZtsKXOIkIehCgjbdmG9n232DIycSanyuyVth5Wg,4223
28
29
  qadence/backends/__init__.py,sha256=ibm7wmZxuIoMYAQxgAx0MsfLYWOVHNWgLwyS1HjMuuI,215
29
- qadence/backends/adjoint.py,sha256=C2BdLUs2rdV9TiErkVlE0hoeLx_nK7up9mzIO-0vB2g,6831
30
+ qadence/backends/adjoint.py,sha256=0NF7dFwjYWF-p3IwVdKjm7GaX9TO2CvfJiWiVzwSqNI,6946
30
31
  qadence/backends/api.py,sha256=6PoK4ydhi2tj9w0ePMQl1G4kEFROoWe3lrkrtQwWxkc,3224
31
- qadence/backends/gpsr.py,sha256=227h5KPI_KStrwfP5zuwkzOqviRZmqa7ijIIhhawwPM,4341
32
+ qadence/backends/gpsr.py,sha256=MapXSAw-9JwJbVaGRlCvw2ltUNLtbOtmLBxxw0-kr-E,4283
32
33
  qadence/backends/jax_utils.py,sha256=VfKhqCKknHDWZO21UFipWH_Lkiq175Z5GkP49gWjbyw,5038
33
34
  qadence/backends/utils.py,sha256=hnV9AXztMvAPcO8mv9UhdGMbS9albiMQBxlYPgLrD68,6490
34
35
  qadence/backends/braket/__init__.py,sha256=eruyDZKMqkh1LE7eJ980vcrLJbia35uUX6krAP78clI,121
35
- qadence/backends/braket/backend.py,sha256=XRrrkdylsH8GejbtY8fSJMmX2X7xWmZmEZPxcqWWM5E,8729
36
- qadence/backends/braket/config.py,sha256=b9aIdma0DRwC_3A6xUSLdXMCZe6z6kDcAgkp6MxcXIk,603
36
+ qadence/backends/braket/backend.py,sha256=WX5FG4WsrtdnG0at2DvIY0n_AFm44t4g5OIJ1e8r6fQ,8752
37
+ qadence/backends/braket/config.py,sha256=7cu22dmYdp48Fu760HPfxBHinaUnGmzx9MkE_EPhVN8,594
37
38
  qadence/backends/braket/convert_ops.py,sha256=DVXV7sT9sX_yGOgPKclD9KIGgmbBRuDy_e39i1Z8I1s,3417
38
39
  qadence/backends/horqrux/__init__.py,sha256=0OdVy6cq0oQggV48LO1WXdaZuSkDkz7OYNEPIkNAmfk,140
39
- qadence/backends/horqrux/backend.py,sha256=ZOkkklcqqM0T5CTwfSpNAAcW_a0l922h48gj6kPNw4I,9329
40
- qadence/backends/horqrux/config.py,sha256=fPWFag1hmRhqj0T-fJOx5x8_C5UEZUXpdUnpOgX0Jpc,901
40
+ qadence/backends/horqrux/backend.py,sha256=SxelrhCELJ0lJcThOCtMVyV-LjyzxZ7t-U4l_9Tmupw,9421
41
+ qadence/backends/horqrux/config.py,sha256=xz7JlUcwW_4JAbvProbSI9hA1SXZRRAN0Hr2bvmLzfg,892
41
42
  qadence/backends/horqrux/convert_ops.py,sha256=nzfYF0yjB7zwaHCEXWZUUYDfz38Yi22xF2zDRFaOwR0,8564
42
43
  qadence/backends/pulser/__init__.py,sha256=capQ-eHqwtOeLf4mWsI0BIseAHhiLGie5cFD4-iVhUo,116
43
- qadence/backends/pulser/backend.py,sha256=ZxGg9zLyGTg3gJAZXTL7b96PHvhmN5D4yOAAdnVgLu4,13867
44
+ qadence/backends/pulser/backend.py,sha256=3n0ytKVIxjz3T29AbfCxvEEsrfg3wG0ir3z5Sq2ga7A,15028
44
45
  qadence/backends/pulser/channels.py,sha256=ZF0yEXUFHAmi3IdeXjzdTNGR5NzaRRFTiUpUGVg2sO4,329
45
46
  qadence/backends/pulser/cloud.py,sha256=0uUluvbFV9sOuCPraE-9uiVtC3Q8QaDY1IJMDi8grDM,2057
46
- qadence/backends/pulser/config.py,sha256=1qu_GhGTGcCpFoKctGt_IhKOKWiMcJIL2vHTFJg9I3E,3122
47
+ qadence/backends/pulser/config.py,sha256=aoHDmtgq5i0Zryxenw_p3uARY0B1w-UaYvfqDmrWHM0,2175
47
48
  qadence/backends/pulser/convert_ops.py,sha256=0HGWe5kIwI1ZALHf2j68B8aBOhwFNZV-mDy1_6zsF5g,1227
48
49
  qadence/backends/pulser/devices.py,sha256=DermLZNfmCB3SqteKVW4uhg4jp6ya1G6ptnXbBnJogI,2448
49
- qadence/backends/pulser/pulses.py,sha256=DopdEZ8eeWK7wZxqJTBhqY0w5bEXu6fVK7rnZOb50ns,11893
50
+ qadence/backends/pulser/pulses.py,sha256=F4fExIRAhLPMtVg1bhNtDihUYHxu5RExGjovk8-CQIo,11884
50
51
  qadence/backends/pulser/waveforms.py,sha256=0uz95b7rUaUUtN0tuHBZmJ0H6UBmfHST_59ozwsRCzg,2227
51
52
  qadence/backends/pyqtorch/__init__.py,sha256=0OdVy6cq0oQggV48LO1WXdaZuSkDkz7OYNEPIkNAmfk,140
52
- qadence/backends/pyqtorch/backend.py,sha256=eaC-yV-Ckgq6YCq1UrrOh6Ug_vFHmUR43RQBiXfcv1Q,9762
53
- qadence/backends/pyqtorch/config.py,sha256=f5BjWehCqm9do2OahNWrv2w55y3orkw0Wj2f6flwRaU,1907
53
+ qadence/backends/pyqtorch/backend.py,sha256=7CkXccCHwK3pijNDmIB_-hdRGa79yhZ3_3A2p7wOSB0,9785
54
+ qadence/backends/pyqtorch/config.py,sha256=hhea1dDAeee7uDE1fiCh4lJRS0EMSc3mmbXn92HBdyA,1898
54
55
  qadence/backends/pyqtorch/convert_ops.py,sha256=By_p1-Oem8MhHYP8jx5qdut9lhDWN0xc4B9YaP0MSxA,17512
55
56
  qadence/blocks/__init__.py,sha256=H6jEA_CptkE-eoB4UfSbUiDszbxxhZwECV_TgoZWXoU,960
56
57
  qadence/blocks/abstract.py,sha256=35RcVlNvD1BmBoJ8bbYJ3LrdU72wixt9ZmTbCtEwNus,11796
57
58
  qadence/blocks/analog.py,sha256=ymnnlSVoW1XL05ZvnnHCqRTHuOXIEY_7E9M0PNKJZy4,10812
58
- qadence/blocks/block_to_tensor.py,sha256=Bn8vo7bluauCuVUoIIjML4M03Klvw8AjcB9EBKie1MY,17415
59
+ qadence/blocks/block_to_tensor.py,sha256=VleicLSyn8kLFoRKGMmcaj1DKpLIyMFZSC3zahr4Evo,17362
59
60
  qadence/blocks/composite.py,sha256=z_lXRBVnh-DdvfZdv6T0ZEmVhlU76zBt72P_FGGa-PQ,8897
60
61
  qadence/blocks/embedding.py,sha256=TQt620UIVaNYHP34tpK9slv-PFiLvTQRYw5Ez9RuImE,6513
61
62
  qadence/blocks/manipulate.py,sha256=kPmzej7mnWFoqTJA2CkGulT7hcPha0GGPARC8rjZltg,2387
62
- qadence/blocks/matrix.py,sha256=XQI6D4CWhCf3j-hvA0jRKOgprs0RA6su7OythCoH6Ls,3785
63
+ qadence/blocks/matrix.py,sha256=WTByjt_0yf3OiK-OcJNEfSGO8Hyq_tIBlklSO_BtOb0,3776
63
64
  qadence/blocks/primitive.py,sha256=fC5ItpA-52LOiGPT1ERM4RshP6PQlkxlgR9p2J0Rgz4,16631
64
- qadence/blocks/utils.py,sha256=lNWNCGpM4q_KilaiSGj1u8XJrilR5PdV92KZHZt6MEQ,16358
65
- qadence/constructors/__init__.py,sha256=d4ndrNCTCDS_kUYeigGFQOUFSAMaPKL--_FcdZy7eQo,1152
66
- qadence/constructors/ansatze.py,sha256=8JoYvv7nYPgygIZpB227Zx7csPxg8SIR1tnYl0SzAb4,12170
67
- qadence/constructors/feature_maps.py,sha256=Z8h_UDpG9wtpt72htZK6c0mV0YNwzSsH4rv2A_vRhNw,11566
68
- qadence/constructors/hamiltonians.py,sha256=rEeMkMepQE5xe-siAfhIlgUE2aIGwk8SUdPLNTPHUnU,8860
65
+ qadence/blocks/utils.py,sha256=iCJDi6HTYYaQQCoP3cdIKeCDuy8KQCxctrHN5QWXV-M,16349
66
+ qadence/constructors/__init__.py,sha256=PWfSKcEJmo5azIkcRuRWsmch3FOeXl055iPsboNzryQ,938
67
+ qadence/constructors/ansatze.py,sha256=bTrcF2RsyA_Btmkk80tWxP1dn9fK_SXAQFueIuWkT-c,9660
68
+ qadence/constructors/feature_maps.py,sha256=BaAxFi6fSKwjsfFjqZ8T7lyZfjotcgH2OW3b0j67YVk,8644
69
+ qadence/constructors/hamiltonians.py,sha256=QMYHKLWadj-jVTYGkojGAsy-06A8or6OyQrwE7xXa8M,8738
69
70
  qadence/constructors/iia.py,sha256=z-4AA9Oj-j2oZ0QDkLYNk4duS3UHY_98Qwt9VO_ZDDU,7001
70
71
  qadence/constructors/qft.py,sha256=2LpgQ-z1HUxB3rqHzYsbjqpdU63gyuuaUVCbNEFbjo8,7688
71
- qadence/constructors/rydberg_feature_maps.py,sha256=i4cDFBJn6XKqRT1_6Tkb7mbL8wc4S-lyXIyRRXTr3Nc,4848
72
+ qadence/constructors/rydberg_feature_maps.py,sha256=RuXtuAhjpong78jpKUjZHdh4fOdHBnuht1ffoAMWdEE,4839
72
73
  qadence/constructors/rydberg_hea.py,sha256=GrIrboyjEe1fJEbhtRYeCZ5dYzDVpMt-SQucS9UyNtw,8372
73
74
  qadence/constructors/utils.py,sha256=ozcuu_pTWcuntYUqrMBwcAxHp6-CVs38uifVoD-pljY,3080
74
75
  qadence/constructors/daqc/__init__.py,sha256=50_4Ak32d5A4CZeR65l0s-0lUsxgKerWNDK7GDmkNY4,140
75
- qadence/constructors/daqc/daqc.py,sha256=EHJ468lJNsvWKZ4pfJXL0tYE0xpWpeCHTvCod_9p_zs,9922
76
- qadence/constructors/daqc/gen_parser.py,sha256=sRVs6dgyELkQAMgH3zxsti2RVl31cNr5Pmqr98iSR4k,3821
77
- qadence/constructors/daqc/utils.py,sha256=Nm_H0CzQOrmMkgrkzeQCW2pRyUQ2II6jJ-LnNLTpQ0o,1076
76
+ qadence/constructors/daqc/daqc.py,sha256=LSeZBDGueI55Iwh-N9jz4XRvQNCjOMfL_sy14IV0jns,9914
77
+ qadence/constructors/daqc/gen_parser.py,sha256=taZMJ9BNp672qXqsNSQ8RY71tN2gMV4Rbgbm66Mza7w,3813
78
+ qadence/constructors/daqc/utils.py,sha256=1T83veISoOXhJYUWXhfocbISpfIgsrKrdDHCMbskGoQ,1067
78
79
  qadence/draw/__init__.py,sha256=A2lU7_CfCjwZCnMRojG5CsoWm-7aWKpUYGyaJ9qBZIQ,2319
79
80
  qadence/draw/themes.py,sha256=VV4YtC8X3UI63AuJO2D0fLMTLbdDUjIyXQcKuDuIVmI,5533
80
81
  qadence/draw/utils.py,sha256=xsSogG76DYRLLetR0u7bDR66UTbDDPFok4YplFXYcso,12108
@@ -90,7 +91,7 @@ qadence/engines/jax/differentiable_backend.py,sha256=W5rDA8wb-ECnFWoLj4dVugF9v1l
90
91
  qadence/engines/jax/differentiable_expectation.py,sha256=XBYHT1XKRuZfKxTcNy8KJpSDPt-2PR4ZCanImCPI9OI,3677
91
92
  qadence/engines/torch/__init__.py,sha256=iZFdD32ot0B0CVyC-f5dVViOBnqoalxa6M9Lj4WQuPE,160
92
93
  qadence/engines/torch/differentiable_backend.py,sha256=AWthwvKE8pCOih4dZ3tXxQX4W1ps9mBcvo7n4V9V24Y,3553
93
- qadence/engines/torch/differentiable_expectation.py,sha256=w_9infZDQRRU7sII8V0aklXrR73IOU0Bjf8C5neJLIY,9161
94
+ qadence/engines/torch/differentiable_expectation.py,sha256=fgWRxozb8OL1yRmHSZeltViYAwFq6DogarnUinV6jbQ,9607
94
95
  qadence/exceptions/__init__.py,sha256=BU6vWrI9mshzr1aTPm1Ticr_o_42GjTrWI4OZXhThsI,203
95
96
  qadence/exceptions/exceptions.py,sha256=4j_VJpx2sZ2Mir5BJUWu4nwb131FY1ygO4q8-XlyfRc,190
96
97
  qadence/measurements/__init__.py,sha256=RIjG9tVJMqhNzyj7maZI250Um0KgHl2PizDcKJag-JU,161
@@ -106,36 +107,36 @@ qadence/mitigations/readout.py,sha256=HPfYmdjRlieUdOBMZTghFK4DRWfveM4KkDkEI0bMI0
106
107
  qadence/ml_tools/__init__.py,sha256=_H5A_BWZRZVGoJszb9s8XRJnLnJxUNfYjuT9HT2yASo,786
107
108
  qadence/ml_tools/config.py,sha256=X8dHyjq4D9-ITjs7UQo0vjJTcHkpbZC0gChH5eEN2G8,2356
108
109
  qadence/ml_tools/data.py,sha256=8ZUFjhQSp94w7icX7RzM2J39Yo7P_T-AgjcThBc8miI,4283
109
- qadence/ml_tools/models.py,sha256=-9XOmMRXQDI5fAjlrqlSGI7vCV3DKJVmRdngu98QroM,12476
110
+ qadence/ml_tools/models.py,sha256=lELcq__wfGsurUm2UOgYkOzdBDwu66Nik9ySoAjDKnY,12673
110
111
  qadence/ml_tools/optimize_step.py,sha256=ATXWmAqybJVK3QmAaDqVXB5mxjTo2MIi_e0a5WSPFpc,1800
111
112
  qadence/ml_tools/parameters.py,sha256=gew2Kq_5-RgRpaTvs8eauVhgo0sTqqDQEV6WHFEiLGM,1301
112
113
  qadence/ml_tools/printing.py,sha256=kwwD9yLVqezaqWX5OAsXr8GLdJUnGrY-t5SnoKHtl9g,707
113
- qadence/ml_tools/saveload.py,sha256=Xi3o2bMsYueFPxrU6AXgDB0MHSev8gKLVhdqecPDBt8,4663
114
+ qadence/ml_tools/saveload.py,sha256=ZjG1dvJvJpSgEIj6Ln-ogDX2fjuM51YaZiter7NU6H0,4946
114
115
  qadence/ml_tools/tensors.py,sha256=xZ9ZRzOqEaMgLUGWQf1najDmL6iLuN1ojCGVFs1Tm94,1337
115
- qadence/ml_tools/train_grad.py,sha256=zNzkgK73OtIllc8JLTqaM8P9m233BGa116HelsQBQqU,7727
116
- qadence/ml_tools/train_no_grad.py,sha256=erwus-pUOg8q6WgoQsDW6MeH80wlRPBh69W1ZMHKoL8,4714
116
+ qadence/ml_tools/train_grad.py,sha256=wBrWyYzV2U9iJ4Q2xaNiHEEfAl55wqhQ9ljHIPA0rXA,7724
117
+ qadence/ml_tools/train_no_grad.py,sha256=PrOfPwu6C-YqfFxnRkbeyOQzqSyjRrx4AZZd6C-1xRw,4705
117
118
  qadence/ml_tools/utils.py,sha256=_GZSN5Flk1nRFutkXih397Q3cWKdX0UP8c9CRXpUL7c,1654
118
119
  qadence/models/__init__.py,sha256=0nZzAC2TGr8Yuf40-R7m2cSsr_BlNq_GsMOwaOYZLqM,193
119
120
  qadence/models/qnn.py,sha256=gc_iC1GG6WJbeLaln9jy4yYp9fY0p8fkpKkKJpXJ3ck,10397
120
- qadence/models/quantum_model.py,sha256=SetO2TPd9pe2QcNCcfdHKtGM1Rj-bhCTOsaExq7smnY,14186
121
+ qadence/models/quantum_model.py,sha256=RcKdkWX0dQaYuJiZbJ1WUYpLKmlJLiUglWV0Gv0-DIo,14417
121
122
  qadence/noise/__init__.py,sha256=r0nR8uEZeB1M9pI2UisjWq0bjw50fPFfVGzIMev923g,147
122
123
  qadence/noise/protocols.py,sha256=-aZ06JvMnpxCeT5v5lI_RNPOLbb9Ju1Pi1AB6uAXxVE,1653
123
- qadence/noise/readout.py,sha256=BqBIZbPXWqZaKi6EpBSpXXQ9NhQXdQ-YL6ZmwbSjgfE,6736
124
- qadence/operations/__init__.py,sha256=6D2yNOJ78BgFBZpHpHYMUDzU2R1HovB-mwGgNq-Uwwk,1944
125
- qadence/operations/analog.py,sha256=FkwAtsL7M6EPk5_shCXqHXzJDr0MY3_mA9R5LbZKu8w,7782
126
- qadence/operations/control_ops.py,sha256=6PVTFELkbvfvgczPbKw0QDin_CpDFzganIdJFaQJHjY,9492
127
- qadence/operations/ham_evo.py,sha256=EhBz5ZgoWsP4PhR8DLvTdje8bl17oEBipBdSkpCTWV4,7400
128
- qadence/operations/parametric.py,sha256=RVRTlKOd2_bKXwNorO3TYhZ88AFaEgGkxKYKzT_RuIA,4919
129
- qadence/operations/primitive.py,sha256=BhoVvfTLJ-cFoggrf58mBiqfH224pUvJ1i4q2tQeWSM,9011
124
+ qadence/noise/readout.py,sha256=UpUdxaGu09SmqKXn0O7RYfF7b7UcRZiNMfDlpY0weV0,6726
125
+ qadence/operations/__init__.py,sha256=HAAo9VZUTq2H7kcEarChTgTWCIq7LT25-xBxkwE0F9c,1922
126
+ qadence/operations/analog.py,sha256=v11DSrg-XUbwIAWAWM43y3VQbYKsx2ynx-HimUoC-x0,7435
127
+ qadence/operations/control_ops.py,sha256=ZDOmTXxQJXSP2ASNWNUlt7pIuEjAVNT2FmexbK_TisM,9484
128
+ qadence/operations/ham_evo.py,sha256=u8ZuEycES_TjZTyIRC_qRDAUQUH9hNvnZLLnO7aBMyc,7391
129
+ qadence/operations/parametric.py,sha256=BHGGn8k7hIZX8_0V1K1_FOnILAROEtqZGjBdIfzMcWI,4911
130
+ qadence/operations/primitive.py,sha256=ekiylIW7mWjesBXVyVmowF75Ek82T_eNUVcDTEAGzFg,9002
130
131
  qadence/transpile/__init__.py,sha256=lb5LwsYb6lN5YFBsU3YBey7-0OcUQpYa3Q4hG6zmgi0,457
131
132
  qadence/transpile/apply_fn.py,sha256=glZo2_wMOjw7_KgWKYbqg8j-9SDs-RefWIfxWgdQK8I,1336
132
- qadence/transpile/block.py,sha256=kuDATVQm-e1EbI22_bl4KzSpby5jfzMtboC_k8T8n6g,11591
133
+ qadence/transpile/block.py,sha256=jV-EyatrwwdL2ahjF3wyEhC3PKMBPLaL5sQN1VNFc_w,11582
133
134
  qadence/transpile/circuit.py,sha256=KTh6Gv1czZddFuA1JhNNszheZbwViVixiGh4rGvIgTM,451
134
135
  qadence/transpile/digitalize.py,sha256=iWRwYAYQsD2INHj0HNbGJriv_3fRCuBW1nDBrwtKSuI,1523
135
136
  qadence/transpile/flatten.py,sha256=EdhSG5WyF56nbnxINNLqrHgY84MRM1YFjT3fR4aph5Q,3427
136
137
  qadence/transpile/invert.py,sha256=KAefHTG2AWr39aengVhXrzCtJPhrZC-ZnL6vYvmbnY0,4867
137
138
  qadence/transpile/transpile.py,sha256=6MRRkk1OS279L1fwUQjazA6qlfpbd-T_EJMKT8hAhOU,2721
138
- qadence-1.5.2.dist-info/METADATA,sha256=19euItyRCLcNIYDi0bnc0RRw4eJBL7_zFAI6A7aW9xo,8931
139
- qadence-1.5.2.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
140
- qadence-1.5.2.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
141
- qadence-1.5.2.dist-info/RECORD,,
139
+ qadence-1.6.0.dist-info/METADATA,sha256=T3KtrCaUGRmSBxawR1QrU5yoM8NMKJv4_n18kC7sKo4,9302
140
+ qadence-1.6.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
141
+ qadence-1.6.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
142
+ qadence-1.6.0.dist-info/RECORD,,