
    ijD                        d dl mZ d dlZd dlZd dlmZmZmZmZ erd dl	m
Z
 edd       Zedd       Zedd	       Zd
 Z G d d      Z G d de      Z G d de      Z G d de      Zy)    )annotationsN)TYPE_CHECKINGAnyCallableoverload)LiteralNullc                     y N params    :/DATA/.local/lib/python3.12/site-packages/path/matchers.pyloadr      s    "    Patternc                     y r   r   r   s    r   r   r      s    !$r   c                     y r   r   r   s    r   r   r      s     r   c                T    t        | t              rt        |       S | | S t               S )zR
    If the supplied parameter is a string, assume it's a simple
    pattern.
    )
isinstancestrr   r	   r   s    r   r   r      s:     eS! 	  
 Vr   c                      e Zd Zy)BaseN)__name__
__module____qualname__r   r   r   r   r   %   s    r   r   c                      e Zd ZddZy)r	   c                     y)NTr   )selfpaths     r   __call__zNull.__call__*   s    r   N)r    r   returnzLiteral[True])r   r   r   r!   r   r   r   r	   r	   )   s    r   c                  :    e Zd ZU ded<   ded<   ddZd	dZd
dZy)r   r   pattern_patternc                    || _         y r   )r$   )r   r$   s     r   __init__zPattern.__init__2   s	    r   c                    	 | j                   S # t        $ r Y nw xY w || j                        | _         | j                   S r   )r%   AttributeErrorr$   )r   normcases     r   get_patternzPattern.get_pattern5   s=    	==  		 .}}s    	c                    t        | d|j                  j                        }| j                  |      }t	        j
                   ||j                        |      S )Nr*   )getattrmoduler*   r+   fnmatchfnmatchcasename)r   r    r*   r$   s       r   r!   zPattern.__call__>   sF    4T[[-A-AB""8,""8DII#6@@r   N)r$   r   )r*   zCallable[[str], str]r"   r   )r"   bool)r   r   r   __annotations__r'   r+   r!   r   r   r   r   r   .   s    LMAr   c                  4    e Zd ZdZ eej                        Zy)CaseInsensitivea  
    A Pattern with a ``'normcase'`` property, suitable for passing to
    :meth:`iterdir`, :meth:`dirs`, :meth:`files`, :meth:`walk`,
    :meth:`walkdirs`, or :meth:`walkfiles` to match case-insensitive.

    For example, to get all files ending in .py, .Py, .pY, or .PY in the
    current directory::

        from path import Path, matchers
        Path('.').files(matchers.CaseInsensitive('*.py'))
    N)r   r   r   __doc__staticmethodntpathr*   r   r   r   r5   r5   D   s    
 FOO,Hr   r5   )r   Noner"   r	   )r   r   r"   r   )r   r   r"   r   )
__future__r   r/   r8   typingr   r   r   r   typing_extensionsr   r   r   r	   r   r5   r   r   r   <module>r=      s    "   9 9) 
 " 
 " 
 $ 
 $ 
   
  	 	4 
Ad A,-g -r   