+
    &j                     D    ^ RI t ^ RIt^ RIHt ^RIHt  ! R R]4      tR# )    N)AbstractFileSystem)
MemoryFilec                      a a ] tR t^
t oRtRtRtRV 3R llt]V 3R l4       t	R t
]R 4       t]RR l4       tRR	 ltRR
 ltRR ltRR ltRtVtV ;t# )GitFileSystemzTBrowse the files of a local git repo at any hash/tag/branch

(experimental backend)
 Tc                   < \         SV `  ! R/ VB  \        P                  ! T;'       g     T;'       g    \        P
                  ! 4       4      V n        T;'       g    RV n        R# )a  

Parameters
----------
path: str (optional)
    Local location of the repo (uses current directory if not given).
    May be deprecated in favour of ``fo``. When used with a higher
    level function such as fsspec.open(), may be of the form
    "git://[path-to-repo[:]][ref@]path/to/file" (but the actual
    file path should not contain "@" or ":").
fo: str (optional)
    Same as ``path``, but passed as part of a chained URL. This one
    takes precedence if both are given.
ref: str (optional)
    Reference to work with, could be a hash, tag or branch name. Defaults
    to current working tree. Note that ``ls`` and ``open`` also take hash,
    so this becomes the default for those operations
kwargs
masterN )super__init__pygit2
Repositoryosgetcwdreporef)selfpathfor   kwargs	__class__s   &&&&,r/Users/jameslopez/projects/CWCArchive/cwc-podcast/.venv/lib/python3.14/site-packages/fsspec/implementations/git.pyr   GitFileSystem.__init__   sJ    ( 	"6"%%b&?&?D&?&?BIIK@	??(    c                   < \         SV `  V4      P                  R 4      pRV9   d   VP                  R^4      ^,          pRV9   d   VP                  R^4      ^,          pVP                  R 4      # )/:@)r   _strip_protocollstripsplit)clsr   r   s   &&r   r   GitFileSystem._strip_protocol+   sd    w&t,33C8$;::c1%a(D$;::c1%a(D{{3r   c                >   V P                   P                  T;'       g    V P                  4      w  r2VP                  R 4      pVP                  pV FH  pV'       g   K  \        V\        P                  4      '       g   K/  We9  d   \        V4      hWV,          pKJ  	  V# )r   )	r   resolve_refishr   r!   tree
isinstancer   TreeFileNotFoundError)r   r   r   commpartsr&   parts   &&&    r   _path_to_objectGitFileSystem._path_to_object4   sv    II,,S__DHH=	

3yyDt
455#+D11z	 
 r   c                    V P                  R 4      p / pRV 9   d   V P                  R^4      w  VR&   p RV 9   d   V P                  R^4      w  VR&   p V# )zgit://r   r   r   r   )removeprefixr!   )r   outs   & r   _get_kwargs_from_urls#GitFileSystem._get_kwargs_from_urls?   s\      *$; $

3 2CK$;#zz#q1CJ
r   c           
     x   \        V \        P                  4      pR V'       d   RMRRV'       d6   RP                  YP                  ;'       g    R.4      P                  R4      MV P                  R\        V P                  4      RV P                  f   RMV P                  R	 R
V'       d   ^ /# V P                  /# )type	directoryfilenamer   r   hexmode100644osize)
r'   r   r(   joinr8   r    stridfilemoder=   )objr   is_dirs   && r   _object_to_infoGitFileSystem._object_to_infoI   s     C-6Kv@D$B/077<#((3svv; 4HS\\!<LA
 	
 &)XX
 	
r   c                &   V P                  V P                  V4      V4      p\        V\        P                  4      '       d   TMV. Uu. uF<  pV'       d   \
        P                  Wa4      M\
        P                  Wa4      R ,          NK>  	  up# u upi )r8   )r-   r   r'   r   r(   r   rD   )r   r   detailr   r   r&   rB   s   &&&&,  r   lsGitFileSystem.lsW   s    ##D$8$8$>D
 !+4 = =D6I	
 J  ))#4..s9&AB J	
 	
 
s   	B5Bc                n    V P                  V P                  V4      V4      p\        P                  WA4      # N)r-   r   r   rD   )r   r   r   r   r&   s   &&&, r   infoGitFileSystem.info`   s0    ##D$8$8$>D,,T88r   c                4    V P                  WR 7      R,          # ))r   r9   )rL   )r   r   r   s   &&&r   ukeyGitFileSystem.ukeyd   s    yyy'..r   c                x    T P                  Y;'       g    V P                  4      p\        VP                  R 7      # ))data)r-   r   r   rR   )	r   r   r:   
block_size
autocommitcache_optionsr   r   rB   s	   &&&&&&&, r   _openGitFileSystem._openg   s-     ""49sxx((r   )r   r   )NNNrK   )TN)rbNTNN)__name__
__module____qualname____firstlineno____doc__root_markercachabler   classmethodr   r-   staticmethodr2   rD   rH   rL   rO   rV   __static_attributes____classdictcell____classcell__)r   __classdict__s   @@r   r   r   
   su     
 KH#0    	   
 

9/) )r   r   )r   r   fsspec.specr   memoryr   r   r
   r   r   <module>rh      s     	  * h)& h)r   