+
    {:jL                        R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	 ]P                  '       d   ^ RIHt ] ! R R4      4       t ! R R	4      t ! R
 R]4      tR# )z
Minimal (just what conda-index uses) filesystem abstraction.

Allows `fsspec <https://filesystem-spec.readthedocs.io/>`_ to be used to index
remote repositories, without making it a required dependency.
)annotationsN)	dataclass)Path)AbstractFileSystemc                  :    ] tR t^t$ RtR]R&   R]R&   R]R&   RtR	# )
FileInfoz)
Filename and a bit of stat information.
strfnzfloat | intst_mtimeintst_size N)__name__
__module____qualname____firstlineno____doc____annotations____static_attributes__r       4lib/python3.14/site-packages/conda_index/index/fs.pyr   r      s     	GLr   r   c                  T    ] tR t^"tRtRR R lltR R ltR tR R ltR	 R
 lt	Rt
R# )	MinimalFSzD
Filesystem API as needed by conda-index, for fsspec compatibility.
c                    V ^8  d   QhRRRR/#    pathr   moder   )formats   "r   __annotate__MinimalFS.__annotate__'   s     % % %C %r   c                	6    \        V4      P                  V4      # N)r   openselfr   r   s   &&&r   r#   MinimalFS.open'   s    Dzt$$r   c                   V ^8  d   QhRR/# r   r   r   r   )r   s   "r   r   r    *   s     
 
 
r   c                	b    \         P                  ! V4      pR VP                  RVP                  /# )sizemtime)osstatr   r
   )r%   r   	st_results   && r   r-   MinimalFS.stat*   s/    GGDM	I%%Y''
 	
r   c                	>    \         P                  P                  ! V!  # r"   )r,   r   joinr%   pathss   &*r   r1   MinimalFS.join1   s    ww||U##r   c                   V ^8  d   QhRR/# )r   returnztyping.Iterable[dict]r   )r   s   "r   r   r    4   s      4 r   c              #  	   "   \         P                  ! V4       FT  p\         P                  ! \         P                  P	                  W4      4      pR VRVP
                  RVP                  /x  KV  	  R# 5i)namer+   r*   N)r,   listdirr-   r   r1   r
   r   )r%   r   r8   stat_results   &&  r   r9   MinimalFS.listdir4   sX     JJt$D''"'',,t":;K--++  %s   A1A3c                   V ^8  d   QhRR/# )r   r6   r   r   )r   s   "r   r   r    =   s     & & &r   c                	@    \         P                  P                  V4      # r"   )r,   r   basenamer%   r   s   &&r   r>   MinimalFS.basename=   s    ww%%r   r   Nrb)r   r   r   r   r   r#   r-   r1   r9   r>   r   r   r   r   r   r   "   s%    %
$& &r   r   c                  f    ] tR t^At$ RtR]R&   R tRR R lltR R ltR	 t	R
 R lt
R R ltRtR# )FsspecFSz;
Wrap a fsspec filesystem to pass to :class:`ChannelIndex`
r   	fsspec_fsc                	    Wn         R # r"   rE   )r%   rE   s   &&r   __init__FsspecFS.__init__H   s    "r   c                    V ^8  d   QhRRRR/# r   r   )r   s   "r   r   FsspecFS.__annotate__K   s     / / /C /r   c                	8    V P                   P                  W4      # r"   )rE   r#   r$   s   &&&r   r#   FsspecFS.openK   s    ~~""4..r   c                   V ^8  d   QhRR/# r(   r   )r   s   "r   r   rK   N   s     ) ) )r   c                	8    V P                   P                  V4      # r"   )rE   r-   r?   s   &&r   r-   FsspecFS.statN   s    ~~""4((r   c                	2    R P                  R V 4       4      # )/c              3  B   "   T F  qP                  R 4      x  K  	  R# 5i)rR   N)rstrip).0ps   & r   	<genexpr> FsspecFS.join.<locals>.<genexpr>S   s     5u!us   )r1   r2   s   &*r   r1   FsspecFS.joinQ   s    xx5u555r   c                    V ^8  d   QhRRRR/# )r   r   r   r6   z
list[dict]r   )r   s   "r   r   rK   U   s     : :C :J :r   c                	<    V P                   P                  VR R7      # )T)details)rE   r9   r?   s   &&r   r9   FsspecFS.listdirU   s    ~~%%dD%99r   c                    V ^8  d   QhRRRR/# )r   r   r   r6   r   )r   s   "r   r   rK   X   s     ' 'S 'S 'r   c                	4    VP                  R ^4      R,          # )rR   )rsplitr?   s   &&r   r>   FsspecFS.basenameX   s    {{3"2&&r   rG   NrA   )r   r   r   r   r   r   rH   r#   r-   r1   r9   r>   r   r   r   r   rD   rD   A   s2     "!#/)6:' 'r   rD   )r   
__future__r   r,   os.pathtypingdataclassesr   pathlibr   TYPE_CHECKINGfsspecr   r   r   rD   r   r   r   <module>rj      s\    # 	   ! 	)   & &>'y 'r   