o
    -g                     @   s  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ejeje eeedd eee
 Zdd eeD ZeeeeZedZ dd Z!dd Z"dd Z#dd Z$dddZ%e&dkre%  dS dS )    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                 C   s   | d d S N )xr   r   g/var/www/html/django-vendor/venv/lib/python3.10/site-packages/dateparser_scripts/write_complete_data.py<lambda>   s    r   c                 C   s   g | ]}|d d qS r   r   ).0r	   r   r   r
   
<listcomp>   s    r   z\{0\}c                 C   sJ   t  }|  D ]\}}t|D ]\}}td|}|||< q|||< q|S )Nz(\\d+[.,]?\\d*))r   items	enumerateRELATIVE_PATTERNsub)relative_datamodified_relative_datakeyvalueistringr   r   r
   _modify_relative_data   s   

r   c                 C   sJ   |  di }t|}|  di }| D ]\}}| di }t|}qd S )Nzrelative-type-regexlocale_specific)getr   r   )language_datar   locale_specific_data_infolocale_relative_datar   r   r
   _modify_data)   s   
r    c                 C   s   i }i }| t v r'tt|  d }tj|td}W d    n1 s"w   Y  | tv rKtt|  d }tt|	 }W d    n1 sFw   Y  t
||}d|vrX| |d< |S )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_datar   r   r
   #_get_complete_date_translation_data2   s   
r1   c                 C   sJ   |r||| < d S t | |}|| W d    d S 1 sw   Y  d S )N)r$   write)filenametextmode	in_memoryin_memory_resultoutr   r   r
   _write_fileA   s
   "r9   Fc           	      C   s  i }| st jtst t t jtrtt t t tt	d }t
| }W d   n1 s6w   Y  tD ]-}t|}t||}t| tj|dddd}d| d d	}tt| d
 |d| | q=d}ttd |dd| ttd ddd| |S )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_languagesr1   r   r    r&   dumpsencoder9   )	r6   r7   r.   	base_datar+   date_translation_datatranslation_dataout_text	init_textr   r   r
   write_complete_dataI   sL   




	rT   __main__)F)'r&   rC   rI   collectionsr   regexreruamel.yamlr   "dateparser_scripts.order_languagesr   dateparser_scripts.utilsr   r%   rK   r)   rF   rH   chdirrD   dirnameabspath__file__listsetmaplistdirr#   r(   unionrL   compiler   r   r    r1   r9   rT   __name__r   r   r   r
   <module>   s:    

	
7
