from clickhouse_connect.driver import options
from clickhouse_connect.driver.types import ByteSource


def read_numpy_array(source: ByteSource, np_type: str, num_rows: int):
    np = options.np
    dtype = np.dtype(np_type)
    buffer = source.read_bytes(dtype.itemsize * num_rows)
    return np.frombuffer(buffer, dtype, num_rows)
