o
    uyi	                     @   sn   d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	 d dl
mZ dZG dd deeZG d	d
 d
eZdS )    )Enum)	AnnotatedOptional)Fieldmodel_validator)ValidationError)IcebergBaseModelmainc                   @   s0   e Zd ZdZdZdefddZdefddZdS )	SnapshotRefTypebranchtagreturnc                 C   s   d| j  S )>Return the string representation of the SnapshotRefType class.zSnapshotRefType.)nameself r   W/home/ubuntu/maya3_transcribe/venv/lib/python3.10/site-packages/pyiceberg/table/refs.py__repr__    s   zSnapshotRefType.__repr__c                 C   s   | j S )r   )valuer   r   r   r   __str__$   s   zSnapshotRefType.__str__N)__name__
__module____qualname__BRANCHTAGstrr   r   r   r   r   r   r
      s
    r
   c                   @   s   e Zd ZU eddZeed< eddZeed< e	e
e edddd	f ed
< e	e
e edddd	f ed< e	e
e edddd	f ed< edddddZedddddZdS )SnapshotRefzsnapshot-id)aliassnapshot_idtypesnapshot_ref_typezmin-snapshots-to-keepNr   )r   defaultgtmin_snapshots_to_keepzmax-snapshot-age-msmax_snapshot_age_mszmax-ref-age-msmax_ref_age_msafter)moder   c                 C   "   | j d ur| jtjkrtd| S )Nz.Tags do not support setting minSnapshotsToKeep)r$   r!   r
   r   r   r   r   r   r   check_min_snapshots_to_keep0      z'SnapshotRef.check_min_snapshots_to_keepc                 C   r)   )Nz,Tags do not support setting maxSnapshotAgeMs)r%   r!   r
   r   r   r   r   r   r   check_max_snapshot_age_ms6   r+   z%SnapshotRef.check_max_snapshot_age_ms)r   r   )r   r   r   r   r   int__annotations__r!   r
   r   r   r   r*   r,   r   r   r   r   r   )   s   
 r   N)enumr   typingr   r   pydanticr   r   pyiceberg.exceptionsr   pyiceberg.typedefr   MAIN_BRANCHr   r
   r   r   r   r   r   <module>   s   