Copied from qBraid/qBraid #848
The circuit_drawer function currently uses get_program_type_alias to get the input quantum program type, and based on what package it is, imports and invokes the necessary draw functionality using that package.
Instead, we should add an abstract draw method to the GateModelProgram class, and implement the draw method for each package in qbraid.programs.gate_model. The available keyword arguments should be defined based on those available for that package. The current output and as_package arguments of the current circuit_drawer method will therefore not be needed.
Copied from qBraid/qBraid #848
The circuit_drawer function currently uses
get_program_type_aliasto get the input quantum program type, and based on what package it is, imports and invokes the necessary draw functionality using that package.Instead, we should add an abstract
drawmethod to the GateModelProgram class, and implement the draw method for each package in qbraid.programs.gate_model. The available keyword arguments should be defined based on those available for that package. The currentoutputandas_packagearguments of the currentcircuit_drawermethod will therefore not be needed.