+
    UBi~                         R t ^ RIt^ RIt^ RIt^ RIHtHtHtHtH	t
HtHtHtHt  ! R R]4      t ! R R]4      t]P$                  ! 4        ! R R]4      4       tR# )	z8
This module provides the base definition for patterns.
N)	AnyAnyStrIterableIteratorMatchOptionalPatternTupleUnionc                   ^   a  ] tR t^t o RtRtV 3R lR ltV 3R lR ltV 3R lR ltRt	V t
R	# )
r   zE
The :class:`Pattern` class is the abstract definition of a pattern.
c                4   < V ^8  d   QhRS[ S[,          RR/# )   includereturnN)r   bool)format__classdict__s   "5/usr/lib/python3.14/site-packages/pathspec/pattern.py__annotate__Pattern.__annotate__   s      Xd^      c                    Wn         R# )z
Initializes the :class:`Pattern` instance.

*include* (:class:`bool` or :data:`None`) is whether the matched files
should be included (:data:`True`), excluded (:data:`False`), or is a
null-operation (:data:`None`).
Nr   )selfr   s   &&r   __init__Pattern.__init__   s     ,r   c                F   < V ^8  d   QhRS[ S[,          RS[S[,          /# )r   filesr   )r   strr   )r   r   s   "r   r   r   .   s#       (3- r   c              #     "   \         P                  ! RP                  V P                  R7      \        ^R7       V F  pV P                  V4      f   K  Vx  K  	  R# 5i)a  
DEPRECATED: This method is no longer used and has been replaced by
:meth:`.match_file`. Use the :meth:`.match_file` method with a loop for
similar results.

Matches this pattern against the specified files.

*files* (:class:`~collections.abc.Iterable` of :class:`str`) contains each
file relative to the root directory (e.g., ``"relative/path/to/file"``).

Returns an :class:`~collections.abc.Iterable` yielding each matched file
path (:class:`str`).
z{cls.__module__}.{cls.__qualname__}.match() is deprecated. Use {cls.__module__}.{cls.__qualname__}.match_file() with a loop for similar results.cls)
stacklevelN)warningswarnr   	__class__DeprecationWarning
match_file)r   r   files   && r   matchPattern.match.   sP      -- Ft~~F 2q	B d
ood'
J s   AA
Ac                6   < V ^8  d   QhRS[ RS[S[,          /# )r   r(   r   )r   r   r   )r   r   s   "r   r   r   F   s     
  
 C 
 HSM 
 r   c                L    \        RP                  V P                  R7      4      h)z
Matches this pattern against the specified file.

*file* (:class:`str`) is the normalized file path to match against.

Returns the match result if *file* matched; otherwise, :data:`None`.
z?{cls.__module__}.{cls.__qualname__} must override match_file().r    )NotImplementedErrorr   r%   )r   r(   s   &&r   r'   Pattern.match_fileF   s$     	D
Ft~~F	   r   r   N)__name__
__module____qualname____firstlineno____doc__	__slots__r   r)   r'   __static_attributes____classdictcell__r   s   @r   r   r      s/     
   0
  
 r   r   c                      a a ] tR t^St oRtR
