
    #h              
       *   d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZ dZdZdZd	Zd
Z ej$                  ej&                  j)                  ej&                  j+                  e                    e e ed  ej4                  e                  e
z
        Z ej4                  e      D  cg c]  } | dd 	 c} Z ee      j;                   ee            Z ej>                  d      Z d Z!d Z"d Z#d Z$ddZ%e&dk(  r e%        yyc c} w )    N)OrderedDict)RoundTripLoader)avoid_languages)combine_dictsz<../dateparser_data/cldr_language_data/date_translation_data/z/../dateparser_data/supplementary_language_data/zE../dateparser_data/supplementary_language_data/date_translation_data/z../dateparser/data/z)../dateparser/data/date_translation_data/c                     | d d S )N xs    c/var/www/html/sandstorm/venv/lib/python3.12/site-packages/dateparser_scripts/write_complete_data.py<lambda>r      s    af     r   z\{0\}c                     t               }| j                         D ]8  \  }}t        |      D ]   \  }}t        j	                  d|      }|||<   " |||<   : |S )Nz(\\d+[.,]?\\d*))r   items	enumerateRELATIVE_PATTERNsub)relative_datamodified_relative_datakeyvalueistrings         r   _modify_relative_datar      so    (]#))+ ,
U"5) 	IAv%))*<fEFE!H	 ',s#	,
 "!r   c                     | j                  di       }t        |      }| j                  di       }|j                         D ]"  \  }}|j                  di       }t        |      }$ y )Nzrelative-type-regexlocale_specific)getr   r   )language_datar   locale_specific_data_infolocale_relative_datas         r   _modify_datar#   )   so    !%%&;R@M)-8M(,,->C'--/ K4#xx(=rB45IJKr   c                 z   i }i }| t         v r9t        t        | z   dz         5 }t        j                  |t
              }d d d        | t        v r@t        t        | z   dz         5 }t        t        |      j                               }d d d        t        ||      }d|vr| |d<   |S # 1 sw Y   hxY w# 1 sw Y   ,xY w)Nz.json)object_pairs_hookz.yamlname)cldr_languagesopencldr_date_directoryjsonloadr   supplementary_languagessupplementary_date_directoryr   get_datar   )language	cldr_datasupplementary_datafgcomplete_datas         r   #_get_complete_date_translation_datar5   2   s    I>!%07:; 	Dq		!{CI	D**.9GCD 	L!,_Q-?-H-H-J!K	L!)-?@M]" (f	D 	D	L 	Ls   B%##B1%B.1B:c                 x    |r||| <   y t        | |      5 }|j                  |       d d d        y # 1 sw Y   y xY w)N)r(   write)filenametextmode	in_memoryin_memory_resultouts         r   _write_filer>   A   s<    %)"(D! 	SIIdO	 	 	s   09c                    i }| st         j                  j                  t              st        j                  t               t         j                  j                  t
              rt        j                  t
               t        j                  t
               t        t        dz         5 }t        |      j                         }ddd       t        D ]m  }t        |      }t        |      }t        |       t!        j"                  |ddd      }d|z   dz   j%                  d	      }t'        t
        |z   d
z   |d| |       o d}t'        t        dz   |dd|       t'        t
        dz   ddd|       |S # 1 sw Y   xY w)a7  
    This function is responsible of generating the needed py files from the
    CLDR files (JSON format) and supplementary language data (YAML format).

    Use it with in_memory=True to avoid writing real files and getting a
    dictionary containing the file names and their content (used when testing).
    zbase_data.yamlN   ),z: F)indent
separatorsensure_asciizinfo = 
zutf-8z.pywbzsfrom dateparser.data import date_translation_data
from .languages_info import language_order, language_locale_dict
z__init__.pyw )ospathisdirtranslation_data_directorymkdirdate_translation_directoryshutilrmtreer(   supplementary_directoryr   r.   all_languagesr5   r   r#   r*   dumpsencoder>   )	r;   r<   r2   	base_datar/   date_translation_datatranslation_dataout_text	init_texts	            r   write_complete_datarZ   I   sf    ww}}78HH/077==34MM45
+,	%(88	9 2Q#A&//1	2 " 
 CH M -.CY O*+::!!RW
  0047??H&1E9	

"	M 
 "]2 "]2BUDT G2 2s   (E00E9__main__)F)'r*   rI   rO   collectionsr   regexreruamel.yamlr   "dateparser_scripts.order_languagesr   dateparser_scripts.utilsr   r)   rQ   r-   rL   rN   chdirrJ   dirnameabspath__file__listsetmaplistdirr'   r,   unionrR   compiler   r   r#   r5   r>   rZ   __name__r
   s   0r   <module>rm      s    	  #  ' > 2T K K  3 H  2	3 4jbjj)<=>?/Q ,62::6R+STa1Sb6T N#))#.E*FG2::h' "K4n z O Us   4D