ó
    ßÅŸg~  ã                   ó¶   • S r SSKrSSKrSSKrSSKJrJrJrJrJ	r
JrJrJrJr   " S S\5      r " S S\5      r\R$                  " 5        " S S	\5      5       rg)
z8
This module provides the base definition for patterns.
é    N)	ÚAnyÚAnyStrÚIterableÚIteratorÚMatchÚOptionalÚPatternÚTupleÚUnionc                   ój   • \ rS rSrSrSrS\\   SS4S jrS\	\
   S\\
   4S	 jrS
\
S\\   4S jrSrg)r	   é   zE
The :class:`Pattern` class is the abstract definition of a pattern.
©Úincluder   ÚreturnNc                 ó   • Xl         g)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`).
Nr   )Úselfr   s     ÚQ/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/pathspec/pattern.pyÚ__init__ÚPattern.__init__   s   € ð „,ðó    Úfilesc              #   ó°   #   • [         R                  " SR                  U R                  S9[        SS9  U H  nU R                  U5      c  M  Uv •  M     g7f)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ÚwarnÚformatÚ	__class__ÚDeprecationWarningÚ
match_file)r   r   Úfiles      r   ÚmatchÚPattern.match.   sP   é € ô ‡-‚-ð÷ �Fˆt�~‰~€FÐÔ 2¸qò	Bó €dØ
‡o�o�dÓÓ'Ø
„Jò ùs   ‚AAÁ	Ar#   c                 óF   • [        SR                  U R                  S95      e)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ß
�Fˆt�~‰~€FÐó	 ð  r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   Úboolr   r   Ústrr   r$   r   r"   Ú__static_attributes__© r   r   r	   r	      sW   † ñð
€ð˜X d™^ð °ô ð ˜ ™ð ¨(°3©-ô ð0
 ˜Cð 
  H¨S¡M÷ 
 r   r	   c                   ó¨   ^ • \ rS rSrSrSr SS\\\S4   S\	\
   SS4U 4S jjjrS	S S\
4S
 jrS\S\	S   4S jr\S\S\\\
4   4S j5       rSrU =r$ )ÚRegexPatternéS   z^
The :class:`RegexPattern` class is an implementation of a pattern using
regular expressions.
)ÚpatternÚregexNr6   r   r   c                 óz  >• [        U[        [        45      (       a@  Ub   SU< SU< S35       eU R                  U5      u  p2Ub  [        R
                  " U5      nO>Ub  [        US5      (       a  UnO'Uc  Ub   SU< SU< S35       eO[        SU< S35      e[        [        U ]+  U5        Xl         WU l        g)	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.)Ú
isinstancer0   ÚbytesÚpattern_to_regexÚreÚcompileÚhasattrÚ	TypeErrorÚsuperr4   r   r6   r7   )r   r6   r   r7   r    s       €r   r   ÚRegexPattern.__init___   sç   ø€ ô& �œ#œu˜×&Ñ&Ø
‰/ð Øˆw‰kÐ4°W±K¸}ÐMóˆ/ð ×)Ñ)¨'Ó2�>€5ð ÑÜ�JŠJ�uÓ€EøàÑœw w°×8Ñ8ð �5à�ð ‰/ð Øˆw‰kÐ4°W±K¸yÐIó‰/ô
 
�X˜g™[Ð(NÐOÓ	PÐPäŒ�dÑ$ WÔ-à3:„,ðð
 "€$„*ðr   Úotherc                 óª   • [        U[        5      (       a9  U R                  UR                  :H  =(       a    U R                  UR                  :H  $ [        $ )z§
Tests the equality of this regex pattern with *other* (:class:`RegexPattern`)
by comparing their :attr:`~Pattern.include` and :attr:`~RegexPattern.regex`
attributes.
)r9   r4   r   r7   ÚNotImplemented)r   rB   s     r   Ú__eq__ÚRegexPattern.__eq__˜   s<   € ô �”|×$Ñ$Ø
�,‰,˜%Ÿ-™-Ñ
'×
E¨D¯J©J¸%¿+¹+Ñ,EÐEä
Ðr   r#   ÚRegexMatchResultc                 óp   • U R                   b)  U R                  R                  U5      nUb  [        U5      $ g)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   r7   r$   rG   )r   r#   r$   s      r   r"   ÚRegexPattern.match_file£   s6   € ð 
‡\�\ÑØ�:‰:×Ñ˜DÓ!€5ØÑÜ˜EÓ"Ð"à	r   c                 ó
   • US4$ )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`.
Tr2   )r   r6   s     r   r;   ÚRegexPattern.pattern_to_regex´   s   € ð 
�$ˆÐr   )N)r)   r*   r+   r,   r-   r.   r   r   ÚPatternHintr   r/   r   rE   r0   r"   Úclassmethodr
   r;   r1   Ú__classcell__)r    s   @r   r4   r4   S   s¢   ø† ñð€ð !ñ7à�˜ dÐ*Ñ+ð7ð �D‰>ð7ð ÷	7ð 7ðr	˜ð 	¨Dô 	ð˜Cð  HÐ-?Ñ$@ô ð" ð Cð ¨E°#°t°)Ñ,<ó ó ör   r4   c                   ó(   • \ rS rSr% SrSr\\S'   Srg)rG   éÆ   zn
The :class:`RegexMatchResult` data class is used to return information about
the matched regular expression.
)r$   r$   r2   N)	r)   r*   r+   r,   r-   r.   Ú	MatchHintÚ__annotations__r1   r2   r   r   rG   rG   Æ   s   ‡ ñð€ð 	Óòr   rG   )r-   Údataclassesr<   r   Útypingr   r   r   r   r   rQ   r   r	   rL   r
   r   Úobjectr4   Ú	dataclassrG   r2   r   r   Ú<module>rW      sd   ðñó Û 	Û ÷	÷ 	õ 	ô< ˆfô < ô~p�7ô pðf ×ÒÓô�vó ó ñr   