+
    ÂHàje  ã                  óÒ   € R t ^ RIHt ^ RIt^ RIHtHt ^ RIHt ^ RI	H
t
HtHtHt ^RIHtHtHt ]! RRR	7      t  ! R
 R]4      t ! R R]4      t]! 4        ! R R]4      4       tR# )z8
This module provides the base definition for patterns.
)ÚannotationsN)ÚIterableÚIterator)Ú	dataclass)ÚAnyÚOptionalÚTypeVarÚUnion)ÚAnyStrÚ
deprecatedÚoverrideÚRegexPatternSelfÚRegexPattern)Úboundc                  óX   € ] tR t^tRtR	tR R lt]! R4      R R l4       tR R lt	R	t
R
# )ÚPatternzE
The :class:`Pattern` class is the abstract definition of a pattern.
c               ó    € V ^8„  d   QhRRRR/# )é   ÚincludeúOptional[bool]ÚreturnÚNone© )Úformats   "Ú’/home/ubuntu/.hermes/installs/5f0a1ff4045d044e/environments/88679baa1dc64374a0cd943b62eeefb9/venv/lib/python3.14/site-packages/pathspec/pattern.pyÚ__annotate__ÚPattern.__annotate__'   s   € ÷ ñ ˜^ð °ñ ó    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   zXPattern.match() is deprecated. Use Pattern.match_file() with a loop for similar results.c               ó    € V ^8„  d   QhRRRR/# )r   ÚfileszIterable[str]r   zIterator[str]r   )r   s   "r   r   r   ;   s   € ÷ ñ ˜ð ¨-ñ r   c              #  óR   "  € V F  pV P                  V4      f   K  Vx € K  	  R# 5i)a°  
.. version-deprecated:: 0.10.0
        This method is no longer used. Use the :meth:`self.match_file <.Pattern.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.

Returns an :class:`~collections.abc.Iterable` yielding each matched file
path (:class:`str`).
N)Ú
match_file)r    r$   Úfiles   && r   ÚmatchÚPattern.match7   s%   é € ó$ €dØ
‡o�o�dÓÔ'Ø
„Jó ùs   ‚'�
'c               ó    € V ^8„  d   QhRRRR/# )r   r'   Ústrr   zOptional[Any]r   )r   s   "r   r   r   M   s   € ÷ 
 ñ 
 ˜Cð 
  Mñ 
 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().)Úcls)ÚNotImplementedErrorr   Ú	__class__)r    r'   s   &&r   r&   ÚPattern.match_fileM   s$   € ô 	ØDß
�Fˆt�~‰~€FÓó	 ð  r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r!   r   r(   r&   Ú__static_attributes__r   r   r   r   r      s;   † ñð
€õñ  ðóôó	ð÷$
 ñ 
 r   r   c                  ó–   a € ] tR t^ZtRtRtRR V 3R llltR R ltR R ltR R	 lt	R
 R lt
]R R l4       t]R R l4       tRtV ;t# )r   z^
The :class:`RegexPattern` class is an implementation of a pattern using
regular expressions.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚpatternzUnion[AnyStr, re.Pattern, None]r   r   r   r   r   )r   s   "r   r   ÚRegexPattern.__annotate__f   s(   € ÷ ;ñ ;à*ð;ð ð;ð ñ	;r   c                ó´  <€ Rp\        V\        \        34      '       dW   Ve   Q RV: RV: R24       hV P                  V4      w  rBVe+   Vf   Q RV: RV: R24       h\        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         W0n        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.z
raw_regex=z must be non-null when include=z is not None.r(   z	 is null.zpattern=z& is not a string, re.Pattern, or None.)Ú
isinstancer+   ÚbytesÚpattern_to_regexÚreÚcompileÚhasattrÚ	TypeErrorÚsuperr   r!   r:   Úregex)r    r:   r   rE   Ú	raw_regexr/   s   &&&  €r   r!   ÚRegexPattern.__init__f   s  ø€ ð$ !%€%Ü�œ#œu˜×&Ò&Ø
Š/ð Ø€w�lÐ. g¡\°Ð?óˆ/ð ×-Ñ-¨gÓ6Ñ€9ð ÒØÒ ð Øˆ	�~Ð5¨W©L¸ÐFóÐ ô �JŠJ�yÓ!€EøàÒœw w°×8Ò8ð �5à‚ð Š/ð Ø€w�lÐ. g¡\°Ð;ó‰/ô
 
�h�g‘\Ð!GÐHÓ	IÐIäŒ�dÑ$ WÔ-à6=„,ðð
 &+„*ñr   c               ó   € V ^8„  d   QhRR/# ©r   r   r+   r   )r   s   "r   r   r;   £   s   € ÷ Zñ Z�sñ Zr   c                ól   € V P                   P                   RV P                  : RV P                  : R2# )z7
Returns a debug representation of this regex pattern.
z	(pattern=z
, include=Ú))r/   r1   r:   r   ©r    s   &r   Ú__repr__ÚRegexPattern.__repr__£   s3   € ð �N‰N×#Ñ#Ð$ I¨d¯l©lÑ-=¸ZÈÏÉÑGWÐWXÐ	YÐYr   c               ó   € V ^8„  d   QhRR/# rI   r   )r   s   "r   r   r;   ©   s   € ÷ !ñ !�cñ !r   c                ó@   € \        V P                  ;'       g    R4      # )zÆ
Returns a string representation of this regex pattern. Equivalent to uncompiled pattern.

The string representation is the uncompiled pattern if it is not
:data:`None`; otherwise, an empty string.
Ú )r+   r:   rL   s   &r   Ú__str__ÚRegexPattern.__str__©   s   € ô 
ˆT�\‰\×Ð˜RÓ	 Ð r   c               ó    € V ^8„  d   QhRRRR/# )r   r    r   r   r   )r   s   "r   r   r;   ²   s   € ÷ ñ Ð$ð Ð)9ñ r   c                ót   € V P                  V P                  V P                  4      pV P                  Vn        V# )zT
Performa a shallow copy of the pattern.

Returns the copy (:class:`RegexPattern`).
)r/   rE   r   r:   ©r    Úothers   & r   Ú__copy__ÚRegexPattern.__copy__²   s,   € ð �.‰.˜Ÿ™ T§\¡\Ó
2€%Ø—,‘,€%„-Ø	€,r   c               ó    € V ^8„  d   QhRRRR/# )r   rW   Úobjectr   Úboolr   )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=   r   r   rE   ÚNotImplementedrV   s   &&r   Ú__eq__ÚRegexPattern.__eq__¼   s?   € ô �”|×$Ò$Ø
�,‰,˜%Ÿ-™-Ñ
'×
EÐ
E¨D¯J©J¸%¿+¹+Ñ,EÐEä
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r'   r
   r   zOptional[RegexMatchResult]r   )r   s   "r   r   r;   È   s   € ÷ ñ ˜Fð Ð'Añ r   c                óf   € V P                   ;pe!   VP                  V4      ;pe   \        V4      # R# )a  
Matches this pattern against the specified file.

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

Returns the match result (:class:`.RegexMatchResult`) if *file* matched;
otherwise, :data:`None`.
N)rE   ÚsearchÚRegexMatchResult)r    r'   rE   r(   s   &&  r   r&   ÚRegexPattern.match_fileÇ   s5   € ð �Z‰ZÐ€EÒ$Ø—‘˜dÓ#Ð#ˆÒ0ä
˜5Ó
!Ð!á	r   c               ó    € V ^8„  d   QhRRRR/# )r   r:   r
   r   z'tuple[Optional[AnyStr], Optional[bool]]r   )r   s   "r   r   r;   Û   s   € ÷ ñ àðð .ñr   c                ó
   € VR3# )a€  
Convert the pattern into an uncompiled regular expression.

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

Returns a :class:`tuple` containing:

        -       *pattern* (:class:`str`, :class:`bytes` or :data:`None`) is the
                uncompiled regular expression .

        -       *include* (:class:`bool` or :data:`None`) is 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`.
Tr   )r-   r:   s   &&r   r?   ÚRegexPattern.pattern_to_regexÚ   s   € ð. �4ˆÐr   )r:   rE   )N)r1   r2   r3   r4   r5   r6   r!   rM   rR   rX   r_   r   r&   Úclassmethodr?   r7   Ú__classcell__)r/   s   @r   r   r   Z   sW   ø† ñð€÷
;ò ;õzZõ!õõ	ð ôó ðð$ ôó ör   c                  ó*   € ] tR t^ôt$ RtRtR]R&   RtR# )rd   zn
The :class:`RegexMatchResult` data class is used to return information about
the matched regular expression.
r(   zre.Matchr   N)r(   )r1   r2   r3   r4   r5   r6   Ú__annotations__r7   r   r   r   rd   rd   ô   s   ‡ ñð€ð 	ƒór   rd   )r5   Ú
__future__r   r@   Úcollections.abcr   r   Údataclassesr   Útypingr   r   r   r	   Ú_typingr
   r   r   r   r[   r   r   rd   r   r   r   Ú<module>rr      s~   ðñõ #ã 	÷õ÷ó ÷ñ ñ
 Ð-°^ÔDÐ ðô
: ˆfô : ôzW�7ô Wñt ƒô�vó ó òr   