o
    +&]i                     @  sP  U d 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l
mZ er[ddlZddlmZmZ dd	lmZ ejd
krCddlmZ nddlmZ ejdkrUddlmZ nddlmZ g dZeeee	f  Zded< G dd deeee	f  Zd#ddZeddZeddZeddZeddZ eddZ!eddZ"edd Z#ed!d"Z$dS )$z;Set-like guards for matching metadata to an implementation.    )annotations)Set)chain)TYPE_CHECKINGAny)v1N)IterableIterator)Metadata)      )Unpack)r   
   )	TypeAlias)ItemsMetaIsis_arrowis_csvis_jsonis_metais_not_tabular
is_parquet
is_spatialis_topois_tsvr   r   c                      s   e Zd ZU ded< d/ddZed0d
dZd1ddZd2ddZd3 fddZ	d3ddZ
d4ddZd5ddZd6d d!Zd7d#d$Zd5d%d&Zd8d+d,Zd9d-d.Z  ZS ):r   frozenset[tuple[str, Any]]	_requireskwdsreturnNonec                C  s   t | d| d S )Nr   )object__setattr__)selfr    r#   Z/var/www/html/IGF-ODF-V3/venv/lib/python3.10/site-packages/altair/datasets/_constraints.py__init__.   s   zMetaIs.__init__metar
   c                C  s   | t | S N)	frozensetitems)clsr&   r#   r#   r$   from_metadata1   s   zMetaIs.from_metadatac                 C  s(   t rddd}|di t| S t| S )	Nr   Unpack[Metadata]r   r
   c                  [  s   | S r'   r#   r   r#   r#   r$   collect8   s   z#MetaIs.to_metadata.<locals>.collect)r   r,   r   r
   r#   )r   dict)r"   r.   r#   r#   r$   to_metadata5   s   
zMetaIs.to_metadatanw.Exprc                 C  s*   | sd| }t |tdd | D S )z.Convert constraint into a narwhals expression.z2Unable to convert an empty set to an expression:

c                 s  s"    | ]\}}t ||kV  qd S r'   )nwcol).0namevalr#   r#   r$   	<genexpr>C        z!MetaIs.to_expr.<locals>.<genexpr>)	TypeErrorr2   all_horizontal)r"   msgr#   r#   r$   to_expr>   s   
zMetaIs.to_exprotherIterable[Any]boolc                   s   t  |S r'   )super
isdisjointr"   r=   	__class__r#   r$   rA   E      zMetaIs.isdisjointc                 C     | j |S r'   )r   issubsetrB   r#   r#   r$   rG   H   rE   zMetaIs.issubsetr   c                C  s
   | j |kS r'   r   )r"   r&   r#   r#   r$   __call__K      
zMetaIs.__call__intc                 C  s
   t | jS r'   )hashr   r"   r#   r#   r$   __hash__N   rJ   zMetaIs.__hash__xr    c                 C  rF   r'   )r   __contains__)r"   rO   r#   r#   r$   rP   Q   rE   zMetaIs.__contains__Iterator[tuple[str, Any]]c                 c  s    | j E d H  d S r'   rH   rM   r#   r#   r$   __iter__T   s   zMetaIs.__iter__c                 C  s
   | j  S r'   )r   __len__rM   r#   r#   r$   rS   W   rJ   zMetaIs.__len__r5   strvaluer   c                 C  s"   t | jd| d| }t|)Nz% is immutable.
Could not assign self.z = )type__name__r9   )r"   r5   rU   r;   r#   r#   r$   r!   Z   s   zMetaIs.__setattr__c                 C  sp   t | }|s	d}n)|dd  }r&dtd| dgdd | D }nddd | D }d	| d
S )Nz<placeholder>suffixz, z'*'c                 s  "    | ]\}}| d |V  qdS =Nr#   r4   kvr#   r#   r$   r7   g   r8   z"MetaIs.__repr__.<locals>.<genexpr>c                 s  rZ   r[   r#   r]   r#   r#   r$   r7   j   r8   zis_meta())r/   popjoinr   r)   )r"   r)   contentsrX   r#   r#   r$   __repr__a   s    zMetaIs.__repr__)r   r   r   r   )r&   r
   r   r   )r   r
   )r   r1   )r=   r>   r   r?   )r&   r   r   r?   )r   rK   )rO   r    r   r?   )r   rQ   )r5   rT   rU   r   )r   rT   )rW   
__module____qualname____annotations__r%   classmethodr+   r0   r<   rA   rG   rI   rN   rP   rR   rS   r!   rd   __classcell__r#   r#   rC   r$   r   +   s    
 


	






r   r   r,   r   c                  K  s
   t | S r'   )r   r+   r-   r#   r#   r$   r   n   rJ   r   z.csv)rX   z.jsonz.tsvz.arrowz.parquetT)r   )r   F)
is_tabular)r   r,   r   r   )%__doc__
__future__r   collections.abcr   	itertoolsr   typingr   r   narwhals.stabler   r2   sysr   r	   altair.datasets._typingr
   version_infor   typing_extensionsr   __all__tuplerT   r   rg   r   r   r   r   r   r   r   r   r   r   r#   r#   r#   r$   <module>   s8    


C