tRV3R lV 3R llltV3R lR ltV3R lR lt]	V3R lR	 l4       t
R
tVtV ;t# )RegexPatternz^
The :class:`RegexPattern` class is an implementation of a pattern using
regular expressions.
c                R   < V ^8  d   QhRS[ S[S[R3,          RS[S[,          RR/# )r   patternNr   r   )r
   r   PatternHintr   r   )r   r   s   "r   r   RegexPattern.__annotate___   s9     7 7d*+7 D>7 	7r   c                  < \        V\        \        34      '       dC   Ve   Q RV: RV: R24       hV P                  V4      w  r2Ve   \        P
                  ! V4      pMBVe   \        VR4      '       d   TpM)Vf   Ve   Q RV: RV: R24       hM\        RV: R24      h\        \        V `+  V4       Wn         XV n        R# )	a  
Initializes the :class:`RegexPattern` instance.

*pattern* (:class:`str`, :class:`bytes`, :class:`re.Pattern`, or
:data:`None`) is the pattern to compile into a regular expression.

*include* (:class:`bool` or :data:`None`) must be :data:`None` unless
*pattern* is a precompiled regular expression (:class:`re.Pattern`) in which
case it is whether matched files should be included (:data:`True`), excluded
(:data:`False`), or is a null operation (:data:`None`).

        .. NOTE:: Subclasses do not need to support the *include* parameter.
Nzinclude:z must be null when pattern:z is a string.r)   z	 is null.zpattern:z& is not a string, re.Pattern, or None.)
isinstancer   bytespattern_to_regexrecompilehasattr	TypeErrorsuperr9   r   r;   regex)r   r;   r   rG   r%   s   &&& r   r   RegexPattern.__init___   s    & #u&&
/ wk4WK}M/ ))'2>5 JJuEww88 5 / wk4WKyI/
 
Xg[(NO	PPd$W-3:,
 "$*r   c                $   < V ^8  d   QhRRRS[ /# )r   otherr9   r   )r   )r   r   s   "r   r   r=      s     	 	 	D 	r   c                    \        V\        4      '       d;   V P                  VP                  8H  ;'       d    V P                  VP                  8H  # \        # )z
Tests the equality of this regex pattern with *other* (:class:`RegexPattern`)
by comparing their :attr:`~Pattern.include` and :attr:`~RegexPattern.regex`
attributes.
)r?   r9   r   rG   NotImplemented)r   rJ   s   &&r   __eq__RegexPattern.__eq__   s?     |$$
,,%--
'
E
EDJJ%++,EE
r   c                4   < V ^8  d   QhRS[ RS[R,          /# )r   r(   r   RegexMatchResult)r   r   )r   r   s   "r   r   r=      s!      C H-?$@ r   c                v    V P                   e+   V P                  P                  V4      pVe   \        V4      # R# )z
Matches this pattern against the specified file.

*file* (:class:`str`) contains each file relative to the root directory
(e.g., "relative/path/to/file").

Returns the match result (:class:`.RegexMatchResult`) if *file* matched;
otherwise, :data:`None`.
N)r   rG   r)   rP   )r   r(   r)   s   && r   r'   RegexPattern.match_file   s6     
\\::D!5E""	r   c                <   < V ^8  d   QhRS[ RS[S[ S[3,          /# )r   r;   r   )r   r	   r   )r   r   s   "r   r   r=      s$      C E#t),< r   c                
    VR3# )a  
Convert the pattern into an uncompiled regular expression.

*pattern* (:class:`str`) is the pattern to convert into a regular
expression.

Returns the uncompiled regular expression (:class:`str` or :data:`None`),
and whether matched files should be included (:data:`True`), excluded
(:data:`False`), or is a null-operation (:data:`None`).

        .. NOTE:: The default implementation simply returns *pattern* and
           :data:`True`.
T )r!   r;   s   &&r   rA   RegexPattern.pattern_to_regex   s     
$r   )r;   rG   )N)r/   r0   r1   r2   r3   r4   r   rM   r'   classmethodrA   r5   r6   __classcell__)r%   r   s   @@r   r9   r9   S   sI     
7 7r	 	 "   r   r9   c                   6   a  ] tR t^t o RtRt V 3R ltRtV tR# )rP   zn
The :class:`RegexMatchResult` data class is used to return information about
the matched regular expression.
c                &   < V ^8  d   Qh/ S[ ;R&   # )r   r)   )	MatchHint)r   r   s   "r   r   RegexMatchResult.__annotate__   s      	 r   rU   N)r)   )	r/   r0   r1   r2   r3   r4   __annotate_func__r5   r6   r7   s   @r   rP   rP      s     
  r   rP   )r3   dataclassesrB   r#   typingr   r   r   r   r   r[   r   r   r<   r	   r
   objectr9   	dataclassrP   rU   r   r   <module>rb      sd     	 	 	 	< f < ~p7 pf v  r   