o
    ùT·j¯  ã                   @  sz   d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZ dd	gZddd	„ZG dd„ deƒZdS )é    )Úannotations)Úoverride)Ú	parse_uri)Úversion)ÚSecurityError)ÚClientConnection)ÚconnectÚ_WebSocketConnectÚ_recv_bytesÚ
connectionÚSyncWebSocketConnectionÚreturnÚbytesc                 C  s6   t  d¡s| jdd�S |  ¡ }t|tƒr| d¡S |S )Nz13.F)Údecodezutf-8)Úwebsockets_versionÚ
startswithÚrecvÚ
isinstanceÚstrÚencode)r   Úmessage© r   úX/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/openai/lib/_websocket.pyr
      s   
c                      s*   e Zd ZdZdZed	‡ fdd„ƒZ‡  ZS )
r	   z5Keep WebSocket authentication on the original origin.z0Cross-origin WebSocket redirects are not allowedÚexcÚ	Exceptionr   úException | strc                   sV   t ƒ  |¡}t|tƒr)t| jƒ}t|ƒ}|j|j|jf|j|j|jfkr)t	| j
ƒS |S )N)ÚsuperÚprocess_redirectr   r   r   ÚuriÚsecureÚhostÚportr   Ú_redirect_error_message)Úselfr   Ú
uri_or_excÚcurrentÚtarget©Ú	__class__r   r   r      s   

 
z"_WebSocketConnect.process_redirect)r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r"   r   r   Ú__classcell__r   r   r'   r   r	      s
    N)r   r   r   r   )Ú
__future__r   Útyping_extensionsr   Úwebsockets.urir   Úwebsockets.versionr   r   Úwebsockets.exceptionsr   Úwebsockets.sync.clientr   r   Úwebsockets.asyncio.clientr   Ú__all__r
   r	   r   r   r   r   Ú<module>   s    
	