o
    iS                     @  s   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZ er4d dlmZ d dlmZ eG d	d
 d
ZeG dd dZeG dd dZeG dd dZed Zed ZdS )    )annotations)	dataclass)TYPE_CHECKINGLiteral)issue_unstable_warning)DuplicateError)Schema)datetime)DataTypec                   @  sZ   e Zd ZU dZded< ded< ded< ded< ded	< d
ed< ded< d
ed< ded< dS )CatalogInfoz-Information for a catalog within a metastore.strname
str | Nonecommentdict[str, str]
propertiesoptionsstorage_locationdatetime | None
created_at
created_by
updated_at
updated_byN__name__
__module____qualname____doc____annotations__ r   r   R/home/app/Keep/.python/lib/python3.10/site-packages/polars/catalog/unity/models.pyr      s   
 r   c                   @  sR   e Zd ZU dZded< ded< ded< ded< d	ed
< ded< d	ed< ded< dS )NamespaceInfoz
    Information for a namespace within a catalog.

    This is also known by the name "schema" in unity catalog terminology.
    r   r   r   r   r   r   r   r   r   r   r   r   Nr   r   r   r   r    r!      s   
 r!   c                   @  s|   e Zd ZU dZded< ded< ded< ded< ded	< d
ed< ded< ded< ded< ded< ded< ded< dddZdS )	TableInfoz Information for a catalog table.r   r   r   r   Ztable_id	TableTypeZ
table_typer   zDataSourceFormat | NoneZdata_source_formatzlist[ColumnInfo] | Nonecolumnsr   r   r   r   r   r   r   returnSchema | Nonec                 C  sX   t d | jdu rdS t }| jD ]}|j|v r"d|j }t|| ||j< q|S )z
        Get the native polars schema of this table.

        .. warning::
            This functionality is considered **unstable**. It may be changed
            at any point without it being considered a breaking change.
        z9`get_polars_schema` functionality is considered unstable.Nzduplicate column name: )r   r$   r   r   r   get_polars_dtype)selfZschemaZcolumn_infomsgr   r   r    get_polars_schemaB   s   


zTableInfo.get_polars_schemaN)r%   r&   )r   r   r   r   r   r*   r   r   r   r    r"   1   s   
 r"   c                   @  sT   e Zd ZU dZded< ded< ded< ded< ded< d	ed
< ded< dddZdS )
ColumnInfoz0Information for a column within a catalog table.r   r   	type_nameZ	type_text	type_jsonz
int | Nonepositionr   r   Zpartition_indexr%   r
   c                 C  s    t d ddlm} || jS )z
        Get the native polars datatype of this column.

        .. warning::
            This functionality is considered **unstable**. It may be changed
            at any point without it being considered a breaking change.
        z8`get_polars_dtype` functionality is considered unstable.r   )PyCatalogClient)r   Zpolars._plrr/   Ztype_json_to_polars_typer-   )r(   r/   r   r   r    r'   g   s
   zColumnInfo.get_polars_dtypeN)r%   r
   )r   r   r   r   r   r'   r   r   r   r    r+   [   s   
 r+   )ZMANAGEDZEXTERNALZVIEWZMATERIALIZED_VIEWZSTREAMING_TABLEZMANAGED_SHALLOW_CLONEZFOREIGNZEXTERNAL_SHALLOW_CLONE)ZDELTAZCSVJSONZAVROZPARQUETZORCZTEXTZUNITY_CATALOGZDELTASHARINGZDATABRICKS_FORMATZREDSHIFT_FORMATZSNOWFLAKE_FORMATZSQLDW_FORMATZSALESFORCE_FORMATZBIGQUERY_FORMATZNETSUITE_FORMATZWORKDAY_RAAS_FORMATZ
HIVE_SERDEZHIVE_CUSTOMZVECTOR_INDEX_FORMATN)
__future__r   dataclassesr   typingr   r   Zpolars._utils.unstabler   Zpolars.exceptionsr   Zpolars.schemar   r	   Zpolars.datatypes.classesr
   r   r!   r"   r+   r#   ZDataSourceFormatr   r   r   r    <module>   s.    )