
    h                        S r SSKJr  SSKJr  SSKJr  SSKJrJr  SSK	J
r
Jr  \(       a  SSKJr   " S S	\
5      r " S
 S\5      r " S S\5      r " S S\
5      r " S S\5      r " S S\5      rg)z0Models to encapsulate Terms of Service metadata.    )annotations)datetime)Path)TYPE_CHECKINGOptional)	BaseModel
ConfigDict)Selfc                  L    \ rS rSr% \" SSS9rS\S'   S\S'   S\S	'   SS
 jrSrg)_ToSMetadata   allowT)extrafrozenr   versionstrtextsupportc                j    [        U[        5      (       d  [        $ U R                  UR                  :  $ )z!Compare the ToS metadata version.)
isinstancer   NotImplementedr   selfothers     9lib/python3.13/site-packages/conda_anaconda_tos/models.py__ge___ToSMetadata.__ge__   s(    %..!!||u}},,     N)r   r
   r   r   returnbool)	__name__
__module____qualname____firstlineno__r	   model_config__annotations__r   __static_attributes__r   r   r   r   r      s#    GD9L
IL-r   r   c                      \ rS rSrSrSrg)RemoteToSMetadata   z(Metadata schema for the remote endpoint.r   N)r"   r#   r$   r%   __doc__r(   r   r   r   r*   r*      s    2r   r*   c                  8    \ rS rSr% SrS\S'   S\S'   S\S'   S	rg
)LocalToSMetadata"   z'Metadata schema with acceptance fields.r   base_urlr!   tos_acceptedr   acceptance_timestampr   Nr"   r#   r$   r%   r,   r'   r(   r   r   r   r.   r.   "   s    1M""r   r.   c                  b    \ rS rSr% \" SS9rS\S'   S\S'   SrS	\S
'   SS jr\	SS j5       r
Srg)_MetadataPathPair*   T)r   r   metadatazOptional[Path]pathNzOptional[RemoteToSMetadata]remotec                    [        U[        5      (       d  [        $ U R                  R                  UR                  R                  :  $ )zSCompare the metadata version.

Critical for sorting a list of metadata path pairs.
)r   r5   r   r7   r   r   s     r   __lt___MetadataPathPair.__lt__2   s7    
 %!233!!}}$$u~~'='===r   c                T    U R                   =(       d    U R                  R                  $ )z,Get the latest text of the Terms of Service.)r9   r7   r   )r   s    r   latest_text_MetadataPathPair.latest_text;   s     ,t}}222r   r   )r   r
   r   r5   r    r!   )r   r
   r    r   )r"   r#   r$   r%   r	   r&   r'   r9   r;   propertyr>   r(   r   r   r   r5   r5   *   s<    T*L
*.F'.> 3 3r   r5   c                  @    \ rS rSr% SrS\S'   SrS\S'   SrS\S'   S	rg)

RemotePairA   z%Tuple of remote metadata and no path.r*   r7   NNoner8   r9   r   )	r"   r#   r$   r%   r,   r'   r8   r9   r(   r   r   r   rB   rB   A   s    /D$FDr   rB   c                  .    \ rS rSr% SrS\S'   S\S'   Srg)		LocalPairI   z!Tuple of local metadata and path.r.   r7   r   r8   r   Nr3   r   r   r   rF   rF   I   s    +
Jr   rF   N)r,   
__future__r   r   pathlibr   typingr   r   pydanticr   r	   r
   r   r*   r.   r5   rB   rF   r   r   r   <module>rL      si    7 "   * *
-9 
-3 3#| #3	 3." ! r   