+
    i                        ^ RI Ht ^ RIt^ RIHt ^RIHtHtHtH	t	H
t
 ^RIHt ^RIHtHt ]'       d   ^RIHt ^RIHt ]P(                  ! ]4      t ! R	 R
4      t ! R R4      tR# )    )annotationsN)TYPE_CHECKING)MarketModelCandlestickResponseOrderbookResponseSeriesModel
TradeModel)DataFrameList)CandlestickPeriodMarketStatus)KalshiClient)Eventc                  P   ] tR t^tRtR R lt]R R l4       t]R R l4       t]R R	 l4       t	]R
 R l4       t
]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R$ R% l4       t]R& R' l4       tR( R) ltR*R+/R, R- llt]P8                  3R. R/ lltR?R0 R1 lltR2 R3 ltR4 R5 lt R6 R7 lt!R8 R9 lt"R: R; lt#R< R= lt$R>t%R+# )@MarketzRepresents a Kalshi Market.

Key fields are exposed as typed properties for IDE support.
All other MarketModel fields are accessible via attribute delegation.
c               $    V ^8  d   QhRRRRRR/# )   clientr   datar   returnNone )formats   "W/home/wkmabra/.openclaw/workspace/venv/lib/python3.14/site-packages/pykalshi/markets.py__annotate__Market.__annotate__   !      | ; 4     c                	    Wn         W n        R # N_clientr   selfr   r   s   &&&r   __init__Market.__init__       	r   c                   V ^8  d   QhRR/# r   r   strr   )r   s   "r   r   r                r   c                	.    V P                   P                  # r   r   tickerr#   s   &r   r-   Market.ticker       yyr   c                   V ^8  d   QhRR/# r   r   
str | Noner   )r   s   "r   r   r   #   s     & &j &r   c                	.    V P                   P                  # r   )r   event_tickerr.   s   &r   r5   Market.event_ticker"   s    yy%%%r   c                   V ^8  d   QhRR/# )r   r   zMarketStatus | Noner   )r   s   "r   r   r   '   s        +  r   c                	.    V P                   P                  # r   )r   statusr.   s   &r   r9   Market.status&   r0   r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   +         z r   c                	.    V P                   P                  # r   r   titler.   s   &r   r?   Market.title*       yyr   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   /        " "* "r   c                	.    V P                   P                  # r   )r   subtitler.   s   &r   rE   Market.subtitle.       yy!!!r   c                   V ^8  d   QhRR/# r   r   
int | Noner   )r   s   "r   r   r   3        ! ! !r   c                	.    V P                   P                  # r   )r   yes_bidr.   s   &r   rM   Market.yes_bid2       yy   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   7   rK   r   c                	.    V P                   P                  # r   )r   yes_askr.   s   &r   rR   Market.yes_ask6   rO   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   ;           
  r   c                	.    V P                   P                  # r   )r   no_bidr.   s   &r   rW   Market.no_bid:   r0   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   ?   rU   r   c                	.    V P                   P                  # r   )r   no_askr.   s   &r   r[   Market.no_ask>   r0   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   C        $ $J $r   c                	.    V P                   P                  # r   )r   
