
    _i5                        S SK Jr  S SKrS SKrS SKJrJrJr  S SKJ	r	  S SK
r
S SKrS SKr
\" S5      r\	" S5      r        S	S jrS
S jrg)    )annotationsN)TypeVarCallable	Awaitable)	ParamSpecT_RetvalT_ParamSpecc                 #    [         R                  " 5       S:X  a"  [        R                  " U /UQ70 UD6I S h  vN $ [        R                  R                  [        R                  " U /UQ70 UD65      I S h  vN $  NC N7f)Nasyncio)sniffiocurrent_async_libraryr   	to_threadanyiorun_sync	functoolspartial)funcargskwargss      O/var/www/html/land-ocr/venv/lib/python3.13/site-packages/openai/_utils/_sync.pyr   r      st      $$&)3&&t=d=f===))$000   >s!   7BA=>B8A?9B?Bc                   ^  SU 4S jjnU$ )a#  
Take a blocking function and create an async one that receives the same
positional and keyword arguments.

Usage:

```python
def blocking_func(arg1, arg2, kwarg1=None):
    # blocking code
    return result


result = asyncify(blocking_function)(arg1, arg2, kwarg1=value1)
```

## Arguments

`function`: a blocking regular callable (e.g. a function)

## Return

An async function that takes the same positional and keyword arguments as the
original one, that when called runs the same original function in a thread worker
and returns the result.
c                 >   >#    [        T/U Q70 UD6I S h  vN $  N7f)N)r   )r   r   functions     r   wrapperasyncify.<locals>.wrapper7   s!     x9$9&9999s   )r   T_ParamSpec.argsr   T_ParamSpec.kwargsreturnr    )r   r   s   ` r   asyncifyr       s    6: N    )r   Callable[T_ParamSpec, T_Retval]r   r   r   r   r   r   )r   r"   r   z*Callable[T_ParamSpec, Awaitable[T_Retval]])
__future__r   r   r   typingr   r   r   typing_extensionsr   r   r   anyio.to_threadr   r	   r   r    r   r!   r   <module>r'      s^    "   / / '   :&
)5EQcr!   