o
    /wiB                     @  sD  d dl mZ d dlZd dlmZ d dlmZ d dlZddlmZ ddl	m
Z
mZmZmZmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZmZ ddlmZmZ ddlmZmZ ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z& ddgZ'G dd deZ(G dd deZ)G dd dZ*G dd dZ+G dd dZ,G dd dZ-dS )    )annotationsN)List)Literal   )_legacy_response)	NOT_GIVENBodyQueryHeadersNotGiven)maybe_transformasync_maybe_transform)cached_property)SyncAPIResourceAsyncAPIResource)to_streamed_response_wrapper"async_to_streamed_response_wrapper)SyncCursorPageAsyncCursorPage)AsyncPaginatormake_request_options)step_list_paramsstep_retrieve_params)RunStep)RunStepIncludeSteps
AsyncStepsc                   @  t   e Zd Zed'ddZed(ddZeded	d	d	ed
d)ddZ	edeeeeed	d	d	ed	d*d%d&Z
d	S )+r   returnStepsWithRawResponsec                 C     t | S a  
        This property can be used as a prefix for any HTTP method call to return
        the raw response object instead of the parsed content.

        For more information, see https://www.github.com/openai/openai-python#accessing-raw-response-data-eg-headers
        )r   self r$   e/home/ubuntu/sommelier/.venv/lib/python3.10/site-packages/openai/resources/beta/threads/runs/steps.pywith_raw_response      zSteps.with_raw_responseStepsWithStreamingResponsec                 C  r    z
        An alternative to `.with_raw_response` that doesn't eagerly read the response body.

        For more information, see https://www.github.com/openai/openai-python#with_streaming_response
        )r(   r"   r$   r$   r%   with_streaming_response%      zSteps.with_streaming_response>The Assistants API is deprecated in favor of the Responses APINincludeextra_headersextra_query
extra_bodytimeoutstep_idstr	thread_idrun_idr.   List[RunStepInclude] | NotGivenr/   Headers | Noner0   Query | Noner1   Body | Noner2   'float | httpx.Timeout | None | NotGivenr   c          	   
   C  s   |s	t d||st d||st d|ddi|p!i }| jd| d| d| t||||td	|itjd
tdS )  
        Retrieves a run step.

        Args:
          include: A list of additional fields to include in the response. Currently the only
              supported value is `step_details.tool_calls[*].file_search.results[*].content`
              to fetch the file search result content.

              See the
              [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
              for more information.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        8Expected a non-empty value for `thread_id` but received 5Expected a non-empty value for `run_id` but received 6Expected a non-empty value for `step_id` but received OpenAI-Betaassistants=v2	/threads//runs//steps/r.   r/   r0   r1   r2   queryoptionscast_to)
ValueError_getr   r   r   StepRetrieveParamsr   	r#   r3   r5   r6   r.   r/   r0   r1   r2   r$   r$   r%   retrieve.   s$   #zSteps.retrieve	afterbeforer.   limitorderr/   r0   r1   r2   rP   str | NotGivenrQ   rR   int | NotGivenrS   !Literal['asc', 'desc'] | NotGivenSyncCursorPage[RunStep]c       
         C  z   |s	t d||st d|ddi|pi }| jd| d| dtt t||	|
|t|||||dtjd	td
S a  
        Returns a list of run steps belonging to a run.

        Args:
          after: A cursor for use in pagination. `after` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              ending with obj_foo, your subsequent call can include after=obj_foo in order to
              fetch the next page of the list.

          before: A cursor for use in pagination. `before` is an object ID that defines your place
              in the list. For instance, if you make a list request and receive 100 objects,
              starting with obj_foo, your subsequent call can include before=obj_foo in order
              to fetch the previous page of the list.

          include: A list of additional fields to include in the response. Currently the only
              supported value is `step_details.tool_calls[*].file_search.results[*].content`
              to fetch the file search result content.

              See the
              [file search tool documentation](https://platform.openai.com/docs/assistants/tools/file-search#customizing-file-search-settings)
              for more information.

          limit: A limit on the number of objects to be returned. Limit can range between 1 and
              100, and the default is 20.

          order: Sort order by the `created_at` timestamp of the objects. `asc` for ascending
              order and `desc` for descending order.

          extra_headers: Send extra headers

          extra_query: Add additional query parameters to the request

          extra_body: Add additional JSON properties to the request

          timeout: Override the client-level default timeout for this request, in seconds
        r=   r>   r@   rA   rB   rC   z/steps)rP   rQ   r.   rR   rS   rE   )pagerH   model)rJ   _get_api_listr   r   r   r   r   StepListParamsr#   r6   r5   rP   rQ   r.   rR   rS   r/   r0   r1   r2   r$   r$   r%   listd   2   6z
