o
    +&]i                     @  s   d dl mZ d dlmZ er d dlmZ d dlmZ d dlm	Z	 G dd de
Zd ddZd!ddZd!ddZd"ddZd#ddZd!ddZdS )$    )annotations)TYPE_CHECKING)Sequence)_Backend)Metadatac                   @  s6   e Zd ZedddZeddd	ZedddZdS )AltairDatasetsErrormetar   returnc                C  sN   |d dkrt | |d d}| |S | jj d|d  d|}t|)Nsuffix.parquetzh datasets require `vegafusion`.
See upstream issue for details: https://github.com/vega/vega/issues/3961z'() called for unimplemented extension: z

)_failed_urlfrom_url__qualname__NotImplementedError)clsr   msg r   Y/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/altair/datasets/_exceptions.pyr      s   
zAltairDatasetsError.from_urlbackend_namestrc                C  s   |d rd}| t | | t| S |d r|d dv rX|d dv r,d}|d }nd}|d r5d	}n|d
 r<d}n|d }t||}| t | | t|g|R   S | t|S )Nis_imagezImage data is non-tabular.
is_tabularr
   >   .arrowr   )pyarrowpolars)r   
is_spatialzGeospatial datais_jsonzNon-tabular json	file_name)_failed_tabular_suggest_url_why_implementation_not_found)r   r   r   reasoninstallwhatr   r   r   from_tabular   s    

$z AltairDatasetsError.from_tabularprioritySequence[_Backend]c                C  s   d|}| |S )Nz&Found no supported backend, searched:
r   )r   r&   r   r   r   r   from_priority3   s   
z!AltairDatasetsError.from_priorityN)r   r   r	   r   )r   r   r   r   r	   r   )r&   r'   r	   r   )__name__
__module__r   classmethodr   r%   r(   r   r   r   r   r      s    r   r   r   reqsSequence[str]missingr	   ModuleNotFoundErrorc              
   C  sb   t |dkr|d d}nddd |D d }d| d	| d
|d| d| 
}t||dS )N   r   z packagez, c                 s  s    | ]}|V  qd S )Nr   ).0reqr   r   r   	<genexpr>?   s    z#module_not_found.<locals>.<genexpr>z	 packageszBackend z requires the z, but zK could not be found.
This can be installed with pip using:
    pip install z7
Or with conda using:
    conda install -c conda-forge )name)lenjoinr/   )r   r,   r.   dependsr   r   r   r   module_not_found9   s   r8   r   r   c                C     d| d dS )NUnable to load r   z
 via url.
r   r   r   r   r   r   J      r   c                C  r9   )Nr:   r   z as tabular data.
r   r;   r   r   r   r   N   r<   r   r$   c                C  s   |  d|dS )Nz is not supported natively by .r   )r$   r   r   r   r   r    R   r<   r    install_otherc                 G  s>   d}|rd dd |D }d| d}d| d| d	  d
S )N z or c                 s  s    | ]	}d | d V  qdS )`Nr   )r1   otherr   r   r   r3   Y   s    z_suggest_url.<locals>.<genexpr>z installing z, or usez

Instead, tryz0:
    from altair.datasets import data
    data.dataset_namez.url)r6   )r   r>   rA   othersr   r   r   r   V   s   r   c                C  s0   d}d|  dd |  D }d| | S )z=Search finished without finding a *declared* incompatibility.z    z,
c                 s  s>    | ]\}}| d r|du r| dr| d|V  qdS ))is_shabyteshas_TrD   =N)
startswith)r1   kvr   r   r   r3   e   s    z,_implementation_not_found.<locals>.<genexpr>z'Found no implementation that supports:
)r6   items)r   INDENTrecordr   r   r   r!   b   s
   r!   N)r   r   r,   r-   r.   r   r	   r/   )r   r   r	   r   )r$   r   r   r   r	   r   )r   r   r>   r   r	   r   )
__future__r   typingr   collections.abcr   altair.datasets._readerr   altair.datasets._typingr   	Exceptionr   r8   r   r   r    r   r!   r   r   r   r   <module>   s    
-



