o
    i?
                     @   sx   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 )    N)	TokenizerProfilec                   @   s   e Zd ZdS )ParserErrorN)__name__
__module____qualname__ r   r   E/home/ubuntu/.local/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   	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rnt|jrnt|jd |v rd||jd  j nd|j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   GRAPHEME_COL
parse_argsr"   lenr   r   __doc__r   format
print_helpr   exitr   	Exception)parsed_argscommandsparserr   er   r   r	   main(   sP   


r;   __main__)N)r   r(   r   r*   segmentsr   r   r6   r   r   r
   r   r;   r   r   r   r   r	   <module>   s    	
'
