
    7j	              
          d Z ddlmZmZ ddlmZ ddlmZ dZddgZ	d Z
d	 Z ej                  d
dddd       ej                  dddd       ej                  ddddd       ej                  ddded       ej                  dej                  j                  j                   rdnd      d                                    Zy )!z-Format python code according to QMK's style.
    )CalledProcessErrorDEVNULL)cli)normpath)pyz
lib/pythonzutil/cic                 T   t         j                  j                  rdnd}ddd|g| }	 t        j                  |ddt               t         j
                  j                  d	       y # t        $ r9 t         j
                  j                  d
dj                  t               d       Y yw xY w)Nz--diffz
--in-placeyapfz-vvz--recursiveTF)checkcapture_outputstdinz'Successfully formatted the python code.zPython code in ,z incorrectly formatted!)r   argsdry_runrunr   loginfor   errorjoinpy_dirs)filesedityapf_cmds      N/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/format/python.pyyapf_runr      s    xx''8\D}d;U;HU'J>? (9'::QRSs   <A% %?B'&B'c           	   #      K   t        t        t        t        d|                   } | D ]<  }|j                  dd t
        v r| t        j                  j                  d|       > yw)z7Yield only files to be formatted and skip the rest
    N   zSkipping file %s)	listmapr   filtersuffixpy_file_suffixesr   r   debug)r   files     r   filter_filesr$      sZ      XvdE234E 4;;qr?..JGGMM,d3	4s   A&A(z-nz	--dry-runT
store_truezDon't actually format.)arg_onlyactionhelpz-bz--base-branchzorigin/masterzBranch to compare to diffs to.)defaultr(   z-az--all-fileszFormat all files.r   *zFilename(s) to format.)nargsr&   typer(   z,Format python code according to QMK's style.F)hiddenc           	         | j                   j                  rt        t        | j                   j                              }|sX| j                  j                  ddj                  t        t        | j                   j                                     t        d       | j                   j                  r| j                  j                  ddj                  t        t        |                   n| j                   j                  rPddgt        } | j                  |t              }t        t        |j                  j!                  d	                  }nedd
d| j                   j"                  gt        } | j                  |t              }t        t        |j                  j!                  d	                  }|s| j                  j                  d       yt%        |      S )z1Format python code according to QMK's style.
    zNo Python files in filelist: %sz, r   z-Filenames passed with -a, only formatting: %sr   gitzls-files)r   
diffz--name-onlyzINo changed files detected. Use "qmk format-python -a" to format all filesF)r   r   r   r$   r   r   r   r   strexit	all_fileswarningr   r   r   stdoutsplitbase_branchr   )r   r   
git_ls_cmdgit_lsgit_diff_cmdgit_diffs         r   format_pythonr=   $   sQ    xx~~\#((..12GGMM;TYYs3PSPXPXP^P^G_=`aG88GGOOKSXXVYZ]_dVeMfg			Z2'2
73\&--"5"5d";<= v}chh6J6JUWU377<w7\(//"7"7"=>? abE?    N)__doc__
subprocessr   r   milcr   qmk.pathr   r!   r   r   r$   argument
subcommandconfiguser	developerr=    r>   r   <module>rI      s    2   
#	4 dK$|JbcdO_CcddMDL_`gS4hE]^>PSPZPZP_P_PiPiuost u _ a e d
r>   