
    Vh?                        d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ g dZ	 G d d	ej                        Z G d
 dej                        Z G d dej                        Zer G d dej                        Z G d de      Z eee        G d dej$                        Z G d dej(                        Z G d dej,                        Zy)z
Interface definitions for builtin types.

After this module is imported, the standard library types will declare
that they implement the appropriate interface.

.. versionadded:: 5.0.0
    )classImplements)PY313_OR_OLDER)collections)io)numbers)IListITupleITextStringIByteStringINativeStringIBoolIDictIFilec                       e Zd ZdZefZddZy)r   z%
    Interface for :class:`list`
    Nc                      y)zs
        Sort the list in place and return None.

        *key* and *reverse* must be passed by name only.
        N )keyreverses     N/home/dcms/DCMS/lib/python3.12/site-packages/zope/interface/common/builtins.pysortz
IList.sort/   s        )NF)__name__
__module____qualname____doc__listextra_classesr   r   r   r   r   r   )   s     GMr   r   c                       e Zd ZdZefZy)r	   z&
    Interface for :class:`tuple`
    N)r   r   r   r   tupler   r   r   r   r	   r	   7   s     HMr   r	   c                       e Zd ZdZefZy)r
   zK
    Interface for text ("unicode") strings.

    This is :class:`str`
    N)r   r   r   r   strr   r   r   r   r
   r
   >   s    
 FMr   r
   c                       e Zd ZdZefZy)r   a  
        Interface for immutable byte strings.

        On all Python versions this is :class:`bytes`.

        Unlike :class:`zope.interface.common.collections.IByteString`
        (the parent of this interface) this does *not* include
        :class:`bytearray`.
        N)r   r   r   r   bytesr   r   r   r   r   r   H   s    	 r   r   c                       e Zd ZdZy)r   z
    Interface for native strings.

    On all Python versions, this is :class:`str`. Tt extends
    :class:`ITextString`.
    N)r   r   r   r   r   r   r   r   r   U   s    r   r   c                       e Zd ZdZefZy)r   z%
    Interface for :class:`bool`
    N)r   r   r   r   boolr   r   r   r   r   r   b        GMr   r   c                       e Zd ZdZefZy)r   z%
    Interface for :class:`dict`
    N)r   r   r   r   dictr   r   r   r   r   r   i   r'   r   r   c                       e Zd ZdZdZy)r   a  
    Interface for :class:`file`.

    It is recommended to use the interfaces from
    :mod:`zope.interface.common.io` instead of this interface.

    On Python 3, there is no single implementation of this interface;
    depending on the arguments, the :func:`open` builtin can return
    many different classes that implement different interfaces from
    :mod:`zope.interface.common.io`.
    r   N)r   r   r   r   r   r   r   r   r   r   p   s    
 Mr   r   N)r   zope.interfacer   zope.interface._compatr   zope.interface.commonr   r   r   __all__IMutableSequencer   	ISequencer	   r
   r   r   r!   	IIntegralr   IMutableMappingr   IIOBaser   r   r   r   <module>r4      s    + 1 - $ )	K(( ["" +''  
!k-- 
!K  ] #G K'' BJJ r   