o
    /i                     @   sH   d Z ddlmZ ddlZddlZddlZddlmZ G dd deZ	dS )z*Helpers for server-side streaming in REST.    )UnionN)BaseResponseIteratorc                       sT   e Zd ZdZdejdeeje	j
jjf f fddZdd Zdd	 Zd
d Z  ZS )ResponseIteratora  Iterator over REST API responses.

    Args:
        response (requests.Response): An API response object.
        response_message_cls (Union[proto.Message, google.protobuf.message.Message]): A response
        class expected to be returned from an API.

    Raises:
        ValueError:
            - If `response_message_cls` is not a subclass of `proto.Message` or `google.protobuf.message.Message`.
    responseresponse_message_clsc                    s,   || _ | j jdd| _tt| j|d d S )NT)decode_unicode)r   )	_responseiter_content_response_itrsuperr   __init__)selfr   r   	__class__ R/var/www/passon-env/lib/python3.10/site-packages/google/api_core/rest_streaming.pyr   &   s
   

zResponseIterator.__init__c                 C   s   | j   dS )z$Cancel existing streaming operation.N)r   closer   r   r   r   cancel2   s   zResponseIterator.cancelc              
   C   sb   | j s-zt| j}| | W n ty) } z| jdkr#td| j |d }~ww | j r|  S )Nr   zUnfinished stream: %s)	_ready_objsnextr
   _process_chunkStopIteration_level
ValueError_obj_grab)r   chunker   r   r   __next__6   s   

zResponseIterator.__next__c                 C   s   | S )Nr   r   r   r   r   __iter__A   s   zResponseIterator.__iter__)__name__
__module____qualname____doc__requestsResponser   protoMessagegoogleprotobufmessager   r   r   r    __classcell__r   r   r   r   r      s    r   )
r$   typingr   r'   r%   google.protobuf.messager)   $google.api_core._rest_streaming_baser   r   r   r   r   r   <module>   s   