From a12c10f78862b751694e963a1a7240caa7fbcd6f Mon Sep 17 00:00:00 2001 From: Benoit Fanchon Date: Thu, 5 Sep 2024 14:55:23 +0200 Subject: [PATCH] PCVL-749 Remove python 3.8 --- .github/workflows/autotests.yml | 1 - README.md | 2 +- .../notebooks/Reinforcement_learning.ipynb | 1 - perceval/algorithm/sampler.py | 1 - perceval/backends/_naive_approx.py | 1 - perceval/backends/_slos.py | 1 - perceval/components/_mode_connector.py | 2 -- perceval/components/abstract_component.py | 1 - perceval/components/abstract_processor.py | 1 - perceval/components/component_catalog.py | 1 - perceval/components/generic_interferometer.py | 1 - perceval/components/linear_circuit.py | 1 - perceval/components/port.py | 1 - perceval/components/processor.py | 1 - perceval/components/source.py | 1 - .../components/tomography_exp_configurer.py | 1 - perceval/error_mitigation/loss_mitigation.py | 1 - .../scaleway/scaleway_rpc_handler.py | 1 - perceval/rendering/canvas/canvas.py | 1 - perceval/rendering/circuit/__init__.py | 2 -- perceval/rendering/circuit/abstract_skin.py | 1 - perceval/rendering/circuit/renderer.py | 1 - perceval/rendering/pdisplay.py | 3 ++- perceval/runtime/_token_management.py | 1 - perceval/runtime/job.py | 1 - perceval/runtime/job_status.py | 1 - perceval/runtime/local_job.py | 1 - perceval/runtime/remote_job.py | 1 - perceval/runtime/remote_processor.py | 1 - .../serialization/_parameter_serialization.py | 2 -- perceval/serialization/deserialize.py | 1 - perceval/simulators/_simulator_utils.py | 1 - perceval/simulators/delay_simulator.py | 1 - perceval/simulators/loss_simulator.py | 2 -- .../simulators/noisy_sampling_simulator.py | 2 +- perceval/simulators/simulator_factory.py | 2 -- perceval/simulators/simulator_interface.py | 1 - perceval/simulators/stepper.py | 1 - .../utils/algorithms/circuit_optimizer.py | 2 -- perceval/utils/algorithms/optimize.py | 1 - perceval/utils/algorithms/simplification.py | 2 -- perceval/utils/density_matrix.py | 1 - perceval/utils/density_matrix_utils.py | 6 +----- perceval/utils/logical_state.py | 2 -- perceval/utils/matrix.py | 1 - perceval/utils/noise_model.py | 1 - perceval/utils/parameter.py | 1 - perceval/utils/persistent_data.py | 19 +++---------------- perceval/utils/polarization.py | 1 - perceval/utils/postselect.py | 1 - perceval/utils/stategenerator.py | 1 - perceval/utils/statevector.py | 1 - setup.py | 3 +-- tests/_test_utils.py | 1 - tests/test_circuit_optimizer.py | 2 -- 55 files changed, 9 insertions(+), 84 deletions(-) diff --git a/.github/workflows/autotests.yml b/.github/workflows/autotests.yml index 014798d5d..27091c001 100644 --- a/.github/workflows/autotests.yml +++ b/.github/workflows/autotests.yml @@ -21,7 +21,6 @@ on: default: '3.10' type: choice options: - - '3.8' - '3.9' - '3.10' - '3.11' diff --git a/README.md b/README.md index 237ea5e46..c88312f8b 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ practitioners. Perceval requires: -* Above Python 3.8 and below Python 3.12 +* Above Python 3.9 and below Python 3.12 ## PIP We recommend installing it with `pip`: diff --git a/docs/source/notebooks/Reinforcement_learning.ipynb b/docs/source/notebooks/Reinforcement_learning.ipynb index 69ff2c3ed..811276e17 100644 --- a/docs/source/notebooks/Reinforcement_learning.ipynb +++ b/docs/source/notebooks/Reinforcement_learning.ipynb @@ -57,7 +57,6 @@ "metadata": {}, "outputs": [], "source": [ - "from typing import Union\n", "import math\n", "\n", "from ipywidgets import FloatProgress\n", diff --git a/perceval/algorithm/sampler.py b/perceval/algorithm/sampler.py index 1bc5fd1dc..bcfda4474 100644 --- a/perceval/algorithm/sampler.py +++ b/perceval/algorithm/sampler.py @@ -26,7 +26,6 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Callable, List, Dict from numbers import Number from .abstract_algorithm import AAlgorithm diff --git a/perceval/backends/_naive_approx.py b/perceval/backends/_naive_approx.py index 377aca2d6..2fedbd806 100644 --- a/perceval/backends/_naive_approx.py +++ b/perceval/backends/_naive_approx.py @@ -28,7 +28,6 @@ # SOFTWARE. import math -from typing import List, Tuple import exqalibur as xq from . import NaiveBackend diff --git a/perceval/backends/_slos.py b/perceval/backends/_slos.py index a66f83e24..168b65dd8 100644 --- a/perceval/backends/_slos.py +++ b/perceval/backends/_slos.py @@ -34,7 +34,6 @@ import exqalibur as xq import math import numpy as np -from typing import Dict, List class _Path: diff --git a/perceval/components/_mode_connector.py b/perceval/components/_mode_connector.py index 0c95a48a0..65cabdcf4 100644 --- a/perceval/components/_mode_connector.py +++ b/perceval/components/_mode_connector.py @@ -26,8 +26,6 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Dict, List, Union - from perceval.utils.logging import logger, channel from .abstract_component import AComponent diff --git a/perceval/components/abstract_component.py b/perceval/components/abstract_component.py index e7d6ac6ac..ea7a48df4 100644 --- a/perceval/components/abstract_component.py +++ b/perceval/components/abstract_component.py @@ -28,7 +28,6 @@ # SOFTWARE. from abc import ABC -from typing import Dict, Union, List, Iterable import sympy as sp import copy diff --git a/perceval/components/abstract_processor.py b/perceval/components/abstract_processor.py index dc765197b..6d59fc758 100644 --- a/perceval/components/abstract_processor.py +++ b/perceval/components/abstract_processor.py @@ -31,7 +31,6 @@ from abc import ABC, abstractmethod from enum import Enum from multipledispatch import dispatch -from typing import Any, Dict, List, Union, Tuple from perceval.components.linear_circuit import Circuit, ACircuit from perceval.utils import BasicState, Parameter, PostSelect, postselect_independent, LogicalState, NoiseModel diff --git a/perceval/components/component_catalog.py b/perceval/components/component_catalog.py index 67d07c005..8c001e4d7 100644 --- a/perceval/components/component_catalog.py +++ b/perceval/components/component_catalog.py @@ -30,7 +30,6 @@ import importlib from abc import ABC, abstractmethod from enum import Enum -from typing import List from perceval.utils import Parameter from perceval.components import Processor, Circuit diff --git a/perceval/components/generic_interferometer.py b/perceval/components/generic_interferometer.py index c07d9ecca..838304d4f 100644 --- a/perceval/components/generic_interferometer.py +++ b/perceval/components/generic_interferometer.py @@ -28,7 +28,6 @@ # SOFTWARE. import math -from typing import Callable, List, Optional, Tuple from .linear_circuit import ACircuit, Circuit diff --git a/perceval/components/linear_circuit.py b/perceval/components/linear_circuit.py index 868e8b67f..27fad0d95 100644 --- a/perceval/components/linear_circuit.py +++ b/perceval/components/linear_circuit.py @@ -33,7 +33,6 @@ import random from abc import ABC, abstractmethod -from typing import Callable, Optional, Union, Tuple, Type, List import numpy as np import sympy as sp diff --git a/perceval/components/port.py b/perceval/components/port.py index 1543b3cca..fc3506241 100644 --- a/perceval/components/port.py +++ b/perceval/components/port.py @@ -28,7 +28,6 @@ # SOFTWARE. from abc import ABC, abstractmethod -from typing import List, Union from enum import Enum from perceval.utils import BasicState, Encoding, LogicalState diff --git a/perceval/components/processor.py b/perceval/components/processor.py index c266b2190..66eff2048 100644 --- a/perceval/components/processor.py +++ b/perceval/components/processor.py @@ -29,7 +29,6 @@ from multipledispatch import dispatch from numpy import inf -from typing import Dict, Callable, Union, List from perceval.backends import ABackend, ASamplingBackend, BACKEND_LIST from perceval.utils import SVDistribution, BSDistribution, BasicState, StateVector, LogicalState, NoiseModel diff --git a/perceval/components/source.py b/perceval/components/source.py index 37cc34002..be279cff9 100644 --- a/perceval/components/source.py +++ b/perceval/components/source.py @@ -31,7 +31,6 @@ from perceval.utils import SVDistribution, StateVector, BasicState, anonymize_annotations, NoiseModel, global_params from perceval.utils.logging import logger, channel -from typing import Dict, List, Union class Source: diff --git a/perceval/components/tomography_exp_configurer.py b/perceval/components/tomography_exp_configurer.py index 7a55170f9..13aeb018a 100644 --- a/perceval/components/tomography_exp_configurer.py +++ b/perceval/components/tomography_exp_configurer.py @@ -27,7 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import List from .processor import AProcessor from ._pauli import PauliType, PauliEigenStateType, get_pauli_eigen_state_prep_circ, get_pauli_basis_measurement_circuit diff --git a/perceval/error_mitigation/loss_mitigation.py b/perceval/error_mitigation/loss_mitigation.py index c26b6f7dd..5cf2345cd 100644 --- a/perceval/error_mitigation/loss_mitigation.py +++ b/perceval/error_mitigation/loss_mitigation.py @@ -30,7 +30,6 @@ import numpy as np from math import comb from scipy.optimize import curve_fit -from typing import Union from perceval.utils import BSCount, BSDistribution, BasicState from perceval.utils.logging import logger, channel from ._loss_mitigation_utils import _gen_lossy_dists, _get_avg_exp_from_uni_dist, _generate_one_photon_per_mode_mapping diff --git a/perceval/providers/scaleway/scaleway_rpc_handler.py b/perceval/providers/scaleway/scaleway_rpc_handler.py index 9aa6261ce..384e4e05e 100644 --- a/perceval/providers/scaleway/scaleway_rpc_handler.py +++ b/perceval/providers/scaleway/scaleway_rpc_handler.py @@ -33,7 +33,6 @@ from datetime import datetime, timedelta from requests import HTTPError -from typing import Union from enum import Enum _PROVIDER_NAME = "quandela" diff --git a/perceval/rendering/canvas/canvas.py b/perceval/rendering/canvas/canvas.py index 00616fe5e..998322eda 100644 --- a/perceval/rendering/canvas/canvas.py +++ b/perceval/rendering/canvas/canvas.py @@ -29,7 +29,6 @@ from __future__ import annotations from abc import ABC -from typing import List, Union, Tuple class Canvas(ABC): diff --git a/perceval/rendering/circuit/__init__.py b/perceval/rendering/circuit/__init__.py index 6641637c1..9b45e99cb 100644 --- a/perceval/rendering/circuit/__init__.py +++ b/perceval/rendering/circuit/__init__.py @@ -27,8 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Type - from .abstract_skin import ASkin, ModeStyle from .phys_skin import PhysSkin from .symb_skin import SymbSkin diff --git a/perceval/rendering/circuit/abstract_skin.py b/perceval/rendering/circuit/abstract_skin.py index 8b962f379..0dc093033 100644 --- a/perceval/rendering/circuit/abstract_skin.py +++ b/perceval/rendering/circuit/abstract_skin.py @@ -29,7 +29,6 @@ from abc import ABC, abstractmethod from enum import Enum -from typing import Callable, Tuple from multipledispatch import dispatch from perceval.components import ACircuit, AProcessor, PERM diff --git a/perceval/rendering/circuit/renderer.py b/perceval/rendering/circuit/renderer.py index c2f9a3ce3..4a5708df5 100644 --- a/perceval/rendering/circuit/renderer.py +++ b/perceval/rendering/circuit/renderer.py @@ -30,7 +30,6 @@ from abc import ABC, abstractmethod import copy import math -from typing import Any, Tuple from perceval.rendering.circuit import ASkin, ModeStyle from perceval.rendering.format import Format diff --git a/perceval/rendering/pdisplay.py b/perceval/rendering/pdisplay.py index 9b80fa546..e36ed728f 100644 --- a/perceval/rendering/pdisplay.py +++ b/perceval/rendering/pdisplay.py @@ -44,7 +44,8 @@ import networkx as nx import sympy as sp from tabulate import tabulate -from typing import Union +import matplotlib.pyplot as plt +import sympy as sp from perceval.algorithm import Analyzer, AProcessTomography from perceval.components import ACircuit, Circuit, AProcessor, non_unitary_components as nl diff --git a/perceval/runtime/_token_management.py b/perceval/runtime/_token_management.py index 6ad08db16..91bf3e4ed 100644 --- a/perceval/runtime/_token_management.py +++ b/perceval/runtime/_token_management.py @@ -28,7 +28,6 @@ # SOFTWARE. import os -from typing import Union from perceval.utils.logging import logger, channel diff --git a/perceval/runtime/job.py b/perceval/runtime/job.py index 220a1c37a..6d3602bfb 100644 --- a/perceval/runtime/job.py +++ b/perceval/runtime/job.py @@ -28,7 +28,6 @@ # SOFTWARE. from abc import ABC, abstractmethod -from typing import Dict, Callable from perceval.utils.logging import logger, channel diff --git a/perceval/runtime/job_status.py b/perceval/runtime/job_status.py index 97877c2b9..62194fb66 100644 --- a/perceval/runtime/job_status.py +++ b/perceval/runtime/job_status.py @@ -29,7 +29,6 @@ from enum import Enum from time import time, sleep -from typing import Optional from perceval.utils.logging import logger, channel diff --git a/perceval/runtime/local_job.py b/perceval/runtime/local_job.py index fe183184f..77c9e2ea4 100644 --- a/perceval/runtime/local_job.py +++ b/perceval/runtime/local_job.py @@ -27,7 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Callable, Optional import threading from perceval.utils.logging import logger, channel diff --git a/perceval/runtime/remote_job.py b/perceval/runtime/remote_job.py index 3eede3b3d..55c0b52c9 100644 --- a/perceval/runtime/remote_job.py +++ b/perceval/runtime/remote_job.py @@ -29,7 +29,6 @@ import json import time -from typing import Any from requests.exceptions import HTTPError, ConnectionError from .job import Job diff --git a/perceval/runtime/remote_processor.py b/perceval/runtime/remote_processor.py index cc0e107b8..6f9a22612 100644 --- a/perceval/runtime/remote_processor.py +++ b/perceval/runtime/remote_processor.py @@ -27,7 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. import uuid -from typing import Dict, List, Any from multipledispatch import dispatch from perceval.components.abstract_processor import AProcessor, ProcessorType diff --git a/perceval/serialization/_parameter_serialization.py b/perceval/serialization/_parameter_serialization.py index 266eaed76..fc8268cea 100644 --- a/perceval/serialization/_parameter_serialization.py +++ b/perceval/serialization/_parameter_serialization.py @@ -26,8 +26,6 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Union - from perceval.utils import Parameter, Expression from perceval.serialization import _schema_circuit_pb2 as pb diff --git a/perceval/serialization/deserialize.py b/perceval/serialization/deserialize.py index e58efa1bb..9210338eb 100644 --- a/perceval/serialization/deserialize.py +++ b/perceval/serialization/deserialize.py @@ -28,7 +28,6 @@ # SOFTWARE. from base64 import b64decode from os import path -from typing import Union import json from zlib import decompress diff --git a/perceval/simulators/_simulator_utils.py b/perceval/simulators/_simulator_utils.py index e2fa9f84b..da05e598c 100644 --- a/perceval/simulators/_simulator_utils.py +++ b/perceval/simulators/_simulator_utils.py @@ -31,7 +31,6 @@ from perceval.components import Circuit from copy import copy from math import sqrt -from typing import List def _to_bsd(sv: StateVector) -> BSDistribution: diff --git a/perceval/simulators/delay_simulator.py b/perceval/simulators/delay_simulator.py index 9d5669710..9bdae55a1 100644 --- a/perceval/simulators/delay_simulator.py +++ b/perceval/simulators/delay_simulator.py @@ -33,7 +33,6 @@ from perceval.utils import BasicState, BSDistribution, StateVector, global_params from enum import Enum -from typing import List, Tuple class _CType(Enum): diff --git a/perceval/simulators/loss_simulator.py b/perceval/simulators/loss_simulator.py index 883c56a85..4948f8233 100644 --- a/perceval/simulators/loss_simulator.py +++ b/perceval/simulators/loss_simulator.py @@ -32,8 +32,6 @@ from perceval.components import ACircuit, LC, PERM, BS from perceval.utils import BasicState, BSDistribution, StateVector -from typing import List - class LossSimulator(ASimulatorDecorator): diff --git a/perceval/simulators/noisy_sampling_simulator.py b/perceval/simulators/noisy_sampling_simulator.py index 09d21557d..ffbe15ebd 100644 --- a/perceval/simulators/noisy_sampling_simulator.py +++ b/perceval/simulators/noisy_sampling_simulator.py @@ -28,7 +28,7 @@ # SOFTWARE. import math import time -from typing import Callable, Dict, Tuple +import sys from perceval.backends import ASamplingBackend from perceval.components import ACircuit diff --git a/perceval/simulators/simulator_factory.py b/perceval/simulators/simulator_factory.py index 493cba90c..95fe80e5b 100644 --- a/perceval/simulators/simulator_factory.py +++ b/perceval/simulators/simulator_factory.py @@ -36,8 +36,6 @@ from perceval.components import ACircuit, TD, LC, Processor from perceval.backends import ABackend, SLOSBackend, BACKEND_LIST -from typing import List, Union - class SimulatorFactory: """ diff --git a/perceval/simulators/simulator_interface.py b/perceval/simulators/simulator_interface.py index 1480ab418..e324441f0 100644 --- a/perceval/simulators/simulator_interface.py +++ b/perceval/simulators/simulator_interface.py @@ -28,7 +28,6 @@ # SOFTWARE. from abc import ABC, abstractmethod -from typing import Callable, Dict from perceval.components import ACircuit from perceval.utils import BSDistribution, StateVector, SVDistribution, PostSelect, post_select_distribution, \ diff --git a/perceval/simulators/stepper.py b/perceval/simulators/stepper.py index e57db7ed9..ed2d1fe3c 100644 --- a/perceval/simulators/stepper.py +++ b/perceval/simulators/stepper.py @@ -27,7 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. from collections import defaultdict -from typing import List, Union, Callable, Dict import copy from perceval.utils import StateVector, BasicState, BSDistribution, SVDistribution, allstate_iterator diff --git a/perceval/utils/algorithms/circuit_optimizer.py b/perceval/utils/algorithms/circuit_optimizer.py index 5e700671f..4bbd88a51 100644 --- a/perceval/utils/algorithms/circuit_optimizer.py +++ b/perceval/utils/algorithms/circuit_optimizer.py @@ -27,8 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Callable, Tuple, Union - import exqalibur as xq from perceval.components import ACircuit, Circuit, GenericInterferometer, BS, PS, catalog from perceval.utils import Matrix, P diff --git a/perceval/utils/algorithms/optimize.py b/perceval/utils/algorithms/optimize.py index 85e53bc5c..c8617ac0e 100644 --- a/perceval/utils/algorithms/optimize.py +++ b/perceval/utils/algorithms/optimize.py @@ -27,7 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Optional, Callable, List from perceval.components.linear_circuit import ACircuit from perceval.utils import Matrix, P, global_params diff --git a/perceval/utils/algorithms/simplification.py b/perceval/utils/algorithms/simplification.py index 9b4a71b2a..c4f14db17 100644 --- a/perceval/utils/algorithms/simplification.py +++ b/perceval/utils/algorithms/simplification.py @@ -26,8 +26,6 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Union - import numpy as np import perceval.components.unitary_components as comp from perceval.components.linear_circuit import ACircuit, Circuit diff --git a/perceval/utils/density_matrix.py b/perceval/utils/density_matrix.py index 9e9bb975a..dd1c5db17 100644 --- a/perceval/utils/density_matrix.py +++ b/perceval/utils/density_matrix.py @@ -30,7 +30,6 @@ import random from copy import copy from math import comb, sqrt -from typing import Union, Optional, List, Tuple import numpy as np from numpy import conj diff --git a/perceval/utils/density_matrix_utils.py b/perceval/utils/density_matrix_utils.py index adbadf052..ef849f54d 100644 --- a/perceval/utils/density_matrix_utils.py +++ b/perceval/utils/density_matrix_utils.py @@ -28,14 +28,10 @@ # SOFTWARE. import sys -from typing import Union import numpy as np from scipy.sparse import csr_array -if sys.version.startswith('3.8.'): - from scipy.sparse import spmatrix as sparray -else: - from scipy.sparse import sparray +from scipy.sparse import sparray from perceval.utils.statevector import StateVector diff --git a/perceval/utils/logical_state.py b/perceval/utils/logical_state.py index 08f757efb..3180ba70b 100644 --- a/perceval/utils/logical_state.py +++ b/perceval/utils/logical_state.py @@ -27,8 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import List - class LogicalState(list): def __init__(self, state: List[int] or str = None): diff --git a/perceval/utils/matrix.py b/perceval/utils/matrix.py index 8e7aa5008..d24fb94f2 100644 --- a/perceval/utils/matrix.py +++ b/perceval/utils/matrix.py @@ -34,7 +34,6 @@ from abc import ABC, abstractmethod from scipy.linalg import sqrtm, block_diag, svd -from typing import Iterator, Optional, Union, Tuple import numpy as np import sympy as sp diff --git a/perceval/utils/noise_model.py b/perceval/utils/noise_model.py index e8144d52a..027624764 100644 --- a/perceval/utils/noise_model.py +++ b/perceval/utils/noise_model.py @@ -28,7 +28,6 @@ # SOFTWARE. from ._validated_params import AValidatedParam, ValidatedBool, ValidatedFloat -from typing import Dict class NoiseModel: diff --git a/perceval/utils/parameter.py b/perceval/utils/parameter.py index d20e00371..68546da87 100644 --- a/perceval/utils/parameter.py +++ b/perceval/utils/parameter.py @@ -30,7 +30,6 @@ import random import sympy as sp -from typing import Tuple class Parameter: diff --git a/perceval/utils/persistent_data.py b/perceval/utils/persistent_data.py index 6797af986..34b803a06 100644 --- a/perceval/utils/persistent_data.py +++ b/perceval/utils/persistent_data.py @@ -30,7 +30,6 @@ import os import json import warnings -from typing import Union from platformdirs import PlatformDirs from .metadata import PMetadata @@ -39,18 +38,6 @@ _CONFIG_FILE_NAME = "config.json" -def _removesuffix(data, suffix): - """Replace the python 3.9 method removesuffix - - :param data: data on which remove suffix - :param suffix: suffix to remove - :return: data - """ - if data.endswith(suffix): - data = data[:-len(suffix)] - - return data - class PersistentData: """PersistentData handle perceval persistent data @@ -169,12 +156,12 @@ def read_file(self, filename: str, file_format: FileFormat) -> Union[bytes, str] if file_format == FileFormat.BINARY: with open(file_path, "r+b") as file: data = file.read() - data = _removesuffix(data, b'\n') - data = _removesuffix(data, b' ') + data = data.removesuffix(b'\n') + data = data.removesuffix(b' ') elif file_format == FileFormat.TEXT: with open(file_path, "r+t", encoding="UTF-8") as file: data = str(file.read()) - data = _removesuffix(data, '\n').rstrip() + data = data.removesuffix('\n').rstrip() else: raise NotImplementedError(f"format {format} is not supported") return data diff --git a/perceval/utils/polarization.py b/perceval/utils/polarization.py index a9407a079..fba755943 100644 --- a/perceval/utils/polarization.py +++ b/perceval/utils/polarization.py @@ -32,7 +32,6 @@ import numpy as np import re import sympy as sp -from typing import Union, Tuple, Any from .statevector import BasicState from .matrix import Matrix diff --git a/perceval/utils/postselect.py b/perceval/utils/postselect.py index b7ba756f5..859660116 100644 --- a/perceval/utils/postselect.py +++ b/perceval/utils/postselect.py @@ -31,7 +31,6 @@ import json import re -from typing import Callable, List, Tuple class PostSelect: diff --git a/perceval/utils/stategenerator.py b/perceval/utils/stategenerator.py index b34deb429..a5bb5b7c4 100644 --- a/perceval/utils/stategenerator.py +++ b/perceval/utils/stategenerator.py @@ -27,7 +27,6 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import List import networkx as nx from .statevector import BasicState, StateVector diff --git a/perceval/utils/statevector.py b/perceval/utils/statevector.py index 5002919a4..fe84c562d 100644 --- a/perceval/utils/statevector.py +++ b/perceval/utils/statevector.py @@ -35,7 +35,6 @@ from collections import defaultdict from copy import copy from multipledispatch import dispatch -from typing import Dict, List, Union, Optional import exqalibur as xq from perceval.utils.logging import logger, channel diff --git a/setup.py b/setup.py index 3f5445aba..9e92bfee9 100644 --- a/setup.py +++ b/setup.py @@ -22,7 +22,6 @@ "Tracker": "https://github.com/Quandela/Perceval/issues" }, classifiers=[ - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", @@ -41,6 +40,6 @@ "cqasm_bridge": ["libqasm~=0.6.6"], }, setup_requires=["scmver"], - python_requires=">=3.8", + python_requires=">=3.9", scmver=True ) diff --git a/tests/_test_utils.py b/tests/_test_utils.py index f40766793..38e0b1aed 100644 --- a/tests/_test_utils.py +++ b/tests/_test_utils.py @@ -31,7 +31,6 @@ import math import pytest -from typing import Type from pathlib import Path from unittest.mock import MagicMock diff --git a/tests/test_circuit_optimizer.py b/tests/test_circuit_optimizer.py index ebdf9c31c..b4356ebd0 100644 --- a/tests/test_circuit_optimizer.py +++ b/tests/test_circuit_optimizer.py @@ -26,8 +26,6 @@ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from typing import Callable - from perceval.utils.algorithms.circuit_optimizer import CircuitOptimizer from perceval.utils.algorithms import norm from perceval.components import BS, PS, Circuit, GenericInterferometer