o
    wi                     @  sf   d dl mZ d dlZd dlmZ ddlmZ ddlmZ ddlm	Z	 ej
	ddddZdddZdS )    )annotationsN)Iterator   )	_registry)ClientNotRegisteredError)RegisteredClient
new_clientRegisteredClient | NonereturnIterator[None]c                 c  s8    t j}|du rt z| t _dV  W |t _dS |t _w )zContext manager to unregister the current client

    Once the context manager exits, the registered client is set back to it's original state
    Nr   Z_registered_clientr   )r   client r   E/home/app/Keep/.python/lib/python3.10/site-packages/prisma/testing.pyreset_client   s   r   Nonec                   C  s   t jdu rt dt _dS )zUnregister the current client.Nr   r   r   r   r   unregister_client   s   

r   )N)r   r	   r
   r   )r
   r   )
__future__r   
contextlibtypingr    r   errorsr   r   contextmanagerr   r   r   r   r   r   <module>   s    