Source code for ccxt_pandas.wrappers.schemas.order_book_schema
"""Order book data schema."""
import pandas as pd
import pandera.pandas as pa
from pandera.typing import Series
from ccxt_pandas.wrappers.schemas.base_schemas import BaseExchangeSchema
[docs]
class OrderBookSchema(BaseExchangeSchema):
"""Order book data schema.
Used by methods like fetch_order_book, watch_order_book.
Order books are returned as DataFrames with bids and asks combined,
differentiated by the 'side' column.
"""
price: Series[float] = pa.Field(ge=0, nullable=True, title="Price", description="Price level")
qty: Series[float] = pa.Field(
ge=0,
nullable=True,
title="Quantity",
description="Quantity at this price level",
)
side: Series[str] = pa.Field(
nullable=True,
isin=["bids", "asks"],
title="Side",
description="Side: 'bids' or 'asks'",
)
symbol: Series[str] | None = pa.Field(nullable=True, title="Symbol", description="Trading pair")
timestamp: Series[pd.Timestamp] | None = pa.Field(
nullable=True, title="Timestamp", description="Order book timestamp"
)
datetime: Series[pd.Timestamp] | None = pa.Field(
nullable=True, title="Datetime", description="Order book datetime (alias)"
)
nonce: Series[int] | None = pa.Field(
nullable=True, title="Nonce", description="Order book sequence number"
)