a
    xd?                     @   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
mZ g dZedZedZedejZed	eZed
ZedZedZdZdd Zdd Zdd Zdd Zdd Zdd Zedkre  dS )    N)OrderedDict)_get_language_locale_dict)get_dict_differenceget_raw_data)	u   ’u   ʼu   ʻu   ՚u   ꞌu   ′u   ‵u   ʹu   ＇u0   ([DMY])+‏*[-/. 	]*([DMY])+‏*[-/. 	]*([DMY])+z(?<![\+\-]\s*)\{0\}z^M?\d+$|z^\s*[Aa]\s*\.?\s*[Mm]\s*\.?\s*$z^\s*[Pp]\s*\.?\s*[Mm]\s*\.?\s*$z[\(\)]z!../raw_data/cldr_dates_full/main/c                 C   s    t | tot| ot|  S N)
isinstancestrRELATIVE_PATTERNsearchPARENTHESIS_PATTERN)Zrelative_string r   X/var/www/html/Ranjet/env/lib/python3.9/site-packages/dateparser_scripts/get_cldr_data.py_filter_relative_string"   s
    

r   c                 C   s   t |  S r   )DEFAULT_MONTH_PATTERNmatch)
month_namer   r   r   _filter_month_name(   s    r   c                    s6  t |  d }t |  d }t|}tj|td}W d    n1 sD0    Y  t|}tj|td}W d    n1 sz0    Y  |d |  d d d |d |  d d  t }d	d
g}ddgg d}	g d}
g d}g d}g d}g d}g d}ddg| |d< zd d  }W n( tyJ   d d d  }Y n0 tdt	|
 |d< tttfdd|D |d< tttfdd|D |d < tttfd!d|D |d"< tttfd#d|D |d$< tttfd%d|D |d&< tttfd'd|D |d(< tttfd)d|D |d*< tttfd+d|D |d,< tttfd-d|D |d.< tttfd/d|D |d0< tttfd1d|D |d2< tttfd3d|D |d4< fd5d|D |d6< fd7d|D |d8< fd9d|D |d:< fd;d|D |d<< fd=d|D |d>< fd?d|D |d@< fdAd|D |dB< dCd fdDd|D D |dE< dFd fdGd|D D |dH<  fdId|	D |dJ<  fdKd|
