qns.entity.operator package

Submodules

qns.entity.operator.event module

class qns.entity.operator.event.OperateRequestEvent(operator, qubits: List[QuantumModel] = [], t: Time | None = None, name: str | None = None, by: Any | None = None)[source]

Bases: Event

OperateRequestEvent is the event that request a operator to handle

invoke() None[source]

Invoke the event, should be implemented

class qns.entity.operator.event.OperateResponseEvent(node: QNode, result: int | List[int] | None = None, request: OperateRequestEvent | None = None, t: Time | None = None, name: str | None = None, by: Any | None = None)[source]

Bases: Event

OperateResponseEvent is the event that returns the operating result

invoke() None[source]

Invoke the event, should be implemented

qns.entity.operator.operator module

class qns.entity.operator.operator.QuantumOperator(name: str | None = None, node: QNode | None = None, gate: Callable[[...], None | int | List[int]] | None = None, delay: float | DelayModel = 0)[source]

Bases: Entity

Quantum operator can perfrom quantum operation or measurements on qubits. It has two modes:

Synchronous mode, users can use the operate function to operate qubits directly without delay Asynchronous mode, users will use events to operate quantum operations asynchronously

handle(event: Event) None[source]

handle is called to process an receiving Event.

Parameters:

event (qns.simulator.event.Event) – the event that send to this entity

install(simulator: Simulator) None[source]

install is called before simulator runs to initialize or set initial events

Parameters:

simulator (qns.simulator.simulator.Simulator) – the simulator

operate(*qubits) int | List[int] | None[source]

operate on qubits and return the measure result

Parameters:

qubits – the operating qubits

Returns:

the measure result

set_own(node: QNode)[source]

set the owner of this quantum operator

qns.entity.operator.operator module

class qns.entity.operator.operator.QuantumOperator(name: str | None = None, node: QNode | None = None, gate: Callable[[...], None | int | List[int]] | None = None, delay: float | DelayModel = 0)[source]

Bases: Entity

Quantum operator can perfrom quantum operation or measurements on qubits. It has two modes:

Synchronous mode, users can use the operate function to operate qubits directly without delay Asynchronous mode, users will use events to operate quantum operations asynchronously

handle(event: Event) None[source]

handle is called to process an receiving Event.

Parameters:

event (qns.simulator.event.Event) – the event that send to this entity

install(simulator: Simulator) None[source]

install is called before simulator runs to initialize or set initial events

Parameters:

simulator (qns.simulator.simulator.Simulator) – the simulator

operate(*qubits) int | List[int] | None[source]

operate on qubits and return the measure result

Parameters:

qubits – the operating qubits

Returns:

the measure result

set_own(node: QNode)[source]

set the owner of this quantum operator

Module contents

class qns.entity.operator.OperateRequestEvent(operator, qubits: List[QuantumModel] = [], t: Time | None = None, name: str | None = None, by: Any | None = None)[source]

Bases: Event

OperateRequestEvent is the event that request a operator to handle

invoke() None[source]

Invoke the event, should be implemented

class qns.entity.operator.OperateResponseEvent(node: QNode, result: int | List[int] | None = None, request: OperateRequestEvent | None = None, t: Time | None = None, name: str | None = None, by: Any | None = None)[source]

Bases: Event

OperateResponseEvent is the event that returns the operating result

invoke() None[source]

Invoke the event, should be implemented

class qns.entity.operator.QuantumOperator(name: str | None = None, node: QNode | None = None, gate: Callable[[...], None | int | List[int]] | None = None, delay: float | DelayModel = 0)[source]

Bases: Entity

Quantum operator can perfrom quantum operation or measurements on qubits. It has two modes:

Synchronous mode, users can use the operate function to operate qubits directly without delay Asynchronous mode, users will use events to operate quantum operations asynchronously

handle(event: Event) None[source]

handle is called to process an receiving Event.

Parameters:

event (qns.simulator.event.Event) – the event that send to this entity

install(simulator: Simulator) None[source]

install is called before simulator runs to initialize or set initial events

Parameters:

simulator (qns.simulator.simulator.Simulator) – the simulator

operate(*qubits) int | List[int] | None[source]

operate on qubits and return the measure result

Parameters:

qubits – the operating qubits

Returns:

the measure result

set_own(node: QNode)[source]

set the owner of this quantum operator