o
    noi`                     @   sp   d dl mZ d dl mZ d dl mZ d dlmZ dedee fddZded	ee d
e	de	dee f
ddZ
dS )    )DIRECT_DICT)NUMBER_SCALE_DICT)VARIATIONS_DICT)combine
number_strreturnc                 C   s^  g }g }t | dkr| dr| t v r|t|  d  | d dv r*td d ntd d }|ddt| d  |g  | d tv rZt| d  D ]}|d| d|  qL| dd d} | r|ddt	| g d   | tv rt|  D ]
}|dd|  q{n#t | d	v r|dt	| g d  | tv rt|  D ]}|d| qt
||S )
z
    Convert a number to its text representation.

    Args:
        number_str (str): The number to convert.

    Returns:
        list[str]: The text representation of the number.
       0r   )89    Nu   تہٕ )r      )lenlstripr   keysappendr   insertjoinr   getr   )r   hundreds_texts
ones_texts	scale_key	variationitem r   Q/home/ubuntu/.local/lib/python3.10/site-packages/indic_numtowords/kas/cardinal.pyconvert_to_text   s.   
$ 
r   textsindex
number_lenc                 C   s   t | tr
t |tstd| dv r|S |dkr#| dkr#tt| |S tt| ddd }|dkrC|rCtdd	 |D sCtd
g|}|dkrNt| dn	t|t| d}t||S )a  
    Convert a number string to its text representation and append it to a list.

    Args:
        number_str (str): The number string to process.
        texts (list[str]): A list of texts to update with the converted number.
        index (int): The position of the number in the sequence, affecting scaling.
        number_len (int): The total length of the original number.

    Returns:
        list[str]: The updated list with the number's text representation appended.
    zInvalid input type>   00000r   r	   Nr   c                 s   s    | ]}d |v V  qdS )   تہٕNr   ).0ir   r   r   	<genexpr>I   s    zprocess_text.<locals>.<genexpr>r$   )	
isinstancestrint
ValueErrorr   r   r   anyr   )r   r   r   r    reversed_scaleconverted_textr   r   r   process_text0   s   
r/   N)indic_numtowords.kas.data.numsr   r   r   indic_numtowords.kas.utilsr   r)   listr   r*   r/   r   r   r   r   <module>   s    **