o
    +&]i                     @  s   U d Z ddlmZ ddlmZ ddlmZ erGddlZddlmZ ej	dkr-ddlm
Z
 nddlm
Z
 dd	lmZ dd
lmZ ddlmZmZ ded< 	 ded< 	ddddZdd ZdS )aY  
Load example datasets *remotely* from `vega-datasets`_.

Provides **70+** datasets, used throughout our `Example Gallery`_.

You can learn more about each dataset at `datapackage.md`_.

Examples
--------
**Primary Interface - Data Object**::

    from altair.datasets import data

    # Load with default engine (pandas)
    cars_df = data.cars()

    # Load with specific engine
    cars_polars = data.cars(engine="polars")
    cars_pyarrow = data.cars(engine="pyarrow")

    # Get URL
    cars_url = data.cars.url

    # Set default engine for all datasets
    data.set_default_engine("polars")
    movies_df = data.movies()  # Uses polars engine

    # List available datasets
    available_datasets = data.list_datasets()

**Expert Interface - Loader**::

    from altair.datasets import Loader

    load = Loader.from_backend("polars")
    load("penguins")
    load.url("penguins")

This method also provides *precise* <kbd>Tab</kbd> completions on the returned object::

    load("cars").<Tab>
    #            bottom_k
    #            drop
    #            drop_in_place
    #            drop_nans
    #            dtypes
    #            ...

**Expert Interface - Direct Functions**::

    from altair.datasets import load, url

    # Load a dataset
    cars_df = load("cars", backend="polars")

    # Get dataset URL
    cars_url = url("cars")

.. note::
   Requires installation of either `polars`_, `pandas`_, or `pyarrow`_.

.. _vega-datasets:
    https://github.com/vega/vega-datasets
.. _Example Gallery:
    https://altair-viz.github.io/gallery/index.html#example-gallery
.. _datapackage.md:
    https://github.com/vega/vega-datasets/blob/main/datapackage.md
.. _polars:
    https://docs.pola.rs/user-guide/installation/
.. _pandas:
    https://pandas.pydata.org/docs/getting_started/install.html
.. _pyarrow:
    https://arrow.apache.org/docs/python/install.html
    )annotations)TYPE_CHECKING)LoaderN)Any)      )LiteralString)
DataObject)_Load)Dataset	Extensionz_Load[Any, Any]loadr	   datanameDataset | LiteralStringsuffixExtension | Nonereturnstrc                C  sV   ddl m} zddlm} || |}W |S  |y*   ddlm} || }Y |S w )a  
    Return the address of a remote dataset.

    This is an expert interface. For most users, the data object interface is recommended::

        from altair.datasets import data

        cars_url = data.cars.url

    Parameters
    ----------
    name
        Name of the dataset/`Path.stem`_.
    suffix
        File extension/`Path.suffix`_.

        .. note::
            Only needed if ``name`` is available in multiple formats.

    Returns
    -------
    ``str``

    .. _Path.stem:
        https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.stem
    .. _Path.suffix:
        https://docs.python.org/3/library/pathlib.html#pathlib.PurePath.suffix
    r   )AltairDatasetsErrorr   )	csv_cache)altair.datasets._exceptionsr   altair.datasets._loaderr   urlaltair.datasets._cacher   )r   r   r   r   r   r    r   V/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/altair/datasets/__init__.pyr   z   s   !r   c                 C  sX   | dkrddl m} |S | dkrddlm} |S | dkr g dS dtd	| }t|)
Nr   r   )r   r   r   __all__)r   r   r   r   zmodule z has no attribute )altair.datasets._datar   r   r   __name__AttributeError)r   r   r   msgr   r   r   __getattr__   s   r#   )N)r   r   r   r   r   r   )__doc__
__future__r   typingr   r   r   sysr   version_infor   typing_extensionsr   r	   r
   altair.datasets._typingr   r   __annotations__r   r#   r   r   r   r   <module>   s&    K
/