o
    ͩZh                     @  s  d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlmZ d dlZddlmZmZ ddlmZ e	rLd d	lmZ d)ddZG dd deZd*ddZG dd deZd+ddZdZd,ddZd-dd Zd,d!d"Zd.d%d&Zd/d'd(Z dS )0    )annotationsN)TYPE_CHECKINGList)Path)ArgumentParser   )CLIErrorSilentCLIError)	BaseModel)_SubParsersAction	subparser!_SubParsersAction[ArgumentParser]returnNonec                 C  s8   |  d}|jttdd |  d}|jttdd d S )NmigrateT)funcZ
args_modelZallow_unknown_argsgrit)
add_parserset_defaultsr   MigrateArgsr   GritArgs)r   sub r   P/var/www/html/lang_env/lib/python3.10/site-packages/openai/cli/_tools/migrate.pyregister   s   

r   c                   @     e Zd ZU g Zded< dS )r   	List[str]unknown_argsN__name__
__module____qualname__r   __annotations__r   r   r   r   r         
 r   argsc                 C  s8   t  }zt|g| j W d S  tjy   t d w Ninstall
subprocess
check_callr   CalledProcessErrorr	   r$   Z	grit_pathr   r   r   r   #   s   r   c                   @  r   )r   r   r   Nr   r   r   r   r   r   .   r#   r   c                 C  s<   t  }zt|ddg| j W d S  tjy   t d w )NapplyZopenair&   r+   r   r   r   r   3   s   r   zcustodian-devr   c                  C  s(   t jd} | d urt| S t d S )NXDG_CACHE_HOMEz.cache)osenvirongetr   home)Zxdgr   r   r   
_cache_dirC   s   r2   messagestrc                 C  s(   t jdsd S tjd|  d d S )NDEBUGz	[DEBUG]: 
)r.   r/   r0   sysstdoutwrite)r3   r   r   r   _debugK   s   r:   c               	   C  s  t jdkr	tdtd t jdkrdnd} t d }|d }|d	 }|d
 }|d }| r=t| d t j  |S td|  |jddd | rS|	  t
 }td|  d| d|  }d| d}t jd| d t <}	|	j|dd}
|
jdkrtd| t|d}|
 D ]}|| qW d   n1 sw   Y  W d   n1 sw   Y  |d }|jddd t|d}t jdkr|j|dd  n|| W d   n1 sw   Y  t|| t| t| t|d! t j  |S )"z<Installs the Grit CLI and returns the location of the binarywin32z1Windows is not supported yet in the migration CLIz Using Grit installer from GitHubdarwinzapple-darwinzunknown-linux-gnuzopenai-pythonz.installbinr   zgrit.tmpz already existszUsing Grit CLI path: T)parentsexist_okzUsing architecture zgrit--z;https://github.com/getgrit/gritql/releases/latest/download/z.tar.gzzDownloading Grit CLI from r6   )Zfollow_redirects   z!Failed to download Grit CLI from wbNzcli-binzr:gz)      data)filteri  )r7   platformr   r:   r2   existsr8   flushmkdirunlink	_get_archr9   httpxZClientr0   status_codeopenZ
iter_bytestarfileversion_info
extractall_move_files_recursivelyshutilrmtreer.   removechmod)rG   dir_nameZinstall_dir
target_dirtarget_path	temp_filearch	file_nameZdownload_urlclientZdownload_responsefilechunkZunpacked_dirarchiver   r   r   r'   R   s^   










r'   
source_dirrY   c                 C  s>   |   D ]}| r|||j  q| rt|| qd S r%   )iterdiris_filerenamenameis_dirrS   )rb   rY   itemr   r   r   rS      s   
rS   c                  C  s&   t   } ddddd}|| | S )Nx86_64aarch64)ri   amd64armv7larm64)rG   machinelowerr0   )architectureZarch_mapr   r   r   rL      s   rL   )r   r   r   r   )r$   r   r   r   )r$   r   r   r   )r   r   )r3   r4   r   r   )rb   r   rY   r   r   r   )r   r4   )!
__future__r   r.   r7   rT   rP   rG   r(   typingr   r   pathlibr   argparser   rM   _errorsr   r	   Z_modelsr
   r   r   r   r   r   r   ZKEYGEN_ACCOUNTr2   r:   r'   rS   rL   r   r   r   r   <module>   s4    






?