
    sojP                     J    d dl Z d dlZdededefdZdedefdZdedefd	ZdS )
    Nvalueunit_multiplier_mapreturnc                    d}t          |           D ]}|                                s||z   } |                                                     dd                              dd                              |d          }|                                st          |dk    rt          |          S |D ]-}|                    |                                          r|} n.t          |                     dd                              |d          }|                    d          dk    rt          t          t          |          ||         z            S )z
    Get the value from a string

    Ex. 1.5k -> 1500
        2min -> 120
    :param value: The value
    :param unit_multiplier_map: The unit multiplier map
    :return: The value
     ,.   )
reversed	isnumericstripreplace
ValueErrorint
startswithlowercountfloat)r   r   unitchar	value_strkeyunit_full_names          /app/src/utils/string_utils.pyget_unit_value_from_stringr      sW    D  ~~ 	$;DD%%c2..66sB??GGbQQI    rzz9~~ #   >>$**,,'' 	 NE	  c3''//b99I sauY"5n"EEFFF    objc                 4    t          j        | d dd          S )zd
    Convert an object to a JSON string
    :param obj: The object
    :return: The JSON string
    c                     | j         S )N)__dict__)os    r   <lambda>z'object_to_json_string.<locals>.<lambda>:   s    QZ r   T)r   :)default	sort_keys
separators)jsondumps)r   s    r   object_to_json_stringr)   4   s"     :c#7#74T^____r   bellyc                 v    | t          j        d           dS d                    t          |                     S )z
    Returns a formatted string of the belly
    :param belly: The belly to format e.g. 1000000
    :return: The formatted belly e.g. 1,000,000
    Nz0Get belly formatted with belly None, returning 00z{0:,})logginginfoformatr   )r*   s    r   get_belly_formattedr0   =   s7     }GHHHs>>#e**%%%r   )	r'   r-   strdictr   r   anyr)   r0    r   r   <module>r5      s     ,Gc ,G ,G ,G ,G ,G ,G^`s `s ` ` ` `
&s 
&s 
& 
& 
& 
& 
& 
&r   