
    c                        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 G d dej                  Z G d deeu rene          Z eee            G d dej                  Z G d dej                  Z G d dej                  ZdS )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
    )absolute_import)classImplements)collections)numbers)io)IListITupleITextStringIByteStringINativeStringIBoolIDictIFilec                        e Zd ZdZefZddZdS )r   z%
    Interface for :class:`list`
    NFc                     dS )zs
        Sort the list in place and return None.

        *key* and *reverse* must be passed by name only.
        N )keyreverses     >lib/python3.11/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dS )r	   z&
    Interface for :class:`tuple`
    N)r   r   r   r   tupler   r   r   r   r	   r	   6   s!          HMMMr   r	   c                   *    e Zd ZdZ ed          fZdS )r
   z
    Interface for text (unicode) strings.

    On Python 2, this is :class:`unicode`. On Python 3,
    this is :class:`str`
    unicodeN)r   r   r   r   typer   r   r   r   r
   r
   =   s,          T*%%'MMMr   r
   c                       e Zd ZdZefZdS )r   z
    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   G   s!          HMMMr   r   c                       e Zd ZdZdS )r   z
    Interface for native strings.

    On all Python versions, this is :class:`str`. On Python 2,
    this extends :class:`IByteString`, while on Python 3 it extends
    :class:`ITextString`.
    N)r   r   r   r   r   r   r   r   r   T   s           r   r   c                       e Zd ZdZefZdS )r   z%
    Interface for :class:`bool`
    N)r   r   r   r   boolr   r   r   r   r   r   `   !          GMMMr   r   c                       e Zd ZdZefZdS )r   z%
    Interface for :class:`dict`
    N)r   r   r   r   dictr   r   r   r   r   r   g   r(   r   r   c                   6    e Zd ZdZ	 efZdS # e$ r dZY dS w xY w)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   filer   	NameErrorr   r   r   r   r   n   sJ        
 
   s    r   N)r   
__future__r   zope.interfacer   zope.interface.commonr   r   r   __all__IMutableSequencer   	ISequencer	   r
   r   strr$   r   	IIntegralr   IMutableMappingr   IIOBaser   r   r   r   <module>r8      s    ' & & & & & * * * * * * - - - - - - ) ) ) ) ) ) $ $ $ $ $ $	 	 	    K(       ["   ( ( ( ( (+' ( ( (
 
 
 
 
+) 
 
 
    3%<@KK[    ] # # #    G       K'       BJ     r   