+
    iv  c                   s0    ^ RI t ^RIHt  ! R R]4      tR# )    N)method_cachec                   s   a a ] tR t^t oRtR tR tR tR tR t	V 3R lt
R t]V 3R	 l4       tR
 tRR ltRtVtV ;t# )
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                sD    V P                  4       VP                  4       8  # Nlowerselfother   &&1/usr/lib64/python3.14/importlib/metadata/_text.py__lt__ZFoldedCase.__lt__C       zz|ekkm++    c                sD    V P                  4       VP                  4       8  # r   r   r   r	   r
   __gt__ZFoldedCase.__gt__F   r   r   c                sD    V P                  4       VP                  4       8H  # r   r   r   r	   r
   __eq__ZFoldedCase.__eq__I       zz|u{{},,r   c                sD    V P                  4       VP                  4       8g  # r   r   r   r	   r
   __ne__ZFoldedCase.__ne__L   r   r   c                s4    \        V P                  4       4      # r   )Zhashr   )r   s   &r
   __hash__ZFoldedCase.__hash__O   s    DJJL!!r   c                sZ   < \         SV `  4       P                  VP                  4       4      # r   )superr   __contains__)r   r   	__class__s   &&r
   r   ZFoldedCase.__contains__R   s     w}++EKKM::r   c                s    V \        V4      9   # )zDoes self appear in other?)r   r   r	   r
   in_ZFoldedCase.in_U   s    z%(((r   c                s    < \         SV `  4       # r   )r   r   )r   r   s   &r
   r   ZFoldedCase.lowerZ   s    w}r   c                s\    V P                  4       P                  VP                  4       4      # r   )r   index)r   Zsubr	   r
   r   ZFoldedCase.index^   s    zz|!!#))+..r   c                s    \         P                  ! \         P                  ! V4      \         P                  4      pVP	                  W4      # r   )reZcompileZescapeZIsplit)r   ZsplitterZmaxsplitZpatterns   &&& r
   r   ZFoldedCase.splita   s.    **RYYx0"$$7}}T,,r    )Z r    )Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r   r   r   r   r   r   r   r   r   r   r   Z__static_attributes__Z__classdictcell__Z__classcell__)r   Z__classdict__s   @@r
   r   r      sQ     9v,,--";)
  /- -r   r   )r   Z
_functoolsr   Zstrr   r   r   r
   <module>r      s    	 $\- \-r   