
    h                        d dl mZ d dlZd dlmZ d dlmZ ddlmZm	Z	m
Z
  ed      Z G d d	ee	e   ee   f         Zy)
    )annotationsN)TypeVar)warn   )MemoryObjectReceiveStreamMemoryObjectSendStreamMemoryObjectStreamStateT_Itemc                  &    e Zd ZdZ	 d	 	 	 	 	 ddZy)create_memory_object_streama  
    Create a memory object stream.

    The stream's item type can be annotated like
    :func:`create_memory_object_stream[T_Item]`.

    :param max_buffer_size: number of items held in the buffer until ``send()`` starts
        blocking
    :param item_type: old way of marking the streams with the right generic type for
        static typing (does nothing on AnyIO 4)

        .. deprecated:: 4.0
          Use ``create_memory_object_stream[YourItemType](...)`` instead.
    :return: a tuple of (send stream, receive stream)

    Nc                    |t         j                  k7  rt        |t              st	        d      |dk  rt	        d      |t        dt        d       t        t           |      }t        |      t        |      fS )Nz5max_buffer_size must be either an integer or math.infr   z"max_buffer_size cannot be negativeztThe item_type argument has been deprecated in AnyIO 4.0. Use create_memory_object_stream[YourItemType](...) instead.r   )
stacklevel)mathinf
isinstanceint
ValueErrorr   DeprecationWarningr	   r
   r   r   )clsmax_buffer_size	item_typestates       9D:\jyotish\venv\Lib\site-packages\anyio/_core/_streams.py__new__z#create_memory_object_stream.__new__$   sz     dhh&z/3/OTUUQABB N"	 (/@&u-/H/OPP    )r   N)r   floatr   objectreturnzHtuple[MemoryObjectSendStream[T_Item], MemoryObjectReceiveStream[T_Item]])__name__
__module____qualname____doc__r    r   r   r   r      s.    $ >BQ#Q4:Q	QQr   r   )
__future__r   r   typingr   warningsr   streams.memoryr   r   r	   r
   tupler   r#   r   r   <module>r)      sL    "     
	$Q	
 
(*CF*K
KL$Qr   