o
    b                     @   sV  d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZmZ d dlZd dlmZ z
d dlZe  W n	 eyM   Y nw eejd Ze d	Zee
 d
e  ZeeZdeejj  deeejj!ejj"f  dee#e$e%f dee#e$e%f fddZ&de%de#de#de#de#de#de%de$de$fddZ'ej(dddgidej)dde%eejd d!d d"d#ej)d$d e&d d%d&ej)d'd(d d d)d*ej)d+d,d d d-d*ej)d.d d d/d*ej)d0d1d d d2d*ej)d3d4e%eejd5d!d d6d#ej)d7d8d9e$d d:d#ej*dejj d;eddfd<d=Z+ed>kr)e+  dS dS )?    N)datetime)Path)rmtreewhich)
gettempdir)AnyUnionOptional)libzprimer.jsonz%Y%m%d%H%M%Szprimer.ctxparamdebugreturnc                 C   s"   |rt jnt j}t jd|d |S )z1Turn on debugging if asked otherwise INFO defaultzB[%(asctime)s] %(levelname)s: %(message)s (%(filename)s:%(lineno)d))formatlevel)loggingDEBUGINFObasicConfig)r   r   r   	log_level r   O/var/www/secure340b-portal/env/lib/python3.10/site-packages/black_primer/cli.py_handle_debug   s   r   configkeeplong_checkoutsno_diffrebaseworkdirworkersc           
   
      s   t |}| std|  |  tds td dS z*t| ||||||I d H }	t	|	W |sI| rJtd|  t
|tjd S S S |sa| rbtd|  t
|tjd w w w )Nz	Creating blackz<Can not find 'black' executable in PATH. No point in runningz	Removing )onerror)r   existsLOGr   mkdirr   errorr
   Zprocess_queueintr   Zhandle_PermissionError)
r   r   r   r   r   r   r   r   Z	work_pathZret_valr   r   r   
async_main-   s4   


	r(   Zhelp_option_namesz-hz--help)Zcontext_settingsz-cz--configT)r#   zJSON config file path)defaulttypeshow_defaulthelpz--debugzTurn on debug logging)is_flagcallbackr+   r,   z-kz--keepzKeep workdir + repos post run)r-   r+   r,   z-Lz--long-checkoutszPull big projects to testz	--no-diffz3Disable showing source file changes in black outputz-Rz--rebasez%Rebase project if already checked outz-wz	--workdirFz!Directory path for repo checkoutsz-Wz	--workers   z$Number of parallel worker coroutineskwargsc                 K   sR   t dtjd   t }z| |tdi | W |	  dS |	  w )u.   primer - prime projects for blackening... 🏴z	Starting r   Nr   )
r$   r   sysargvasyncioget_event_loopexitrun_until_completer(   close)r   r0   loopr   r   r   mainS   s
   >r9   __main__),r3   r   r1   r   pathlibr   shutilr   r   tempfiler   typingr   r   r	   ZclickZblack_primerr
   ZuvloopinstallImportError__file__parentZDEFAULT_CONFIGnowstrftime
_timestampZDEFAULT_WORKDIR	getLogger__name__r$   coreContextOption	Parameterboolr'   strr   r(   commandoptionZpass_contextr9   r   r   r   r   <module>   s   


	
&

.

