import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

from typing import Optional, Union

import qiskit
from qiskit import IBMQ, pulse
from library.dynamics_backend_estimator import DynamicsBackendEstimator

IBMQ.load_account()

provider = IBMQ.get_provider(hub='ibm-q-nus', group='default', project='default')
backend = provider.get_backend('ibm_cairo')

estimator = DynamicsBackendEstimator(backend)

estimator.run(

)

backend = JaxifiedDynamicsBackend() # Contains JaxSolver methods instead of Standard Solver
estimator = DynamicsBackendEstimator(backend)
estimator.run(
    observables, # Either Qiskit Operators, Custom Class, or processed ndarrays
    batch_params,
)