o
    $iUB                     @  sL  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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)BodyOmitQueryHeadersNotGivenomit	not_given)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&   h/var/www/html/flask_server/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_idr0   List[RunStepInclude] | Omitr1   Headers | Noner2   Query | Noner3   Body | Noner4   '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/r0   r1   r2   r3   r4   queryoptionscast_to)
ValueError_getr   r   r   StepRetrieveParamsr   	r%   r5   r7   r8   r0   r1   r2   r3   r4   r&   r&   r'   retrieve.   s$   #zSteps.retrieve	afterbeforer0   limitorderr1   r2   r3   r4   rR   
str | OmitrS   rT   
int | OmitrU   Literal['asc', 'desc'] | Omit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@   rB   rC   rD   rE   z/steps)rR   rS   r0   rT   rU   rG   )pagerJ   model)rL   _get_api_listr   r   r   r   r   StepListParamsr%   r8   r7   rR   rS   r0   rT   rU   r1   r2   r3   r4   r&   r&   r'   listd   2   6z
Steps.list)r    r!   )r    r*   r5   r6   r7   r6   r8   r6   r0   r9   r1   r:   r2   r;   r3   r<   r4   r=   r    r   )r8   r6   r7   r6   rR   rV   rS   rV   r0   r9   rT   rW   rU   rX   r1   r:   r2   r;   r3   r<   r4   r=   r    rY   __name__
__module____qualname__r   r(   r,   typing_extensions
deprecatedr   r   rP   ra   r&   r&   r&   r'   r      .    	5c                   @  r   )+r   r    AsyncStepsWithRawResponsec                 C  r"   r#   )rk   r$   r&   r&   r'   r(      r)   zAsyncSteps.with_raw_responseAsyncStepsWithStreamingResponsec                 C  r"   r+   )rl   r$   r&   r&   r'   r,      r-   z"AsyncSteps.with_streaming_responser.   Nr/   r5   r6   r7   r8   r0   r9   r1   r:   r2   r;   r3   r<   r4   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@   rA   rB   rC   rD   rE   rF   r0   NrG   rI   )rL   rM   r   r   r   rN   r   rO   r&   r&   r'   rP      s&   #zAsyncSteps.retrieverQ   rR   rV   rS   rT   rW   rU   rX   1AsyncPaginator[RunStep, AsyncCursorPage[RunStep]]c       
         C  rZ   r[   )rL   r^   r   r   r   r   r   r_   r`   r&   r&   r'   ra      rb   zAsyncSteps.list)r    rk   )r    rl   rc   )r8   r6   r7   r6   rR   rV   rS   rV   r0   r9   rT   rW   rU   rX   r1   r:   r2   r;   r3   r<   r4   r=   r    rm   rd   r&   r&   r&   r'   r      rj   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_wrapperrP   ra   r%   ro   r&   r&   r'   __init__S     zStepsWithRawResponse.__init__Nro   r   r    rp   re   rf   rg   rv   r&   r&   r&   r'   r!   R      r!   c                   @  rn   )	rk   ro   r   r    rp   c                 C  rq   rr   )rs   r   async_to_raw_response_wrapperrP   ra   ru   r&   r&   r'   rv   c  rw   z"AsyncStepsWithRawResponse.__init__Nro   r   r    rp   ry   r&   r&   r&   r'   rk   b  rz   rk   c                   @  rn   )	r*   ro   r   r    rp   c                 C  "   || _ t|j| _t|j| _d S rr   )rs   r   rP   ra   ru   r&   r&   r'   rv   s     z#StepsWithStreamingResponse.__init__Nrx   ry   r&   r&   r&   r'   r*   r  rz   r*   c                   @  rn   )	rl   ro   r   r    rp   c                 C  r}   rr   )rs   r   rP   ra   ru   r&   r&   r'   rv     r~   z(AsyncStepsWithStreamingResponse.__init__Nr|   ry   r&   r&   r&   r'   rl     rz   rl   )0
__future__r   rh   typingr   r   httpx r   _typesr   r   r	   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!   rk   r*   rl   r&   r&   r&   r'   <module>   s2   $  