D |dL<  fdMd|D |dN<  fdOd|D |dP<  fdQd|D |dR<  fdSd|D |dT<  fdUd|D |dV< t |dW<  fdXd|	D |dW dY<  fdZd|	D |dW d[<  fd\d|	D |dW d]<  fd^d|
D |dW d_<  fd`d|
D |dW da<  fdbd|
D |dW dc<  fddd|D |dW de<  fdfd|D |dW dg<  fdhd|D |dW di<  fdjd|D |dW dk<  fdld|D |dW dm<  fdnd|D |dW do<  fdpd|D |dW dq<  fdrd|D |dW ds<  fdtd|D |dW du< t |dv< ttt fdwd|	D |dv dx< ttt fdyd|	D |dv dz< ttt fd{d|
D |dv d|< ttt fd}d|
D |dv d~< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< ttt fdd|D |dv d< |S )Nz/ca-gregorian.jsonz/dateFields.json)object_pairs_hookmaindatesZ	calendarsZ	gregorianfieldszstand-aloneformatZwideZabbreviated)yearz
year-shortzyear-narrow)monthzmonth-shortzmonth-narrow)weekz
week-shortzweek-narrow)dayz	day-shortz
day-narrow)hourz
hour-shortzhour-narrow)minutezminute-shortzminute-narrow)secondzsecond-shortzsecond-narrowzrelativeTimePattern-count-onezrelativeTimePattern-count-othernameZdateFormatsshort_valuez\1\2\3Z
date_orderc                    s*   g | ]"} D ]}d  | | d qqS )months1r   .0key1key2field_keys_2gregorian_dictr   r   
<listcomp>Q   s   
z)_retrieve_locale_data.<locals>.<listcomp>januaryc                    s*   g | ]"} D ]}d  | | d qqS )r#   2r   r%   r)   r   r   r,   U   s   
februaryc                    s*   g | ]"} D ]}d  | | d qqS )r#   3r   r%   r)   r   r   r,   Y   s   
marchc                    s*   g | ]"} D ]}d  | | d qqS )r#   4r   r%   r)   r   r   r,   ]   s   
aprilc                    s*   g | ]"} D ]}d  | | d qqS )r#   5r   r%   r)   r   r   r,   a   s   
mayc                    s*   g | ]"} D ]}d  | | d qqS )r#   6r   r%   r)   r   r   r,   e   s   
junec                    s*   g | ]"} D ]}d  | | d qqS )r#   7r   r%   r)   r   r   r,   i   s   
julyc                    s*   g | ]"} D ]}d  | | d qqS )r#   8r   r%   r)   r   r   r,   m   s   
augustc                    s*   g | ]"} D ]}d  | | d qqS )r#   9r   r%   r)   r   r   r,   q   s   
	septemberc                    s*   g | ]"} D ]}d  | | d qqS )r#   10r   r%   r)   r   r   r,   u   s   
octoberc                    s*   g | ]"} D ]}d  | | d qqS )r#   Z11r   r%   r)   r   r   r,   y   s   
novemberc                    s*   g | ]"} D ]}d  | | d qqS )r#   Z12r   r%   r)   r   r   r,   }   s   
decemberc                    s*   g | ]"} D ]}d  | | d qqS )daysmonr   r%   r)   r   r   r,      s   
Zmondayc                    s*   g | ]"} D ]}d  | | d qqS )rB   tuer   r%   r)   r   r   r,      s   
Ztuesdayc                    s*   g | ]"} D ]}d  | | d qqS )rB   wedr   r%   r)   r   r   r,      s   
Z	wednesdayc                    s*   g | ]"} D ]}d  | | d qqS )rB   thur   r%   r)   r   r   r,      s   
Zthursdayc                    s*   g | ]"} D ]}d  | | d qqS )rB   frir   r%   r)   r   r   r,      s   
Zfridayc                    s*   g | ]"} D ]}d  | | d qqS )rB   satr   r%   r)   r   r   r,      s   
Zsaturdayc                    s*   g | ]"} D ]}d  | | d qqS )rB   sunr   r%   r)   r   r   r,      s   
Zsundayc                 S   s   g | ]}t d |qS )am)
AM_PATTERNsubr&   xr   r   r   r,          c                    s*   g | ]"} D ]}d  | | d qqS )
dayPeriodsrJ   r   r%   r)   r   r   r,      s   
rJ   c                 S   s   g | ]}t d |qS )pm)
PM_PATTERNrL   rM   r   r   r   r,      rO   c                    s*   g | ]"} D ]}d  | | d qqS )rP   rQ   r   r%   r)   r   r   r,      s   
rQ   c                    s   g | ]} | d  qS ZdisplayNamer   r&   keydate_fields_dictr   r   r,      rO   r   c                    s   g | ]} | d  qS rS   r   rT   rV   r   r   r,      rO   r   c                    s   g | ]} | d  qS rS   r   rT   rV   r   r   r,      rO   r   c                    s   g | ]} | d  qS rS   r   rT   rV   r   r   r,      rO   r   c                    s   g | ]} | d  qS rS   r   rT   rV   r   r   r,      rO   r   c                    s   g | ]} | d  qS rS   r   rT   rV   r   r   r,      rO   r   c                    s   g | ]} | d  qS rS   r   rT   rV   r   r   r,      rO   r   zrelative-typec                    s   g | ]} | d  qS zrelative-type--1r   rT   rV   r   r   r,      s   z
1 year agoc                    s   g | ]} | d  qS zrelative-type-0r   rT   rV   r   r   r,      s   z
0 year agoc                    s   g | ]} | d  qS zrelative-type-1r   rT   rV   r   r   r,      s   z	in 1 yearc                    s   g | ]} | d  qS rX   r   rT   rV   r   r   r,      s   z1 month agoc                    s   g | ]} | d  qS rY   r   rT   rV   r   r   r,      s   z0 month agoc                    s   g | ]} | d  qS rZ   r   rT   rV   r   r   r,      s   z
in 1 monthc                    s   g | ]} | d  qS rX   r   rT   rV   r   r   r,      s   z
1 week agoc                    s   g | ]} | d  qS rY   r   rT   rV   r   r   r,      s   z
0 week agoc                    s   g | ]} | d  qS rZ   r   rT   rV   r   r   r,      s   z	in 1 weekc                    s   g | ]} | d  qS rX   r   rT   rV   r   r   r,      s   z	1 day agoc                    s   g | ]} | d  qS rY   r   rT   rV   r   r   r,      s   z	0 day agoc                    s   g | ]} | d  qS rZ   r   rT   rV   r   r   r,      s   zin 1 dayc                    s   g | ]} | d  qS rY   r   rT   rV   r   r   r,      s   z
0 hour agoc                    s   g | ]} | d  qS rY   r   rT   rV   r   r   r,      s   z0 minute agoc                    s   g | ]} | d  qS rY   r   rT   rV   r   r   r,      s   z0 second agozrelative-type-regexc                    s(   g | ] }D ]} | d   |qqS zrelativeTime-type-futuregetr%   rW   relative_keysr   r   r,      s   
z
in \1 yearc                    s(   g | ] }D ]} | d   |qqS zrelativeTime-type-pastr\   r%   r^   r   r   r,      s   
z\1 year agoc                    s(   g | ] }D ]} | d   |qqS r[   r\   r%   r^   r   r   r,      s   
zin \1 monthc                    s(   g | ] }D ]} | d   |qqS r`   r\   r%   r^   r   r   r,      s   
z\1 month agoc                    s(   g | ] }D ]} | d   |qqS r[   r\   r%   r^   r   r   r,      s   
z
in \1 weekc                    s(   g | ] }D ]} | d   |qqS r`   r\   r%   r^   r   r   r,      s   
z\1 week agoc                    s(   g | ] }D ]} | d   |qqS r[   r\   r%   r^   r   r   r,      s   
z	in \1 dayc                    s(   g | ] }D ]} | d   |qqS r`   r\   r%   r^   r   r   r,     s   
z
\1 day agoc                    s(   g | ] }D ]} | d   |qqS r[   r\   r%   r^   r   r   r,     s   
z
in \1 hourc                    s(   g | ] }D ]} | d   |qqS r`   r\   r%   r^   r   r   r,     s   
z\1 hour agoc                    s(   g | ] }D ]} | d   |qqS r[   r\   r%   r^   r   r   r,     s   
zin \1 minutec                    s(   g | ] }D ]} | d   |qqS r`   r\   r%   r^   r   r   r,     s   
z\1 minute agoc                    s(   g | ] }D ]} | d   |qqS r[   r\   r%   r^   r   r   r,     s   
zin \1 secondc                    s(   g | ] }D ]} | d   |qqS r`   r\   r%   r^   r   r   r,     s   
z\1 second ago)cldr_dates_full_diropenjsonloadr   upperAttributeErrorDATE_ORDER_PATTERNrL   r   grouplistfilterr   r   )localeZca_gregorian_fileZdateFields_filefZcldr_gregorian_datagZcldr_datefields_data	json_dictZfield_keys_1Z	year_keysZ
month_keysZ	week_keysZday_keysZ	hour_keysZminute_keysZsecond_keysZdate_format_stringr   )rW   r*   r+   r_   r   _retrieve_locale_data,   s   
,
,



















































ro   c                 C   s.   t d| } | dd} |  } d|  S )N'.  )RE_SANITIZE_APOSTROPHErL   replacelowerjoinsplit)Zgiven_stringr   r   r   _clean_string%  s    ry   c                 C   sz   |   D ]Z\}}t|tr4tttt|| |< qt|trtt|  | |< t	| | | |< qtt
dd |   S )zRemove duplicates and sortc                 S   s   | d S )N   r   )rN   r   r   r   <lambda>4  rO   z_clean_dict.<locals>.<lambda>)itemsr   ri   sortedr   fromkeysmapry   dict_clean_dictrj   )rn   rU   valuer   r   r   r   ,  s    

r   c               	   C   s  t   t } d}d}tj|s*t| tj|r@t| t| | D ]}tt	|}t
 }| | }|D ]"}tt	|}tt||||< qpt
t| |d< || d }	td|	  tj|dddd	d
}
t|	d}||
 W d    qN1 s0    Y  qNd S )Nz%../dateparser_data/cldr_language_dataz<../dateparser_data/cldr_language_data/date_translation_data/Zlocale_specificz.jsonzwriting    ),z: F)indent
separatorsensure_asciizutf-8wb)r   r   ospathisdirmkdirshutilrmtreer   ro   r   r   r}   r|   printrc   dumpsencoderb   write)Zlanguage_locale_dictZparent_directory	directorylanguageZjson_language_dictZlocale_specific_dictZlocales_listrk   Zjson_locale_dictfilenameZjson_stringrl   r   r   r   r   7  s4    



r   __main__)rc   r   r   collectionsr   regexreZ"dateparser_scripts.order_languagesr   Zdateparser_scripts.utilsr   r   ZAPOSTROPHE_LOOK_ALIKE_CHARScompilerg   r
   Ur   rw   rt   rK   rR   r   ra   r   r   ro   ry   r   r   __name__r   r   r   r   <module>   s0   




 z