last_pricer.   s   &r   r`   Market.last_priceB       yy###r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   G   rU   r   c                	.    V P                   P                  # r   )r   volumer.   s   &r   re   Market.volumeF   r0   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   K   r^   r   c                	.    V P                   P                  # r   )r   
volume_24hr.   s   &r   ri   Market.volume_24hJ   rb   r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   O   s     ' 'z 'r   c                	.    V P                   P                  # r   )r   open_interestr.   s   &r   rm   Market.open_interestN   s    yy&&&r   c                   V ^8  d   QhRR/# rI   r   )r   s   "r   r   r   S        # #: #r   c                	.    V P                   P                  # r   )r   	liquidityr.   s   &r   rr   Market.liquidityR       yy"""r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   W   rp   r   c                	.    V P                   P                  # r   )r   	open_timer.   s   &r   rw   Market.open_timeV   rt   r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   [   r^   r   c                	.    V P                   P                  # r   )r   
close_timer.   s   &r   r{   Market.close_timeZ   rb   r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   _   rU   r   c                	.    V P                   P                  # r   )r   resultr.   s   &r   r   Market.result^   r0   r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   c   s     ' 'z 'r   c                .    V P                   P                  # )z.Series ticker if available in the market data.)r   series_tickerr.   s   &r   r   Market.series_tickerb   s     yy&&&r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r   g   s      z r   c                   V P                   P                  e   V P                   P                  # V P                   P                  '       g   R#  V P                  P	                  RV P                   P                   24      pVR,          R,          #   \
         d7   p\        P                  RT P                   P                  T4        Rp?R# Rp?ii ; i)a  Fetch series_ticker from the event API if not present in market data.

Makes an API call to look up the series via the event. Use this when
you need the series_ticker but it wasn't included in the market response.

Returns:
    The series ticker, or None if it couldn't be resolved.
Nz/events/eventr   z*Failed to resolve series_ticker for %s: %s)	r   r   r5   r!   get	Exceptionloggerwarningr-   )r#   event_responsees   &  r   resolve_series_tickerMarket.resolve_series_tickerg   s     99"".99***yy%%%	!\\--9O9O8P.QRN!'*?;; 	NN<dii>N>NPQ 		s   AB C+CCdepthNc                    V ^8  d   QhRRRR/# )r   r   rJ   r   r   r   )r   s   "r   r   r   }   s     
: 
:j 
:<M 
:r   c                   RV P                   P                   R2pV'       d   VRV 2,          pV P                  P                  V4      p\        P
                  ! V4      # )zxGet the orderbook for this market.

Args:
    depth: Number of price levels to return (1-100). None returns all levels.
	/markets/z
/orderbookz?depth=)r   r-   r!   r   r   model_validate)r#   r   endpointresponses   &$  r   get_orderbookMarket.get_orderbook}   sV     tyy//0
;'%))H<<##H- //99r   c               (    V ^8  d   QhRRRRRRRR/# )r   start_tsintend_tsperiodr   r   r   r   )r   s   "r   r   r      s2     < << < "	<
 
<r   c                B   V P                  4       pV'       g$   \        RV P                  P                   R24      hRV RV RVP                   2pRV RV P                  P                   RV 2pV P
                  P                  V4      p\        P                  ! V4      # )	zGet candlestick data for this market.

Args:
    start_ts: Start timestamp (Unix seconds).
    end_ts: End timestamp (Unix seconds).
    period: Candlestick period (ONE_MINUTE, ONE_HOUR, or ONE_DAY).
zMarket z does not have a series_ticker.z	start_ts=z&end_ts=z&period_interval=z/series/r   z/candlesticks?)	r   
ValueErrorr   r-   valuer!   r   r   r   )r#   r   r   r   seriesqueryr   r   s   &&&&    r   get_candlesticksMarket.get_candlesticks   s     ++-wtyy'7'7&88WXYYH:XfX5Fv||nUfXYtyy/?/?.@ugV<<##H-"11(;;r   c               0    V ^8  d   QhRRRRRRRRRR	R
R/# )r   min_tsrJ   max_tslimitr   cursorr3   	fetch_allboolr   zDataFrameList[TradeModel]r   )r   s   "r   r   r      sF     
 

 
 	

 
 
 
#
r   c           	     X    V P                   P                  V P                  VVVVVR7      # )a,  Get public trade history for this market.

Args:
    min_ts: Minimum timestamp (Unix seconds).
    max_ts: Maximum timestamp (Unix seconds).
    limit: Maximum trades per page (default 100).
    cursor: Pagination cursor for fetching next page.
    fetch_all: If True, automatically fetch all pages.
)r-   r   r   r   r   r   )r!   
get_tradesr-   )r#   r   r   r   r   r   s   &&&&&&r   r   Market.get_trades   s6    " ||&&;; ' 
 	
r   c                   V ^8  d   QhRR/# )r   r   zEvent | Noner   )r   s   "r   r   r      s     9 9< 9r   c                t    V P                   '       g   R# V P                  P                  V P                   4      # )zjGet the parent Event for this market.

Returns:
    The Event object, or None if event_ticker is not set.
N)r5   r!   	get_eventr.   s   &r   r   Market.get_event   s.        ||%%d&7&788r   c                   V ^8  d   QhRR/# r   namer)   r   )r   s   "r   r   r      s     ( ( (r   c                	.    \        V P                  V4      # r   getattrr   r#   r   s   &&r   __getattr__Market.__getattr__   s    tyy$''r   c                    V ^8  d   QhRRRR/# )r   otherobjectr   r   r   )r   s   "r   r   r      s     5 5F 5t 5r   c                	    \        V\        4      '       g   \        # V P                  P                  VP                  P                  8H  # r   )
isinstancer   NotImplementedr   r-   )r#   r   s   &&r   __eq__Market.__eq__   s4    %((!!yy5::#4#444r   c                   V ^8  d   QhRR/# )r   r   r   r   )r   s   "r   r   r      s     & &# &r   c                	@    \        V P                  P                  4      # r   )hashr   r-   r.   s   &r   __hash__Market.__hash__   s    DII$$%%r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r      s     ' '# 'r   c                	   V P                   '       d   V P                   P                  MR pRV P                   2V.pV P                  '       d+   VP	                  V P                  P                  4       4       MzV P                  e   V P                  MR pV P                  e   V P                  MR pVP	                  V RV 24       V P                  e   VP	                  RV P                   24       RP                  V4      R,           # )?z<Market /zlast= | >)
r9   r   r-   r   appendupperrM   rR   r`   join)r#   r9   partsbidasks   &    r   __repr__Market.__repr__   s    &*kkk""sDKK=)62 ;;;LL**,-"&,,":$,,C"&,,":$,,CLLC5#(*uT__$567zz% 3&&r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r           ! !S !r   c                	    ^RI Hp V! V 4      # )   )market_html)_reprr   )r#   r   s   & r   _repr_html_Market._repr_html_       &4  r   r    )NNd   NF)&__name__
__module____qualname____firstlineno____doc__r$   propertyr-   r5   r9   r?   rE   rM   rR   rW   r[   r`   re   ri   rm   rr   rw   r{   r   r   r   r   r   ONE_HOURr   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s        & &       " " ! ! ! !         $ $     $ $ ' ' # # # # $ $     ' ',
:4 
:  %6$>$>	<,
49(5
&' ! !r   r   c                      ] tR t^tRtR R lt]R R l4       t]R R l4       t]R R	 l4       t	R
 R lt
R R ltR R ltR R ltR R ltRtR# )Seriesz;Represents a Kalshi Series (collection of related markets).c               $    V ^8  d   QhRRRRRR/# )r   r   r   r   r   r   r   r   )r   s   "r   r   Series.__annotate__   r   r   c                	    Wn         W n        R # r   r    r"   s   &&&r   r$   Series.__init__   r&   r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r      r*   r   c                	.    V P                   P                  # r   r,   r.   s   &r   r-   Series.ticker   r0   r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r      r<   r   c                	.    V P                   P                  # r   r>   r.   s   &r   r?   Series.title   rA   r   c                   V ^8  d   QhRR/# r2   r   )r   s   "r   r   r      rC   r   c                	.    V P                   P                  # r   )r   categoryr.   s   &r   r   Series.category   rG   r   c                   V ^8  d   QhRR/# )r   r   zDataFrameList[Market]r   )r   s   "r   r   r      s     M M'< Mr   c                R    V P                   P                  ! RRV P                  /VB # )zGet all markets in this series.r   r   )r!   get_marketsr-   r#   kwargss   &,r   r   Series.get_markets   s#    ||''LdkkLVLLr   c                   V ^8  d   QhRR/# )r   r   zDataFrameList[Event]r   )r   s   "r   r   r      s     L L&: Lr   c                R    V P                   P                  ! RRV P                  /VB # )zGet all events in this series.r   r   )r!   
get_eventsr-   r   s   &,r   r  Series.get_events   s#    ||&&KT[[KFKKr   c                   V ^8  d   QhRR/# r   r   )r   s   "r   r   r      s     ( ( (r   c                	.    \        V P                  V4      # r   r   r   s   &&r   r   Series.__getattr__   s    tyy$''r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r     s     ' '# 'r   c                	   R V P                    2.pV P                  '       d   VP                  V P                  4       V P                  '       d   VP                  V P                  4       RP	                  V4      R,           # )z<Series r   r   )r-   r   r   r?   r   )r#   r   s   & r   r   Series.__repr__  s[    DKK=)*===LL':::LL$zz% 3&&r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   r   
  r   r   c                	    ^RI Hp V! V 4      # )r   )series_html)r   r  )r#   r  s   & r   r   Series._repr_html_
  r   r   r    N)r   r   r   r   r   r$   r   r-   r?   r   r   r  r   r   r   r   r   r   r   r   r      sf    E       " "ML('! !r   r   )
__future__r   loggingtypingr   modelsr   r   r   r   r	   	dataframer
   enumsr   r   r   r   eventsr   	getLoggerr   r   r   r   r   r   r   <module>r     sJ    "    ` ` $ 2$			8	$P! P!f(! (!r   