ó
    ßÅŸg  ã                   ó’   • S r SSKJrJrJrJrJrJrJrJ	r	J
r
Jr  SSKJr  SSKJr  SSKJrJr  SSKJr  \" SS	S
9r  " S S	\5      rg)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                   óz  ^ • \ rS rSrSrS\S\4U 4S jjr\\	S\
\   S\\\\/\4   4   S\\   S\4S	 j5       5       r\\	 SS\
\   S\\   S\\\\/\4   S
4   S\4S jj5       5       r\	 SS\
\   S\\   S\\\\/\4   S
4   S\4U 4S jjj5       r\S\\\\4      S\S\\\   \\   4   4S j5       rSrU =r$ )r   é#   zr
The :class:`GitIgnoreSpec` class extends :class:`pathspec.pathspec.PathSpec` to
replicate *.gitignore* behavior.
ÚotherÚreturnc                 ó„   >• [        U[        5      (       a  [        TU ]  U5      $ [        U[        5      (       a  g[
        $ )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     €ÚS/var/www/blue/EV-Temp_rev04/venv/lib/python3.13/site-packages/pathspec/gitignore.pyr   ÚGitIgnoreSpec.__eq__)   s7   ø€ ô �”}×%Ñ%Ü
‰'‰.˜Ó
ÐÜ�%œ×"Ñ"Ø
ä
Ðó    ÚclsÚpattern_factoryÚlinesc                 ó   • g ©N© )r$   r%   r&   s      r!   Ú
from_linesÚGitIgnoreSpec.from_lines7   ó   € ð r#   Nc                 ó   • g r(   r)   )r$   r&   r%   s      r!   r*   r+   @   r,   r#   c                 óÐ   >• Uc  [         nO=[        U[        [        45      (       d  [	        U5      (       a  [        U5      (       a  Xp[        TU ]  X!5      n[        [        U5      $ )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   ÚstrÚbytesÚcallabler   r   r*   r   r   )r$   r&   r%   r   r    s       €r!   r*   r+   I   sT   ø€ ð. ÑÜ(�?ä�5œ3¤˜,×'Ñ'¬8°E¯?©?ÄÈ_×@]Ñ@]à!�Eä	‰Ñ	˜OÓ	3€$Ü	Œd�DÓ	Ðr#   ÚpatternsÚfilec                 óh  • SnSnSnU  H¤  u  pVUR                   c  M  UR                  U5      nUc  M*  UR                  R                  5       R	                  [
        5      nU(       a  Sn	OSn	UR                   (       a  U(       a  UR                   nUnU	nM�  X”:¼  d  M”  UR                   nUnU	nM¦     X#4$ )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`).
Nr   r   é   )ÚincludeÚ
match_fileÚmatchÚ	groupdictÚgetr   )
r2   r3   Úout_includeÚ	out_indexÚout_priorityÚindexÚpatternr8   Údir_markÚprioritys
             r!   Ú_match_fileÚGitIgnoreSpec._match_filej   s­   € ð. !%€+Ø!€)Ø€,Û �n€eØ‡o�oÓ!Ø×Ñ˜tÓ$€EØÓð —‘×%Ñ%Ó'×+Ñ+¬IÓ6€Xæà�hð €hà��žHØ—O‘O€kØ€iØ‚lØ
Õ
"Ø—O‘O€kØ€iØ‚lñ/ !ð2 
Ð	Ðr#   r)   r(   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚobjectÚboolr   r   Úclassmethodr   r   r
   r/   r   r   r   r   r*   Ústaticmethodr   Úintr   r   rB   Ú__static_attributes__Ú__classcell__)r    s   @r!   r   r   #   s“  ø† ñð
˜ð  D÷ ð ØðØˆD�zðà˜˜h¨ x°Ð'8Ñ9Ð9Ñ:ðð 
�&Ñ	ðð ó	ó ó ðð Øð DHñØˆD�zðà	�&Ñ	ðð ˜˜h¨ x°Ð'8Ñ9¸4Ð?Ñ@ðð ô	ó ó ðð ð DHñØˆD�zðà	�&Ñ	ðð ˜˜h¨ x°Ð'8Ñ9¸4Ð?Ñ@ðð ÷	ó ðð@ ð2 Ø�U˜3Ð 3Ð3Ñ4Ñ5ð2 àð2 ð ˆH�T‰N˜H S™MÐ)Ñ*ó2 ó ö2 r#   N)rH   Útypingr   r   r   r   r   r   r	   r
   r   r   Úpathspecr   r?   r   Úpatterns.gitwildmatchr   r   Úutilr   r   r   r)   r#   r!   Ú<module>rT      sN   ðñ÷

÷ 
÷ 
õõ
÷õñ ˆv˜_Ñ-€ðôz �Hõ z r#   