Ë
    òT•jv  ã                   ó.   — d dl Z ddlmZ  G d„ de«      Zy)é    Né   )Úmethod_cachec                   óh   ‡ — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zˆ fd„Z	d„ Z
eˆ fd	„«       Zd
„ Zdd„Zˆ xZS )Ú
FoldedCasea{  
    A case insensitive string class; behaves just like str
    except compares equal when the only variation is case.

    >>> s = FoldedCase('hello world')

    >>> s == 'Hello World'
    True

    >>> 'Hello World' == s
    True

    >>> s != 'Hello World'
    False

    >>> s.index('O')
    4

    >>> s.split('O')
    ['hell', ' w', 'rld']

    >>> sorted(map(FoldedCase, ['GAMMA', 'alpha', 'Beta']))
    ['alpha', 'Beta', 'GAMMA']

    Sequence membership is straightforward.

    >>> "Hello World" in [s]
    True
    >>> s in ["Hello World"]
    True

    You may test for set inclusion, but candidate and elements
    must both be folded.

    >>> FoldedCase("Hello World") in {s}
    True
    >>> s in {FoldedCase("Hello World")}
    True

    String inclusion works as long as the FoldedCase object
    is on the right.

    >>> "hello" in FoldedCase("Hello World")
    True

    But not if the FoldedCase object is on the left:

    >>> FoldedCase('hello') in 'Hello World'
    False

    In that case, use in_:

    >>> FoldedCase('hello').in_('Hello World')
    True

    >>> FoldedCase('hello') > FoldedCase('Hello')
    False
    c                 óD   — | j                  «       |j                  «       k  S ©N©Úlower©ÚselfÚothers     ú//usr/lib/python3.12/importlib/metadata/_text.pyÚ__lt__zFoldedCase.__lt__C   ó   € Ø�z‰z‹|˜eŸk™k›mÑ+Ð+ó    c                 óD   — | j                  «       |j                  «       kD  S r   r	   r   s     r   Ú__gt__zFoldedCase.__gt__F   r   r   c                 óD   — | j                  «       |j                  «       k(  S r   r	   r   s     r   Ú__eq__zFoldedCase.__eq__I   ó   € Ø�z‰z‹|˜uŸ{™{›}Ñ,Ð,r   c                 óD   — | j                  «       |j                  «       k7  S r   r	   r   s     r   Ú__ne__zFoldedCase.__ne__L   r   r   c                 ó4   — t        | j                  «       «      S r   )Úhashr
   )r   s    r   Ú__hash__zFoldedCase.__hash__O   s   € Ü�D—J‘J“LÓ!Ð!r   c                 óZ   •— t         ‰| �  «       j                  |j                  «       «      S r   )Úsuperr
   Ú__contains__)r   r   Ú	__class__s     €r   r   zFoldedCase.__contains__R   s    ø€ Ü‰w‰}‹×+Ñ+¨E¯K©K«MÓ:Ð:r   c                 ó   — | t        |«      v S )zDoes self appear in other?)r   r   s     r   Úin_zFoldedCase.in_U   s   € à”z %Ó(Ð(Ð(r   c                 ó    •— t         ‰| �  «       S r   )r   r
   )r   r   s    €r   r
   zFoldedCase.lowerZ   s   ø€ ä‰w‰}‹Ðr   c                 ó\   — | j                  «       j                  |j                  «       «      S r   )r
   Úindex)r   Úsubs     r   r$   zFoldedCase.index^   s   € Ø�z‰z‹|×!Ñ! #§)¡)£+Ó.Ð.r   c                 ó”   — t        j                  t        j                  |«      t         j                  «      }|j	                  | |«      S r   )ÚreÚcompileÚescapeÚIÚsplit)r   ÚsplitterÚmaxsplitÚpatterns       r   r+   zFoldedCase.splita   s0   € Ü—*‘*œRŸY™Y xÓ0´"·$±$Ó7ˆØ�}‰}˜T 8Ó,Ð,r   )ú r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r!   r   r
   r$   r+   Ú__classcell__)r   s   @r   r   r      sJ   ø„ ñ9òv,ò,ò-ò-ò"ô;ò)ð
 óó ðò/÷-r   r   )r'   Ú
_functoolsr   Ústrr   © r   r   ú<module>r8      s   ðÛ 	å $ô\-�õ \-r   