From 8ccab962cb60afbd2aa60762348b2e1a705588e5 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:30:42 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E2=AC=86=EF=B8=8F=F0=9F=AA=9D=20update=20p?= =?UTF-8?q?re-commit=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updates: - [github.com/astral-sh/ruff-pre-commit: v0.4.3 → v0.4.4](https://github.com/astral-sh/ruff-pre-commit/compare/v0.4.3...v0.4.4) - [github.com/pre-commit/mirrors-clang-format: v18.1.4 → v18.1.5](https://github.com/pre-commit/mirrors-clang-format/compare/v18.1.4...v18.1.5) --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 720ce2fc..307e833a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -51,7 +51,7 @@ repos: # Python linting and formatting using ruff - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.4.3 + rev: v0.4.4 hooks: - id: ruff args: ["--fix", "--show-fixes"] @@ -92,7 +92,7 @@ repos: # Clang-format the C++ part of the code base automatically - repo: https://github.com/pre-commit/mirrors-clang-format - rev: v18.1.4 + rev: v18.1.5 hooks: - id: clang-format types_or: [c++, c, cuda] From e45e30f47129f06bc607ca610ab02e05edec97f7 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:32:45 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8E=A8=20pre-commit=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../simulators/analog_tannergraph_decoding.py | 3 ++- .../simulators/simulation.py | 3 ++- .../utils/simulation_utils.py | 3 ++- src/mqt/qecc/cc_decoder/decoder.py | 5 ++++- src/mqt/qecc/ecc_qiskit_wrapper.py | 3 ++- test/python/ecc_fw/test_ecc_framework.py | 18 ++++++++++-------- 6 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/mqt/qecc/analog_information_decoding/simulators/analog_tannergraph_decoding.py b/src/mqt/qecc/analog_information_decoding/simulators/analog_tannergraph_decoding.py index 00b02783..de5d7821 100644 --- a/src/mqt/qecc/analog_information_decoding/simulators/analog_tannergraph_decoding.py +++ b/src/mqt/qecc/analog_information_decoding/simulators/analog_tannergraph_decoding.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +import locale from pathlib import Path from typing import TYPE_CHECKING, Any @@ -304,7 +305,7 @@ def save_results(self, x_success_cnt: int, z_success_cnt: int, runs: int) -> dic } output.update(self.input_values) - with Path(self.outfile).open(mode="w") as f: + with Path(self.outfile).open(mode="w", encoding=locale.getpreferredencoding(False)) as f: json.dump(output, f, ensure_ascii=False, indent=4, default=lambda o: o.__dict__) return output diff --git a/src/mqt/qecc/analog_information_decoding/simulators/simulation.py b/src/mqt/qecc/analog_information_decoding/simulators/simulation.py index c4b7933a..a53f559e 100644 --- a/src/mqt/qecc/analog_information_decoding/simulators/simulation.py +++ b/src/mqt/qecc/analog_information_decoding/simulators/simulation.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +import locale from pathlib import Path from timeit import default_timer as timer from typing import TYPE_CHECKING, Any @@ -699,7 +700,7 @@ def save_results( output.update(self.input_values) output["bias"] = replace_inf(output["bias"]) # type: ignore[assignment, arg-type] - with Path(self.outfile).open() as f: + with Path(self.outfile).open(encoding=locale.getpreferredencoding(False)) as f: f.write( json.dumps( output, diff --git a/src/mqt/qecc/analog_information_decoding/utils/simulation_utils.py b/src/mqt/qecc/analog_information_decoding/utils/simulation_utils.py index 3a4bf0c3..af332259 100644 --- a/src/mqt/qecc/analog_information_decoding/utils/simulation_utils.py +++ b/src/mqt/qecc/analog_information_decoding/utils/simulation_utils.py @@ -3,6 +3,7 @@ from __future__ import annotations import json +import locale from pathlib import Path from typing import TYPE_CHECKING, Any @@ -274,6 +275,6 @@ def save_results( output.update(input_vals) output["bias"] = replace_inf(output["bias"]) - with Path(outfile).open(mode="w") as out: + with Path(outfile).open(mode="w", encoding=locale.getpreferredencoding(False)) as out: json.dump(output, out, ensure_ascii=False, indent=4, default=lambda o: o.__dict__) return output diff --git a/src/mqt/qecc/cc_decoder/decoder.py b/src/mqt/qecc/cc_decoder/decoder.py index 674ef5a2..d7f36e94 100644 --- a/src/mqt/qecc/cc_decoder/decoder.py +++ b/src/mqt/qecc/cc_decoder/decoder.py @@ -4,6 +4,7 @@ import datetime import json +import locale import subprocess # noqa: S404 from dataclasses import dataclass, field from pathlib import Path @@ -122,7 +123,9 @@ def solve( wcnf = str(self.optimizer) # Note: This merely calls the solver. It does not interpret the output. # This is just to measure the time it takes to solve the problem. - with Path("./solver-out_" + solver_path.split("/")[-1] + ".txt").open("a+") as out: + with Path("./solver-out_" + solver_path.split("/")[-1] + ".txt").open( + "a+", encoding=locale.getpreferredencoding(False) + ) as out: start = datetime.datetime.now() subprocess.run([solver_path, wcnf], stdout=out, check=False) # noqa: S603 solve_time = datetime.datetime.now() - start diff --git a/src/mqt/qecc/ecc_qiskit_wrapper.py b/src/mqt/qecc/ecc_qiskit_wrapper.py index 6d8bc18d..a29ce619 100644 --- a/src/mqt/qecc/ecc_qiskit_wrapper.py +++ b/src/mqt/qecc/ecc_qiskit_wrapper.py @@ -3,6 +3,7 @@ from __future__ import annotations import argparse +import locale import pathlib from typing import TYPE_CHECKING @@ -179,7 +180,7 @@ def main() -> None: if ecc_export_filename is not None: print("Exporting circuit to: " + str(ecc_export_filename)) # noqa: T201 - with pathlib.Path(ecc_export_filename).open("w") as f: + with pathlib.Path(ecc_export_filename).open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) return diff --git a/test/python/ecc_fw/test_ecc_framework.py b/test/python/ecc_fw/test_ecc_framework.py index 0520098b..7c07288f 100644 --- a/test/python/ecc_fw/test_ecc_framework.py +++ b/test/python/ecc_fw/test_ecc_framework.py @@ -11,6 +11,8 @@ if TYPE_CHECKING: from pytest_console_scripts import ScriptRunner +import locale + from qiskit import QuantumCircuit @@ -34,7 +36,7 @@ def test_with_stab_simulator( circ: QuantumCircuit, simulator: str, noise_models: str, script_runner: ScriptRunner ) -> None: """Testing the script with different parameters.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run([ "ecc_qiskit_wrapper", @@ -56,7 +58,7 @@ def test_with_stab_simulator( def test_failing_simulators(circ: QuantumCircuit, script_runner: ScriptRunner) -> None: """Testing the script with unsupported ecc.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run([ "ecc_qiskit_wrapper", @@ -83,7 +85,7 @@ def test_failing_simulators(circ: QuantumCircuit, script_runner: ScriptRunner) - def test_unavailable_backend(circ: QuantumCircuit, script_runner: ScriptRunner) -> None: """Testing the script with unsupported backend.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run(["ecc_qiskit_wrapper", "-fs", "dummyBackedn", "-f", "dummyCircuit.qasm"]) file_to_remove = pathlib.Path("dummyCircuit.qasm") @@ -94,7 +96,7 @@ def test_unavailable_backend(circ: QuantumCircuit, script_runner: ScriptRunner) def test_unavailable_error_type(circ: QuantumCircuit, script_runner: ScriptRunner) -> None: """Testing the script with unsupported ecc.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run(["ecc_qiskit_wrapper", "-m", "K", "-f", "dummyCircuit.qasm"]) file_to_remove = pathlib.Path("dummyCircuit.qasm") @@ -105,7 +107,7 @@ def test_unavailable_error_type(circ: QuantumCircuit, script_runner: ScriptRunne def test_statevector_simulators(circ: QuantumCircuit, script_runner: ScriptRunner) -> None: """Testing the simulator with a different simulator.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run([ "ecc_qiskit_wrapper", @@ -131,7 +133,7 @@ def test_statevector_simulators(circ: QuantumCircuit, script_runner: ScriptRunne def test_save_circuit(circ: QuantumCircuit, script_runner: ScriptRunner) -> None: """Saving a circuit after applying an ECC.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run([ "ecc_qiskit_wrapper", @@ -148,7 +150,7 @@ def test_save_circuit(circ: QuantumCircuit, script_runner: ScriptRunner) -> None def test_circuit_without_measurements(circ_no_measure: QuantumCircuit, script_runner: ScriptRunner) -> None: """Testing circuit without ecc.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ_no_measure, f) ret = script_runner.run(["ecc_qiskit_wrapper", "-f", "dummyCircuit.qasm"]) file_to_remove = pathlib.Path("dummyCircuit.qasm") @@ -158,7 +160,7 @@ def test_circuit_without_measurements(circ_no_measure: QuantumCircuit, script_ru def test_trying_to_use_stabilizer_simulator(circ: QuantumCircuit, script_runner: ScriptRunner) -> None: """Testing circuit without ecc.""" - with pathlib.Path("dummyCircuit.qasm").open("w") as f: + with pathlib.Path("dummyCircuit.qasm").open("w", encoding=locale.getpreferredencoding(False)) as f: dump(circ, f) ret = script_runner.run(["ecc_qiskit_wrapper", "-f", "dummyCircuit.qasm", "-m", "A"]) file_to_remove = pathlib.Path("dummyCircuit.qasm")