%PDF- %PDF-
| Direktori : /usr/lib/python3.12/importlib/metadata/__pycache__/ | 
| Current File : //usr/lib/python3.12/importlib/metadata/__pycache__/_text.cpython-312.pyc | 
�
    )!�hv  �                   �.   � d dl Z ddlmZ  G d� de�      Zy)�    N�   )�method_cachec                   �h   � � e Zd ZdZd� Zd� Zd� Zd� Zd� Z� fd�Z	d� Z
e� fd	��       Zd
� Z
dd�Z� xZS )
�
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__zFoldedCase.__lt__C   �   � ��z�z�|�e�k�k�m�+�+�    c                 �D   � | j                  �       |j                  �       kD  S r   r	   r   s     r   �__gt__zFoldedCase.__gt__F   r   r   c                 �D   � | j                  �       |j                  �       k(  S r   r	   r   s     r   �__eq__zFoldedCase.__eq__I   �   � ��z�z�|�u�{�{�}�,�,r   c                 �D   � | j                  �       |j                  �       k7  S r   r	   r   s     r   �__ne__zFoldedCase.__ne__L   r   r   c                 �4   � t        | j                  �       �      S r   )�hashr
   )r   s    r   �__hash__zFoldedCase.__hash__O   s   � ��D�J�J�L�!�!r   c                 �Z   �� t         �| �  �       j                  |j                  �       �      S r   )�superr
   �__contains__)r   r
   �	__class__s     �r   r   zFoldedCase.__contains__R   s    �� ��w�}��+�+�E�K�K�M�:�:r   c                 �   � | t        |�      v S )zDoes self appear in other?)r   r   s     r   �in_zFoldedCase.in_U   s   � ��z�%�(�(�(r   c                 �    �� t         �| �  �       S r   )r   r
   )r   r   s    �r   r
   zFoldedCase.lowerZ   s   �� ��w�}��r   c                 �\   � | j                  �       j                  |j                  �       �      S r   )r
   �index)r   �subs     r   r$   zFoldedCase.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+   zFoldedCase.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'