#!/usr/bin/env python3
"""Throughput benchmark: pandas.read_csv + DataFrame.to_json.

Run:
    ./venv/bin/python bench_pandas.py
"""
import time
from pathlib import Path

import pandas as pd

HERE = Path(__file__).parent
SRC = HERE / "sample.csv"
DST = HERE / "out_pandas.ndjson"


def main() -> None:
    t0 = time.perf_counter()
    df = pd.read_csv(SRC)
    df.to_json(DST, orient="records", lines=True, force_ascii=False)
    dt = time.perf_counter() - t0
    rows = len(df)
    print(f"pandas read_csv + to_json: {rows:,} rows in {dt:.2f}s = {rows / dt:,.0f} rows/s "
          f"(pandas {pd.__version__})")


if __name__ == "__main__":
    main()
