diff --git a/src/qibojit/backends/cpu.py b/src/qibojit/backends/cpu.py index 315c44f5..681881cf 100644 --- a/src/qibojit/backends/cpu.py +++ b/src/qibojit/backends/cpu.py @@ -1,5 +1,3 @@ -from importlib.util import find_spec, module_from_spec - import numpy as np from numba import njit from qibo.backends import _clifford_operations @@ -74,15 +72,13 @@ def __init__(self): else: self.set_threads(len(psutil.Process().cpu_affinity())) - spec = find_spec("qibo.backends._clifford_operations") - self.clifford_operations = module_from_spec(spec) - spec.loader.exec_module(self.clifford_operations) - for method in dir(clifford_operations_cpu): - setattr( - self.clifford_operations, - method, - getattr(clifford_operations_cpu, method), - ) + class CliffordOperations: + pass + + self.clifford_operations = CliffordOperations() + for operations in (_clifford_operations, clifford_operations_cpu): + for method in dir(operations): + setattr(self.clifford_operations, method, getattr(operations, method)) def set_precision(self, precision): if precision != self.precision: diff --git a/src/qibojit/backends/gpu.py b/src/qibojit/backends/gpu.py index f4f041fb..2e8115ab 100644 --- a/src/qibojit/backends/gpu.py +++ b/src/qibojit/backends/gpu.py @@ -1,5 +1,3 @@ -from importlib.util import find_spec, module_from_spec - import numpy as np from qibo.backends import _clifford_operations from qibo.backends.numpy import NumpyBackend @@ -103,15 +101,13 @@ def kernel_loader(name, ktype): from qibojit.backends import clifford_operations_gpu - spec = find_spec("qibo.backends._clifford_operations") - self.clifford_operations = module_from_spec(spec) - spec.loader.exec_module(self.clifford_operations) - for method in dir(clifford_operations_gpu): - setattr( - self.clifford_operations, - method, - getattr(clifford_operations_gpu, method), - ) + class CliffordOperations: + pass + + self.clifford_operations = CliffordOperations() + for operations in (_clifford_operations, clifford_operations_gpu): + for method in dir(operations): + setattr(self.clifford_operations, method, getattr(operations, method)) def set_precision(self, precision): super().set_precision(precision)