diff --git a/src/quafu/__init__.py b/quafu/__init__.py similarity index 100% rename from src/quafu/__init__.py rename to quafu/__init__.py diff --git a/quafu/algorithms/__init__.py b/quafu/algorithms/__init__.py new file mode 100644 index 0000000..38fcf60 --- /dev/null +++ b/quafu/algorithms/__init__.py @@ -0,0 +1,3 @@ +"""Algorithm module""" + +from .hamiltonian import Hamiltonian diff --git a/src/quafu/algorithms/ansatz.py b/quafu/algorithms/ansatz.py similarity index 100% rename from src/quafu/algorithms/ansatz.py rename to quafu/algorithms/ansatz.py diff --git a/src/quafu/algorithms/estimator.py b/quafu/algorithms/estimator.py similarity index 100% rename from src/quafu/algorithms/estimator.py rename to quafu/algorithms/estimator.py diff --git a/quafu/algorithms/hamiltonian.py b/quafu/algorithms/hamiltonian.py new file mode 100644 index 0000000..9c0b4de --- /dev/null +++ b/quafu/algorithms/hamiltonian.py @@ -0,0 +1,35 @@ +# (C) Copyright 2023 Beijing Academy of Quantum Information Sciences +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Quafu Hamiltonian class""" + +from __future__ import annotations + +from collections.abc import Iterable + + +class Hamiltonian: + """TODO""" + + def __init__(self) -> None: + pass + + @staticmethod + def from_pauli_list(pauli: Iterable[tuple[str, complex]]) -> Hamiltonian: + """ + Args: + pauli: The supported format of pauli list is [(, )], + e.g., [('IIIZZ', 1), ("IIZIZ", 1), ...)], 0th qubit is farthest right + """ + return Hamiltonian() diff --git a/src/quafu/algorithms/sampler.py b/quafu/algorithms/sampler.py similarity index 100% rename from src/quafu/algorithms/sampler.py rename to quafu/algorithms/sampler.py diff --git a/src/quafu/backends/__init__.py b/quafu/backends/__init__.py similarity index 100% rename from src/quafu/backends/__init__.py rename to quafu/backends/__init__.py diff --git a/src/quafu/backends/backends.py b/quafu/backends/backends.py similarity index 100% rename from src/quafu/backends/backends.py rename to quafu/backends/backends.py diff --git a/src/quafu/benchmark/__init__.py b/quafu/benchmark/__init__.py similarity index 100% rename from src/quafu/benchmark/__init__.py rename to quafu/benchmark/__init__.py diff --git a/src/quafu/benchmark/adder.py b/quafu/benchmark/adder.py similarity index 100% rename from src/quafu/benchmark/adder.py rename to quafu/benchmark/adder.py diff --git a/src/quafu/benchmark/deutsch_jozsa.py b/quafu/benchmark/deutsch_jozsa.py similarity index 100% rename from src/quafu/benchmark/deutsch_jozsa.py rename to quafu/benchmark/deutsch_jozsa.py diff --git a/src/quafu/benchmark/unitary_test.py b/quafu/benchmark/unitary_test.py similarity index 100% rename from src/quafu/benchmark/unitary_test.py rename to quafu/benchmark/unitary_test.py diff --git a/src/quafu/benchmark/variational/brickwall_circuit.py b/quafu/benchmark/variational/brickwall_circuit.py similarity index 100% rename from src/quafu/benchmark/variational/brickwall_circuit.py rename to quafu/benchmark/variational/brickwall_circuit.py diff --git a/src/quafu/benchmark/variational/ladder_circuit.py b/quafu/benchmark/variational/ladder_circuit.py similarity index 100% rename from src/quafu/benchmark/variational/ladder_circuit.py rename to quafu/benchmark/variational/ladder_circuit.py diff --git a/src/quafu/benchmark/variational_n4.py b/quafu/benchmark/variational_n4.py similarity index 100% rename from src/quafu/benchmark/variational_n4.py rename to quafu/benchmark/variational_n4.py diff --git a/src/quafu/circuits/__init__.py b/quafu/circuits/__init__.py similarity index 100% rename from src/quafu/circuits/__init__.py rename to quafu/circuits/__init__.py diff --git a/src/quafu/circuits/quantum_circuit.py b/quafu/circuits/quantum_circuit.py similarity index 100% rename from src/quafu/circuits/quantum_circuit.py rename to quafu/circuits/quantum_circuit.py diff --git a/src/quafu/circuits/quantum_register.py b/quafu/circuits/quantum_register.py similarity index 100% rename from src/quafu/circuits/quantum_register.py rename to quafu/circuits/quantum_register.py diff --git a/src/quafu/dagcircuits/__init__.py b/quafu/dagcircuits/__init__.py similarity index 100% rename from src/quafu/dagcircuits/__init__.py rename to quafu/dagcircuits/__init__.py diff --git a/src/quafu/dagcircuits/circuit_dag.py b/quafu/dagcircuits/circuit_dag.py similarity index 100% rename from src/quafu/dagcircuits/circuit_dag.py rename to quafu/dagcircuits/circuit_dag.py diff --git a/src/quafu/dagcircuits/dag_circuit.py b/quafu/dagcircuits/dag_circuit.py similarity index 100% rename from src/quafu/dagcircuits/dag_circuit.py rename to quafu/dagcircuits/dag_circuit.py diff --git a/src/quafu/dagcircuits/instruction_node.py b/quafu/dagcircuits/instruction_node.py similarity index 100% rename from src/quafu/dagcircuits/instruction_node.py rename to quafu/dagcircuits/instruction_node.py diff --git a/src/quafu/elements/__init__.py b/quafu/elements/__init__.py similarity index 100% rename from src/quafu/elements/__init__.py rename to quafu/elements/__init__.py diff --git a/src/quafu/elements/element_gates/__init__.py b/quafu/elements/element_gates/__init__.py similarity index 100% rename from src/quafu/elements/element_gates/__init__.py rename to quafu/elements/element_gates/__init__.py diff --git a/src/quafu/elements/element_gates/c11.py b/quafu/elements/element_gates/c11.py similarity index 100% rename from src/quafu/elements/element_gates/c11.py rename to quafu/elements/element_gates/c11.py diff --git a/src/quafu/elements/element_gates/c12.py b/quafu/elements/element_gates/c12.py similarity index 100% rename from src/quafu/elements/element_gates/c12.py rename to quafu/elements/element_gates/c12.py diff --git a/src/quafu/elements/element_gates/c21.py b/quafu/elements/element_gates/c21.py similarity index 100% rename from src/quafu/elements/element_gates/c21.py rename to quafu/elements/element_gates/c21.py diff --git a/src/quafu/elements/element_gates/clifford.py b/quafu/elements/element_gates/clifford.py similarity index 100% rename from src/quafu/elements/element_gates/clifford.py rename to quafu/elements/element_gates/clifford.py diff --git a/src/quafu/elements/element_gates/cm1.py b/quafu/elements/element_gates/cm1.py similarity index 100% rename from src/quafu/elements/element_gates/cm1.py rename to quafu/elements/element_gates/cm1.py diff --git a/src/quafu/elements/element_gates/matrices/__init__.py b/quafu/elements/element_gates/matrices/__init__.py similarity index 100% rename from src/quafu/elements/element_gates/matrices/__init__.py rename to quafu/elements/element_gates/matrices/__init__.py diff --git a/src/quafu/elements/element_gates/matrices/mat_lib.py b/quafu/elements/element_gates/matrices/mat_lib.py similarity index 100% rename from src/quafu/elements/element_gates/matrices/mat_lib.py rename to quafu/elements/element_gates/matrices/mat_lib.py diff --git a/src/quafu/elements/element_gates/matrices/mat_utils.py b/quafu/elements/element_gates/matrices/mat_utils.py similarity index 100% rename from src/quafu/elements/element_gates/matrices/mat_utils.py rename to quafu/elements/element_gates/matrices/mat_utils.py diff --git a/src/quafu/elements/element_gates/pauli.py b/quafu/elements/element_gates/pauli.py similarity index 100% rename from src/quafu/elements/element_gates/pauli.py rename to quafu/elements/element_gates/pauli.py diff --git a/src/quafu/elements/element_gates/phase.py b/quafu/elements/element_gates/phase.py similarity index 100% rename from src/quafu/elements/element_gates/phase.py rename to quafu/elements/element_gates/phase.py diff --git a/src/quafu/elements/element_gates/rotation.py b/quafu/elements/element_gates/rotation.py similarity index 100% rename from src/quafu/elements/element_gates/rotation.py rename to quafu/elements/element_gates/rotation.py diff --git a/src/quafu/elements/element_gates/swap.py b/quafu/elements/element_gates/swap.py similarity index 100% rename from src/quafu/elements/element_gates/swap.py rename to quafu/elements/element_gates/swap.py diff --git a/src/quafu/elements/element_gates/unitary/__init__.py b/quafu/elements/element_gates/unitary/__init__.py similarity index 100% rename from src/quafu/elements/element_gates/unitary/__init__.py rename to quafu/elements/element_gates/unitary/__init__.py diff --git a/src/quafu/elements/element_gates/unitary/decomposer.py b/quafu/elements/element_gates/unitary/decomposer.py similarity index 100% rename from src/quafu/elements/element_gates/unitary/decomposer.py rename to quafu/elements/element_gates/unitary/decomposer.py diff --git a/src/quafu/elements/quantum_element/__init__.py b/quafu/elements/quantum_element/__init__.py similarity index 100% rename from src/quafu/elements/quantum_element/__init__.py rename to quafu/elements/quantum_element/__init__.py diff --git a/src/quafu/elements/quantum_element/instruction.py b/quafu/elements/quantum_element/instruction.py similarity index 100% rename from src/quafu/elements/quantum_element/instruction.py rename to quafu/elements/quantum_element/instruction.py diff --git a/src/quafu/elements/quantum_element/pulses/__init__.py b/quafu/elements/quantum_element/pulses/__init__.py similarity index 100% rename from src/quafu/elements/quantum_element/pulses/__init__.py rename to quafu/elements/quantum_element/pulses/__init__.py diff --git a/src/quafu/elements/quantum_element/pulses/quantum_pulse.py b/quafu/elements/quantum_element/pulses/quantum_pulse.py similarity index 100% rename from src/quafu/elements/quantum_element/pulses/quantum_pulse.py rename to quafu/elements/quantum_element/pulses/quantum_pulse.py diff --git a/src/quafu/elements/quantum_element/quantum_element.py b/quafu/elements/quantum_element/quantum_element.py similarity index 100% rename from src/quafu/elements/quantum_element/quantum_element.py rename to quafu/elements/quantum_element/quantum_element.py diff --git a/src/quafu/elements/quantum_element/quantum_gate.py b/quafu/elements/quantum_element/quantum_gate.py similarity index 100% rename from src/quafu/elements/quantum_element/quantum_gate.py rename to quafu/elements/quantum_element/quantum_gate.py diff --git a/src/quafu/exceptions/__init__.py b/quafu/exceptions/__init__.py similarity index 100% rename from src/quafu/exceptions/__init__.py rename to quafu/exceptions/__init__.py diff --git a/src/quafu/exceptions/circuit_error.py b/quafu/exceptions/circuit_error.py similarity index 100% rename from src/quafu/exceptions/circuit_error.py rename to quafu/exceptions/circuit_error.py diff --git a/src/quafu/exceptions/quafu_error.py b/quafu/exceptions/quafu_error.py similarity index 100% rename from src/quafu/exceptions/quafu_error.py rename to quafu/exceptions/quafu_error.py diff --git a/src/quafu/qfasm/__init__.py b/quafu/qfasm/__init__.py similarity index 100% rename from src/quafu/qfasm/__init__.py rename to quafu/qfasm/__init__.py diff --git a/src/quafu/qfasm/exceptions.py b/quafu/qfasm/exceptions.py similarity index 100% rename from src/quafu/qfasm/exceptions.py rename to quafu/qfasm/exceptions.py diff --git a/src/quafu/qfasm/qfasm_convertor.py b/quafu/qfasm/qfasm_convertor.py similarity index 100% rename from src/quafu/qfasm/qfasm_convertor.py rename to quafu/qfasm/qfasm_convertor.py diff --git a/src/quafu/qfasm/qfasm_parser.py b/quafu/qfasm/qfasm_parser.py similarity index 100% rename from src/quafu/qfasm/qfasm_parser.py rename to quafu/qfasm/qfasm_parser.py diff --git a/src/quafu/qfasm/qfasmlex.py b/quafu/qfasm/qfasmlex.py similarity index 100% rename from src/quafu/qfasm/qfasmlex.py rename to quafu/qfasm/qfasmlex.py diff --git a/src/quafu/requirements.txt b/quafu/requirements.txt similarity index 100% rename from src/quafu/requirements.txt rename to quafu/requirements.txt diff --git a/src/quafu/results/__init__.py b/quafu/results/__init__.py similarity index 100% rename from src/quafu/results/__init__.py rename to quafu/results/__init__.py diff --git a/src/quafu/results/results.py b/quafu/results/results.py similarity index 100% rename from src/quafu/results/results.py rename to quafu/results/results.py diff --git a/src/quafu/simulators/__init__.py b/quafu/simulators/__init__.py similarity index 100% rename from src/quafu/simulators/__init__.py rename to quafu/simulators/__init__.py diff --git a/src/quafu/simulators/default_simulator.py b/quafu/simulators/default_simulator.py similarity index 100% rename from src/quafu/simulators/default_simulator.py rename to quafu/simulators/default_simulator.py diff --git a/src/quafu/simulators/simulator.py b/quafu/simulators/simulator.py similarity index 100% rename from src/quafu/simulators/simulator.py rename to quafu/simulators/simulator.py diff --git a/src/quafu/synthesis/__init__.py b/quafu/synthesis/__init__.py similarity index 100% rename from src/quafu/synthesis/__init__.py rename to quafu/synthesis/__init__.py diff --git a/src/quafu/synthesis/evolution.py b/quafu/synthesis/evolution.py similarity index 100% rename from src/quafu/synthesis/evolution.py rename to quafu/synthesis/evolution.py diff --git a/src/quafu/tasks/__init__.py b/quafu/tasks/__init__.py similarity index 100% rename from src/quafu/tasks/__init__.py rename to quafu/tasks/__init__.py diff --git a/src/quafu/tasks/tasks.py b/quafu/tasks/tasks.py similarity index 100% rename from src/quafu/tasks/tasks.py rename to quafu/tasks/tasks.py diff --git a/src/quafu/users/__init__.py b/quafu/users/__init__.py similarity index 100% rename from src/quafu/users/__init__.py rename to quafu/users/__init__.py diff --git a/src/quafu/users/exceptions.py b/quafu/users/exceptions.py similarity index 100% rename from src/quafu/users/exceptions.py rename to quafu/users/exceptions.py diff --git a/src/quafu/users/userapi.py b/quafu/users/userapi.py similarity index 100% rename from src/quafu/users/userapi.py rename to quafu/users/userapi.py diff --git a/src/quafu/utils/__init__.py b/quafu/utils/__init__.py similarity index 100% rename from src/quafu/utils/__init__.py rename to quafu/utils/__init__.py diff --git a/src/quafu/utils/basis.py b/quafu/utils/basis.py similarity index 100% rename from src/quafu/utils/basis.py rename to quafu/utils/basis.py diff --git a/src/quafu/utils/paulis.py b/quafu/utils/paulis.py similarity index 100% rename from src/quafu/utils/paulis.py rename to quafu/utils/paulis.py diff --git a/src/quafu/utils/platform.py b/quafu/utils/platform.py similarity index 100% rename from src/quafu/utils/platform.py rename to quafu/utils/platform.py diff --git a/src/quafu/visualisation/__init__.py b/quafu/visualisation/__init__.py similarity index 100% rename from src/quafu/visualisation/__init__.py rename to quafu/visualisation/__init__.py diff --git a/src/quafu/visualisation/circuitPlot.py b/quafu/visualisation/circuitPlot.py similarity index 100% rename from src/quafu/visualisation/circuitPlot.py rename to quafu/visualisation/circuitPlot.py diff --git a/setup.py b/setup.py index 78219bb..0918ba8 100644 --- a/setup.py +++ b/setup.py @@ -41,9 +41,8 @@ url="https://github.com/ScQ-Cloud/pyquafu", description="Python toolkit for Quafu-Cloud", install_requires=requirements, - packages=find_packages(where="src"), - package_dir={"": "src"}, - cmake_install_dir="src/quafu/simulators/", + packages=find_packages(exclude=["test*"]), + cmake_install_dir="quafu/simulators/", include_package_data=True, long_description=long_description, long_description_content_type="text/markdown", diff --git a/src/quafu/algorithms/__init__.py b/src/quafu/algorithms/__init__.py deleted file mode 100644 index 445b4b5..0000000 --- a/src/quafu/algorithms/__init__.py +++ /dev/null @@ -1 +0,0 @@ -"""Algorithm module""" diff --git a/tests/quafu/algorithms/ansatz.py b/tests/quafu/algorithms/ansatz_test.py similarity index 100% rename from tests/quafu/algorithms/ansatz.py rename to tests/quafu/algorithms/ansatz_test.py diff --git a/tests/quafu/algorithms/estimator.py b/tests/quafu/algorithms/estimator_test.py similarity index 100% rename from tests/quafu/algorithms/estimator.py rename to tests/quafu/algorithms/estimator_test.py diff --git a/src/quafu/algorithms/hamiltonian.py b/tests/quafu/algorithms/hamiltonian_test.py similarity index 82% rename from src/quafu/algorithms/hamiltonian.py rename to tests/quafu/algorithms/hamiltonian_test.py index 0826eee..2792bd9 100644 --- a/src/quafu/algorithms/hamiltonian.py +++ b/tests/quafu/algorithms/hamiltonian_test.py @@ -12,11 +12,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -"""Quafu Hamiltonian class""" +from quafu.algorithms.hamiltonian import Hamiltonian +class TestHamiltonian: -class Hamiltonian: - """TODO""" - - def __init__(self) -> None: - pass + def test_init(self): + h = Hamiltonian()