from graphviz import Digraph
# libraries that only interact with NumPy are not listed, e.g.,
# TensorFlow, PyTorch, scipy.sparse
g = Digraph(node_attr={'fontname': 'courier'})
g.edge('dask', 'numpy')
g.edge('dask', 'cupy')
g.edge('dask', 'sparse')
g.edge('dask', 'numpy.ma')
g.edge('dask', 'pandas')
g.edge('cupy', 'numpy')
g.edge('sparse', 'numpy')
g.edge('numpy.ma', 'numpy')
g.edge('pandas', 'numpy')
g.edge('pandas', 'numpy.ma')
g.edge('jax', 'numpy')
g.edge('pint', 'dask')
g.edge('pint', 'pandas')
g.edge('pint', 'numpy')
g.edge('xarray', 'dask')
g.edge('xarray', 'cupy')
g.edge('xarray', 'sparse')
g.edge('xarray', 'numpy')
g.edge('xarray', 'pandas')
g.edge('xarray', 'numpy.ma')
g.edge('xarray', 'pint')
g.edge('xarray', 'jax')
g