This PR is a first step towards Qiskit Pulse migration to Qiskit Dynamics.
I
Details and comments
t contains:
A full migration of all qiskit.pulse files into the pulse module of Dynamics, with their imports passing from qiskit.pulse to qiskit_dynamics.pulse
All the tests of the pulse module present in Qiskit, now migrated to the pulse tests of Dynamics (I removed one that had to do with Qobj at pulse level, I'm not sure what is the future for such interface in Qiskit core)
A full migration of qiskit.scheduler module, contained within pulse module of Dynamics.
A new Python file called update_circuit, called upon import of qiskit_dynamics.pulse, whose purpose is to dynamically add properties and methods to the QuantumCircuit object that enable the recovery of the pulse level features (e.g. calibrations, op_start_times, add_calibration...). It also copies and overrides the assign_parameters , compose, and copy_empty_like methods of the original QuantumCircuit object, as current versions of those methods involve updating the calibrations of the circuit. We could maintain them in the future by just catching the latest implementation in Qiskit core and adding the piece dealing with custom calibrations. This editing of the original class occurs only if the concerned attributes are not present (meaning that Qiskit 2.0 and above is used).
Summary
This PR is a first step towards Qiskit Pulse migration to Qiskit Dynamics.
I
Details and comments
t contains: