o
    Niz                     @   s   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Zd dl	m
Z G dd dZdd ZedkrJed	d
ejd  ejd < ee  dS dS )    N)AnyOptional)metadatac                   @   sH   e Zd ZddddZdd Zddee d	efd
dZdd Z	dd Z
dS )CliHepburnKunreiPassport)hkpc                 C   sv  d | _ tjddtjdd| _| jjddddd	 | jjd
tdtjdd | jjdtdtj	dd | jjddddd	 | jjdddg ddd | jjddddd	 | jjddddd	 | jjd d!dd"d	 | jjd#d$dd%d	 | jjd&d'dd(d	 | jjd)dd*d+gd,d | jjd-dg d.d/d | jjd0dg d1d2d | jjd3dg d4d5d | jjd6dd7d+gd8d d S )9Nkakasizkakasi implementation on PythonT)progdescriptionformatter_classadd_helpz-vz	--version
store_truezShow version string)actionhelpz-Irz"Specify input file (default STDIN))typedefaultr   z-Owz$Specify output file (default STDOUT)z-wz--wakatizWakati gaki modez-rz--romanstore)r
   r	   r   z7Set romanize method; k:kunrei, h:hepburn, or p:passport)r   choicesr   z-sz--spacezAdd spacing between tokensz-Sz--separatorzSet separator characterz-fz
--furiganazFurigana outputz-Cz	--capitalzCapitalize outputz-Uz--upperzUpper case outputz-EaNz&Full-width roman characters conversionz-J)r   HKr   zKanji characters conversionz-K)r   r   r   zKatakana conversionz-H)r   r   r   zHiragana conversionz-aEzAlphabet conversion)
r   argparseArgumentParserRawTextHelpFormatterparseradd_argumentFileTypesysstdinstdout)self r)   @/home/ubuntu/.local/lib/python3.10/site-packages/pykakasi/cli.py__init__   s@   zCli.__init__Nargreturnc                 C   sf  d }d }i }| j |}|jr|  S |jrd|d< |jd ur$|j|d< |jd ur.|j|d< |jr5d|d< |jr<d|d< |j	rCd|d< |j
d urRd|j
krR|j
|d	< |jd urad|jkra|j|d
< |jd urpd|jkrp|j|d< |jd urd|jkr|j|d< |jd urd|jkr|j|d< |j}|j}|jrt | _| ||| dS t | _| ||| dS )NTsSr   fCUr   Jr   r   r   r   r   )r"   
parse_argsversionshow_versionspace	separatorromanfuriganacapitalupperr3   r   r   r   r   IOwakatipykakasir   do_it)r(   r,   outfileinfilemodeargsr)   r)   r*   run6   sJ   










zCli.runc                 C   s<   t d}t }t }t }td|j||| dS )Nr@   z)pykakasi: version {} on Python {} [{} {}]r   )	importlib_metadatadistributionplatformpython_versionpython_implementationpython_compilerprintformatr5   )r(   dist
py_versionpy_implpy_buildr)   r)   r*   r6   ]   s   
zCli.show_versionc                 C   sH   |  D ]\}}| j|| q| j }|D ]
}||| qd S N)itemsr   setModegetConverterwritedo)r(   rD   rC   rB   r
   v	converterliner)   r)   r*   rA   e   s   
z	Cli.do_itrS   )__name__
__module____qualname__	romanvalsr+   r   r   intrF   r6   rA   r)   r)   r)   r*   r      s    "'r   c                   C   s"   t jdtd tt   d S )Nignore)category)warningssimplefilterDeprecationWarningr%   exitr   rF   r)   r)   r)   r*   cli_mainm   s   rg   __main__z(-script\.pyw|\.exe)?$ )r   rI   rer%   rc   typingr   r   r@   	importlibr   rG   r   rg   r\   subargvrf   r)   r)   r)   r*   <module>   s   ]