o
    _�¿j‹
  ã                   @   s¸   d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZ ddlmZ ddlmZ ddlmZmZ d	d
ddœdededededB def
dd„Zg d¢ZdS )u„  indiaopt â€” Enterprise-grade NSE & BSE market data library.

Public API surface â€” import everything you need from here:

    from indiaopt import NSEClient, BSEClient, OptionChainResult, IndiaOptError
    from indiaopt import get_client, fetch_option_chain

Example::

    import asyncio
    from indiaopt import NSEClient

    async def main():
        async with NSEClient() as client:
            result = await client.fetch_option_chain("NIFTY", is_index=True)
            print(result.spot_price, result.atm_strike)
            for row in result.data:
                print(row.strike, row.call_oi, row.put_oi)

    asyncio.run(main())
é    )Ú__version__)ÚSettingsÚget_settings)	ÚCircuitOpenErrorÚConfigurationErrorÚ
FetchErrorÚFetchTimeoutErrorÚIndiaOptErrorÚNetworkErrorÚ
ParseErrorÚRateLimitErrorÚValidationError)Ú	BSEClient)Ú
get_client)Ú	NSEClient)ÚOptionChainResultÚOptionChainRowTÚNSEN)Úis_indexÚexchangeÚsettingsÚsymbolr   r   r   Úreturnc             	   Ã   s^   �t ||d�}|4 I dH š |j| |d�I dH W  d  ƒI dH  S 1 I dH s(w   Y  dS )uÁ  Convenience coroutine â€” fetch option chain for one symbol.

    Args:
        symbol:    Instrument symbol (e.g. ``"NIFTY"``, ``"BANKNIFTY"``).
        is_index:  ``True`` for index instruments, ``False`` for equities.
        exchange:  ``"NSE"`` (default) or ``"BSE"``.
        settings:  Optional :class:`~indiaopt.config.settings.Settings` override.

    Returns:
        :class:`~indiaopt.models.option_chain.OptionChainResult`

    Raises:
        :class:`~indiaopt.exceptions.FetchError`: on unrecoverable fetch failure.
        :class:`~indiaopt.exceptions.CircuitOpenError`: when circuit breaker is open.
        :class:`~indiaopt.exceptions.FetchTimeoutError`: when fetch exceeds timeout.
    )r   r   N)r   )r   Úfetch_option_chain)r   r   r   r   Úclient© r   úL/home/dinkstrade/pdmp/venv/lib/python3.10/site-packages/indiaopt/__init__.pyr   *   s
   €0ÿr   )r   r	   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Ú__doc__Úindiaopt._versionr   Úindiaopt.config.settingsr   r   Úindiaopt.exceptionsr   r   r   r   r	   r
   r   r   r   Úindiaopt.exchanges.bser   Úindiaopt.exchanges.factoryr   Úindiaopt.exchanges.nser   Úindiaopt.models.option_chainr   r   ÚstrÚboolr   Ú__all__r   r   r   r   Ú<module>   s.    ,ûÿýüû
ú