o
    "ch                     @  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)func
args_modelallow_unknown_argsgrit)
add_parserset_defaultsr   MigrateArgsr   GritArgs)r   sub r   W/home/air/goalskill/back/venv/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&   	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apply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)xdgr   r   r   
_cache_dirC   s   r7   messagestrc                 C  s(   t jdsd S tjd|  d d S )NDEBUGz	[DEBUG]: 
)r2   r3   r4   sysstdoutwrite)r8   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 r;   )follow_redirects   z!Failed to download Grit CLI from wbNzcli-binzr:gz)      data)filteri  )r<   platformr   r?   r7   existsr=   flushmkdirunlink	_get_archr>   httpxClientr4   status_codeopen
iter_bytestarfileversion_info
extractall_move_files_recursivelyshutilrmtreer2   removechmod)rM   dir_nameinstall_dir
target_dirtarget_path	temp_filearch	file_namedownload_urlclientdownload_responsefilechunkunpacked_dirarchiver   r   r   r)   R   s^   










r)   
source_dirrb   c                 C  s>   |   D ]}| r|||j  q| rt|| qd S r'   )iterdiris_filerenamenameis_dirr[   )rn   rb   itemr   r   r   r[      s   
r[   c                  C  s&   t   } ddddd}|| | S )Nx86_64aarch64)ru   amd64armv7larm64)rM   machinelowerr4   )architecturearch_mapr   r   r   rR      s   rR   )r   r   r   r   )r&   r   r   r   )r&   r   r   r   )r   r   )r8   r9   r   r   )rn   r   rb   r   r   r   )r   r9   )!
__future__r   r2   r<   r\   rX   rM   r*   typingr   r   pathlibr   argparser   rS   _errorsr   r	   _modelsr
   r   r   r   r   r   r   KEYGEN_ACCOUNTr7   r?   r)   r[   rR   r   r   r   r   <module>   s4    






?