
    %$}gB                        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j        d          Z ej        d          Z ej        dej                  Z ej        d	                    e                    Z ej        d
          Z ej        d          Z ej        d          ZdZd Zd Zd Zd Zd Zd Zedk    r e             dS 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                     t          | t                    o4t                              |           ot                              |            S N)
isinstancestrRELATIVE_PATTERNsearchPARENTHESIS_PATTERN)relative_strings    `/var/www/py-google-trends/myenv/lib/python3.11/site-packages/dateparser_scripts/get_cldr_data.py_filter_relative_stringr   $   sC    ?C(( 	<##O44	<#**?;;;    c                 8    t                               |            S r	   )DEFAULT_MONTH_PATTERNmatch)
month_names    r   _filter_month_namer   ,   s    $**:6666r   c                    t           | z   dz   }t           | z   dz   }t          |          5 }t          j        |t                    }d d d            n# 1 swxY w Y   t          |          5 }t          j        |t                    }d d d            n# 1 swxY w 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<   	 d         d                                         }n6# t          $ r) d         d         d                                         }Y nw xY wt                              dt          	                    |          
                                          |d<   t          t          t          fd|D                                 |d<   t          t          t          fd|D                                 |d<   t          t          t          fd |D                                 |d!<   t          t          t          fd"|D                                 |d#<   t          t          t          fd$|D                                 |d%<   t          t          t          fd&|D                                 |d'<   t          t          t          fd(|D                                 |d)<   t          t          t          fd*|D                                 |d+<   t          t          t          fd,|D                                 |d-<   t          t          t          fd.|D                                 |d/<   t          t          t          fd0|D                                 |d1<   t          t          t          fd2|D                                 |d3<   fd4|D             |d5<   fd6|D             |d7<   fd8|D             |d9<   fd:|D             |d;<   fd<|D             |d=<   fd>|D             |d?<   fd@|D             |dA<   dB fdC|D             D             |dD<   dE fdF|D             D             |dG<   fdH|	D             |dI<   fdJ|
D             |dK<   fdL|D             |dM<   fdN|D             |dO<   fdP|D             |dQ<   fdR|D             |dS<   fdT|D             |dU<   t	                      |dV<   fdW|	D             |dV         dX<   fdY|	D             |dV         dZ<   fd[|	D             |dV         d\<   fd]|
D             |dV         d^<   fd_|
D             |dV         d`<   fda|
D             |dV         db<   fdc|D             |dV         dd<   fde|D             |dV         df<   fdg|D             |dV         dh<   fdi|D             |dV         dj<   fdk|D             |dV         dl<   fdm|D             |dV         dn<   fdo|D             |dV         dp<   fdq|D             |dV         dr<   fds|D             |dV         dt<   t	                      |du<   t          t          t          fdv|	D                                 |du         dw<   t          t          t          fdx|	D                                 |du         dy<   t          t          t          fdz|
D                                 |du         d{<   t          t          t          fd||
D                                 |du         d}<   t          t          t          fd~|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   t          t          t          fd|D                                 |du         d<   |S )Nz/ca-gregorian.jsonz/dateFields.json)object_pairs_hookmaindates	calendars	gregorianfieldszstand-aloneformatwide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namedateFormatsshort_valuez\1\2\3
date_orderc                 N    g | ]!}D ]}d          |         |         d         "S )months1 .0key1key2field_keys_2gregorian_dicts      r   
<listcomp>z)_retrieve_locale_data.<locals>.<listcomp>\   T       (   x(.t4S9   r   januaryc                 N    g | ]!}D ]}d          |         |         d         "S )r/   2r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>g   r9   r   februaryc                 N    g | ]!}D ]}d          |         |         d         "S )r/   3r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>r   r9   r   marchc                 N    g | ]!}D ]}d          |         |         d         "S )r/   4r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>}   r9   r   aprilc                 N    g | ]!}D ]}d          |         |         d         "S )r/   5r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   r9   r   mayc                 N    g | ]!}D ]}d          |         |         d         "S )r/   6r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   r9   r   junec                 N    g | ]!}D ]}d          |         |         d         "S )r/   7r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   r9   r   julyc                 N    g | ]!}D ]}d          |         |         d         "S )r/   8r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   r9   r   augustc                 N    g | ]!}D ]}d          |         |         d         "S )r/   9r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   r9   r   	septemberc                 N    g | ]!}D ]}d          |         |         d         "S )r/   10r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   T       (   x(.t4T:   r   octoberc                 N    g | ]!}D ]}d          |         |         d         "S )r/   11r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   rU   r   novemberc                 N    g | ]!}D ]}d          |         |         d         "S )r/   12r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   rU   r   decemberc                 N    g | ]!}D ]}d          |         |         d         "S )daysmonr1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   T           	vt$T*51   r   mondayc                 N    g | ]!}D ]}d          |         |         d         "S )r^   tuer1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   sT           	vt$T*51   r   tuesdayc                 N    g | ]!}D ]}d          |         |         d         "S )r^   wedr1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   sT           	vt$T*51   r   	wednesdayc                 N    g | ]!}D ]}d          |         |         d         "S )r^   thur1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   T           	vt$T*51   r   thursdayc                 N    g | ]!}D ]}d          |         |         d         "S )r^   frir1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   r`   r   fridayc                 N    g | ]!}D ]}d          |         |         d         "S )r^   satr1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>   rj   r   saturdayc                 N    g | ]!}D ]}d          |         |         d         "S )r^   sunr1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r`   r   sundayc                 D    g | ]}t                               d |          S )am)
AM_PATTERNsubr3   xs     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  6        	tQ  r   c                 N    g | ]!}D ]}d          |         |         d         "S )
dayPeriodsrv   r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>	  T     
 
 
$
 
  <(.t4T:
 
 
 
r   rv   c                 D    g | ]}t                               d |          S )pm)
PM_PATTERNrx   ry   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r{   r   c                 N    g | ]!}D ]}d          |         |         d         "S )r}   r   r1   r2   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r~   r   r   c                 ,    g | ]}|         d          S displayNamer1   r3   keydate_fields_dicts     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  $    SSS#)#.}=SSSr   r"   c                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  s$    UUU3*3/>UUUr   r#   c                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   r$   c                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  s$    QQQ(-m<QQQr   r%   c                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>!  r   r   r&   c                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>#  $    WWWC+C0?WWWr   r'   c                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>%  r   r   r(   zrelative-typec                 ,    g | ]}|         d          S zrelative-type--1r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>)  2     0 0 069010 0 0r   z
1 year agoc                 ,    g | ]}|         d          S zrelative-type-0r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>-  2     0 0 058/00 0 0r   z
0 year agoc                 ,    g | ]}|         d          S zrelative-type-1r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>1  2     / / /58/0/ / /r   z	in 1 yearc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>5  s2     1 1 169011 1 1r   z1 month agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>9  s2     1 1 158/01 1 1r   z0 month agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>=  r   r   z
in 1 monthc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>A  r   r   z
1 week agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>E  r   r   z
0 week agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>I  r   r   z	in 1 weekc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>M  s2     / / /6901/ / /r   z	1 day agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>Q  r   r   z	0 day agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>U  s2     . . .58/0. . .r   zin 1 dayc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>Y  r   r   z
0 hour agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>]  2     2 2 258/02 2 2r   z0 minute agoc                 ,    g | ]}|         d          S r   r1   r   s     r   r8   z)_retrieve_locale_data.<locals>.<listcomp>a  r   r   z0 second agozrelative-type-regexc                 \    g | ](}D ]#}|         d                               |          $)S zrelativeTime-type-futuregetr3   r4   r5   r   relative_keyss      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>j  Y       )   !&'ABFFtLL   r   z
in \1 yearc                 \    g | ](}D ]#}|         d                               |          $)S zrelativeTime-type-pastr   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>u  Y       )   !&'?@DDTJJ   r   z\1 year agoc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   zin \1 monthc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z\1 month agoc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z
in \1 weekc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z\1 week agoc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z	in \1 dayc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z
\1 day agoc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z
in \1 hourc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z\1 hour agoc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   zin \1 minutec                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z\1 minute agoc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   zin \1 secondc                 \    g | ](}D ]#}|         d                               |          $)S r   r   r   s      r   r8   z)_retrieve_locale_data.<locals>.<listcomp>  r   r   z\1 second ago)cldr_dates_full_diropenjsonloadr   upperAttributeErrorDATE_ORDER_PATTERNrx   r   grouplistfilterr   r   )localeca_gregorian_filedateFields_filefcldr_gregorian_datagcldr_datefields_data	json_dictfield_keys_1	year_keys
month_keys	week_keysday_keys	hour_keysminute_keyssecond_keysdate_format_stringr   r6   r7   r   s                    @@@@r   _retrieve_locale_datar   0   s	   +f47KK)F25GGO		 	  JA"i[IIIJ J J J J J J J J J J J J J J 
o		 K!#ykJJJK K K K K K K K K K K K K K K )08A+NN ,F3F;GDXNI!8,LL 655I999J555I111H555I===K===K46WXMIfV+M:7CIIKK V V V+M:7CHMSSUUV 144%,,-?@@FFHH Il      (  	
 	
	 	Ii !    (  	
 	
	 	Ij     (  	
 	
	 	Ig     (  	
 	
	 	Ig     (  	
 	
	 	Ie     (  	
 	
	 	If     (  	
 	
	 	If     (  	
 	
	 	Ih "    (  	
 	
	 	Ik      (  	
 	
	 	Ii !    (  	
 	
	 	Ij !    (  	
 	
	 	Ij       Ih       Ii       Ik       Ij       Ih       Ij       Ih 
 
 
 
 
$
 
 
  IdO 
 
 
 
 
$
 
 
  IdO TSSSSSSIfUUUU*UUUIgSSSSSSSIfQQQQQQQIeSSSSSSSIfWWWW;WWWIhWWWW;WWWIh!,Io0 0 0 0=F0 0 0Io|,0 0 0 0<E0 0 0Io|,/ / / /<E/ / /Io{+1 1 1 1=G1 1 1Io}-1 1 1 1<F1 1 1Io}-0 0 0 0<F0 0 0Io|,0 0 0 0=F0 0 0Io|,0 0 0 0<E0 0 0Io|,/ / / /<E/ / /Io{+/ / / /=E/ / /Io{+/ / / /<D/ / /Io{+. . . .<D. . .Ioz*0 0 0 0<E0 0 0Io|,2 2 2 2<G2 2 2Io~.2 2 2 2<G2 2 2Io~. (3}}I#$6:#    %  	
 	
	7 	7I#$]3 8<#    %  	
 	
	8 	8I#$^4 8<#    &  	
 	
	8 	8I#$^4 9=#    &  	
 	
	9 	9I#$_5 7;#    %  	
 	
	7 	7I#$]3 8<#    %  	
 	
	8 	8I#$^4 6:#    $  	
 	
	6 	6I#$\2 7;#    $  	
 	
	7 	7I#$]3 7;#    %  	
 	
	7 	7I#$]3 8<#    %  	
 	
	8 	8I#$^4 9=#    '  	
 	
	9 	9I#$_5 :>#    '  	
 	
	: 	:I#$%56 9=#    '  	
 	
	9 	9I#$_5 :>#    '  	
 	
	: 	:I#$%56 s5   AAA0BBB D: :0E-,E-c                     t                               d|           } |                     dd          } |                                 } d                    |                                           S )N'.  )RE_SANITIZE_APOSTROPHErx   replacelowerjoinsplit)given_strings    r   _clean_stringr     s[    )--c<@@L''R00L%%''L88L&&(()))r   c           	         |                                  D ]\  }}t          |t                    r8t          t	          j        t          t          |                              | |<   Rt          |t                    rIt	          t          |                                                     | |<   t          | |                   | |<   t	          t          d |                                                      S )zRemove duplicates and sortc                     | d         S )N   r1   )rz   s    r   <lambda>z_clean_dict.<locals>.<lambda>  s
    ! r   )itemsr
   r   sortedr   fromkeysmapr   dict_clean_dictr   )r   r   values      r   r   r     s    oo'' 9 9
UeT"" 	9#K$8]E9R9R$S$STTIcNNt$$ 	9()>)>??IcN(388IcNvnnioo.?.?@@AAAr   c                     t                       t                      } d}d}t          j                            |          st          j        |           t          j                            |          rt          j        |           t          j        |           | D ])}t          t          |                    }t                      }| |         }|D ]>}t          t          |                    }t          t          ||                    ||<   ?t          t          |                                                    |d<   ||z   dz   }	t          d|	z              t          j        |ddd	                              d
          }
t%          |	d          5 }|                    |
           d d d            n# 1 swxY w Y   +d S )Nz%../dateparser_data/cldr_language_dataz<../dateparser_data/cldr_language_data/date_translation_data/locale_specificz.jsonzwriting    ),z: F)indent
separatorsensure_asciizutf-8wb)r   r   ospathisdirmkdirshutilrmtreer   r   r   r   r   r   printr   dumpsencoder   write)language_locale_dictparent_directory	directorylanguagejson_language_dictlocale_specific_dictlocales_listr   json_locale_dictfilenamejson_stringr   s               r   r   r     s	   NNN466>NI7==)** #
!"""	w}}Y !i   HY( ! !()>x)H)HII*}}+H5" 	 	F*+@+H+HII+6#$68HII, , (( 1<'--//001
 1
,- x''1j8#$$$jq[u
 
 

&// 	 (D!! 	!QGGK   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!#! !s   F;;F?	F?	__main__)r   r   r   collectionsr   regexre"dateparser_scripts.order_languagesr   dateparser_scripts.utilsr   r   APOSTROPHE_LOOK_ALIKE_CHARScompiler   r   Ur   r   r   rw   r   r   r   r   r   r   r   r   r   __name__r1   r   r   <module>r     s    				  # # # # # #     H H H H H H F F F F F F F F
 
 
   RZ>   2:455 "
:rt44 #CHH-H$I$IJJ RZ:;;
RZ:;;
 bj++ 9   7 7 7Q Q Qh* * *B B B! ! !@ zDFFFFF r   