diff --git a/Makefile b/Makefile
index edfc64ec39..c99e23e3b9 100644
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,7 @@ environment:
$$PYTHON_VENV_PATH/bin/python -m pip install --upgrade git+https://github.com/PennyLaneAI/pennylane-qulacs.git#egg=pennylane-qulacs;\
$$PYTHON_VENV_PATH/bin/python -m pip install --extra-index-url https://test.pypi.org/simple/ PennyLane-Catalyst --pre --upgrade;\
$$PYTHON_VENV_PATH/bin/python -m pip install --extra-index-url https://test.pypi.org/simple/ PennyLane-Lightning --pre --upgrade;\
- $$PYTHON_VENV_PATH/bin/python -m pip install --upgrade git+https://github.com/PennyLaneAI/pennylane.git#egg=pennylane;\
+ $$PYTHON_VENV_PATH/bin/python -m pip install --upgrade git+https://github.com/PennyLaneAI/pennylane.git@v0.41.0-rc0#egg=pennylane;\
$$PYTHON_VENV_PATH/bin/python -m pip install --upgrade git+https://github.com/XanaduAI/iqpopt.git#egg=iqpopt;\
fi;\
fi
diff --git a/_static/demonstration_assets/qnn_module/sphx_glr_qnn_module_tf_001.png b/_static/demonstration_assets/qnn_module/sphx_glr_qnn_module_tf_001.png
new file mode 100644
index 0000000000..1e7921e25e
Binary files /dev/null and b/_static/demonstration_assets/qnn_module/sphx_glr_qnn_module_tf_001.png differ
diff --git a/demonstrations/tutorial_qnn_module_tf.metadata.json b/demonstrations/qnn_module_tf.metadata.json
similarity index 93%
rename from demonstrations/tutorial_qnn_module_tf.metadata.json
rename to demonstrations/qnn_module_tf.metadata.json
index 36a7aab856..15d489d26a 100644
--- a/demonstrations/tutorial_qnn_module_tf.metadata.json
+++ b/demonstrations/qnn_module_tf.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2020-11-02T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2025-03-21T00:00:00+00:00",
"categories": [
"Devices and Performance",
"Quantum Machine Learning"
diff --git a/demonstrations/tutorial_qnn_module_tf.py b/demonstrations/qnn_module_tf.py
similarity index 81%
rename from demonstrations/tutorial_qnn_module_tf.py
rename to demonstrations/qnn_module_tf.py
index 8f8c906c1c..d6cc1e5a91 100644
--- a/demonstrations/tutorial_qnn_module_tf.py
+++ b/demonstrations/qnn_module_tf.py
@@ -1,4 +1,7 @@
-"""
+r"""
+.. role:: html(raw)
+ :format: html
+
Turning quantum nodes into Keras Layers
=======================================
@@ -10,7 +13,13 @@
tutorial_qnn_module_torch Turning quantum nodes into Torch Layers
-*Author: Tom Bromley — Posted: 02 November 2020. Last updated: 28 January 2021.*
+*Author: Tom Bromley — Posted: 02 November 2020. Last updated: 21 March 2025.*
+
+.. warning::
+
+ This demo is only compatible with PennyLane version 0.40 or below.
+ For usage with a later version of PennyLane, please consider using
+ :doc:`PyTorch ` or :doc:`JAX `.
Creating neural networks in `Keras `__ is easy. Models are constructed from
elementary *layers* and can be trained using a high-level API. For example, the following code
@@ -67,6 +76,11 @@
plt.scatter(X[:, 0], X[:, 1], c=c)
plt.show()
+##############################################################################
+# .. figure:: /_static/demonstration_assets/qnn_module/sphx_glr_qnn_module_tf_001.png
+# :width: 100%
+# :align: center
+
###############################################################################
# Defining a QNode
# ----------------
@@ -166,7 +180,25 @@ def qnode(inputs, weights):
fitting = model.fit(X, y_hot, epochs=6, batch_size=5, validation_split=0.25, verbose=2)
-###############################################################################
+##############################################################################
+# .. rst-class:: sphx-glr-script-out
+#
+# .. code-block:: none
+#
+# Epoch 1/6
+# 30/30 - 4s - loss: 0.4153 - accuracy: 0.7333 - val_loss: 0.3183 - val_accuracy: 0.7800 - 4s/epoch - 123ms/step
+# Epoch 2/6
+# 30/30 - 4s - loss: 0.2927 - accuracy: 0.8000 - val_loss: 0.2475 - val_accuracy: 0.8400 - 4s/epoch - 130ms/step
+# Epoch 3/6
+# 30/30 - 4s - loss: 0.2272 - accuracy: 0.8333 - val_loss: 0.2111 - val_accuracy: 0.8200 - 4s/epoch - 119ms/step
+# Epoch 4/6
+# 30/30 - 4s - loss: 0.1963 - accuracy: 0.8667 - val_loss: 0.1917 - val_accuracy: 0.8600 - 4s/epoch - 118ms/step
+# Epoch 5/6
+# 30/30 - 4s - loss: 0.1772 - accuracy: 0.8667 - val_loss: 0.1828 - val_accuracy: 0.8600 - 4s/epoch - 117ms/step
+# Epoch 6/6
+# 30/30 - 4s - loss: 0.1603 - accuracy: 0.8733 - val_loss: 0.2006 - val_accuracy: 0.8200 - 4s/epoch - 117ms/step
+#
+#
# How did we do? The model looks to have successfully trained and the accuracy on both the
# training and validation datasets is reasonably high. In practice, we would aim to push the
# accuracy higher by thinking carefully about the model design and the choice of hyperparameters
@@ -224,7 +256,25 @@ def qnode(inputs, weights):
fitting = model.fit(X, y_hot, epochs=6, batch_size=5, validation_split=0.25, verbose=2)
-###############################################################################
+##############################################################################
+# .. rst-class:: sphx-glr-script-out
+#
+# .. code-block:: none
+#
+# Epoch 1/6
+# 30/30 - 7s - loss: 0.3682 - accuracy: 0.7467 - val_loss: 0.2550 - val_accuracy: 0.8000 - 7s/epoch - 229ms/step
+# Epoch 2/6
+# 30/30 - 7s - loss: 0.2428 - accuracy: 0.8067 - val_loss: 0.2105 - val_accuracy: 0.8400 - 7s/epoch - 224ms/step
+# Epoch 3/6
+# 30/30 - 7s - loss: 0.2001 - accuracy: 0.8333 - val_loss: 0.1901 - val_accuracy: 0.8200 - 7s/epoch - 220ms/step
+# Epoch 4/6
+# 30/30 - 7s - loss: 0.1816 - accuracy: 0.8600 - val_loss: 0.1776 - val_accuracy: 0.8200 - 7s/epoch - 224ms/step
+# Epoch 5/6
+# 30/30 - 7s - loss: 0.1661 - accuracy: 0.8667 - val_loss: 0.1711 - val_accuracy: 0.8600 - 7s/epoch - 224ms/step
+# Epoch 6/6
+# 30/30 - 7s - loss: 0.1520 - accuracy: 0.8600 - val_loss: 0.1807 - val_accuracy: 0.8200 - 7s/epoch - 221ms/step
+#
+#
# Great! We've mastered the basics of constructing hybrid classical-quantum models using
# PennyLane and Keras. Can you think of any interesting hybrid models to construct? How do they
# perform on realistic datasets?
diff --git a/demonstrations/tutorial_classically_boosted_vqe.metadata.json b/demonstrations/tutorial_classically_boosted_vqe.metadata.json
index 797d86cf63..df8e6990f6 100644
--- a/demonstrations/tutorial_classically_boosted_vqe.metadata.json
+++ b/demonstrations/tutorial_classically_boosted_vqe.metadata.json
@@ -9,7 +9,7 @@
}
],
"dateOfPublication": "2022-10-31T00:00:00+00:00",
- "dateOfLastModification": "2024-12-13T00:00:00+00:00",
+ "dateOfLastModification": "2025-01-23T00:00:00+00:00",
"categories": [
"Quantum Chemistry"
],
diff --git a/demonstrations/tutorial_classically_boosted_vqe.py b/demonstrations/tutorial_classically_boosted_vqe.py
index dd65f9a332..986ec0a7b2 100644
--- a/demonstrations/tutorial_classically_boosted_vqe.py
+++ b/demonstrations/tutorial_classically_boosted_vqe.py
@@ -449,7 +449,7 @@ def hadamard_test(Uq, Ucl, component="real"):
qml.Hadamard(wires=[0])
qml.ControlledQubitUnitary(
- Uq.conjugate().T @ Ucl, control_wires=[0], wires=wires[1:]
+ Uq.conjugate().T @ Ucl, wires=wires
)
qml.Hadamard(wires=[0])
diff --git a/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json
index 1efc93770b..a78b88eea4 100644
--- a/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json
+++ b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-12-19T00:00:00+00:00",
- "dateOfLastModification": "2025-01-10T00:00:00+00:00",
+ "dateOfLastModification": "2025-04-11T00:00:00+00:00",
"categories": [
"Quantum Computing",
"Algorithms"
diff --git a/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py
index a4f5439a83..cb7ff2379b 100644
--- a/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py
+++ b/demonstrations/tutorial_fixed_depth_hamiltonian_simulation_via_cartan_decomposition.py
@@ -20,7 +20,7 @@
Introduction
------------
-The :doc:`KAK theorem ` is an important result from Lie theory that states that any Lie group element :math:`U` can be decomposed
+The :doc:`KAK decomposition ` is an important result from Lie theory that states that any Lie group element :math:`U` can be decomposed
as :math:`U = K_1 A K_2,` where :math:`K_{1, 2}` and :math:`A` are elements of two special sub-groups
:math:`\mathcal{K}` and :math:`\mathcal{A},` respectively. In special cases, the decomposition simplifies to :math:`U = K A K^\dagger.`
@@ -36,14 +36,14 @@
We can use this general result from Lie theory as a powerful circuit decomposition technique.
.. note:: We recommend a basic understanding of Lie algebras, see e.g. our :doc:`introduction to (dynamical) Lie algebras for quantum practitioners `.
- Otherwise, this demo should be self-contained, though for the mathematically inclined, we further recommend our :doc:`demo on the KAK theorem `
- that dives into the mathematical depths of the theorem and provides more background info.
+ Otherwise, this demo should be self-contained, though for the mathematically inclined, we further recommend our :doc:`demo on the KAK decomposition `
+ that dives into the mathematical depths of the decomposition and provides more background info.
Goal: Fast-forwarding time evolutions using the KAK decomposition
-----------------------------------------------------------------
Unitary gates in quantum computing are described by the special unitary Lie group :math:`SU(2^n),` so we can use the KAK
-theorem to decompose quantum gates into :math:`U = K_1 A K_2.` While the mathematical statement is rather straightforward,
+decomposition to factorize quantum gates into :math:`U = K_1 A K_2.` While the mathematical statement is rather straightforward,
actually finding this decomposition is not. We are going to follow the recipe prescribed in
`Fixed Depth Hamiltonian Simulation via Cartan Decomposition `__ [#Kökcü]_,
which tackles this decomposition on the level of the associated Lie algebra via Cartan decomposition.
@@ -74,6 +74,7 @@
import numpy as np
import pennylane as qml
from pennylane import X, Y, Z
+from pennylane.liealg import even_odd_involution, cartan_decomp, horizontal_cartan_subalgebra
import jax
import jax.numpy as jnp
@@ -111,10 +112,8 @@
# One common choice of involution is the so-called even-odd involution for Pauli words,
# :math:`P = P_1 \otimes P_2 .. \otimes P_n,` where :math:`P_j \in \{I, X, Y, Z\}.`
# It essentially counts whether the number of non-identity Pauli operators in the Pauli word is even or odd.
-
-def even_odd_involution(op):
- [pw] = op.pauli_rep
- return len(pw) % 2
+# It is readily available in PennyLane as :func:`~.pennylane.liealg.even_odd_involution`, which
+# we already imported above.
even_odd_involution(X(0)), even_odd_involution(X(0) @ Y(3))
@@ -126,30 +125,9 @@ def even_odd_involution(op):
# sort the operators by whether or not they yield a plus or minus sign from the involution function.
# This is possible because the operators and involution nicely align with the eigenspace decomposition.
-def cartan_decomposition(g, involution):
- """Cartan Decomposition g = k + m
-
- Args:
- g (List[PauliSentence]): the (dynamical) Lie algebra to decompose
- involution (callable): Involution function :math:`\Theta(\cdot)` to act on PauliSentence ops, should return ``0/1`` or ``True/False``.
-
- Returns:
- k (List[PauliSentence]): the vertical subspace :math:`\Theta(x) = x`
- m (List[PauliSentence]): the horizontal subspace :math:`\Theta(x) = -x` """
- m = []
- k = []
-
- for op in g:
- if involution(op): # vertical space when involution returns True
- k.append(op)
- else: # horizontal space when involution returns False
- m.append(op)
- return k, m
-
-k, m = cartan_decomposition(g, even_odd_involution)
+k, m = cartan_decomp(g, even_odd_involution)
len(g), len(k), len(m)
-
##############################################################################
# We have successfully decomposed the 60-dimensional Lie algebra
# into a 24-dimensional vertical subspace and a 36-dimensional subspace.
@@ -187,51 +165,11 @@ def cartan_decomposition(g, involution):
# that commute with it.
#
# We then obtain a further split of the vector space :math:`\mathfrak{m} = \tilde{\mathfrak{m}} \oplus \mathfrak{h},`
-# where :math:`\tilde{\mathfrak{m}}` is just the remainder of :math:`\mathfrak{m}.`
+# where :math:`\tilde{\mathfrak{m}}` is just the remainder of :math:`\mathfrak{m}.` The function
+# :func:`~.pennylane.liealg.horizontal_cartan_subalgebra` returns some additional information, which we will
+# not use here.
-def _commutes_with_all(candidate, ops):
- r"""Check if ``candidate`` commutes with all ``ops``"""
- for op in ops:
- com = candidate.commutator(op)
- com.simplify()
-
- if not len(com) == 0:
- return False
- return True
-
-def cartan_subalgebra(m, which=0):
- """Compute the Cartan subalgebra from the horizontal subspace :math:`\mathfrak{m}`
- of the Cartan decomposition
-
- This implementation is specific for cases of bases of m with pure Pauli words as
- detailed in Appendix C in `2104.00728 `__.
-
- Args:
- m (List[PauliSentence]): the horizontal subspace :math:`\Theta(x) = -x
- which (int): Choice for the initial element of m from which to construct
- the maximal Abelian subalgebra
-
- Returns:
- mtilde (List): remaining elements of :math:`\mathfrak{m}`
- s.t. :math:`\mathfrak{m} = \tilde{\mathfrak{m}} \oplus \mathfrak{h}`.
- h (List): Cartan subalgebra :math:`\mathfrak{h}`.
-
- """
-
- h = [m[which]] # first candidate
- mtilde = m.copy()
-
- for m_i in m:
- if _commutes_with_all(m_i, h):
- if m_i not in h:
- h.append(m_i)
-
- for h_i in h:
- mtilde.remove(h_i)
-
- return mtilde, h
-
-mtilde, h = cartan_subalgebra(m)
+g, k, mtilde, h, _ = horizontal_cartan_subalgebra(k, m, tol=1e-8)
len(g), len(k), len(mtilde), len(h)
##############################################################################
@@ -241,7 +179,7 @@ def cartan_subalgebra(m, which=0):
# Variational KhK decomposition
# -----------------------------
#
-# The KAK theorem is not constructive in the sense that it proves that there exists such a decomposition, but there is no general way of obtaining
+# The KAK decomposition is not constructive in the sense that it proves that there exists such a decomposition, but there is no general way of obtaining
# it. In particular, there are no linear algebra subroutines implemented in ``numpy`` or ``scipy`` that just compute it for us.
# Here, we follow the construction of [#Kökcü]_ for the special case of :math:`H` being in the horizontal space and the decomposition
# simplifying to :math:`H = K^\dagger h K`.
@@ -282,10 +220,10 @@ def cartan_subalgebra(m, which=0):
#
def run_opt(
- value_and_grad,
+ loss,
theta,
- n_epochs=500,
- lr=0.1,
+ n_epochs=1000,
+ lr=0.05,
):
"""Boilerplate JAX optimization"""
value_and_grad = jax.jit(jax.value_and_grad(loss))
@@ -336,7 +274,7 @@ def loss(theta):
A = K_m @ v_m @ K_m.conj().T
return jnp.trace(A.conj().T @ H_m).real
-theta0 = jnp.ones(len(k), dtype=float)
+theta0 = jax.random.normal(jax.random.PRNGKey(0), shape=(len(k),), dtype=float)
thetas, energy, _ = run_opt(loss, theta0, n_epochs=1000, lr=0.05)
plt.plot(energy - np.min(energy))
@@ -359,13 +297,18 @@ def loss(theta):
# .. math:: h_0 = K_c^\dagger H K_c.
h_0_m = Kc_m.conj().T @ H_m @ Kc_m
-h_0 = qml.pauli_decompose(h_0_m)
-print(len(h_0))
+# decompose h_0_m in terms of the basis of h
+basis = [qml.matrix(op, wire_order=range(n_wires)) for op in h]
+coeffs = qml.pauli.trace_inner_product(h_0_m, basis)
+
+# ensure that decomposition is correct, i.e. h_0_m is truely an element of just h
+h_0_m_recomposed = np.sum([c * op for c, op in zip(coeffs, basis)], axis=0)
+print("Decomposition of h_0 is faithful: ", np.allclose(h_0_m_recomposed, h_0_m, atol=1e-10))
+
+# sanity check that the horizontal CSA is Abelian, i.e. all its elements commute
+print("All elements in h commute with each other: ", qml.liealg.check_abelian(h))
-# assure that h_0 is in \mathfrak{h}
-h_vspace = qml.pauli.PauliVSpace(h)
-not h_vspace.is_independent(h_0.pauli_rep)
##############################################################################
#
@@ -393,6 +336,7 @@ def loss(theta):
t = 1.
U_exact = qml.exp(-1j * t * H)
U_exact_m = qml.matrix(U_exact, wire_order=range(n_wires))
+h_0 = qml.dot(coeffs, h)
def U_kak(theta_opt, t):
qml.adjoint(K)(theta_opt, k)
@@ -478,7 +422,7 @@ def compute_res(Us):
# Conclusion
# ----------
#
-# The KAK theorem is a very general mathematical result with far-reaching consequences.
+# The KAK decomposition is a very general mathematical result with far-reaching consequences.
# While there is no canonical way of obtaining an actual decomposition in practice, we followed
# the approach of [#Kökcü]_ which uses a specifically designed loss function and variational
# optimization to find the decomposition.
diff --git a/demonstrations/tutorial_how_to_import_qiskit_noise_models.metadata.json b/demonstrations/tutorial_how_to_import_qiskit_noise_models.metadata.json
index 78b1bd040a..3786483a90 100644
--- a/demonstrations/tutorial_how_to_import_qiskit_noise_models.metadata.json
+++ b/demonstrations/tutorial_how_to_import_qiskit_noise_models.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-11-25T00:00:00+00:00",
- "dateOfLastModification": "2024-11-25T00:00:00+00:00",
+ "dateOfLastModification": "2025-04-11T00:00:00+00:00",
"categories": [
"Quantum Computing",
"How-to"
diff --git a/demonstrations/tutorial_how_to_import_qiskit_noise_models.py b/demonstrations/tutorial_how_to_import_qiskit_noise_models.py
index 7568184d0e..887921307f 100644
--- a/demonstrations/tutorial_how_to_import_qiskit_noise_models.py
+++ b/demonstrations/tutorial_how_to_import_qiskit_noise_models.py
@@ -15,6 +15,7 @@
custom user-defined or fake backend-based noise models.
"""
+
######################################################################
# Noise models in Qiskit and PennyLane
# ------------------------------------
diff --git a/demonstrations/tutorial_kak_decomposition.metadata.json b/demonstrations/tutorial_kak_decomposition.metadata.json
index 94e43e6012..0c1bec711c 100644
--- a/demonstrations/tutorial_kak_decomposition.metadata.json
+++ b/demonstrations/tutorial_kak_decomposition.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-11-25T00:00:00+00:00",
- "dateOfLastModification": "2025-01-07T09:00:00+00:00",
+ "dateOfLastModification": "2025-03-26T09:00:00+00:00",
"categories": [
"Quantum Computing",
"Algorithms"
diff --git a/demonstrations/tutorial_kak_decomposition.py b/demonstrations/tutorial_kak_decomposition.py
index a4789f8a4e..2d341a1b41 100644
--- a/demonstrations/tutorial_kak_decomposition.py
+++ b/demonstrations/tutorial_kak_decomposition.py
@@ -348,14 +348,15 @@ def is_orthogonal(op, basis):
#
# Let us define it in code, and check whether it gives rise to a Cartan decomposition.
# As we want to look at another example later, we wrap everything in a function.
+# A similar function is available in PennyLane as :func:`~.pennylane.liealg.check_cartan_decomp`.
#
-def check_cartan_decomposition(g, k, space_name):
+def check_cartan_decomp(g, k, space_name):
"""Given an algebra g and an operator subspace k, verify that k is a subalgebra
- and gives rise to a Cartan decomposition."""
+ and gives rise to a Cartan decomposition. Similar to qml.liealg.check_cartan_decomp"""
# Check Lie closure of k
- k_lie_closure = qml.pauli.dla.lie_closure(k)
+ k_lie_closure = qml.lie_closure(k)
k_is_closed = len(k_lie_closure) == len(k)
print(f"The Lie closure of k is as big as k itself: {k_is_closed}.")
@@ -387,7 +388,7 @@ def check_cartan_decomposition(g, k, space_name):
u1 = [Z(0)]
space_name = "SU(2)/U(1)"
-p = check_cartan_decomposition(su2, u1, space_name)
+p = check_cartan_decomp(su2, u1, space_name)
######################################################################
# Cartan subalgebras
@@ -811,7 +812,7 @@ def theta_Y(x):
# Define subalgebra su(2) ⊕ su(2)
su2_su2 = [X(0), Y(0), Z(0), X(1), Y(1), Z(1)]
space_name = "SU(4)/(SU(2)xSU(2))"
-p = check_cartan_decomposition(su4, su2_su2, space_name)
+p = check_cartan_decomp(su4, su2_su2, space_name)
######################################################################
# .. admonition:: Math detail: involution for two-qubit decomposition
diff --git a/demonstrations/tutorial_liesim.metadata.json b/demonstrations/tutorial_liesim.metadata.json
index f3d75d959d..a307de56e6 100644
--- a/demonstrations/tutorial_liesim.metadata.json
+++ b/demonstrations/tutorial_liesim.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-06-07T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2025-03-17T00:00:00+00:00",
"categories": [
"Quantum Computing",
"Getting Started"
diff --git a/demonstrations/tutorial_liesim.py b/demonstrations/tutorial_liesim.py
index 14f91b9a05..20630ee3da 100644
--- a/demonstrations/tutorial_liesim.py
+++ b/demonstrations/tutorial_liesim.py
@@ -186,7 +186,7 @@
# work with PauliSentence instances for efficiency
generators = [op.pauli_rep for op in generators]
-dla = qml.pauli.lie_closure(generators, pauli=True)
+dla = qml.lie_closure(generators, pauli=True)
dim_g = len(dla)
##############################################################################
@@ -239,7 +239,7 @@
# the forward pass of the expectation value computation. For demonstration purposes,
# we choose a random subset of ``depth=10`` generators for gates from the DLA.
-adjoint_repr = qml.pauli.structure_constants(dla)
+adjoint_repr = qml.structure_constants(dla)
depth = 10
gate_choice = np.random.choice(dim_g, size=depth)
diff --git a/demonstrations/tutorial_liesim_extension.metadata.json b/demonstrations/tutorial_liesim_extension.metadata.json
index 7da2c15c82..1807c7b04a 100644
--- a/demonstrations/tutorial_liesim_extension.metadata.json
+++ b/demonstrations/tutorial_liesim_extension.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-06-18T00:00:00+00:00",
- "dateOfLastModification": "2025-01-13T00:00:00+00:00",
+ "dateOfLastModification": "2025-03-26T00:00:00+00:00",
"categories": [
"Quantum Computing",
"Quantum Machine Learning"
diff --git a/demonstrations/tutorial_liesim_extension.py b/demonstrations/tutorial_liesim_extension.py
index b11a640b6e..220702874e 100644
--- a/demonstrations/tutorial_liesim_extension.py
+++ b/demonstrations/tutorial_liesim_extension.py
@@ -99,9 +99,9 @@ def TFIM(n):
generators += [Z(i) for i in range(n)]
generators = [op.pauli_rep for op in generators]
- dla = qml.pauli.lie_closure(generators, pauli=True)
- dim_dla = len(dla)
- return generators, dla, dim_dla
+ dla = qml.lie_closure(generators, pauli=True)
+ dim_g = len(dla)
+ return generators, dla, dim_g
generators, dla, dim_g = TFIM(n=4)
diff --git a/demonstrations/tutorial_noisy_circuits.metadata.json b/demonstrations/tutorial_noisy_circuits.metadata.json
index 92522adae3..0ba26ef0b7 100644
--- a/demonstrations/tutorial_noisy_circuits.metadata.json
+++ b/demonstrations/tutorial_noisy_circuits.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2021-02-22T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2024-12-18T00:00:00+00:00",
"categories": [
"Getting Started"
],
diff --git a/demonstrations/tutorial_noisy_circuits.py b/demonstrations/tutorial_noisy_circuits.py
index 1491215009..af1a7f4d7e 100644
--- a/demonstrations/tutorial_noisy_circuits.py
+++ b/demonstrations/tutorial_noisy_circuits.py
@@ -144,12 +144,13 @@ def bitflip_circuit(p):
qml.CNOT(wires=[0, 1])
qml.BitFlip(p, wires=0)
qml.BitFlip(p, wires=1)
- return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1))
+ return qml.expval(qml.PauliZ(0) @ qml.PauliZ(1)), qml.state()
ps = [0.001, 0.01, 0.1, 0.2]
for p in ps:
- print(f"QNode output for bit flip probability {p} is {bitflip_circuit(p):.4f}")
+ result = bitflip_circuit(p)
+ print(f"QNode output for bit flip probability {p} is {result[0]:.4f}")
######################################################################
@@ -158,7 +159,7 @@ def bitflip_circuit(p):
# mitigation and error correction are so important. We can use PennyLane to look under the hood and
# see the output state of the circuit for the largest noise parameter
-print(f"Output state for bit flip probability {p} is \n{np.real(dev.state)}")
+print(f"Output state for bit flip probability {p} is \n{result[1]}")
######################################################################
# Besides the bit flip channel, PennyLane supports several other noisy channels that are commonly
diff --git a/demonstrations/tutorial_odegen.metadata.json b/demonstrations/tutorial_odegen.metadata.json
index ab2eb2a794..df0ad04903 100644
--- a/demonstrations/tutorial_odegen.metadata.json
+++ b/demonstrations/tutorial_odegen.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2023-12-12T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2025-01-28T00:00:00+00:00",
"categories": [
"Optimization",
"Quantum Computing",
diff --git a/demonstrations/tutorial_odegen.py b/demonstrations/tutorial_odegen.py
index 257bb3884c..8894ff68d8 100644
--- a/demonstrations/tutorial_odegen.py
+++ b/demonstrations/tutorial_odegen.py
@@ -45,10 +45,10 @@
that can be executed on hardware.
-SPS & ODEgen
-------------
+SPS and ODEgen gradient rules
+-----------------------------
-Let us start by deriving both the SPS rule and ODEgen.
+Let us start by deriving both the SPS and ODEgen rules.
We are interested in cost functions of the form
@@ -163,6 +163,7 @@
Let us define it in PennyLane and also import some libraries that we are going to need for this demo.
"""
+
import pennylane as qml
import numpy as np
import jax.numpy as jnp
@@ -181,21 +182,21 @@
##############################################################################
# We are going to consider a system of transmon qubits described by the Hamiltonian
-#
+#
# .. math:: H(\theta, t) = - \sum_i \frac{\omega_i}{2} Z_i + \sum_i \Omega_i(t) \sin(\nu_i t + \phi_i(t)) Y_i + \sum_{q, p \in \mathcal{C}} \frac{g_{qp}}{2} (X_i X_p + Y_i Y_p).
-#
-# The first term describes the single qubits with frequencies :math:`\omega_i.`
-# The second term describes the driving with drive amplitudes :math:`\Omega_i,` drive frequencies :math:`\nu_i` and phases :math:`\phi_i.`
-# You can check out our :doc:`recent demo on driving qubits on OQC's Lucy ` if
+#
+# The first term describes the single qubits with frequencies :math:`\omega_i.`
+# The second term describes the driving with drive amplitudes :math:`\Omega_i,` drive frequencies :math:`\nu_i` and phases :math:`\phi_i.`
+# You can check out our :doc:`recent demo on driving qubits on OQC's Lucy ` if
# you want to learn more about the details of controlling transmon qubits.
-# The third term describes the coupling between neighboring qubits. We only have two qubits and a simple topology of
+# The third term describes the coupling between neighboring qubits. We only have two qubits and a simple topology of
# :math:`\mathcal{C} = \{(0, 1)\},` hence only one coupling constant :math:`g_{01}.`
-# The coupling is necessary to generate entanglement, which is achieved with cross-resonant driving in fixed-coupling
+# The coupling is necessary to generate entanglement, which is achieved with cross-resonant driving in fixed-coupling
# transmon systems, as is the case here.
-#
-# We will use realistic parameters for the transmons, taken from the `coaxmon design paper `_ [#Patterson]_
+#
+# We will use realistic parameters for the transmons, taken from the `coaxmon design paper `_ [#Patterson]_
# (this is the blue-print for the transmon qubits in OQC's Lucy that you can :doc:`access on a pulse level in PennyLane `).
-# In order to prepare the singlet ground state, we will perform a cross-resonance pulse, i.e. driving one qubit at its coupled neighbor's
+# In order to prepare the singlet ground state, we will perform a cross-resonance pulse, i.e. driving one qubit at its coupled neighbor's
# frequency for entanglement generation (see [#Patterson]_ or [#Krantz]_) while simultaneously driving the other qubit on resonance.
# We choose a gate time of :math:`100 \text{ ns}.` We will use a piecewise constant function :func:`~pennylane.pulse.pwc` to parametrize both
# the amplitude :math:`\Omega_i(t)` and the phase :math:`\phi_i(t)` in time, with ``t_bins = 10`` time bins to allow for enough flexibility in the evolution.
@@ -221,7 +222,7 @@ def wrapped(p, t):
H_pulse += drive_field(T_CR, qubit_freq[0]) * qml.PauliY(wires[1]) # off-resonance driving of qubit 1
##############################################################################
-# We can now define the cost function that computes the expectation value of
+# We can now define the cost function that computes the expectation value of
# the Heisenberg Hamiltonian after evolving the state with the parametrized pulse Hamiltonian.
# We then define the two separate qnodes with ODEgen and SPS as their differentiation methods, respectively.
@@ -235,7 +236,14 @@ def qnode0(params):
value_and_grad_jax = jax.jit(jax.value_and_grad(qnode_jax))
num_split_times = 8
-qnode_sps = qml.QNode(qnode0, dev, interface="jax", diff_method=qml.gradients.stoch_pulse_grad, use_broadcasting=True, num_split_times=num_split_times)
+gradient_kwargs = {"use_broadcasting": True, "num_split_times": num_split_times}
+qnode_sps = qml.QNode(
+ qnode0,
+ dev,
+ interface="jax",
+ diff_method=qml.gradients.stoch_pulse_grad,
+ gradient_kwargs=gradient_kwargs,
+)
value_and_grad_sps = jax.value_and_grad(qnode_sps)
qnode_odegen = qml.QNode(qnode0, dev, interface="jax", diff_method=qml.gradients.pulse_odegen)
@@ -304,12 +312,12 @@ def partial_step(grad_circuit, opt_state, theta):
##############################################################################
-# We see that with analytic gradients (ODEgen), we can reach the ground state energy within 100 epochs, whereas with SPS gradients we cannot find the path
+# We see that with analytic gradients (ODEgen), we can reach the ground state energy within 100 epochs, whereas with SPS gradients we cannot find the path
# towards the minimum due to the stochasticity of the gradient estimates. Note that both optimizations start from the same (random) initial point.
# This picture solidifies when repeating this procedure for multiple runs from different random initializations, as was demonstrated in [#Kottmann]_.
#
# We also want to make sure that this is a fair comparison in terms of quantum resources. In the case of ODEgen, we maximally have :math:`\mathcal{R}_\text{ODEgen} = 2 (4^n - 1) = 30` expectation values.
-# For SPS we have :math:`2 N_g N_s = 32` (due to :math:`N_g = 2` and :math:`N_s=8` time samples per gradient that we chose in ``num_split_times`` above). Thus, overall, we require fewer
+# For SPS we have :math:`2 N_g N_s = 32` (due to :math:`N_g = 2` and :math:`N_s=8` time samples per gradient that we chose in ``num_split_times`` above). Thus, overall, we require fewer
# quantum resources for ODEgen gradients while achieving better performance.
#
# Conclusion
@@ -323,9 +331,8 @@ def partial_step(grad_circuit, opt_state, theta):
# Running VQE using ODEgen on hardware has recently been demonstrated in [#Kottmann]_ and you can directly find `the code here `_.
-
##############################################################################
-#
+#
# References
# ----------
#
diff --git a/demonstrations/tutorial_pulse_programming101.metadata.json b/demonstrations/tutorial_pulse_programming101.metadata.json
index 7801031d1f..9c5a8f71c3 100644
--- a/demonstrations/tutorial_pulse_programming101.metadata.json
+++ b/demonstrations/tutorial_pulse_programming101.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2023-03-08T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2025-02-14T00:00:00+00:00",
"categories": [
"Quantum Hardware",
"Quantum Computing"
diff --git a/demonstrations/tutorial_pulse_programming101.py b/demonstrations/tutorial_pulse_programming101.py
index b1b4ce33ea..aa050030a1 100644
--- a/demonstrations/tutorial_pulse_programming101.py
+++ b/demonstrations/tutorial_pulse_programming101.py
@@ -322,15 +322,21 @@ def wrapped(p, t):
##############################################################################
# Now we define the ``qnode`` that computes the expectation value of the molecular Hamiltonian.
+# We need to wrap the ``qnode`` in a function so that we can convert the expectation value to a real number.
+# This will enable use to make use of gradient descent methods that require real-valued loss functions.
dev = qml.device("default.qubit", wires=range(n_wires))
-@qml.qnode(dev, interface="jax")
def qnode(theta, t=duration):
- qml.BasisState(jnp.array(data.tapered_hf_state), wires=H_obj.wires)
- qml.evolve(H_pulse)(params=(*theta, *theta), t=t)
- return qml.expval(H_obj)
+ @qml.qnode(dev)
+ def _qnode_inner(theta, t=duration):
+ qml.BasisState(jnp.array(data.tapered_hf_state), wires=H_obj.wires)
+ qml.evolve(H_pulse)(params=(*theta, *theta), t=t)
+ return qml.expval(H_obj)
+
+ expectation_value = _qnode_inner(theta, t) # Execute the qnode
+ return jnp.real(expectation_value) # Typecast to real number
value_and_grad = jax.jit(jax.value_and_grad(qnode))
diff --git a/demonstrations/tutorial_qnn_module_torch.metadata.json b/demonstrations/tutorial_qnn_module_torch.metadata.json
index bfd569d229..f7e3189dc6 100644
--- a/demonstrations/tutorial_qnn_module_torch.metadata.json
+++ b/demonstrations/tutorial_qnn_module_torch.metadata.json
@@ -26,7 +26,7 @@
"relatedContent": [
{
"type": "demonstration",
- "id": "tutorial_qnn_module_tf",
+ "id": "qnn_module_tf",
"weight": 1.0
}
]
diff --git a/demonstrations/tutorial_qnn_module_torch.py b/demonstrations/tutorial_qnn_module_torch.py
index f3f59a77ff..253d749eca 100644
--- a/demonstrations/tutorial_qnn_module_torch.py
+++ b/demonstrations/tutorial_qnn_module_torch.py
@@ -8,7 +8,7 @@
.. related::
- tutorial_qnn_module_tf Turning quantum nodes into Keras Layers
+ qnn_module_tf Turning quantum nodes into Keras Layers
*Author: Tom Bromley — Posted: 02 November 2020. Last updated: 28 January 2021.*
@@ -37,7 +37,7 @@
# .. note::
#
# A similar demo explaining how to
-# :doc:`turn quantum nodes into Keras layers `
+# :doc:`turn quantum nodes into Keras layers `
# is also available.
#
# Fixing the dataset and problem
diff --git a/demonstrations/tutorial_testing_symmetry.metadata.json b/demonstrations/tutorial_testing_symmetry.metadata.json
index 2a7ca1c3df..b42d1b3179 100644
--- a/demonstrations/tutorial_testing_symmetry.metadata.json
+++ b/demonstrations/tutorial_testing_symmetry.metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2023-01-24T00:00:00+00:00",
- "dateOfLastModification": "2024-11-06T00:00:00+00:00",
+ "dateOfLastModification": "2025-01-23T00:00:00+00:00",
"categories": [
"Algorithms",
"Quantum Computing"
diff --git a/demonstrations/tutorial_testing_symmetry.py b/demonstrations/tutorial_testing_symmetry.py
index 61e0776885..802ac04055 100644
--- a/demonstrations/tutorial_testing_symmetry.py
+++ b/demonstrations/tutorial_testing_symmetry.py
@@ -308,14 +308,14 @@ def prep_plus():
# Implement controlled symmetry operations on system
def CU_sys():
- qml.ControlledQubitUnitary(c_mat @ c_mat, control_wires=[aux[0]], wires=system)
- qml.ControlledQubitUnitary(c_mat, control_wires=[aux[1]], wires=system)
+ qml.ControlledQubitUnitary(c_mat @ c_mat, wires=[aux[0]] + list(system))
+ qml.ControlledQubitUnitary(c_mat, wires=[aux[1]] + list(system))
# Implement controlled symmetry operations on copy
def CU_cpy():
- qml.ControlledQubitUnitary(c_mat @ c_mat, control_wires=[aux[0]], wires=copy)
- qml.ControlledQubitUnitary(c_mat, control_wires=[aux[1]], wires=copy)
+ qml.ControlledQubitUnitary(c_mat @ c_mat, wires=[aux[0]] + list(copy))
+ qml.ControlledQubitUnitary(c_mat, wires=[aux[1]] + list(copy))
######################################################################
# Let’s combine everything and actually run our circuit!
diff --git a/demonstrations/tutorial_zne_catalyst.metadata.json b/demonstrations/tutorial_zne_catalyst.metadata.json
index f9cc710683..a2cd39b777 100644
--- a/demonstrations/tutorial_zne_catalyst.metadata.json
+++ b/demonstrations/tutorial_zne_catalyst.metadata.json
@@ -9,7 +9,7 @@
}
],
"dateOfPublication": "2024-11-15T00:00:00+00:00",
- "dateOfLastModification": "2024-11-25T09:00:00+00:00",
+ "dateOfLastModification": "2025-04-11T09:00:00+00:00",
"categories": [
"Algorithms",
"Quantum Computing"
diff --git a/demonstrations/tutorial_zne_catalyst.py b/demonstrations/tutorial_zne_catalyst.py
index 0addd8d542..847360513f 100644
--- a/demonstrations/tutorial_zne_catalyst.py
+++ b/demonstrations/tutorial_zne_catalyst.py
@@ -85,6 +85,7 @@
# pip install -U pennylane-catalyst pennylane-qrack
#
+
##############################################################################
# Defining the mirror circuit
# ---------------------------
diff --git a/demonstrations_v2/tutorial_qnn_module_tf/demo.py b/demonstrations_v2/qnn_module_tf/demo.py
similarity index 81%
rename from demonstrations_v2/tutorial_qnn_module_tf/demo.py
rename to demonstrations_v2/qnn_module_tf/demo.py
index 8f8c906c1c..cf4237416c 100644
--- a/demonstrations_v2/tutorial_qnn_module_tf/demo.py
+++ b/demonstrations_v2/qnn_module_tf/demo.py
@@ -1,4 +1,7 @@
-"""
+r"""
+.. role:: html(raw)
+ :format: html
+
Turning quantum nodes into Keras Layers
=======================================
@@ -10,7 +13,13 @@
tutorial_qnn_module_torch Turning quantum nodes into Torch Layers
-*Author: Tom Bromley — Posted: 02 November 2020. Last updated: 28 January 2021.*
+*Author: Tom Bromley — Posted: 02 November 2020. Last updated: 21 March 2025.*
+
+.. warning::
+
+ This demo is only compatible with PennyLane version 0.40 or below.
+ For usage with a later version of PennyLane, please consider using
+ :doc:`PyTorch ` or :doc:`JAX `.
Creating neural networks in `Keras `__ is easy. Models are constructed from
elementary *layers* and can be trained using a high-level API. For example, the following code
@@ -67,6 +76,11 @@
plt.scatter(X[:, 0], X[:, 1], c=c)
plt.show()
+##############################################################################
+# .. figure:: /_static/demonstration_assets/qnn_module/sphx_glr_qnn_module_tf_001.png
+# :width: 100%
+# :align: center
+
###############################################################################
# Defining a QNode
# ----------------
@@ -166,7 +180,25 @@ def qnode(inputs, weights):
fitting = model.fit(X, y_hot, epochs=6, batch_size=5, validation_split=0.25, verbose=2)
-###############################################################################
+##############################################################################
+# .. rst-class:: sphx-glr-script-out
+#
+# .. code-block:: none
+#
+# Epoch 1/6
+# 30/30 - 4s - loss: 0.4153 - accuracy: 0.7333 - val_loss: 0.3183 - val_accuracy: 0.7800 - 4s/epoch - 123ms/step
+# Epoch 2/6
+# 30/30 - 4s - loss: 0.2927 - accuracy: 0.8000 - val_loss: 0.2475 - val_accuracy: 0.8400 - 4s/epoch - 130ms/step
+# Epoch 3/6
+# 30/30 - 4s - loss: 0.2272 - accuracy: 0.8333 - val_loss: 0.2111 - val_accuracy: 0.8200 - 4s/epoch - 119ms/step
+# Epoch 4/6
+# 30/30 - 4s - loss: 0.1963 - accuracy: 0.8667 - val_loss: 0.1917 - val_accuracy: 0.8600 - 4s/epoch - 118ms/step
+# Epoch 5/6
+# 30/30 - 4s - loss: 0.1772 - accuracy: 0.8667 - val_loss: 0.1828 - val_accuracy: 0.8600 - 4s/epoch - 117ms/step
+# Epoch 6/6
+# 30/30 - 4s - loss: 0.1603 - accuracy: 0.8733 - val_loss: 0.2006 - val_accuracy: 0.8200 - 4s/epoch - 117ms/step
+#
+#
# How did we do? The model looks to have successfully trained and the accuracy on both the
# training and validation datasets is reasonably high. In practice, we would aim to push the
# accuracy higher by thinking carefully about the model design and the choice of hyperparameters
@@ -224,7 +256,25 @@ def qnode(inputs, weights):
fitting = model.fit(X, y_hot, epochs=6, batch_size=5, validation_split=0.25, verbose=2)
-###############################################################################
+##############################################################################
+# .. rst-class:: sphx-glr-script-out
+#
+# .. code-block:: none
+#
+# Epoch 1/6
+# 30/30 - 7s - loss: 0.3682 - accuracy: 0.7467 - val_loss: 0.2550 - val_accuracy: 0.8000 - 7s/epoch - 229ms/step
+# Epoch 2/6
+# 30/30 - 7s - loss: 0.2428 - accuracy: 0.8067 - val_loss: 0.2105 - val_accuracy: 0.8400 - 7s/epoch - 224ms/step
+# Epoch 3/6
+# 30/30 - 7s - loss: 0.2001 - accuracy: 0.8333 - val_loss: 0.1901 - val_accuracy: 0.8200 - 7s/epoch - 220ms/step
+# Epoch 4/6
+# 30/30 - 7s - loss: 0.1816 - accuracy: 0.8600 - val_loss: 0.1776 - val_accuracy: 0.8200 - 7s/epoch - 224ms/step
+# Epoch 5/6
+# 30/30 - 7s - loss: 0.1661 - accuracy: 0.8667 - val_loss: 0.1711 - val_accuracy: 0.8600 - 7s/epoch - 224ms/step
+# Epoch 6/6
+# 30/30 - 7s - loss: 0.1520 - accuracy: 0.8600 - val_loss: 0.1807 - val_accuracy: 0.8200 - 7s/epoch - 221ms/step
+#
+#
# Great! We've mastered the basics of constructing hybrid classical-quantum models using
# PennyLane and Keras. Can you think of any interesting hybrid models to construct? How do they
# perform on realistic datasets?
diff --git a/demonstrations_v2/tutorial_qnn_module_tf/metadata.json b/demonstrations_v2/qnn_module_tf/metadata.json
similarity index 93%
rename from demonstrations_v2/tutorial_qnn_module_tf/metadata.json
rename to demonstrations_v2/qnn_module_tf/metadata.json
index 36a7aab856..15d489d26a 100644
--- a/demonstrations_v2/tutorial_qnn_module_tf/metadata.json
+++ b/demonstrations_v2/qnn_module_tf/metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2020-11-02T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2025-03-21T00:00:00+00:00",
"categories": [
"Devices and Performance",
"Quantum Machine Learning"
diff --git a/demonstrations_v2/tutorial_qnn_module_tf/requirements.in b/demonstrations_v2/qnn_module_tf/requirements.in
similarity index 100%
rename from demonstrations_v2/tutorial_qnn_module_tf/requirements.in
rename to demonstrations_v2/qnn_module_tf/requirements.in
diff --git a/demonstrations_v2/tutorial_kak_decomposition/demo.py b/demonstrations_v2/tutorial_kak_decomposition/demo.py
index a4789f8a4e..8a61aa3cc9 100644
--- a/demonstrations_v2/tutorial_kak_decomposition/demo.py
+++ b/demonstrations_v2/tutorial_kak_decomposition/demo.py
@@ -355,7 +355,7 @@ def check_cartan_decomposition(g, k, space_name):
"""Given an algebra g and an operator subspace k, verify that k is a subalgebra
and gives rise to a Cartan decomposition."""
# Check Lie closure of k
- k_lie_closure = qml.pauli.dla.lie_closure(k)
+ k_lie_closure = qml.lie_closure(k)
k_is_closed = len(k_lie_closure) == len(k)
print(f"The Lie closure of k is as big as k itself: {k_is_closed}.")
diff --git a/demonstrations_v2/tutorial_kak_decomposition/metadata.json b/demonstrations_v2/tutorial_kak_decomposition/metadata.json
index 94e43e6012..ae7f442f81 100644
--- a/demonstrations_v2/tutorial_kak_decomposition/metadata.json
+++ b/demonstrations_v2/tutorial_kak_decomposition/metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-11-25T00:00:00+00:00",
- "dateOfLastModification": "2025-01-07T09:00:00+00:00",
+ "dateOfLastModification": "2025-03-17T09:00:00+00:00",
"categories": [
"Quantum Computing",
"Algorithms"
diff --git a/demonstrations_v2/tutorial_liesim/demo.py b/demonstrations_v2/tutorial_liesim/demo.py
index 14f91b9a05..20630ee3da 100644
--- a/demonstrations_v2/tutorial_liesim/demo.py
+++ b/demonstrations_v2/tutorial_liesim/demo.py
@@ -186,7 +186,7 @@
# work with PauliSentence instances for efficiency
generators = [op.pauli_rep for op in generators]
-dla = qml.pauli.lie_closure(generators, pauli=True)
+dla = qml.lie_closure(generators, pauli=True)
dim_g = len(dla)
##############################################################################
@@ -239,7 +239,7 @@
# the forward pass of the expectation value computation. For demonstration purposes,
# we choose a random subset of ``depth=10`` generators for gates from the DLA.
-adjoint_repr = qml.pauli.structure_constants(dla)
+adjoint_repr = qml.structure_constants(dla)
depth = 10
gate_choice = np.random.choice(dim_g, size=depth)
diff --git a/demonstrations_v2/tutorial_liesim/metadata.json b/demonstrations_v2/tutorial_liesim/metadata.json
index f3d75d959d..a307de56e6 100644
--- a/demonstrations_v2/tutorial_liesim/metadata.json
+++ b/demonstrations_v2/tutorial_liesim/metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-06-07T00:00:00+00:00",
- "dateOfLastModification": "2024-10-07T00:00:00+00:00",
+ "dateOfLastModification": "2025-03-17T00:00:00+00:00",
"categories": [
"Quantum Computing",
"Getting Started"
diff --git a/demonstrations_v2/tutorial_liesim_extension/demo.py b/demonstrations_v2/tutorial_liesim_extension/demo.py
index b11a640b6e..ce62806eb9 100644
--- a/demonstrations_v2/tutorial_liesim_extension/demo.py
+++ b/demonstrations_v2/tutorial_liesim_extension/demo.py
@@ -99,7 +99,7 @@ def TFIM(n):
generators += [Z(i) for i in range(n)]
generators = [op.pauli_rep for op in generators]
- dla = qml.pauli.lie_closure(generators, pauli=True)
+ dla = qml.lie_closure(generators, pauli=True)
dim_dla = len(dla)
return generators, dla, dim_dla
diff --git a/demonstrations_v2/tutorial_liesim_extension/metadata.json b/demonstrations_v2/tutorial_liesim_extension/metadata.json
index 7da2c15c82..3837196b18 100644
--- a/demonstrations_v2/tutorial_liesim_extension/metadata.json
+++ b/demonstrations_v2/tutorial_liesim_extension/metadata.json
@@ -6,7 +6,7 @@
}
],
"dateOfPublication": "2024-06-18T00:00:00+00:00",
- "dateOfLastModification": "2025-01-13T00:00:00+00:00",
+ "dateOfLastModification": "2025-03-17T00:00:00+00:00",
"categories": [
"Quantum Computing",
"Quantum Machine Learning"
diff --git a/demonstrations_v2/tutorial_qnn_module_torch/demo.py b/demonstrations_v2/tutorial_qnn_module_torch/demo.py
index f3f59a77ff..253d749eca 100644
--- a/demonstrations_v2/tutorial_qnn_module_torch/demo.py
+++ b/demonstrations_v2/tutorial_qnn_module_torch/demo.py
@@ -8,7 +8,7 @@
.. related::
- tutorial_qnn_module_tf Turning quantum nodes into Keras Layers
+ qnn_module_tf Turning quantum nodes into Keras Layers
*Author: Tom Bromley — Posted: 02 November 2020. Last updated: 28 January 2021.*
@@ -37,7 +37,7 @@
# .. note::
#
# A similar demo explaining how to
-# :doc:`turn quantum nodes into Keras layers `
+# :doc:`turn quantum nodes into Keras layers `
# is also available.
#
# Fixing the dataset and problem
diff --git a/demonstrations_v2/tutorial_qnn_module_torch/metadata.json b/demonstrations_v2/tutorial_qnn_module_torch/metadata.json
index bfd569d229..f7e3189dc6 100644
--- a/demonstrations_v2/tutorial_qnn_module_torch/metadata.json
+++ b/demonstrations_v2/tutorial_qnn_module_torch/metadata.json
@@ -26,7 +26,7 @@
"relatedContent": [
{
"type": "demonstration",
- "id": "tutorial_qnn_module_tf",
+ "id": "qnn_module_tf",
"weight": 1.0
}
]
diff --git a/poetry.lock b/poetry.lock
index d497c996b5..eff89c4dac 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -661,138 +661,46 @@ numpy = ">=1.24.1"
toolz = ">=0.9.0"
typing_extensions = ">=4.2.0"
-[[package]]
-name = "cirq"
-version = "1.0.0"
-description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits."
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "cirq-1.0.0-py3-none-any.whl", hash = "sha256:8d61feba1c8d2a37d82a53e2500fb2430ad8e0ca7c3e2562fbd554bea0d9d7f7"},
-]
-
-[package.dependencies]
-cirq-aqt = "1.0.0"
-cirq-core = "1.0.0"
-cirq-google = "1.0.0"
-cirq-ionq = "1.0.0"
-cirq-pasqal = "1.0.0"
-cirq-rigetti = "1.0.0"
-cirq-web = "1.0.0"
-
-[package.extras]
-dev-env = ["asv", "black (==22.3.0)", "codeowners", "coverage (<=6.2)", "dill (==0.3.4)", "filelock (>=3.0.12,<3.1.0)", "flynt (>=0.60,<1.0)", "freezegun (>=0.3.15,<0.4.0)", "grpcio-tools (>=1.37.0,<1.38.0)", "importlib-metadata", "ipykernel (==5.3.4)", "ipython", "ipython (==7.31.1)", "mypy (==0.961.0)", "mypy-protobuf (==1.10)", "notebook (>=6.4.1,<=6.4.7)", "papermill (>=2.3.2,<2.4.0)", "pylint (>=2.13.0,<2.14.0)", "pytest", "pytest-asyncio", "pytest-cov", "pytest-xdist (>=2.2.0,<2.3.0)", "qiskit-aer (>=0.10.4,<0.11.0)", "rstcheck (>=3.3.1,<3.4.0)", "seaborn (>=0.11.1,<0.12.0)", "setuptools", "twine", "types-backports (==0.1.3)", "types-protobuf (==3.19.22)", "types-requests (==2.28.1)", "types-setuptools (==62.6.1)", "virtualenv", "virtualenv-clone", "wheel"]
-
-[[package]]
-name = "cirq-aqt"
-version = "1.0.0"
-description = "A Cirq package to simulate and connect to Alpine Quantum Technologies quantum computers"
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "cirq_aqt-1.0.0-py3-none-any.whl", hash = "sha256:db7af0b40ceded8a5951f74f36e2235a873df519078e069a6e4d00fda4acd82d"},
-]
-
-[package.dependencies]
-cirq-core = "1.0.0"
-requests = ">=2.18,<3.0"
-
[[package]]
name = "cirq-core"
-version = "1.0.0"
+version = "1.4.1"
description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits."
optional = false
-python-versions = ">=3.7.0"
+python-versions = ">=3.10.0"
files = [
- {file = "cirq_core-1.0.0-py3-none-any.whl", hash = "sha256:a1df552e99ab339121c40c7bf4d18ba542bba151dd8b5ac8c4c33b7b9d46ba10"},
+ {file = "cirq_core-1.4.1-py3-none-any.whl", hash = "sha256:869db60413265c41a8206854c1d4ca9bad5fac9cfd7c6a10685b5a6d516defa0"},
]
[package.dependencies]
-duet = ">=0.2.7,<0.3.0"
+attrs = ">=21.3.0"
+duet = ">=0.2.8"
matplotlib = ">=3.0,<4.0"
-networkx = ">=2.4,<3.0"
-numpy = ">=1.16,<2.0"
+networkx = ">=2.4"
+numpy = ">=1.22,<2.0"
pandas = "*"
-scipy = "*"
+scipy = ">=1.0,<2.0"
sortedcontainers = ">=2.0,<3.0"
sympy = "*"
tqdm = "*"
-typing-extensions = "*"
+typing-extensions = ">=4.2"
[package.extras]
-contrib = ["autoray", "numba (>=0.53.0)", "opt-einsum", "ply (>=3.4)", "pylatex (>=1.3.0,<1.4.0)", "quimb"]
-
-[[package]]
-name = "cirq-google"
-version = "1.0.0"
-description = "The Cirq module that provides tools and access to the Google Quantum Computing Service"
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "cirq_google-1.0.0-py3-none-any.whl", hash = "sha256:8fd1df0fd97d1ee076c01a2b2ab86aac966692890fb2793a45ef2393a6ccc4ab"},
-]
-
-[package.dependencies]
-cirq-core = "1.0.0"
-google-api-core = {version = ">=1.14.0,<2.0.0dev", extras = ["grpc"]}
-proto-plus = ">=1.20.0"
-protobuf = ">=3.15.0,<4"
-
-[[package]]
-name = "cirq-ionq"
-version = "1.0.0"
-description = "A Cirq package to simulate and connect to IonQ quantum computers"
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "cirq_ionq-1.0.0-py3-none-any.whl", hash = "sha256:31ff254a5b514736f79a92a186d473b3e40550c94ad36aeebddea1cb840fb065"},
-]
-
-[package.dependencies]
-cirq-core = "1.0.0"
-requests = ">=2.18,<3.0"
+contrib = ["opt-einsum", "ply (>=3.6)", "pylatex (>=1.4,<2.0)", "quimb (>=1.7,<2.0)"]
[[package]]
name = "cirq-pasqal"
-version = "1.0.0"
+version = "1.4.1"
description = "A Cirq package to simulate and connect to Pasqal quantum computers"
optional = false
-python-versions = ">=3.7.0"
+python-versions = ">=3.10.0"
files = [
- {file = "cirq_pasqal-1.0.0-py3-none-any.whl", hash = "sha256:1243aae6514aadb6a5e2f729da3d99904d20631e7d2a7fbaef69c7377a9158b5"},
+ {file = "cirq_pasqal-1.4.1-py3-none-any.whl", hash = "sha256:eb0cdad9f33159e436f38bf761bbacaebebb70c0a3a3bd0e7dfb08d079869489"},
]
[package.dependencies]
-cirq-core = "1.0.0"
+cirq-core = "1.4.1"
requests = ">=2.18,<3.0"
-[[package]]
-name = "cirq-rigetti"
-version = "1.0.0"
-description = "A Cirq package to simulate and connect to Rigetti quantum computers and Quil QVM"
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "cirq_rigetti-1.0.0-py3-none-any.whl", hash = "sha256:a0ff2ac5dea2b175ced45ade23bd2bfc2f1d8d280b6a003b1dcdddfdd579c0bd"},
-]
-
-[package.dependencies]
-cirq-core = "1.0.0"
-pyquil = ">=3.0.0"
-
-[[package]]
-name = "cirq-web"
-version = "1.0.0"
-description = "Web-based 3D visualization tools for Cirq."
-optional = false
-python-versions = ">=3.7.0"
-files = [
- {file = "cirq_web-1.0.0-py3-none-any.whl", hash = "sha256:e3ebc6043b5a6a2a4ba57a71ea9ea5bc487732527b4512961e4c4ce90b2f5744"},
-]
-
-[package.dependencies]
-cirq-core = "1.0.0"
-
[[package]]
name = "clarabel"
version = "0.10.0"
@@ -1297,23 +1205,6 @@ files = [
{file = "decorator-5.2.1.tar.gz", hash = "sha256:65f266143752f734b0a7cc83c46f4618af75b8c5911b00ccb61d0ac9b6da0360"},
]
-[[package]]
-name = "deprecated"
-version = "1.2.18"
-description = "Python @deprecated decorator to deprecate old python classes, functions or methods."
-optional = false
-python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-files = [
- {file = "Deprecated-1.2.18-py2.py3-none-any.whl", hash = "sha256:bd5011788200372a32418f888e326a09ff80d0214bd961147cfed01b5c018eec"},
- {file = "deprecated-1.2.18.tar.gz", hash = "sha256:422b6f6d859da6f2ef57857761bfb392480502a64c3028ca9bbe86085d72115d"},
-]
-
-[package.dependencies]
-wrapt = ">=1.10,<2"
-
-[package.extras]
-dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools", "tox"]
-
[[package]]
name = "deprecation"
version = "2.1.0"
@@ -2447,30 +2338,6 @@ files = [
{file = "gast-0.6.0.tar.gz", hash = "sha256:88fc5300d32c7ac6ca7b515310862f71e6fdf2c029bbec7c66c0f5dd47b6b1fb"},
]
-[[package]]
-name = "google-api-core"
-version = "1.34.1"
-description = "Google API client core library"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "google-api-core-1.34.1.tar.gz", hash = "sha256:3399c92887a97d33038baa4bfd3bf07acc05d474b0171f333e1f641c1364e552"},
- {file = "google_api_core-1.34.1-py3-none-any.whl", hash = "sha256:52bcc9d9937735f8a3986fa0bbf9135ae9cf5393a722387e5eced520e39c774a"},
-]
-
-[package.dependencies]
-google-auth = ">=1.25.0,<3.0dev"
-googleapis-common-protos = ">=1.56.2,<2.0dev"
-grpcio = {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""}
-grpcio-status = {version = ">=1.33.2,<2.0dev", optional = true, markers = "extra == \"grpc\""}
-protobuf = ">=3.19.5,<3.20.0 || >3.20.0,<3.20.1 || >3.20.1,<4.0.0dev"
-requests = ">=2.18.0,<3.0.0dev"
-
-[package.extras]
-grpc = ["grpcio (>=1.33.2,<2.0dev)", "grpcio-status (>=1.33.2,<2.0dev)"]
-grpcgcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"]
-grpcio-gcp = ["grpcio-gcp (>=0.2.2,<1.0dev)"]
-
[[package]]
name = "google-auth"
version = "2.38.0"
@@ -2528,23 +2395,6 @@ files = [
[package.dependencies]
six = "*"
-[[package]]
-name = "googleapis-common-protos"
-version = "1.68.0"
-description = "Common protobufs used in Google APIs"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "googleapis_common_protos-1.68.0-py2.py3-none-any.whl", hash = "sha256:aaf179b2f81df26dfadac95def3b16a95064c76a5f45f07e4c68a21bb371c4ac"},
- {file = "googleapis_common_protos-1.68.0.tar.gz", hash = "sha256:95d38161f4f9af0d9423eed8fb7b64ffd2568c3464eb542ff02c5bfa1953ab3c"},
-]
-
-[package.dependencies]
-protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0"
-
-[package.extras]
-grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"]
-
[[package]]
name = "greenlet"
version = "3.1.1"
@@ -2698,22 +2548,6 @@ files = [
[package.extras]
protobuf = ["grpcio-tools (>=1.70.0)"]
-[[package]]
-name = "grpcio-status"
-version = "1.48.2"
-description = "Status proto mapping for gRPC"
-optional = false
-python-versions = ">=3.6"
-files = [
- {file = "grpcio-status-1.48.2.tar.gz", hash = "sha256:53695f45da07437b7c344ee4ef60d370fd2850179f5a28bb26d8e2aa1102ec11"},
- {file = "grpcio_status-1.48.2-py3-none-any.whl", hash = "sha256:2c33bbdbe20188b2953f46f31af669263b6ee2a9b2d38fa0d36ee091532e21bf"},
-]
-
-[package.dependencies]
-googleapis-common-protos = ">=1.5.5"
-grpcio = ">=1.48.2"
-protobuf = ">=3.12.0"
-
[[package]]
name = "h11"
version = "0.14.0"
@@ -3394,21 +3228,6 @@ files = [
{file = "kiwisolver-1.4.8.tar.gz", hash = "sha256:23d5f023bdc8c7e54eb65f03ca5d5bb25b601eac4d7f1a042888a1f45237987e"},
]
-[[package]]
-name = "lark"
-version = "0.11.3"
-description = "a modern parsing library"
-optional = false
-python-versions = "*"
-files = [
- {file = "lark-0.11.3.tar.gz", hash = "sha256:3100d9749b5a85735ec428b83100876a5da664804579e729c23a36341f961e7e"},
-]
-
-[package.extras]
-atomic-cache = ["atomicwrites"]
-nearley = ["js2py"]
-regex = ["regex"]
-
[[package]]
name = "libclang"
version = "18.1.1"
@@ -3861,23 +3680,29 @@ scipy = ">=1.7.3"
[[package]]
name = "mitiq"
-version = "0.32.0"
+version = "0.43.0"
description = "Mitiq is an open source toolkit for implementing error mitigation techniques on most current intermediate-scale quantum computers."
optional = false
-python-versions = ">=3.9,<3.12"
+python-versions = "<3.13,>=3.10"
files = [
- {file = "mitiq-0.32.0-py3-none-any.whl", hash = "sha256:8f61880383931aae93bc108591543a967185a54dbc89ed1faf5dd30a7b8f59ca"},
- {file = "mitiq-0.32.0.tar.gz", hash = "sha256:b44a9257055d4ef5d17ccfb211f1a4fcb3722139b5e48d795e13501470d1d7ef"},
+ {file = "mitiq-0.43.0-py3-none-any.whl", hash = "sha256:3af95694a173bd1a1e3558769dc4d2aa7552b0e12967c1f83f2a6b3d90191442"},
+ {file = "mitiq-0.43.0.tar.gz", hash = "sha256:e2db3a68dafcbd06c616d8a1ed9f9a7e70e2a1b0b99cd826e124790fdd6bf575"},
]
[package.dependencies]
-cirq = ">=1.0.0,<1.4.0"
+cirq-core = ">=1.4.0,<1.5.0"
numpy = ">=1.22.0"
-scipy = ">=1.5.0,<=1.11.4"
+scipy = ">=1.10.1,<=1.14.1"
tabulate = "*"
[package.extras]
-development = ["Sphinx (==5.2.3)", "amazon-braket-sdk (>=1.64.1,<1.65.0)", "black (==22.10)", "bqskit[ext] (==1.0.4)", "flake8 (==6.0.0)", "isort (==5.13.2)", "jupytext (==1.14.1)", "matplotlib (==3.8.1)", "mypy (==1.0.0)", "myst-nb (==1.0.0)", "nbsphinx (==0.9.1)", "openfermion (==1.6.0)", "openfermionpyscf (==0.5)", "pandas (==2.1.3)", "pennylane (>=0.33.1,<0.34.0)", "pennylane-qiskit (>=0.33.1,<0.34.0)", "pydata-sphinx-theme (==0.11.0)", "pyquil (>=3.5.4,<3.6.0)", "pyscf (==2.4.0)", "pytest (==7.1.3)", "pytest-cov (==4.0.0)", "pytest-xdist[psutil] (==3.0.2)", "qiskit (>=0.45.1,<0.46.0)", "qiskit-aer (>=0.13.1,<0.14.0)", "qiskit-ibm-provider (>=0.7.3,<0.8.0)", "seaborn (==0.13.0)", "sphinx-autodoc-typehints (==1.19.4)", "sphinx-copybutton (==0.5.0)", "sphinx-gallery (==0.10.1)", "sphinxcontrib-bibtex (==2.5.0)", "stim (==1.12.1)", "stimcirq (==1.12.1)", "types-tabulate"]
+braket = ["amazon-braket-sdk (>=1.69.0,<1.70.0)", "cirq-ionq (>=1.4.0,<1.5.0)"]
+cirq = ["cirq-core (>=1.4.0,<1.5.0)"]
+development = ["Sphinx (==8.0.2)", "amazon-braket-sdk (>=1.69.0,<1.70.0)", "bqskit (==1.1.1)", "cirq-core (>=1.4.0,<1.5.0)", "cirq-ionq (>=1.4.0,<1.5.0)", "cirq-rigetti (>=1.4.0,<1.5.0)", "jupytext (==1.16.1)", "matplotlib (==3.8.1)", "mypy (==1.0.0)", "myst-nb (==1.1.1)", "myst-parser (==4.0.0)", "nbsphinx (==0.9.3)", "openfermion (==1.6.1)", "openfermionpyscf (==0.5)", "pandas (==2.1.3)", "pennylane (>=0.36.0,<0.37.0)", "pennylane-qiskit (>=0.36.0,<0.37.0)", "ply (==3.11)", "pydata-sphinx-theme (==0.15.4)", "pyqrack (==1.32.27)", "pyquil (>=3.5.4,<3.6.0)", "pyscf (==2.8.0)", "pytest (==8.0.0)", "pytest-cov (==6.0.0)", "pytest-xdist[psutil] (==3.0.2)", "qibo (>=0.2.15,<0.3.0)", "qiskit (>=1.3.1,<1.4.0)", "qiskit-aer (>=0.15.1,<0.16.0)", "qiskit-ibm-runtime (>=0.20.0,<0.21.0)", "ruff (==0.3.1)", "seaborn (==0.13.0)", "sphinx-autodoc-typehints (==2.0.0)", "sphinx-copybutton (==0.5.2)", "sphinx-design (==0.6.1)", "sphinx-gallery (==0.15.0)", "sphinx-tags (==0.4)", "sphinxcontrib-bibtex (==2.6.2)", "stim (==1.14.0)", "stimcirq (==1.14.0)", "types-tabulate"]
+pennylane = ["pennylane (>=0.36.0,<0.37.0)", "pennylane-qiskit (>=0.36.0,<0.37.0)"]
+pyquil = ["cirq-rigetti (>=1.4.0,<1.5.0)", "pyquil (>=3.5.4,<3.6.0)"]
+qibo = ["qibo (>=0.2.15,<0.3.0)"]
+qiskit = ["ply (==3.11)", "qiskit (>=1.3.1,<1.4.0)", "qiskit-aer (>=0.15.1,<0.16.0)", "qiskit-ibm-runtime (>=0.20.0,<0.21.0)"]
[[package]]
name = "ml-dtypes"
@@ -5498,23 +5323,6 @@ files = [
{file = "propcache-0.3.0.tar.gz", hash = "sha256:a8fd93de4e1d278046345f49e2238cdb298589325849b2645d4a94c53faeffc5"},
]
-[[package]]
-name = "proto-plus"
-version = "1.26.0"
-description = "Beautiful, Pythonic protocol buffers"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "proto_plus-1.26.0-py3-none-any.whl", hash = "sha256:bf2dfaa3da281fc3187d12d224c707cb57214fb2c22ba854eb0c105a3fb2d4d7"},
- {file = "proto_plus-1.26.0.tar.gz", hash = "sha256:6e93d5f5ca267b54300880fff156b6a3386b3fa3f43b1da62e680fc0c586ef22"},
-]
-
-[package.dependencies]
-protobuf = ">=3.19.0,<6.0.0dev"
-
-[package.extras]
-testing = ["google-api-core (>=1.31.5)"]
-
[[package]]
name = "protobuf"
version = "3.20.3"
@@ -5878,36 +5686,6 @@ files = [
[package.extras]
dev = ["pytest (>=7.3.1)"]
-[[package]]
-name = "pyquil"
-version = "4.10.1"
-description = "A Python library for creating Quantum Instruction Language (Quil) programs."
-optional = false
-python-versions = "<=3.12,>=3.8"
-files = [
- {file = "pyquil-4.10.1-py3-none-any.whl", hash = "sha256:b73288fb1e8252dc959c7282877d4bd890f4bf21df414ffbe9b721c8b348b1a6"},
- {file = "pyquil-4.10.1.tar.gz", hash = "sha256:f015d848dfb501ca24748c89f53a441a6afc410e9170b1e8225e940af1ff1237"},
-]
-
-[package.dependencies]
-deprecated = ">=1.2.13,<2.0.0"
-lark = ">=0.11.1,<0.12.0"
-matplotlib-inline = ">=0.1.6,<0.2.0"
-networkx = ">=2.5"
-numpy = ">=1.22,<2.0"
-packaging = ">=23.1,<24.0"
-qcs-sdk-python = "0.17.9"
-rpcq = ">=3.10.0,<4.0.0"
-scipy = ">=1.7.3,<2.0.0"
-tenacity = ">=8.2.2,<9.0.0"
-types-deprecated = ">=1.2.9.2,<2.0.0.0"
-types-python-dateutil = ">=2.8.19,<3.0.0"
-types-retry = ">=0.9.9,<0.10.0"
-
-[package.extras]
-docs = ["Sphinx (>=7.1.2,<8.0.0)", "matplotlib (>=3.7.1,<4.0.0)", "nbsphinx (>=0.9.1,<0.10.0)", "pandoc (==2.4b0)", "recommonmark (>=0.7.1,<0.8.0)", "seaborn (>=0.12.2,<0.13.0)", "sphinx-rtd-theme (>=1.3.0,<2.0.0)"]
-latex = ["ipython (>=7.21.0,<8.0.0)"]
-
[[package]]
name = "pyrsistent"
version = "0.20.0"
@@ -6088,88 +5866,6 @@ asyncio-client = ["aiohttp (>=3.4)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
docs = ["sphinx"]
-[[package]]
-name = "python-rapidjson"
-version = "1.20"
-description = "Python wrapper around rapidjson"
-optional = false
-python-versions = ">=3.6"
-files = [
- {file = "python_rapidjson-1.20-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeaa8487fdd8db409bd2e0c41c59cee3b9f1d08401fc75520f7d35c7a22d8789"},
- {file = "python_rapidjson-1.20-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:425c2bb8e778a04497953482c251944b2736f61012d897f17b73da3eca060c27"},
- {file = "python_rapidjson-1.20-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f7cbbff9696ea01dd8a29502cb314471c9a5d4239f2f3b7e35b6adbde2cc620"},
- {file = "python_rapidjson-1.20-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:83a48f96d0abb8349a4d42f029259b755d8c6fd347f5de2d640e164c3f45e63b"},
- {file = "python_rapidjson-1.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6cb3ad353ec083a6dcf0552f1fce3c490f92e2fccf9a81eac42835297a8431a1"},
- {file = "python_rapidjson-1.20-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f7b6574887d8828f34eb3384092d6e6c290e8fbb12703c409dbdde814612657"},
- {file = "python_rapidjson-1.20-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:403e4986484f01f79fdce00b48c12a1b39d16e822cd37c60843ab26455ab0680"},
- {file = "python_rapidjson-1.20-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e3f89a58d7709d5879586e9dbfd11be76a799e8fbdbb5eddaffaeba9b572fba3"},
- {file = "python_rapidjson-1.20-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:b0d07d4f0ebbb2228d5140463f11ac519147b9d791f7e40b3edf518a806be3cc"},
- {file = "python_rapidjson-1.20-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a5fb413414b92763a54d53b732df3c9de1b114012c8881a3d1215a19b9fca494"},
- {file = "python_rapidjson-1.20-cp310-cp310-win32.whl", hash = "sha256:9831430f17101a6a249e07db9c42d26c3263e6009450722cce0c14726421f434"},
- {file = "python_rapidjson-1.20-cp310-cp310-win_amd64.whl", hash = "sha256:fbff5caf127c5bed4d6620f95a039dd9e293784d844af50782aaf278a743acb4"},
- {file = "python_rapidjson-1.20-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:328095d6d558090c29d24d889482b10dcc3ade3b77c93a61ea86794623046628"},
- {file = "python_rapidjson-1.20-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fc7a095f77eb3bb6acff94acf868a100faaf06028c4b513428f161cd55030476"},
- {file = "python_rapidjson-1.20-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce4cee141c924300cbedba1e5bea05b13484598d1e550afc5b50209ba73c62f2"},
- {file = "python_rapidjson-1.20-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4355bcfc8629d15f6246011b40e84cc368d842518a91adb15c5eba211305ee5b"},
- {file = "python_rapidjson-1.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7dd9c5e661d17eafa44b2875f6ce55178cc87388575ce3cd3c606d5a33772b49"},
- {file = "python_rapidjson-1.20-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd978c7669cc844f669a48d2a6019fb9134a2385536f806fe265a1e374c3573a"},
- {file = "python_rapidjson-1.20-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fc52405435ce875aa000afa2637ea267eb0d4ab9622f9b97c92d92cb1a9c440"},
- {file = "python_rapidjson-1.20-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:bef1eca712fb9fd5d2edd724dd1dd8a608215d6afcaee4f351b3e99e3f73f720"},
- {file = "python_rapidjson-1.20-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6355cb690bf64629767206524d4d00da909970d46d8fc0b367f339975e4eb419"},
- {file = "python_rapidjson-1.20-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f974c4e11be833221062fc4c3129bed172082792b33ef9fc1b8104f49c514f1d"},
- {file = "python_rapidjson-1.20-cp311-cp311-win32.whl", hash = "sha256:06ee7bcf660ebbdf1953aa7bf74214b722d934928c7b9f2a23b12e0713b61fa4"},
- {file = "python_rapidjson-1.20-cp311-cp311-win_amd64.whl", hash = "sha256:9df543521fa4b69589c42772b2f32a6c334b3b5fc612cd6dc3705136d0788da3"},
- {file = "python_rapidjson-1.20-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6056fcc8caeb9b04775bf655568bba362c7670ab792c1b438671bb056db954cd"},
- {file = "python_rapidjson-1.20-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:225bd4cbabfe7910261cbcebb8b811d4ff98e90cdd17c233b916c6aa71a9553f"},
- {file = "python_rapidjson-1.20-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:026077b663acf93a3f2b1adb87282e611a30214b8ae8001b7e4863a3b978e646"},
- {file = "python_rapidjson-1.20-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:884e1dd4c0770ed424737941af4d5dc9014995f9c33595f151af13f83ce282c3"},
- {file = "python_rapidjson-1.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f55531c8197cb7a21a5ef0ffa46f2b8fc8c5fe7c6fd08bdbd2063ae65d2ff65"},
- {file = "python_rapidjson-1.20-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c60121d155562dc694c05ed7df4e39e42ee1d3adff2a060c64a004498e6451f7"},
- {file = "python_rapidjson-1.20-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3a6620eed0b04196f37fab7048c1d672d03391bb29d7f09ee8fee8dea33f11f4"},
- {file = "python_rapidjson-1.20-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ddb63eff401ce7cf20cdd5e21942fc23fbe0e1dc1d96d7ae838645fb1f74fb47"},
- {file = "python_rapidjson-1.20-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:05e28c3dbb4a0d74ec13af9668ef2b9f302edf83cf7ce1d8316a95364720eec0"},
- {file = "python_rapidjson-1.20-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b733978ecd84fc5df9a778ce821dc1f3113f7bfc2493cac0bb17efb4ae0bb8fa"},
- {file = "python_rapidjson-1.20-cp312-cp312-win32.whl", hash = "sha256:d87041448cec00e2db5d858625a76dc1b59eef6691a039acff6d92ad8581cfc1"},
- {file = "python_rapidjson-1.20-cp312-cp312-win_amd64.whl", hash = "sha256:5d3be149ce5475f9605f01240487541057792abad94d3fd0cd56af363cf5a4dc"},
- {file = "python_rapidjson-1.20-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:daee815b4c20ca6e4dbc6bde373dd3f65b53813d775f1c94b765b33b402513a7"},
- {file = "python_rapidjson-1.20-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:083df379c769b30f9bc40041c91fd9d8f7bb8ca2b3c7170258842aced2098e05"},
- {file = "python_rapidjson-1.20-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9399ad75a2e3377f9e6208caabe73eb9354cd01b732407475ccadcd42c577df"},
- {file = "python_rapidjson-1.20-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:599ab208ccf6172d6cfac1abe048c837e62612f91f97d198e32773c45346a0b4"},
- {file = "python_rapidjson-1.20-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf3c0e2a5b97b0d07311f15f0dce4434e43dec865c3794ad1b10d968460fd665"},
- {file = "python_rapidjson-1.20-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8064b8edb57ddd9e3ffa539cf2ec2f03515751fb0698b40ba5cb66a2123af19"},
- {file = "python_rapidjson-1.20-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bc79d7f00f7538e027960ca6bcd1e03ed99fcf660d4d882d1c22f641155d0db0"},
- {file = "python_rapidjson-1.20-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:87aa0b01b8c20984844f1440b8ff6bdb32de911a1750fed344b9daed33b4b52b"},
- {file = "python_rapidjson-1.20-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4099cb9eae8a0ce19c09e02729eb6d69d5180424f13a2641a6c407d053e47a82"},
- {file = "python_rapidjson-1.20-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c680cd2b4de760ff6875de71fe6a87bd610aa116593d62e4f81a563be86ae18"},
- {file = "python_rapidjson-1.20-cp313-cp313-win32.whl", hash = "sha256:9e431a7afc77aa874fed537c9f6bf5fcecaef124ebeae2a2379d3b9e9adce74b"},
- {file = "python_rapidjson-1.20-cp313-cp313-win_amd64.whl", hash = "sha256:7444bc7e6a04c03d6ed748b5dab0798fa2b3f2b303be8c38d3af405b2cac6d63"},
- {file = "python_rapidjson-1.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:69e702fe74fe8c44c6253bb91364a270dc49f704920c90e01040155bd600a5fd"},
- {file = "python_rapidjson-1.20-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b9496b1e9d6247e8802ac559b7eebb5f3cae426d1c1dbde4049c63dff0941370"},
- {file = "python_rapidjson-1.20-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1446e902b6c781f271bf8556da636c1375cbb208e25f92e1af4cc2d92cf0cf15"},
- {file = "python_rapidjson-1.20-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:368ecdf4031abbde9c94aac40981d9a1238e6bcfef9fbfee441047b4757d6033"},
- {file = "python_rapidjson-1.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:924f9ea302494d4a4d540d3509f8f1f15622ea7d614c6f29df3188d52c6cb546"},
- {file = "python_rapidjson-1.20-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:632acb2dfa29883723e24bb2ce47c726edd5f672341553a5184db68f78d3bd09"},
- {file = "python_rapidjson-1.20-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:c2f85da53286e67778d4061ef32ff44ca9b5f945030463716e046ee8985319f8"},
- {file = "python_rapidjson-1.20-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c05c8602c019cc0db19601fdc4927755a9d33f21d01beb3d5767313d7a81360d"},
- {file = "python_rapidjson-1.20-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7d36aab758bfb1b59e0a849cd20e971eda951a04d3586bb5f6cb460bfc7c103d"},
- {file = "python_rapidjson-1.20-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e5774c905034362298312116f9b58c181e91a09800e4e5cede7b3d460a6a9fde"},
- {file = "python_rapidjson-1.20-cp38-cp38-win32.whl", hash = "sha256:488d0c6155004b5177225eaf331bb1838616da05ae966dd24a7d442751c1d193"},
- {file = "python_rapidjson-1.20-cp38-cp38-win_amd64.whl", hash = "sha256:00183c4938cd491b98b1a43626bc5a381842ceba87644cb91b25555f3fc3c0bf"},
- {file = "python_rapidjson-1.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f510ffe32fec319699f0c1ea9cee5bde47c33202b034b85c5d1b9ace682aa96a"},
- {file = "python_rapidjson-1.20-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a2b624b3613fb7b8dfef4adc709bf39489be8c655cd9d24dc4e2cc16fc5def83"},
- {file = "python_rapidjson-1.20-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9f813a37d1f708a221f1f7d8c97c437d10597261810c1d3b52cf8f248d66c0"},
- {file = "python_rapidjson-1.20-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c3f7085c52259c56af72462df7620c3b8bb95575fd9b8c3a073728855e93269"},
- {file = "python_rapidjson-1.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:871f2eeb0907f3d7ab09efe04c5b5e2886c275ea568f7867c97468ae14cdd52f"},
- {file = "python_rapidjson-1.20-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b7c0408e7f52f32cf4bdd5aa305f005914b0143cac69d42575e2d40e8678cd72"},
- {file = "python_rapidjson-1.20-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ec17a18df700e1f956fc5a0c41cbb3cc746c44c0fef38988efba9b2cb607ecfa"},
- {file = "python_rapidjson-1.20-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1c0303bd445312a78485a9adba06dfdb84561c5157a9cda7999fefb36df4c6cc"},
- {file = "python_rapidjson-1.20-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:303b079ef268a996242be51ae80c8b563ee2d73489ab4f16199fef2216e80765"},
- {file = "python_rapidjson-1.20-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:5adcef7a27abafbb2b3d0b02c822dfd9b4b329769cb97810b7f9733e1fda0498"},
- {file = "python_rapidjson-1.20-cp39-cp39-win32.whl", hash = "sha256:3e963e78fff6ab5ab2ae847b65683774c48b9b192307380f2175540d6423fd73"},
- {file = "python_rapidjson-1.20-cp39-cp39-win_amd64.whl", hash = "sha256:1fc3bba6632ecffeb1897fdf98858dc50a677237f4241853444c70a041158a90"},
- {file = "python_rapidjson-1.20.tar.gz", hash = "sha256:115f08c86d2df7543c02605e77c84727cdabc4b08310d2f097e953efeaaa73eb"},
-]
-
[[package]]
name = "python-socketio"
version = "5.12.1"
@@ -6274,127 +5970,6 @@ files = [
{file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
]
-[[package]]
-name = "pyzmq"
-version = "26.2.1"
-description = "Python bindings for 0MQ"
-optional = false
-python-versions = ">=3.7"
-files = [
- {file = "pyzmq-26.2.1-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:f39d1227e8256d19899d953e6e19ed2ccb689102e6d85e024da5acf410f301eb"},
- {file = "pyzmq-26.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a23948554c692df95daed595fdd3b76b420a4939d7a8a28d6d7dea9711878641"},
- {file = "pyzmq-26.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95f5728b367a042df146cec4340d75359ec6237beebf4a8f5cf74657c65b9257"},
- {file = "pyzmq-26.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:95f7b01b3f275504011cf4cf21c6b885c8d627ce0867a7e83af1382ebab7b3ff"},
- {file = "pyzmq-26.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80a00370a2ef2159c310e662c7c0f2d030f437f35f478bb8b2f70abd07e26b24"},
- {file = "pyzmq-26.2.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:8531ed35dfd1dd2af95f5d02afd6545e8650eedbf8c3d244a554cf47d8924459"},
- {file = "pyzmq-26.2.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cdb69710e462a38e6039cf17259d328f86383a06c20482cc154327968712273c"},
- {file = "pyzmq-26.2.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e7eeaef81530d0b74ad0d29eec9997f1c9230c2f27242b8d17e0ee67662c8f6e"},
- {file = "pyzmq-26.2.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:361edfa350e3be1f987e592e834594422338d7174364763b7d3de5b0995b16f3"},
- {file = "pyzmq-26.2.1-cp310-cp310-win32.whl", hash = "sha256:637536c07d2fb6a354988b2dd1d00d02eb5dd443f4bbee021ba30881af1c28aa"},
- {file = "pyzmq-26.2.1-cp310-cp310-win_amd64.whl", hash = "sha256:45fad32448fd214fbe60030aa92f97e64a7140b624290834cc9b27b3a11f9473"},
- {file = "pyzmq-26.2.1-cp310-cp310-win_arm64.whl", hash = "sha256:d9da0289d8201c8a29fd158aaa0dfe2f2e14a181fd45e2dc1fbf969a62c1d594"},
- {file = "pyzmq-26.2.1-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:c059883840e634a21c5b31d9b9a0e2b48f991b94d60a811092bc37992715146a"},
- {file = "pyzmq-26.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ed038a921df836d2f538e509a59cb638df3e70ca0fcd70d0bf389dfcdf784d2a"},
- {file = "pyzmq-26.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9027a7fcf690f1a3635dc9e55e38a0d6602dbbc0548935d08d46d2e7ec91f454"},
- {file = "pyzmq-26.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d75fcb00a1537f8b0c0bb05322bc7e35966148ffc3e0362f0369e44a4a1de99"},
- {file = "pyzmq-26.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0019cc804ac667fb8c8eaecdb66e6d4a68acf2e155d5c7d6381a5645bd93ae4"},
- {file = "pyzmq-26.2.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:f19dae58b616ac56b96f2e2290f2d18730a898a171f447f491cc059b073ca1fa"},
- {file = "pyzmq-26.2.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f5eeeb82feec1fc5cbafa5ee9022e87ffdb3a8c48afa035b356fcd20fc7f533f"},
- {file = "pyzmq-26.2.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:000760e374d6f9d1a3478a42ed0c98604de68c9e94507e5452951e598ebecfba"},
- {file = "pyzmq-26.2.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:817fcd3344d2a0b28622722b98500ae9c8bfee0f825b8450932ff19c0b15bebd"},
- {file = "pyzmq-26.2.1-cp311-cp311-win32.whl", hash = "sha256:88812b3b257f80444a986b3596e5ea5c4d4ed4276d2b85c153a6fbc5ca457ae7"},
- {file = "pyzmq-26.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:ef29630fde6022471d287c15c0a2484aba188adbfb978702624ba7a54ddfa6c1"},
- {file = "pyzmq-26.2.1-cp311-cp311-win_arm64.whl", hash = "sha256:f32718ee37c07932cc336096dc7403525301fd626349b6eff8470fe0f996d8d7"},
- {file = "pyzmq-26.2.1-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:a6549ecb0041dafa55b5932dcbb6c68293e0bd5980b5b99f5ebb05f9a3b8a8f3"},
- {file = "pyzmq-26.2.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0250c94561f388db51fd0213cdccbd0b9ef50fd3c57ce1ac937bf3034d92d72e"},
- {file = "pyzmq-26.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:36ee4297d9e4b34b5dc1dd7ab5d5ea2cbba8511517ef44104d2915a917a56dc8"},
- {file = "pyzmq-26.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c2a9cb17fd83b7a3a3009901aca828feaf20aa2451a8a487b035455a86549c09"},
- {file = "pyzmq-26.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:786dd8a81b969c2081b31b17b326d3a499ddd1856e06d6d79ad41011a25148da"},
- {file = "pyzmq-26.2.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:2d88ba221a07fc2c5581565f1d0fe8038c15711ae79b80d9462e080a1ac30435"},
- {file = "pyzmq-26.2.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c84c1297ff9f1cd2440da4d57237cb74be21fdfe7d01a10810acba04e79371a"},
- {file = "pyzmq-26.2.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:46d4ebafc27081a7f73a0f151d0c38d4291656aa134344ec1f3d0199ebfbb6d4"},
- {file = "pyzmq-26.2.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:91e2bfb8e9a29f709d51b208dd5f441dc98eb412c8fe75c24ea464734ccdb48e"},
- {file = "pyzmq-26.2.1-cp312-cp312-win32.whl", hash = "sha256:4a98898fdce380c51cc3e38ebc9aa33ae1e078193f4dc641c047f88b8c690c9a"},
- {file = "pyzmq-26.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:a0741edbd0adfe5f30bba6c5223b78c131b5aa4a00a223d631e5ef36e26e6d13"},
- {file = "pyzmq-26.2.1-cp312-cp312-win_arm64.whl", hash = "sha256:e5e33b1491555843ba98d5209439500556ef55b6ab635f3a01148545498355e5"},
- {file = "pyzmq-26.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:099b56ef464bc355b14381f13355542e452619abb4c1e57a534b15a106bf8e23"},
- {file = "pyzmq-26.2.1-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:651726f37fcbce9f8dd2a6dab0f024807929780621890a4dc0c75432636871be"},
- {file = "pyzmq-26.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57dd4d91b38fa4348e237a9388b4423b24ce9c1695bbd4ba5a3eada491e09399"},
- {file = "pyzmq-26.2.1-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d51a7bfe01a48e1064131f3416a5439872c533d756396be2b39e3977b41430f9"},
- {file = "pyzmq-26.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7154d228502e18f30f150b7ce94f0789d6b689f75261b623f0fdc1eec642aab"},
- {file = "pyzmq-26.2.1-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:f1f31661a80cc46aba381bed475a9135b213ba23ca7ff6797251af31510920ce"},
- {file = "pyzmq-26.2.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:290c96f479504439b6129a94cefd67a174b68ace8a8e3f551b2239a64cfa131a"},
- {file = "pyzmq-26.2.1-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:f2c307fbe86e18ab3c885b7e01de942145f539165c3360e2af0f094dd440acd9"},
- {file = "pyzmq-26.2.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:b314268e716487bfb86fcd6f84ebbe3e5bec5fac75fdf42bc7d90fdb33f618ad"},
- {file = "pyzmq-26.2.1-cp313-cp313-win32.whl", hash = "sha256:edb550616f567cd5603b53bb52a5f842c0171b78852e6fc7e392b02c2a1504bb"},
- {file = "pyzmq-26.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:100a826a029c8ef3d77a1d4c97cbd6e867057b5806a7276f2bac1179f893d3bf"},
- {file = "pyzmq-26.2.1-cp313-cp313-win_arm64.whl", hash = "sha256:6991ee6c43e0480deb1b45d0c7c2bac124a6540cba7db4c36345e8e092da47ce"},
- {file = "pyzmq-26.2.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:25e720dba5b3a3bb2ad0ad5d33440babd1b03438a7a5220511d0c8fa677e102e"},
- {file = "pyzmq-26.2.1-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:9ec6abfb701437142ce9544bd6a236addaf803a32628d2260eb3dbd9a60e2891"},
- {file = "pyzmq-26.2.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e1eb9d2bfdf5b4e21165b553a81b2c3bd5be06eeddcc4e08e9692156d21f1f6"},
- {file = "pyzmq-26.2.1-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:90dc731d8e3e91bcd456aa7407d2eba7ac6f7860e89f3766baabb521f2c1de4a"},
- {file = "pyzmq-26.2.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b6a93d684278ad865fc0b9e89fe33f6ea72d36da0e842143891278ff7fd89c3"},
- {file = "pyzmq-26.2.1-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:c1bb37849e2294d519117dd99b613c5177934e5c04a5bb05dd573fa42026567e"},
- {file = "pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:632a09c6d8af17b678d84df442e9c3ad8e4949c109e48a72f805b22506c4afa7"},
- {file = "pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:fc409c18884eaf9ddde516d53af4f2db64a8bc7d81b1a0c274b8aa4e929958e8"},
- {file = "pyzmq-26.2.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:17f88622b848805d3f6427ce1ad5a2aa3cf61f12a97e684dab2979802024d460"},
- {file = "pyzmq-26.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3ef584f13820d2629326fe20cc04069c21c5557d84c26e277cfa6235e523b10f"},
- {file = "pyzmq-26.2.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:160194d1034902937359c26ccfa4e276abffc94937e73add99d9471e9f555dd6"},
- {file = "pyzmq-26.2.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:574b285150afdbf0a0424dddf7ef9a0d183988eb8d22feacb7160f7515e032cb"},
- {file = "pyzmq-26.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44dba28c34ce527cf687156c81f82bf1e51f047838d5964f6840fd87dfecf9fe"},
- {file = "pyzmq-26.2.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:9fbdb90b85c7624c304f72ec7854659a3bd901e1c0ffb2363163779181edeb68"},
- {file = "pyzmq-26.2.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a7ad34a2921e8f76716dc7205c9bf46a53817e22b9eec2e8a3e08ee4f4a72468"},
- {file = "pyzmq-26.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:866c12b7c90dd3a86983df7855c6f12f9407c8684db6aa3890fc8027462bda82"},
- {file = "pyzmq-26.2.1-cp37-cp37m-win32.whl", hash = "sha256:eeb37f65350d5c5870517f02f8bbb2ac0fbec7b416c0f4875219fef305a89a45"},
- {file = "pyzmq-26.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4eb3197f694dfb0ee6af29ef14a35f30ae94ff67c02076eef8125e2d98963cd0"},
- {file = "pyzmq-26.2.1-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:36d4e7307db7c847fe37413f333027d31c11d5e6b3bacbb5022661ac635942ba"},
- {file = "pyzmq-26.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1c6ae0e95d0a4b0cfe30f648a18e764352d5415279bdf34424decb33e79935b8"},
- {file = "pyzmq-26.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5b4fc44f5360784cc02392f14235049665caaf7c0fe0b04d313e763d3338e463"},
- {file = "pyzmq-26.2.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:51431f6b2750eb9b9d2b2952d3cc9b15d0215e1b8f37b7a3239744d9b487325d"},
- {file = "pyzmq-26.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdbc78ae2065042de48a65f1421b8af6b76a0386bb487b41955818c3c1ce7bed"},
- {file = "pyzmq-26.2.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:d14f50d61a89b0925e4d97a0beba6053eb98c426c5815d949a43544f05a0c7ec"},
- {file = "pyzmq-26.2.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:004837cb958988c75d8042f5dac19a881f3d9b3b75b2f574055e22573745f841"},
- {file = "pyzmq-26.2.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0b2007f28ce1b8acebdf4812c1aab997a22e57d6a73b5f318b708ef9bcabbe95"},
- {file = "pyzmq-26.2.1-cp38-cp38-win32.whl", hash = "sha256:269c14904da971cb5f013100d1aaedb27c0a246728c341d5d61ddd03f463f2f3"},
- {file = "pyzmq-26.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:31fff709fef3b991cfe7189d2cfe0c413a1d0e82800a182cfa0c2e3668cd450f"},
- {file = "pyzmq-26.2.1-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:a4bffcadfd40660f26d1b3315a6029fd4f8f5bf31a74160b151f5c577b2dc81b"},
- {file = "pyzmq-26.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e76ad4729c2f1cf74b6eb1bdd05f6aba6175999340bd51e6caee49a435a13bf5"},
- {file = "pyzmq-26.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8b0f5bab40a16e708e78a0c6ee2425d27e1a5d8135c7a203b4e977cee37eb4aa"},
- {file = "pyzmq-26.2.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e8e47050412f0ad3a9b2287779758073cbf10e460d9f345002d4779e43bb0136"},
- {file = "pyzmq-26.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f18ce33f422d119b13c1363ed4cce245b342b2c5cbbb76753eabf6aa6f69c7d"},
- {file = "pyzmq-26.2.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ceb0d78b7ef106708a7e2c2914afe68efffc0051dc6a731b0dbacd8b4aee6d68"},
- {file = "pyzmq-26.2.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7ebdd96bd637fd426d60e86a29ec14b8c1ab64b8d972f6a020baf08a30d1cf46"},
- {file = "pyzmq-26.2.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:03719e424150c6395b9513f53a5faadcc1ce4b92abdf68987f55900462ac7eec"},
- {file = "pyzmq-26.2.1-cp39-cp39-win32.whl", hash = "sha256:ef5479fac31df4b304e96400fc67ff08231873ee3537544aa08c30f9d22fce38"},
- {file = "pyzmq-26.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:f92a002462154c176dac63a8f1f6582ab56eb394ef4914d65a9417f5d9fde218"},
- {file = "pyzmq-26.2.1-cp39-cp39-win_arm64.whl", hash = "sha256:1fd4b3efc6f62199886440d5e27dd3ccbcb98dfddf330e7396f1ff421bfbb3c2"},
- {file = "pyzmq-26.2.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:380816d298aed32b1a97b4973a4865ef3be402a2e760204509b52b6de79d755d"},
- {file = "pyzmq-26.2.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:97cbb368fd0debdbeb6ba5966aa28e9a1ae3396c7386d15569a6ca4be4572b99"},
- {file = "pyzmq-26.2.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abf7b5942c6b0dafcc2823ddd9154f419147e24f8df5b41ca8ea40a6db90615c"},
- {file = "pyzmq-26.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fe6e28a8856aea808715f7a4fc11f682b9d29cac5d6262dd8fe4f98edc12d53"},
- {file = "pyzmq-26.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bd8fdee945b877aa3bffc6a5a8816deb048dab0544f9df3731ecd0e54d8c84c9"},
- {file = "pyzmq-26.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ee7152f32c88e0e1b5b17beb9f0e2b14454235795ef68c0c120b6d3d23d12833"},
- {file = "pyzmq-26.2.1-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:baa1da72aecf6a490b51fba7a51f1ce298a1e0e86d0daef8265c8f8f9848eb77"},
- {file = "pyzmq-26.2.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:49135bb327fca159262d8fd14aa1f4a919fe071b04ed08db4c7c37d2f0647162"},
- {file = "pyzmq-26.2.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8bacc1a10c150d58e8a9ee2b2037a70f8d903107e0f0b6e079bf494f2d09c091"},
- {file = "pyzmq-26.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:09dac387ce62d69bec3f06d51610ca1d660e7849eb45f68e38e7f5cf1f49cbcb"},
- {file = "pyzmq-26.2.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:70b3a46ecd9296e725ccafc17d732bfc3cdab850b54bd913f843a0a54dfb2c04"},
- {file = "pyzmq-26.2.1-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:59660e15c797a3b7a571c39f8e0b62a1f385f98ae277dfe95ca7eaf05b5a0f12"},
- {file = "pyzmq-26.2.1-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0f50db737d688e96ad2a083ad2b453e22865e7e19c7f17d17df416e91ddf67eb"},
- {file = "pyzmq-26.2.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a003200b6cd64e89b5725ff7e284a93ab24fd54bbac8b4fa46b1ed57be693c27"},
- {file = "pyzmq-26.2.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f9ba5def063243793dec6603ad1392f735255cbc7202a3a484c14f99ec290705"},
- {file = "pyzmq-26.2.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1238c2448c58b9c8d6565579393148414a42488a5f916b3f322742e561f6ae0d"},
- {file = "pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8eddb3784aed95d07065bcf94d07e8c04024fdb6b2386f08c197dfe6b3528fda"},
- {file = "pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0f19c2097fffb1d5b07893d75c9ee693e9cbc809235cf3f2267f0ef6b015f24"},
- {file = "pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0995fd3530f2e89d6b69a2202e340bbada3191014352af978fa795cb7a446331"},
- {file = "pyzmq-26.2.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:7c6160fe513654e65665332740f63de29ce0d165e053c0c14a161fa60dd0da01"},
- {file = "pyzmq-26.2.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:8ec8e3aea6146b761d6c57fcf8f81fcb19f187afecc19bf1701a48db9617a217"},
- {file = "pyzmq-26.2.1.tar.gz", hash = "sha256:17d72a74e5e9ff3829deb72897a175333d3ef5b5413948cae3cf7ebf0b02ecca"},
-]
-
-[package.dependencies]
-cffi = {version = "*", markers = "implementation_name == \"pypy\""}
-
[[package]]
name = "pyzx"
version = "0.7.0"
@@ -6412,39 +5987,6 @@ pyperclip = ">=1.8.1"
tqdm = ">=4.56.0"
typing-extensions = ">=3.7.4"
-[[package]]
-name = "qcs-sdk-python"
-version = "0.17.9"
-description = "Python interface for the QCS Rust SDK"
-optional = false
-python-versions = "*"
-files = [
- {file = "qcs_sdk_python-0.17.9-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5797c1db68b4194f0729fe56e93a7d25dbcf752989fbf26d9d6709d020e8d367"},
- {file = "qcs_sdk_python-0.17.9-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:7b9ee8171ae1c396ba4de4897098cff95131f803dde11692201288dea17bacb5"},
- {file = "qcs_sdk_python-0.17.9-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b03cc65f1981f76460163946f65e2c5522754dfe95cba3bf2bde595474bcdac6"},
- {file = "qcs_sdk_python-0.17.9-cp310-none-win_amd64.whl", hash = "sha256:640ebc07b5422cf1d2cefea78f676c1bab6bb4d83bf379e0e88ecd6538136755"},
- {file = "qcs_sdk_python-0.17.9-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d94992e4dacb4d3684448222e7931ec55567d7ca3c09a9e13c19e9a7a00ddc80"},
- {file = "qcs_sdk_python-0.17.9-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:c26dbc0c61dcac5a7a54486f07579de87dbaa793a6946f1a9c6302d77ec129a2"},
- {file = "qcs_sdk_python-0.17.9-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:7b31a0b33b3d955edcfecd6a4e495342f0d06947dc6b96fb7787578ecd91db38"},
- {file = "qcs_sdk_python-0.17.9-cp311-none-win_amd64.whl", hash = "sha256:979d03e5f6bcbfb9265504bf513d7f165d3d6dc8324708c1f602440caa7992fb"},
- {file = "qcs_sdk_python-0.17.9-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:b477a51a6ee8e2680aa54f1fc68264fd9825100c303ce954ea29e466d9a546a3"},
- {file = "qcs_sdk_python-0.17.9-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:a19e6260d546419861548f3fdad8ebf5c9f1ab23cf4540b574b809ba3c02f253"},
- {file = "qcs_sdk_python-0.17.9-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:13c2fe8998d4018cc3e3fc4f87a2a4edc2845eadcab6aea220b8ff698627b96c"},
- {file = "qcs_sdk_python-0.17.9-cp312-none-win_amd64.whl", hash = "sha256:6139a0623436fa4612b6e3586fab1d6fd9b844f6aedc2de54447a5e14ed136d8"},
- {file = "qcs_sdk_python-0.17.9-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:24df93b80a581a8bce61dc680a4c64bf99d93f7e806aca82534f3c7d6b66a0ca"},
- {file = "qcs_sdk_python-0.17.9-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:223eaa736cdd9c6fef968c9acc6b811ecd7acb0b38e27a9ff5963bf2f0feba21"},
- {file = "qcs_sdk_python-0.17.9-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:3d02f3e2b49f8dda967e26cce093534cb5d22a0193f5f069d2f748190fc6b700"},
- {file = "qcs_sdk_python-0.17.9-cp38-none-win_amd64.whl", hash = "sha256:e88d7f9f4456514f27b29252e4d0d11d29719d28519e7d0fdc9028bafe67737f"},
- {file = "qcs_sdk_python-0.17.9-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7669291e25da0c8e303b02463805d7a2233fd4ea7192acee2b1585617b17dd09"},
- {file = "qcs_sdk_python-0.17.9-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:5712843c42cf9a5d7e66d379d50eae66674307368ec93c84b54fad074ba83ce9"},
- {file = "qcs_sdk_python-0.17.9-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:c5dae0c688c39dff49a0424a6397ff67e0f3ca9821eab498f50ec0df04c2b42d"},
- {file = "qcs_sdk_python-0.17.9-cp39-none-win_amd64.whl", hash = "sha256:90a89f935d3898a770a91c6f0361cb9ec901e87a3ca2d35d7b01a915a9482eac"},
- {file = "qcs_sdk_python-0.17.9.tar.gz", hash = "sha256:acb5ad02fc924bb9ce3e037b2c6df3f12562ea26f7ed9908e72cbcae0680b5c2"},
-]
-
-[package.dependencies]
-quil = "0.10.0"
-
[[package]]
name = "qdldl"
version = "0.1.7.post5"
@@ -6667,41 +6209,6 @@ waitress = "*"
[package.extras]
iqm = ["qiskit-iqm"]
-[[package]]
-name = "quil"
-version = "0.10.0"
-description = "A Python package for building and parsing Quil programs."
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "quil-0.10.0-cp310-cp310-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:3343ac253a6d8f65c0f171c381faab1b00cb18122d4adc1d559e757d5bae84ce"},
- {file = "quil-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9a21333d37990fd627b270b48d864a1497171f05b2e8264747270a9912eb06e"},
- {file = "quil-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4af1cc2708b1d2fd7c1f3b659f9acea19ef4e4c6d72f8b58bfc6cf11f648119a"},
- {file = "quil-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accb1ab83f0944f9d8746dbb4bc5841d77c4376f7fc804ff0d3c87a0c7751d3a"},
- {file = "quil-0.10.0-cp310-none-win_amd64.whl", hash = "sha256:d7f48cf588b8f95e4c02dd819d7d69cc5e131708ee0318be83eaa717d542de57"},
- {file = "quil-0.10.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:4ed084149d74cf2a68763d8f6accf2f7880c51bc10a8a7c193d8659b94fd777d"},
- {file = "quil-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a98dca165af4f84afff924e3f9429237b206c985d6cdbc6930b991bb5c11f321"},
- {file = "quil-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96765c2f51bec543cf4df3399fb071ac6899ac9225fbcae5d995c319710eab39"},
- {file = "quil-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d21621e73318b197f74cfa62790e3551a94baed79d154d3c67837891b3ed96ff"},
- {file = "quil-0.10.0-cp311-none-win_amd64.whl", hash = "sha256:a7be6e36b8bda247ed0e8ae5df162738e388e5a6d6e545dfc438a20c2b1ba70a"},
- {file = "quil-0.10.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:14b51f3ed4a0e106cb49aa6adb5d4cfcd08f92125ea9828b5b366d058a9cacc6"},
- {file = "quil-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e93034a7a040b711dc000d9612b5d951fdb59b5ffc72b078322ed691df11523d"},
- {file = "quil-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb0132f4ea198c975e9abb062c8cdb69622028a7ee623273f62f9d46ae250170"},
- {file = "quil-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f3ae6c74983a26cdc3ed587508bb6f0f3442ff3eb45da294ef3047cedaee72e"},
- {file = "quil-0.10.0-cp312-none-win_amd64.whl", hash = "sha256:dd7b6c1575dbe7fa7e6d192ab0c455cff87c4bf069ce0ac58eea6744c7edfe2e"},
- {file = "quil-0.10.0-cp38-cp38-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:8a54184e83c02e1303c5f6f34de37c69d7296feff575e93f28f8e2689f351ad7"},
- {file = "quil-0.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b744d9b3e39458e39424d9240bebf8dd3e9a61ea7b833a982aede4254a92419b"},
- {file = "quil-0.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9f84ee50c0a1382d9dd1d2112fcfe5a13b2f812ebd0177bef2d68aa86d9ed11c"},
- {file = "quil-0.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50602a8adf10d6df4fcec95244cf633982e18eba59f6fcca19ed3fc6b11141ea"},
- {file = "quil-0.10.0-cp38-none-win_amd64.whl", hash = "sha256:d056f08dc387c67382cb51c1edbffd9e1050fa301fe2eb9d5cc8470125e0430c"},
- {file = "quil-0.10.0-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:d574c96bf5af47aea1f3e9e855fa6652c74ade1cb9fc9f8bb5a74b577f2e5145"},
- {file = "quil-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f94bcde3f2e231f2d8409f23743cd9e20a9abf056632dbb24845c8d0d0fec832"},
- {file = "quil-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63534dd0a32d3e8840fb8551797db65e0cb49a33592fca60997b2b039050d063"},
- {file = "quil-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ec667b7dea20f8d3248766d9ae49102f54961c81d345fe9fdb0c39954dfc670"},
- {file = "quil-0.10.0-cp39-none-win_amd64.whl", hash = "sha256:bbeabf5dfb1bcfbbb04ebd4ff85517ecf1cffc64972b4b64d5c5355bf3e959fd"},
- {file = "quil-0.10.0.tar.gz", hash = "sha256:381d6551366dd0403ba5bc2c18d851dc53688da938aaec768e93a8f87e4b4cde"},
-]
-
[[package]]
name = "quimb"
version = "1.8.2"
@@ -6770,46 +6277,42 @@ test = ["openfermion"]
[[package]]
name = "qutip"
-version = "4.7.3"
+version = "5.1.0"
description = "QuTiP: The Quantum Toolbox in Python"
optional = false
-python-versions = "*"
+python-versions = ">=3.10"
files = [
- {file = "qutip-4.7.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ea947c32b5b31446997113271891fe2af91b9e7c58fca92482ce816de66fcbbc"},
- {file = "qutip-4.7.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3534b7b7d33c1536c0fe3bc000c4ef6ba33a9bca327234d520a982a06ad07b3"},
- {file = "qutip-4.7.3-cp310-cp310-win_amd64.whl", hash = "sha256:d1a46ea51ea7c62d69d1acb63cb8e907c44ac75934cf7fa93bd3b4a24462a88e"},
- {file = "qutip-4.7.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fecb3d851f938b714c3d45be8baf921129d7ddedbafc948a4bc08cf7b95c27dd"},
- {file = "qutip-4.7.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47cbbfed0acb5cc612b19ac9e2a8f3c596ab7511b91e36f69e97cdec27d8508e"},
- {file = "qutip-4.7.3-cp311-cp311-win_amd64.whl", hash = "sha256:04e751469a6dff44f9ed8d46ff09b1c7e2c5177e91a8083427d163c8271688a8"},
- {file = "qutip-4.7.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c078e11e02f0a1d77f8ddff7f245bebf8aa261e19616ef502dba97aef4e4fa9c"},
- {file = "qutip-4.7.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:bb9e71d7891fe9d288573d283cb709b533e9bf9fd8b95ffe616882b38fe6453f"},
- {file = "qutip-4.7.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f76b6d13a8d5816055a9d79de6df15930384d20f8ee1c6a088f6e3925aa6b79c"},
- {file = "qutip-4.7.3-cp36-cp36m-win32.whl", hash = "sha256:b92523889c0be7a593a652638c2aef2ecbad7436aeb6957ca783e7aa1e47dce3"},
- {file = "qutip-4.7.3-cp36-cp36m-win_amd64.whl", hash = "sha256:c5febc4ea0cb17af7370d89f8c1bf0735755d6f76b988058164be19ad35de5a7"},
- {file = "qutip-4.7.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:51fac208a1c04a44cf2e2ada1793288293a9d18755d78d3e1399031169f50227"},
- {file = "qutip-4.7.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:3fd6e4509b748cd3f586cfa41421975e1a290b2b8a4d765265176f798f1dc769"},
- {file = "qutip-4.7.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:15c7ae39ab39feb69bfd6bb0b9ea0258e7504383475b4b1f32c8ca8f70c0210f"},
- {file = "qutip-4.7.3-cp37-cp37m-win32.whl", hash = "sha256:8d3de71cf768fb20a987a8ca4cfef5bd94a90190ed50b5327bff32ca1869781e"},
- {file = "qutip-4.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:3fe273d17f86e25539c16e4f189d639f0ae72402240968b108baed3b990d0a60"},
- {file = "qutip-4.7.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:23c0c562c51642e3f90c28b09354906909cd21f82103f78566dc9afa5c860536"},
- {file = "qutip-4.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7696f4c053a2c575a13fec4dbeecb2fbfa26a4c528e7540ef4b0792a89e0c92"},
- {file = "qutip-4.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:1f4794d68e6b98cc65390cf2af5172cde80a4e870ae2249010c66665cc9a1a89"},
- {file = "qutip-4.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:074cd30890cc1b2d26b391aa778a93b1203e9b531902c2931a16387cdf7f0461"},
- {file = "qutip-4.7.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd539c6695d1d11f0118f5083591f600cb9adaeffca274f2d9b2812df629deeb"},
- {file = "qutip-4.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:d27cf80dc3a80f7db701f04f031dd807b07e66a57db78731ac162b9d2fe6a6d7"},
- {file = "qutip-4.7.3.tar.gz", hash = "sha256:abaf8281cacdb31b822456b4732d591939781ab94561f42bc081a64e3fda713d"},
-]
-
-[package.dependencies]
-numpy = ">=1.16.6"
+ {file = "qutip-5.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c571e2037b283c7e675748bea0bbac30c6b6203405072d0ee0f1c6db7e298e97"},
+ {file = "qutip-5.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8c836eb256e2e31f1fc28cfc2a44f853dcb5d1316d2ce5a3d0d2e5bd76ab737c"},
+ {file = "qutip-5.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:239c091fe079d099f244e7b6787998120e72285dc9fb8dc8324aad7ae4227a9c"},
+ {file = "qutip-5.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:02d347703c3cae9cbe7e69a1c3a00b151ae0117eda2e86c88993f6c7ca4e0bdd"},
+ {file = "qutip-5.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9cde237171e68b2ed84d5243d4ae04aa2476ac89a6da6597cfeaee868e37a865"},
+ {file = "qutip-5.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:06e0386a7fb4ab137ae58fe163e9c28a0809fec90179b0e44b80b587f9951fb8"},
+ {file = "qutip-5.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d3ce8c991cd5e78845b063326ca0aee122ee6515ee2c0a8861927ca3735c21c"},
+ {file = "qutip-5.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:9549682901c87e6c5fbf9aced4f1c75aa37f4a5b9c601d29a662419f43c25ae3"},
+ {file = "qutip-5.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8f3836c450b58fb3604ceda8a236d2a2ea5a8bb40e6b1303577bab521c14882c"},
+ {file = "qutip-5.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2291863632191e94d2cbcb2bca687d27d69538a3f907656bf0f466fb6b7d8d03"},
+ {file = "qutip-5.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02bd9ba74ac3196f1e40f28942ba1e4eae940aaccc885c834abeceb3be069b2b"},
+ {file = "qutip-5.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ec61234e51109865000f6325d2d496d0dbe795243da4828f9284fb0fc7629e00"},
+ {file = "qutip-5.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d6042c6f527bbe9522f397cb4887464f328fab1eb0d066fe7640082e98c026e8"},
+ {file = "qutip-5.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5e0b790d1631c440b2da5416f2ecc3e50a59534d2b86f1aab72a092313c28861"},
+ {file = "qutip-5.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab9a44aa4dc9ddf63d4459c7bbf2a8531bf2f35fc9bb26ec25d6112662d986f8"},
+ {file = "qutip-5.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:745d2547f2e7187dda50b757688119b7739083ff41383c452d999921edaaac4e"},
+ {file = "qutip-5.1.0.tar.gz", hash = "sha256:cc2660cae337d79fb344ab7a03810f40189821863d7be75ddc3aab9ed96960f5"},
+]
+
+[package.dependencies]
+numpy = ">=1.22"
packaging = "*"
-scipy = ">=1.0"
+scipy = ">=1.9"
[package.extras]
-full = ["cvxopt", "cvxpy (>=1.0)", "cython (>=0.29.20,<3.0.0)", "ipython", "matplotlib (>=1.2.1)", "pytest (>=5.2)", "pytest-rerunfailures"]
-graphics = ["matplotlib (>=1.2.1)"]
+extras = ["loky", "mpmath", "tqdm"]
+full = ["cvxopt", "cvxpy (>=1.0)", "cython (>=0.29.20)", "filelock", "ipython", "loky", "matplotlib (>=3.5)", "mpmath", "pytest (>=5.2)", "pytest-rerunfailures", "setuptools", "tqdm"]
+graphics = ["matplotlib (>=3.5)"]
ipython = ["ipython"]
-runtime-compilation = ["cython (>=0.29.20,<3.0.0)"]
+mpi = ["mpi4py"]
+runtime-compilation = ["cython (>=0.29.20)", "filelock", "setuptools"]
semidefinite = ["cvxopt", "cvxpy (>=1.0)"]
tests = ["pytest (>=5.2)", "pytest-rerunfailures"]
@@ -7060,22 +6563,6 @@ pygments = ">=2.13.0,<3.0.0"
[package.extras]
jupyter = ["ipywidgets (>=7.5.1,<9)"]
-[[package]]
-name = "rpcq"
-version = "3.11.0"
-description = "The RPC framework and message specification for Rigetti QCS."
-optional = false
-python-versions = ">=3.6"
-files = [
- {file = "rpcq-3.11.0.tar.gz", hash = "sha256:4361e759782f58dd0b8aa3a6d901e3ea5709f91c6a060bd444081fbb007b05a9"},
-]
-
-[package.dependencies]
-msgpack = ">=0.6,<2.0"
-python-rapidjson = "*"
-pyzmq = ">=17"
-"ruamel.yaml" = "*"
-
[[package]]
name = "rsa"
version = "4.9"
@@ -7121,6 +6608,7 @@ files = [
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76"},
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6"},
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd"},
+ {file = "ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a"},
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da"},
{file = "ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28"},
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6"},
@@ -7129,6 +6617,7 @@ files = [
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52"},
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642"},
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2"},
+ {file = "ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3"},
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4"},
{file = "ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb"},
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632"},
@@ -7137,6 +6626,7 @@ files = [
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd"},
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31"},
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680"},
+ {file = "ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d"},
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5"},
{file = "ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4"},
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a"},
@@ -7145,6 +6635,7 @@ files = [
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6"},
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf"},
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1"},
+ {file = "ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01"},
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6"},
{file = "ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3"},
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:fc4b630cd3fa2cf7fce38afa91d7cfe844a9f75d7f0f36393fa98815e911d987"},
@@ -7153,6 +6644,7 @@ files = [
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e2f1c3765db32be59d18ab3953f43ab62a761327aafc1594a2a1fbe038b8b8a7"},
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:d85252669dc32f98ebcd5d36768f5d4faeaeaa2d655ac0473be490ecdae3c285"},
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:e143ada795c341b56de9418c58d028989093ee611aa27ffb9b7f609c00d813ed"},
+ {file = "ruamel.yaml.clib-0.2.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2c59aa6170b990d8d2719323e628aaf36f3bfbc1c26279c0eeeb24d05d2d11c7"},
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win32.whl", hash = "sha256:beffaed67936fbbeffd10966a4eb53c402fafd3d6833770516bf7314bc6ffa12"},
{file = "ruamel.yaml.clib-0.2.12-cp39-cp39-win_amd64.whl", hash = "sha256:040ae85536960525ea62868b642bdb0c2cc6021c9f9d507810c0c604e66f5a7b"},
{file = "ruamel.yaml.clib-0.2.12.tar.gz", hash = "sha256:6c8fbb13ec503f99a91901ab46e0b07ae7941cd527393187039aec586fdfd36f"},
@@ -7257,45 +6749,53 @@ tests = ["black (>=23.3.0)", "matplotlib (>=3.1.3)", "mypy (>=1.3)", "numpydoc (
[[package]]
name = "scipy"
-version = "1.11.4"
+version = "1.14.1"
description = "Fundamental algorithms for scientific computing in Python"
optional = false
-python-versions = ">=3.9"
+python-versions = ">=3.10"
files = [
- {file = "scipy-1.11.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc9a714581f561af0848e6b69947fda0614915f072dfd14142ed1bfe1b806710"},
- {file = "scipy-1.11.4-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:cf00bd2b1b0211888d4dc75656c0412213a8b25e80d73898083f402b50f47e41"},
- {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9999c008ccf00e8fbcce1236f85ade5c569d13144f77a1946bef8863e8f6eb4"},
- {file = "scipy-1.11.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:933baf588daa8dc9a92c20a0be32f56d43faf3d1a60ab11b3f08c356430f6e56"},
- {file = "scipy-1.11.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8fce70f39076a5aa62e92e69a7f62349f9574d8405c0a5de6ed3ef72de07f446"},
- {file = "scipy-1.11.4-cp310-cp310-win_amd64.whl", hash = "sha256:6550466fbeec7453d7465e74d4f4b19f905642c89a7525571ee91dd7adabb5a3"},
- {file = "scipy-1.11.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f313b39a7e94f296025e3cffc2c567618174c0b1dde173960cf23808f9fae4be"},
- {file = "scipy-1.11.4-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:1b7c3dca977f30a739e0409fb001056484661cb2541a01aba0bb0029f7b68db8"},
- {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00150c5eae7b610c32589dda259eacc7c4f1665aedf25d921907f4d08a951b1c"},
- {file = "scipy-1.11.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:530f9ad26440e85766509dbf78edcfe13ffd0ab7fec2560ee5c36ff74d6269ff"},
- {file = "scipy-1.11.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5e347b14fe01003d3b78e196e84bd3f48ffe4c8a7b8a1afbcb8f5505cb710993"},
- {file = "scipy-1.11.4-cp311-cp311-win_amd64.whl", hash = "sha256:acf8ed278cc03f5aff035e69cb511741e0418681d25fbbb86ca65429c4f4d9cd"},
- {file = "scipy-1.11.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:028eccd22e654b3ea01ee63705681ee79933652b2d8f873e7949898dda6d11b6"},
- {file = "scipy-1.11.4-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:2c6ff6ef9cc27f9b3db93a6f8b38f97387e6e0591600369a297a50a8e96e835d"},
- {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b030c6674b9230d37c5c60ab456e2cf12f6784596d15ce8da9365e70896effc4"},
- {file = "scipy-1.11.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ad669df80528aeca5f557712102538f4f37e503f0c5b9541655016dd0932ca79"},
- {file = "scipy-1.11.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:ce7fff2e23ab2cc81ff452a9444c215c28e6305f396b2ba88343a567feec9660"},
- {file = "scipy-1.11.4-cp312-cp312-win_amd64.whl", hash = "sha256:36750b7733d960d7994888f0d148d31ea3017ac15eef664194b4ef68d36a4a97"},
- {file = "scipy-1.11.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e619aba2df228a9b34718efb023966da781e89dd3d21637b27f2e54db0410d7"},
- {file = "scipy-1.11.4-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:f3cd9e7b3c2c1ec26364856f9fbe78695fe631150f94cd1c22228456404cf1ec"},
- {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d10e45a6c50211fe256da61a11c34927c68f277e03138777bdebedd933712fea"},
- {file = "scipy-1.11.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91af76a68eeae0064887a48e25c4e616fa519fa0d38602eda7e0f97d65d57937"},
- {file = "scipy-1.11.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6df1468153a31cf55ed5ed39647279beb9cfb5d3f84369453b49e4b8502394fd"},
- {file = "scipy-1.11.4-cp39-cp39-win_amd64.whl", hash = "sha256:ee410e6de8f88fd5cf6eadd73c135020bfbbbdfcd0f6162c36a7638a1ea8cc65"},
- {file = "scipy-1.11.4.tar.gz", hash = "sha256:90a2b78e7f5733b9de748f589f09225013685f9b218275257f8a8168ededaeaa"},
-]
-
-[package.dependencies]
-numpy = ">=1.21.6,<1.28.0"
-
-[package.extras]
-dev = ["click", "cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"]
-doc = ["jupytext", "matplotlib (>2)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (==0.9.0)", "sphinx (!=4.1.0)", "sphinx-design (>=0.2.0)"]
-test = ["asv", "gmpy2", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
+ {file = "scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389"},
+ {file = "scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3"},
+ {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0"},
+ {file = "scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3"},
+ {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d"},
+ {file = "scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69"},
+ {file = "scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad"},
+ {file = "scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617"},
+ {file = "scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8"},
+ {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37"},
+ {file = "scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2"},
+ {file = "scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2"},
+ {file = "scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5"},
+ {file = "scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc"},
+ {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310"},
+ {file = "scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066"},
+ {file = "scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1"},
+ {file = "scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73"},
+ {file = "scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e"},
+ {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d"},
+ {file = "scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e"},
+ {file = "scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06"},
+ {file = "scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84"},
+ {file = "scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417"},
+]
+
+[package.dependencies]
+numpy = ">=1.23.5,<2.3"
+
+[package.extras]
+dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"]
+doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.13.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<=7.3.7)", "sphinx-design (>=0.4.0)"]
+test = ["Cython", "array-api-strict (>=2.0)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"]
[[package]]
name = "scipy-openblas32"
@@ -8130,21 +7630,6 @@ files = [
[package.dependencies]
tqdm = "*"
-[[package]]
-name = "tenacity"
-version = "8.5.0"
-description = "Retry code until it succeeds"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"},
- {file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"},
-]
-
-[package.extras]
-doc = ["reno", "sphinx"]
-test = ["pytest", "tornado (>=4.5)", "typeguard"]
-
[[package]]
name = "tensorboard"
version = "2.14.1"
@@ -8744,17 +8229,6 @@ rich = ">=10.11.0"
shellingham = ">=1.3.0"
typing-extensions = ">=3.7.4.3"
-[[package]]
-name = "types-deprecated"
-version = "1.2.15.20241117"
-description = "Typing stubs for Deprecated"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "types-Deprecated-1.2.15.20241117.tar.gz", hash = "sha256:924002c8b7fddec51ba4949788a702411a2e3636cd9b2a33abd8ee119701d77e"},
- {file = "types_Deprecated-1.2.15.20241117-py3-none-any.whl", hash = "sha256:a0cc5e39f769fc54089fd8e005416b55d74aa03f6964d2ed1a0b0b2e28751884"},
-]
-
[[package]]
name = "types-python-dateutil"
version = "2.9.0.20241206"
@@ -8766,17 +8240,6 @@ files = [
{file = "types_python_dateutil-2.9.0.20241206.tar.gz", hash = "sha256:18f493414c26ffba692a72369fea7a154c502646301ebfe3d56a04b3767284cb"},
]
-[[package]]
-name = "types-retry"
-version = "0.9.9.20241221"
-description = "Typing stubs for retry"
-optional = false
-python-versions = ">=3.8"
-files = [
- {file = "types_retry-0.9.9.20241221-py3-none-any.whl", hash = "sha256:d1ef1a60573470525e65267192dd712b93f0f0acf3019c4c1afe173cde3289cb"},
- {file = "types_retry-0.9.9.20241221.tar.gz", hash = "sha256:ebad6d495a5a04ab0d06d4156a665528c3b84a8461aa019dd6e5d3e33c2aa1e0"},
-]
-
[[package]]
name = "types-setuptools"
version = "75.8.0.20250225"
@@ -9612,4 +9075,4 @@ files = [
[metadata]
lock-version = "2.0"
python-versions = "~3.10.0"
-content-hash = "6993eb4c5db719f7a8b7867330651d516288f1c5f146540669752ac413c87160"
+content-hash = "7d4617176755cc00f125191fe224018929d4a0ed4104856d4616194e9074da9f"
diff --git a/pyproject.toml b/pyproject.toml
index ec660b8dd0..1a4f9b3b9c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -61,6 +61,7 @@ pennylane-qulacs = "0.40.0"
pennylane-catalyst = "0.10.0"
##########################################################
+scipy = ">=1.12"
numpy = "~1.24"
matplotlib = "3.7.2"
jax = "0.4.28"
@@ -79,8 +80,8 @@ pydantic = "^2.8.2"
ply = "3.11"
optax = "0.2.3"
flax = "0.9.0"
-qutip = "4.7.3"
-mitiq = "0.32.0"
+qutip = "5.1.0"
+mitiq = "0.43.0"
pennylane-qrack = "0.11.1"
pyqrack = "1.32.12"
zstd = "*"