From 6bb6fecd8d9da830958f8a9a3429e3aa778eccb8 Mon Sep 17 00:00:00 2001 From: Jim Garrison Date: Wed, 13 Sep 2023 07:32:07 -0400 Subject: [PATCH] Enable a reduced set of pylint checks (#146) * Enable a reduced set of pylint checks * Fix typo * Remove duplicate nbqa * Bump pylint version * Update module location * Fix redefined builtin > circuit_knitting/cutting/cutqc/wire_cutting.py:226:4: W0622: Redefining built-in 'bin' (redefined-builtin) --- .../cutting/cutqc/wire_cutting.py | 4 +--- .../forging/entanglement_forging_ansatz.py | 21 +++++++++++-------- .../forging/entanglement_forging_operator.py | 21 +++++++++++-------- pyproject.toml | 1 + tox.ini | 2 ++ 5 files changed, 28 insertions(+), 21 deletions(-) diff --git a/circuit_knitting/cutting/cutqc/wire_cutting.py b/circuit_knitting/cutting/cutqc/wire_cutting.py index b5a0448b4..21f8a67bf 100644 --- a/circuit_knitting/cutting/cutqc/wire_cutting.py +++ b/circuit_knitting/cutting/cutqc/wire_cutting.py @@ -223,7 +223,7 @@ def create_dd_bin( subcircuit_entries, subcircuit_instance_probabilities ) - bin = dd_build( + return dd_build( summation_terms=summation_terms, subcircuit_entry_probs=subcircuit_entry_probabilities, num_cuts=cuts["num_cuts"], @@ -234,8 +234,6 @@ def create_dd_bin( num_threads=num_threads, ) - return bin - def reconstruct_dd_full_distribution( circuit: QuantumCircuit, diff --git a/circuit_knitting/forging/entanglement_forging_ansatz.py b/circuit_knitting/forging/entanglement_forging_ansatz.py index b784dfc0b..c772754eb 100644 --- a/circuit_knitting/forging/entanglement_forging_ansatz.py +++ b/circuit_knitting/forging/entanglement_forging_ansatz.py @@ -110,12 +110,15 @@ def subspace_dimension(self) -> int: def __repr__(self) -> str: """Representation function for EntanglementForgingAnsatz.""" - repr = "EntanglementForgingAnsatz\nCircuit:\n" - repr += str(self._circuit_u.draw()) - repr += "\nBitstrings U:\n" - repr += str(self.bitstrings_u) - repr += "\nBitstrings V:\n" - repr += str(self._bitstrings_v) - repr += f"\nBitstring are symmetric: {self.bitstrings_are_symmetric}\n" - repr += f"Subspace dimension: {self.subspace_dimension}" - return repr + return "".join( + ( + "EntanglementForgingAnsatz\nCircuit:\n", + str(self._circuit_u.draw()), + "\nBitstrings U:\n", + str(self.bitstrings_u), + "\nBitstrings V:\n", + str(self._bitstrings_v), + f"\nBitstring are symmetric: {self.bitstrings_are_symmetric}\n", + f"Subspace dimension: {self.subspace_dimension}", + ) + ) diff --git a/circuit_knitting/forging/entanglement_forging_operator.py b/circuit_knitting/forging/entanglement_forging_operator.py index 2a83fe777..6ff513503 100644 --- a/circuit_knitting/forging/entanglement_forging_operator.py +++ b/circuit_knitting/forging/entanglement_forging_operator.py @@ -58,12 +58,15 @@ def __repr__(self) -> str: Returns: Printable representation of class """ - repr = "EntanglementForgingOperator\nTensor Paulis:\n" - repr += str(self.tensor_paulis) - repr += "\nSuperposition Paulis:\n" - repr += str(self.superposition_paulis) - repr += "\nTensor Weight Matrix:\n" - repr += np.array_str(self.w_ij, precision=4, suppress_small=True) - repr += "\nSuperposition Weight Matrix:\n" - repr += np.array_str(self.w_ab, precision=4, suppress_small=True) - return repr + return "".join( + ( + "EntanglementForgingOperator\nTensor Paulis:\n", + str(self.tensor_paulis), + "\nSuperposition Paulis:\n", + str(self.superposition_paulis), + "\nTensor Weight Matrix:\n", + np.array_str(self.w_ij, precision=4, suppress_small=True), + "\nSuperposition Weight Matrix:\n", + np.array_str(self.w_ab, precision=4, suppress_small=True), + ) + ) diff --git a/pyproject.toml b/pyproject.toml index c7f0e4a18..8155b5629 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,6 +73,7 @@ lint = [ "pydocstyle==6.3.0", "mypy==1.5.1", "reno>=3.4.0", + "pylint==2.17.5", # pydocstyle prefers to parse our pyproject.toml, hence the following line "toml", ] diff --git a/tox.ini b/tox.ini index 99820b220..6a2b05d6b 100644 --- a/tox.ini +++ b/tox.ini @@ -31,6 +31,8 @@ commands = pydocstyle circuit_knitting/ circuit_knitting_toolbox/ mypy circuit_knitting/ circuit_knitting_toolbox/ reno lint + pylint -rn --py-version=3.8 --disable=all --enable=reimported,no-self-use,no-else-raise,redefined-argument-from-local,redefined-builtin,raise-missing-from,cyclic-import circuit_knitting/ test/ tools/ + nbqa pylint -rn --py-version=3.8 --disable=all --enable=reimported,no-self-use,no-else-raise,redefined-argument-from-local,redefined-builtin,raise-missing-from,cyclic-import docs/ [testenv:{,py-,py3-,py38-,py39-,py310-,py311-}notebook] extras =