+
    UBi                         R t ^ RIHtHtHtHtHtHtHtH	t	H
t
Ht ^RIHt ^RIHt ^RIHtHt ^RIHt ]! RRR7      t  ! R	 R]4      tR
# )zV
This module provides :class:`.GitIgnoreSpec` which replicates
*.gitignore* behavior.
)
AnyStrCallableIterableOptionalTupleTypeTypeVarUnioncastoverload)PathSpec)Pattern)GitWildMatchPattern	_DIR_MARK)_is_iterableSelfGitIgnoreSpec)boundc                      a a ] tR t^#t oRtV3R lV 3R llt]]V3R lR l4       4       t]]RV3R lR ll4       4       t]RV3R lV 3R	 lll4       t]	V3R
 lR l4       t
RtVtV ;t# )r   zr
The :class:`GitIgnoreSpec` class extends :class:`pathspec.pathspec.PathSpec` to
replicate *.gitignore* behavior.
c                &   < V ^8  d   QhRS[ RS[/# )   otherreturn)objectbool)format__classdict__s   "7/usr/lib/python3.14/site-packages/pathspec/gitignore.py__annotate__GitIgnoreSpec.__annotate__)   s       D     c                   < \        V\        4      '       d   \        SV `  V4      # \        V\        4      '       d   R# \
        # )z
Tests the equality of this gitignore-spec with *other* (:class:`GitIgnoreSpec`)
by comparing their :attr:`~pathspec.pattern.Pattern`
attributes. A non-:class:`GitIgnoreSpec` will not compare equal.
F)
isinstancer   super__eq__r   NotImplemented)selfr   	__class__s   &&r   r$   GitIgnoreSpec.__eq__)   s7     }%%
'.
%""

r    c                   < V ^8  d   QhRS[ S[,          RS[S[S[S[.S[3,          3,          RS[S[,          RS[/# )r   clspattern_factorylinesr   )r   r   r	   strr   r   r   r   )r   r   s   "r   r   r   9   sP      Dzhx'899: 
&	 	r    c                    R # N )r*   r+   r,   s   &&&r   
from_linesGitIgnoreSpec.from_lines7        r    c          
         < V ^8  d   QhRS[ S[,          RS[S[,          RS[S[S[S[.S[3,          R3,          RS[/# r   r*   r,   r+   Nr   r   r   r   r   r	   r-   r   r   )r   r   s   "r   r   r   B   sR      Dz	&	 hx'894?@ 	r    c                    R # r/   r0   )r*   r,   r+   s   &&&r   r1   r2   @   r3   r    c          
         < V ^8  d   QhRS[ S[,          RS[S[,          RS[S[S[S[.S[3,          R3,          RS[/# r5   r6   )r   r   s   "r   r   r   J   sR      Dz	&	 hx'894?@ 	r    c                   < Vf   \         pM@\        V\        \        34      '       g   \	        V4      '       d   \        V4      '       d   Yr\        SV `  W!4      p\        \        V4      # )a  
Compiles the pattern lines.

*lines* (:class:`~collections.abc.Iterable`) yields each uncompiled
pattern (:class:`str`). This simply has to yield each line so it can
be a :class:`io.TextIOBase` (e.g., from :func:`open` or
:class:`io.StringIO`) or the result from :meth:`str.splitlines`.

*pattern_factory* can be :data:`None`, the name of a registered
pattern factory (:class:`str`), or a :class:`~collections.abc.Callable`
used to compile patterns. The callable must accept an uncompiled
pattern (:class:`str`) and return the compiled pattern
(:class:`pathspec.pattern.Pattern`).
Default is :data:`None` for :class:`.GitWildMatchPattern`).

Returns the :class:`GitIgnoreSpec` instance.
)
r   r"   r-   bytescallabler   r#   r1   r
   r   )r*   r,   r+   r&   r'   s   &&& r   r1   r2   I   sT    . (?53,''8E??_@]@]!E		O	3$	dD	r    c          	         < V ^8  d   QhRS[ S[S[S[3,          ,          RS[RS[S[S[,          S[S[,          3,          /# )r   patternsfiler   )r   r   intr   r-   r   r   )r   r   s   "r   r   r   k   sI     2  2 U3 33452 2  HTNHSM)*2 r    c                t   RpRp^ pV  F  w  rVVP                   f   K  VP                  V4      pVf   K,  VP                  P                  4       P	                  \
        4      pV'       d   ^p	M^p	VP                   '       d   V'       d   VP                   pTpT	pK  W8  g   K  VP                   pTpT	pK  	  W#3# )a  
Check the file against the patterns.

.. NOTE:: Subclasses of :class:`~pathspec.pathspec.PathSpec` may override
   this method as an instance method. It does not have to be a static
   method. The signature for this method is subject to change.

*patterns* (:class:`~collections.abc.Iterable`) yields each indexed pattern
(:class:`tuple`) which contains the pattern index (:class:`int`) and actual
pattern (:class:`~pathspec.pattern.Pattern`).

*file* (:class:`str`) is the normalized file path to be matched against
*patterns*.

Returns a :class:`tuple` containing whether to include *file* (:class:`bool`
or :data:`None`), and the index of the last matched pattern (:class:`int` or
:data:`None`).
N)include
match_filematch	groupdictgetr   )
r=   r>   out_include	out_indexout_priorityindexpatternrC   dir_markprioritys
   &&        r   _match_fileGitIgnoreSpec._match_filej   s    . !%+!), neoo!t$E %%'++I6Xh hHOOkil

"OOkil/ !2 
	r    r0   r/   )__name__
__module____qualname____firstlineno____doc__r$   r   classmethodr1   staticmethodrM   __static_attributes____classdictcell____classcell__)r'   r   s   @@r   r   r   #   s     
           @ 2  2  2 r    N)rS   typingr   r   r   r   r   r   r   r	   r
   r   pathspecr   rJ   r   patterns.gitwildmatchr   r   utilr   r   r   r0   r    r   <module>r]      sN   

 
 

 v_-z H z r    