
    7j                         d dl m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 d dlmZmZ d dlmZ d d	lmZ d d
lmZ d Z ej.                  ddddd       ej0                  d      d               Zy)    )Path)Dotty)cli)QMK_USERSPACEHAS_QMK_USERSPACE)UserspaceDefs)BuildTarget)is_all_keyboardskeyboard_folder)is_keymap_target)search_keymap_targets)maybe_exit_configc                     || _         y )N)
extra_args)targetr   s     O/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/userspace/list.py_extra_arg_setterr      s
    "F    z-ez--expandT
store_truez7Expands any use of `all` for either keyboard or keymap.)arg_onlyactionhelpz:Lists the build targets specified in userspace `qmk.json`.c                    t         s| j                  j                  d       yt        dd       t	        t
        dz        }| j                  j                  rg }g }|j                  D ]j  }t        |t              r|j                  |       %t        |t              st        |t              sFd|v r|d   nd }|j                  |d   |d   |f       l t        |      d	kD  r'|j                  t!        |             n|j                  }|D ]_  }t        |t              r | j                  j#                  d
| d       4t        |t              st        |t              r|d   }|d   }|j%                  d      }n4t        |t&              r$|j(                  }|j*                  }|j,                  }d}	Mt        |      d	kD  r?dj/                  |j1                         D 
cg c]  \  }
}d|
 d| d c}}
      }	d|	 d}	t3              st5        t7        |            r&| j                  j#                  d| d d|	        ;| j                  j9                  d| d| d|	 d       b y c c}}
w )NzjCould not determine QMK userspace location. Please run `qmk doctor` or `qmk userspace-doctor` to diagnose.FT)should_exitshould_reraisezqmk.jsonenvkeyboardkeymapr   zJSON keymap: {fg_cyan}z
{fg_reset} z, z	{fg_cyan}=z ({fg_cyan}z{fg_reset})zKeyboard: {fg_cyan}z{fg_reset}, keymap: {fg_cyan}z -- not found!)r   logerrorr   r   r   argsexpandbuild_targets
isinstancer   appenddictr   lenextendr   infogetr	   r   r   r   joinitemsr
   r   r   warning)r   	userspacer%   keyboard_keymap_targetsefr   r   r   extra_args_strkvs               r   userspace_listr7      sh      C  	D%=mj89I
xx"$(( 	PA!T"$$Q'At$
1e(< %
AeH'..*q{A/NO	P &'!+  !67N!OP!// SaGGLL3A3lCD4 Jq%$8}Hx[FuJ;'zzHXXFJ!c*o&9!YYV`VfVfVh'idaQR+aS!L(I'ijN,^,<MJNH%)9/(:SU[)\GGLL0
:[\b[ccop~o  A  BGGOO3H:=^_e^ffr  tB  sC  CQ  R  S1S$ (js    I0N)pathlibr   
dotty_dictr   milcr   qmk.constantsr   r   qmk.userspacer   qmk.build_targetsr	   qmk.keyboardr
   r   
qmk.keymapr   
qmk.searchr   qmk.utilr   r   argument
subcommandr7    r   r   <module>rE      sq       : ' ) : ' , &# dJl  JC  DLM/S N D/Sr   