Steps.list)r   r   )r   r(   r3   r4   r5   r4   r6   r4   r.   r7   r/   r8   r0   r9   r1   r:   r2   r;   r   r   )r6   r4   r5   r4   rP   rT   rQ   rT   r.   r7   rR   rU   rS   rV   r/   r8   r0   r9   r1   r:   r2   r;   r   rW   __name__
__module____qualname__r   r&   r*   typing_extensions
deprecatedr   rN   r_   r$   r$   r$   r%   r      .    	5c                   @  r   )+r   r   AsyncStepsWithRawResponsec                 C  r    r!   )ri   r"   r$   r$   r%   r&      r'   zAsyncSteps.with_raw_responseAsyncStepsWithStreamingResponsec                 C  r    r)   )rj   r"   r$   r$   r%   r*      r+   z"AsyncSteps.with_streaming_responser,   Nr-   r3   r4   r5   r6   r.   r7   r/   r8   r0   r9   r1   r:   r2   r;   r   c          	   
     s   |s
t d||st d||st d|ddi|p"i }| jd| d| d| t||||td	|itjI d
H dtdI d
H S )r<   r=   r>   r?   r@   rA   rB   rC   rD   r.   NrE   rG   )rJ   rK   r   r   r   rL   r   rM   r$   r$   r%   rN      s&   #zAsyncSteps.retrieverO   rP   rT   rQ   rR   rU   rS   rV   1AsyncPaginator[RunStep, AsyncCursorPage[RunStep]]c       
         C  rX   rY   )rJ   r\   r   r   r   r   r   r]   r^   r$   r$   r%   r_      r`   zAsyncSteps.list)r   ri   )r   rj   ra   )r6   r4   r5   r4   rP   rT   rQ   rT   r.   r7   rR   rU   rS   rV   r/   r8   r0   r9   r1   r:   r2   r;   r   rk   rb   r$   r$   r$   r%   r      rh   c                   @     e Zd ZdddZdS )	r   stepsr   r   Nonec                 C  &   || _ t|j| _t|j| _d S N)_stepsr   to_raw_response_wrapperrN   r_   r#   rm   r$   r$   r%   __init__S     zStepsWithRawResponse.__init__Nrm   r   r   rn   rc   rd   re   rt   r$   r$   r$   r%   r   R      r   c                   @  rl   )	ri   rm   r   r   rn   c                 C  ro   rp   )rq   r   async_to_raw_response_wrapperrN   r_   rs   r$   r$   r%   rt   c  ru   z"AsyncStepsWithRawResponse.__init__Nrm   r   r   rn   rw   r$   r$   r$   r%   ri   b  rx   ri   c                   @  rl   )	r(   rm   r   r   rn   c                 C  "   || _ t|j| _t|j| _d S rp   )rq   r   rN   r_   rs   r$   r$   r%   rt   s     z#StepsWithStreamingResponse.__init__Nrv   rw   r$   r$   r$   r%   r(   r  rx   r(   c                   @  rl   )	rj   rm   r   r   rn   c                 C  r{   rp   )rq   r   rN   r_   rs   r$   r$   r%   rt     r|   z(AsyncStepsWithStreamingResponse.__init__Nrz   rw   r$   r$   r$   r%   rj     rx   rj   ).
__future__r   rf   typingr   r   httpx r   _typesr   r   r	   r
   r   _utilsr   r   _compatr   	_resourcer   r   	_responser   r   
paginationr   r   _base_clientr   r   types.beta.threads.runsr   r    types.beta.threads.runs.run_stepr   (types.beta.threads.runs.run_step_includer   __all__r   r   r   ri   r(   rj   r$   r$   r$   r%   <module>   s2     