o
    mi
                     @   s|   d Z ddlZddlZddlZddlZddlmZmZ G dd deZ	dd Z
dd	 Zd
d ZdddZedkr<e  dS dS )z
CLI for the segments package.
    N)	TokenizerProfilec                   @   s   e Zd ZdS )ParserErrorN)__name__
__module____qualname__ r   r   K/home/kim/smarthome/.venv/lib/python3.10/site-packages/segments/__main__.pyr      s    r   c                 C   s@   | j rt| j  stdtt| j dt| | jd dS )z
    Tokenize a string (passed as argument or read from stdin)

    segments [--profile=PATH/TO/PROFILE] tokenize [STRING]
    z---profile must be a path for an existing file)profile)columnN)	r
   pathlibPathexistsr   printr   _readmappingargsr   r   r	   tokenize   s   "r   c                 C   s   t tt|  dS )z{
    Create an orthography profile for a string (passed as argument or read from stdin)

    segments profile [STRING]
    N)r   r   Z	from_textr   r   r   r   r	   r
      s   r
   c                 C   s8   | j r| j d ntj }t|ts|| j}| S )Nr   )	r   sysstdinread
isinstancestrdecodeencodingstrip)r   stringr   r   r	   r   $   s   
r   c              
   C   s  t td}t  tjddd}|jddd |jdd	|d |jd
tjd |jdddd |jddd d |jddt	j
d | pG| }|jdkrot|jrot|jd |v rd||jd  j nd|jd  d n[|j|vrtd |  td z	||j | W n? ty } zt| t||j j  td W Y d }~nd }~w ty } zt| td W Y d }~nd }~ww td d S )N)r   r
   z4Main command line interface of the segments package.z@Use '%(prog)s help <cmd>' to get help about individual commands.)descriptionepilogz--verbosityzincrease output verbosity)helpcommandz | r   )nargsz
--encodingzinput encodingutf8)r    defaultz	--profilezpath to an orthography profilez	--mappingz-column name in ortho profile to map graphemesr    r   zInvalid command: ''zinvalid command@      )r   r
   loggingbasicConfigargparseArgumentParseradd_argumentjoin	REMAINDERr   ZGRAPHEME_COL
parse_argsr!   lenr   r   __doc__r   
print_helpr   exitr   	Exception)Zparsed_argscommandsparserr   er   r   r	   main+   sP   


r8   __main__)N)r1   r   r(   r   r*   segmentsr   r   r4   r   r   r
   r   r8   r   r   r   r   r	   <module>   s    	
'
