Format: application/x-python-code
1 o
2
3 ;'h � @ sl d dl mZ d dlZd dlmZ d dlmZ ddlmZm Z m
4 Z
5 ed�ZG dd � d ee e ee f �Z
6 dS )
7 � )�annotationsN)�TypeVar)�warn� )�MemoryObjectReceiveStream�MemoryObjectSendStream�MemoryObjectStreamState�T_Itemc @ s e Zd ZdZ dd
8 d
9 d�ZdS )�create_memory_object_streama
10 Create a memory object stream.
11
12 The stream's item type can be annotated like
13 :func:`create_memory_object_stream[T_Item]`.
14
15 :param max_buffer_size: number of items held in the buffer until ``send()`` starts
16 blocking
17 :param item_type: old way of marking the streams with the right generic type for
18 static typing (does nothing on AnyIO 4)
19
20 .. deprecated:: 4.0
21 Use ``create_memory_object_stream[YourItemType](...)`` instead.
22 :return: a tuple of (send stream, receive stream)
23
24 r N�max_buffer_size�float� item_type�object�return�Htuple[MemoryObjectSendStream[T_Item], MemoryObjectReceiveStream[T_Item]]c C s^ |t jkrt|t�std��|dk rtd��|d ur!tdtdd� tt |�}t |�t
25 |�fS )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 )�
26 stacklevel)�math�inf�
27 isinstance�int�
28 ValueErrorr �DeprecationWarningr r r r )�clsr r
29 �state� r �JC:\Users\shubh\Videos\agent\nova\Lib\site-packages\anyio/_core/_streams.py�__new__$ s �z#create_memory_object_stream.__new__)r N)r r r
30 r r r )�__name__�
31 __module__�__qualname__�__doc__r r r r r r
32 s �r
33 )�
34 __future__r r �typingr �warningsr Zstreams.memoryr r r r �tupler
35 r r r r �<module> s
36 