
    7j                     F   d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ  ej                  d	 ed
      d       ej                  dddd       ej                   dej"                  j$                  j&                  rdnd      d                      Zy)zConvert raw KLE to JSON
    N)Path)FilesCompleter)cli)KLE2xy)kle2qmk)InfoJSONEncoderfilenamez.jsonzThe KLE raw txt to convert)	completerhelpz-fz--force
store_truez#Flag to overwrite current info.json)actionr   z+Convert a KLE layout to a Configurator JSONFT)hiddenc                    | j                   j                  j                  d      s%| j                   j                  j                  d      r t        | j                   j                        }n1t        t        j
                  d   | j                   j                        }|j                         s| j                  j                  d|       y|j                  }|j                  d      }t        |d      j                         r3| j                   j                  s| j                  j                  d	|       y	 t        |      }|j                  ddddt!        |      iid}t#        j$                  |dddt&              }|dz  }|j)                  |       | j                  j+                  d|       y# t        $ rA}| j                  j                  d
|       | j                  j                  |       Y d}~yd}~ww xY w)z1Convert a KLE layout to QMK's layout format.
    /z./ORIG_CWDz0File {fg_cyan}%s{style_reset_all} was not found.Fzutf-8)encodingz	info.jsonz[File {fg_cyan}%s/info.json{style_reset_all} already exists, use -f or --force to overwrite.z Could not parse KLE raw data: %sN qmkLAYOUTlayout)keyboard_nameurl
maintainerlayouts   )z, z: )indent
separators	sort_keysclszWrote out {fg_cyan}%s/info.json)argsr	   
startswithr   osenvironexistslogerrorparent	read_textforcer   	Exception	exceptionnamer   jsondumpsr   
write_textinfo)r   	file_pathout_pathraw_codekleekeyboardinfo_json_files           I/home/hanthebot/chat/keyboard/qmk_firmware/lib/python/qmk/cli/kle2json.pykle2jsonr9      s    xx##C(CHH,=,=,H,H,N**+	 J/1B1BC	H)TH""G"4HHk"))+CHHNNsu}~X '#,
		H zz(1QV\klH+Nh'GGLL2H=)  8(C!s   5F/ /	G987G44G9)__doc__r-   r"   pathlibr   argcomplete.completersr   milcr   kle2xyr   qmk.converterr   qmk.json_encodersr   argument
subcommandconfiguser	developerr9        r8   <module>rH      s     	  1   ! - jN7$;B^_dIl9^_=szzOhOhenrs)> t ` `)>rG   