
    8:i                        d dl Z d dlZd dlmZ d dlmZ d dlZd dlmZm	Z	 d dl
mZmZmZ d dlmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z; d dl<m=Z= d dl>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZEmFZF d dlGmHZHmIZI  e;j                  d      d        ZK e;j                  d       d!        ZL e;j                  d"      d#        ZM e;j                  d$      d%        ZN e;j                  d&      d'        ZO e;j                  d(      d)        ZP e;j                  d*      d+        ZQ e;j                  d,      d-        ZR e;j                  d.      d/        ZS e;j                  d0      d1        ZT e;j                  d2      d3        ZU e;j                  d4      d5        ZV e;j                  d6      d7        ZW e;j                  d8      d9        ZX e;j                  d:      d;        ZY e;j                  d<      d=eZfd>       Z[ e;j                  d?      d=eZfd@       Z\ e;j                  dA      d=eZfdB       Z] e;j                  dC      d=eZfdD       Z^ e;j                  dE      d=eZfdF       Z_ e;j                  dG      d=eZfdH       Z` e;j                  dI      d=eZfdJ       Za e;j                  dK      d=eZfdL       Zb e;j                  dM      d=eZfdN       Zc e;j                  dO      d=eZfdP       Zd e;j                  dQ      d=eZfdR       Ze e;j                  dS      d=eZfdT       Zf e;j                  dU      d=eZfdV       Zg e;j                  dW      d=eZfdX       Zh e;j                  dY      d=eZfdZ       Ziy)[    N)datetime)Optional)	APIRouterDepends)Stringcastfunc)Session)Country)Region	SubRegion)DownloadFilesCreateSchema)create_download_file)CreateFileWithPathSchema)create_file_from_path)AppellationSubAppellation)
BottleSize)GlobalNoise)KeywordSpread)KeywordSubstitution)ProducerProducerKeywordProducerNoise)Variety)WineWineDbWineDuplicationWineKeyword	WineNoise)	WordAlias)WordElimination)WordReserved)
celery_app)get_db)EXPORT_DATA_LINE_SEPARATOREXPORT_DATA_LINE_TERMINATOREXPORT_DATA_MAX_LIMITEXPORT_DATA_SUB_FOLDER)ExportDataTypesExportDataTypesFileNameExportDataTypesHeaders)cleanup_files_by_prefixget_descriptionz*export_data.generate_mongo_map_export_file)namec                  "   	 t        t                     } | j                  t              j	                  t        j
                  j                  d       t        j
                  dk7        j                         }| j                  t        j                  j                  d      t        j
                  j                  d      t        j                        j	                  t        j
                  j                  d       t        j
                  dk7        j                  t        j                        j                         }t        j                  j                    t#        j$                         j'                  d       d}t(        j*                  j-                  t)        j.                         t0        d      }t)        j2                  |d       t(        j*                  j-                  ||      }t5        j6                  |      }|j9                  d      j;                  d	d      }|j=                  |d
d       d||d| j?                          S # t@        $ r(}dtC        |      dcY d }~ j?                          S d }~ww xY w#  j?                          w xY w)N WineIDMongoID%Y-%m-%d-%H%M%S.txt
masterdataTexist_okNaNF	indexsepsuccessstatus	file_name
total_rowsfailedr@   error)"nextr%   queryr   filtermongo_idisnotcountliterallabellast_updatedorder_byidallr+   	MONGO_MAPvaluer   nowstrftimeospathjoingetcwdr)   makedirspd	DataFramefillnareplaceto_csvclose	ExceptionstrdbrK   datarA   download_location
local_pathdfes           ]/var/www/html/wine-match-dev/backend/winematch-backend/src/apps/export_data/services/tasks.pygenerate_mongo_map_export_filerk   8   s   #&(^ %%dmm&9&9$&?RTATU[[] HHT\\''14==3F3Fy3QSWSdSdeVDMM''-t}}/BCXdggSU	 	 /88>>?@W@WXi@j?kkop	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"-
		*Et	4#)5Q 	
  5"SV44

5 	
s0   H5I 	I9I4I9I< 4I99I< <Jz(export_data.generate_wine_db_export_filec                  &   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j
                  j                  d      t        j                  t        j                  dt        j                  dt        j                        j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d	      t        j                  j                  d
      t        j                  j                  d      t        j                   j                  d      t"        j                  j                  d      t$        j                  j                  d      t&        j                  j                  d      t(        j                  j                  d      t*        j                  j                  d      t        j,                  j                  d      t        j.                  j                  d            j1                  t        t        j2                  t        j4                  k(        j7                  t"        t9        t"        j4                  t:              t        j<                  k(        j7                  t$        t9        t$        j4                  t:              t        j>                  k(        j7                  t        t        j4                  t        j@                  k(        j7                  t&        t9        t&        j4                  t:              t        jB                  k(        j7                  t(        t9        t(        j4                  t:              t        jD                  k(        j7                  t*        t9        t*        j4                  t:              t        jF                  k(        jI                  t        j
                  dk7        jI                  t        j
                  jK                  d             jM                  t        j
                        jO                         }tP        jR                  jT                   tW        jX                         j[                  d       d}t\        j^                  j1                  t]        j`                         tb        d      }t]        jd                  |d       t\        j^                  j1                  ||      }tg        jh                  |      }|jk                  d      jm                  g dd      }|jo                  |dd       d ||d!| jq                          S # tr        $ r(}d"tu        |      d#cY d }~ jq                          S d }~ww xY w#  jq                          w xY w)$Nwinealert_idWineAl zProdShow LabelName  ColorClassVinNProdProdShow	LabelNamer   
ColorClassDrynessWineTyper   r   
Sub-regionr   Sub-appellationStatusLast Modifiedz%xxxr4   r5   r6   Tr7   r1   )r9   nanNoneNFr:   r;   r>   r?   rC   rD   );rF   r%   rG   r   rK   rL   rM   r   r	   concat	name_showr/   color	wine_n_idr   	sweetnesstyper   r   r   r   r   r@   rN   rX   producer_idrP   	outerjoinr   r   wine_countrywine_region
variety_idwine_locationwine_locale	wine_siterH   likerO   rQ   r+   WINE_DBrS   r   rT   rU   rV   rW   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   generate_wine_db_export_filer   `   s   A&(^  &&( HH$$^4  &&x0H..V[[#v||TZZ4   &&v.##F+""((4!!+.""9-""<0  &&y1!!*-""9-!!(+$$\2  &&}5##))*;<##H-##))/:), T(F..(++=>YwWZZ 8F<O<O OPYvtFIIv6&:L:LLMYw

f.?.? ?@Yy$y||V"<@T@T"TUY{D$@FDVDV$VWY~tN,=,=v'F&JZJZ'Z[VFNNc)*VV^^((001Xfnn%SUC 	J /66<<=hlln>U>UVg>h=iimn	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""#?D 			*Et	4#)5Q 	
  5"SV44

5 	
s0   V7W
 
	W;W6 W;!W> 6W;;W> >Xz-export_data.generate_wine_keyword_export_filec                     	 t        t                     } | j                  t              j	                         }| j                  t
        j                  j                  d      t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                  t        j                   t        j"                        j%                  t
        t        j&                  t
        j(                  k(        j+                  t
        j                  dk7        j+                  t
        j                  j-                  d             j/                  t
        j                        j1                         }t2        j4                  j6                   t9        j:                         j=                  d       d}t>        j@                  j%                  t?        jB                         tD        d      }t?        jF                  |d       t>        j@                  j%                  ||      }tI        jJ                  |      }|jM                  d	      jO                  d
d	      }|jQ                  |dd       d||d| jS                          S # tT        $ r(}dtW        |      dcY d }~ jS                          S d }~ww xY w#  jS                          w xY w)Nrm   r{   r|   r4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   ),rF   r%   rG   r   rK   r   rL   rM   patternproducer_keywordbase_keywordappellation_keywordcolor_keywordcommon_modifiers_keywordmodifiers_keywordcustom_not_keywordglobal_not_keywordrN   rX   
wine_db_idrP   rH   r   rO   rQ   r+   WINE_KEYWORDrS   r   rT   rU   rV   rW   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   !generate_wine_keyword_export_filer      s   2&(^ %++- HH$$^4##,,((//))44--....(( T&+00FII=>VFNNc)*VV^^((001Xfnn%SU% 	, /;;AAB8<<>CZCZ[lCmBnnrs	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
s0   J"J5 5	K&>K!K&K) !K&&K) )K;z1export_data.generate_producer_keyword_export_filec                     	 t        t                     } | j                  t              j	                         }| j                  t        j
                  t        j                  j                  d      t        j                  t        j                        j                  t        t        j                  t        j
                  k(        j                  t        j
                        j                         }t        j                   j"                   t%        j&                         j)                  d       d}t*        j,                  j                  t+        j.                         t0        d      }t+        j2                  |d       t*        j,                  j                  ||      }t5        j6                  |      }|j9                  d      j;                  dd      }|j=                  |d	d
       d||d| j?                          S # t@        $ r(}dtC        |      dcY d }~ j?                          S d }~ww xY w#  j?                          w xY w)Nrn   r4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )"rF   r%   rG   r   rK   rP   r   rL   rM   keywordrN   rX   r   rO   rQ   r+   PRODUCER_KEYWORDrS   r   rT   rU   rV   rW   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   %generate_producer_keyword_export_filer      s   )&(^ )//1 HH""  &&x0'',,	 T(O778;;FGXo(()SU 	 /??EEFx||~G^G^_pGqFrrvw	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
s0   G,G? ?	H0H+H0H3 +H00H3 3Iz-export_data.generate_global_noise_export_filec                  *   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                        j                  t        j
                        j                         }t        j                  j                   t        j                         j!                  d       d}t"        j$                  j'                  t#        j(                         t*        d      }t#        j,                  |d       t"        j$                  j'                  ||      }t/        j0                  |      }|j3                  d      j5                  d	d      }|j7                  |d
d       d||d| j9                          S # t:        $ r(}dt=        |      dcY d }~ j9                          S d }~ww xY w#  j9                          w xY w)NNoiseIDNoiser4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )rF   r%   rG   r   rK   rP   rM   noise
updated_atrO   rQ   r+   GLOBAL_NOISErS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   !generate_global_noise_export_filer     s~   #&(^ %++- HH[^^)))4k6G6G6M6Mg6VXcXnXnoXknn%SU 	 /;;AAB8<<>CZCZ[lCmBnnrs	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
s0   F9G 	G=G8"G=#H  8G==H   Hz/export_data.generate_producer_noise_export_filec                     	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                  t        t        j                  t        j
                  k(        j                  t        j
                        j                         }t        j                   j"                   t%        j&                         j)                  d       d}t*        j,                  j                  t+        j.                         t0        d      }t+        j2                  |d       t*        j,                  j                  ||      }t5        j6                  |      }|j9                  d	      j;                  d
d	      }|j=                  |dd       d|||d| j?                          S # t@        $ r(}dtC        |      dcY d }~ j?                          S d }~ww xY w#  j?                          w xY w)NNoiseidrn   r   r4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   )r@   rA   rg   rB   rC   rD   )"rF   r%   rG   r   rK   rP   rM   r   rL   r   rN   rX   r   rO   rQ   r+   PRODUCER_NOISErS   r   rT   rU   rV   rW   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   #generate_producer_noise_export_filer   3  s   )&(^ '--/ HH  &&y1  &&x0##))'2**	 T(M55DEXm&&'SU 	 /==CCDX\\^E\E\]nEoDpptu	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#):ejk 	
  5"SV44

5 	
s0   HH 	I'I
4I5I 
II I$z&export_data.get_wine_noise_export_filec                     	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                  t        t        j                  t        j
                  k(        j                  t        j
                        j                         }t        j                   j"                   t%        j&                         j)                  d       d}t*        j,                  j                  t+        j.                         t0        d      }t+        j2                  |d       t*        j,                  j                  ||      }t5        j6                  |      }|j9                  d	      j;                  d
d	      }|j=                  |dd       d||d| j?                          S # t@        $ r(}dtC        |      dcY d }~ j?                          S d }~ww xY w#  j?                          w xY w)NNoiseIdzWine Alert Idr   r4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )"rF   r%   rG   r    rK   rP   rM   rL   r   rN   rX   r   r   rO   rQ   r+   
WINE_NOISErS   r   rT   rU   rV   rW   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   generate_wine_noise_export_filer   a  s   )&(^ #))+ HH""9-!!''8%%g.&&	 T&)..&));<Xill#SU 	 /99??@AXAXYjAk@llpq	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
s0   H
H 	I&I	3I4I 	II I#z(export_data.get_spread_table_export_filec                  h   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                          j#                  d       d}t$        j&                  j)                  t%        j*                         t,        d      }t%        j.                  |d	       t$        j&                  j)                  ||      }t1        j2                  |      }|j5                  d
      j7                  dd
      }|j9                  |dd       d||d| j;                          S # t<        $ r(}dt?        |      dcY d }~ j;                          S d }~ww xY w#  j;                          w xY w)NSpreadTableIDKeyword
RegionCodeKeywordTyper4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   ) rF   r%   rG   r   rK   rP   rM   r   region_codekeyword_typerN   rQ   r+   SPREAD_TABLErS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   !generate_spread_table_export_filer     s   &&(^ '--/ xx""?3!!''	2%%++L9&&,,];&&
 #% 	 /;;AAB8<<>CZCZ[lCmBnnrs	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
0   GG+ +	H4HHH HH H1z)export_data.get_word_reserved_export_filec                  ,   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                         j!                  d       d}t"        j$                  j'                  t#        j(                         t*        d      }t#        j,                  |d       t"        j$                  j'                  ||      }t/        j0                  |      }|j3                  d	      j5                  d
d	      }|j7                  |dd       d||d| j9                          S # t:        $ r(}dt=        |      dcY d }~ j9                          S d }~ww xY w#  j9                          w xY w)NIDWordReservedTyper4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )rF   r%   rG   r#   rK   rP   rM   wordreserved_typerN   rQ   r+   WORD_RESERVEDrS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   "generate_word_reserved_export_filer     s   %&(^ &,,. xxOO!!$'##F+&&,,^<%%	

 #% 	 /<<BBCHLLND[D[\mDnCoost	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
0   F:G 	G>G9#G>$H 9G>>H Hz'export_data.get_bottle_size_export_filec                  h   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                          j#                  d       d}t$        j&                  j)                  t%        j*                         t,        d      }t%        j.                  |d	       t$        j&                  j)                  ||      }t1        j2                  |      }|j5                  d
      j7                  dd
      }|j9                  |dd       d||d| j;                          S # t<        $ r(}dt?        |      dcY d }~ j;                          S d }~ww xY w#  j;                          w xY w)Nr   NameAlias	Exclusionr4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   ) rF   r%   rG   r   rK   rP   rM   r/   alias	exclusionrN   rQ   r+   BOTTLE_SIZErS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj    generate_bottle_size_export_filer     s   &&(^ $**, xxMM%OO!!&)""7+  &&{3##
 #% 	 /::@@A(,,.BYBYZkBlAmmqr	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
r   z&export_data.get_wine_alias_export_filec                  ,   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                         j!                  d       d}t"        j$                  j'                  t#        j(                         t*        d      }t#        j,                  |d       t"        j$                  j'                  ||      }t/        j0                  |      }|j3                  d	      j5                  d
d	      }|j7                  |dd       d||d| j9                          S # t:        $ r(}dt=        |      dcY d }~ j9                          S d }~ww xY w#  j9                          w xY w)Nr   r   r   r4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )rF   r%   rG   r!   rK   rP   rM   r   r   rN   rQ   r+   
WINE_ALIASrS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   generate_wine_alias_export_filer     s   %&(^ #))+ xxLLt$NN  (OO!!'*""	

 #% 	 /99??@AXAXYjAk@llpq	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
r   z%export_data.get_varieties_export_filec                  ,   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                         j!                  d       d}t"        j$                  j'                  t#        j(                         t*        d      }t#        j,                  |d       t"        j$                  j'                  ||      }t/        j0                  |      }|j3                  d	      j5                  d
d	      }|j7                  |dd       d||d| j9                          S # t:        $ r(}dt=        |      dcY d }~ j9                          S d }~ww xY w#  j9                          w xY w)Nr   r   DefaultColorr4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )rF   r%   rG   r   rK   rP   rM   r/   default_colorrN   rQ   r+   	VARIETIESrS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   generate_varieties_export_filer   9  s   %&(^ !'') xxJJT"LLv&!!''7  	

 #% 	 /88>>?@W@WXi@j?kkop	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
r   z+export_data.colour_substitution_export_filec                  h   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                          j#                  d       d}t$        j&                  j)                  t%        j*                         t,        d      }t%        j.                  |d	       t$        j&                  j)                  ||      }t1        j2                  |      }|j5                  d
      j7                  dd
      }|j9                  |dd       d||d| j;                          S # t<        $ r(}dt?        |      dcY d }~ j;                          S d }~ww xY w#  j;                          w xY w)Nr   r   SubstitutionSubstitutionTyper4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   ) rF   r%   rG   r   rK   rP   rM   r   substitutionsubstitution_typerN   rQ   r+   COLOUR_SUBSTITUTIONSrS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   (generate_colour_substitution_export_filer   c  s   (&(^ ,-335 xx""((.''--i8,,22>B11778JK,,
 #% 	 ';;AAB8<<>CZCZ[lCmBnnrs 	 GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
r   z,export_data.get_word_elimination_export_filec                  ,   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                        j                         }t        j                  j                   t        j                         j!                  d       d}t"        j$                  j'                  t#        j(                         t*        d      }t#        j,                  |d       t"        j$                  j'                  ||      }t/        j0                  |      }|j3                  d	      j5                  d
d	      }|j7                  |dd       d||d| j9                          S # t:        $ r(}dt=        |      dcY d }~ j9                          S d }~ww xY w#  j9                          w xY w)Nr   r   EliminationTyper4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )rF   r%   rG   r"   rK   rP   rM   r   elimination_typerN   rQ   r+   WORD_ELIMINATIONrS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj   %generate_word_elimination_export_filer     s   %&(^ )//1 xx$$T*  &&v.,,223DE((	

 #% 	 /??EEFx||~G^G^_pGqFrrvw	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
r   z,export_data.generate_appellation_export_filec            
      .   	 t        t                     } | j                  t              j	                         }| j                  t        j
                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d      t        j                  j                  d            j                  t        t        j
                  t        j                  k(        j                  t        t        j
                  t        j                  k(        j                  t        t        j
                  t        j                  k(        j!                  t        j
                        j#                         }t$        j&                  j(                   t+        j,                         j/                  d       d}t0        j2                  j5                  t1        j6                         t8        d	      }t1        j:                  |d
       t0        j2                  j5                  ||      }t=        j>                  |      }|jA                  d      jC                  dd      }|jE                  |dd       d||d| jG                          S # tH        $ r(}dtK        |      dcY d }~ jG                          S d }~ww xY w#  jG                          w xY w)Nr   r   r   r   rw   rz   r4   r5   r6   Tr7   r1   r9   Fr:   r;   r>   r?   rC   rD   )&rF   r%   rG   r   rK   rP   rM   r/   r   r   r   r   r   
country_id	region_idsub_region_idrO   rQ   r+   APPELLATIONrS   r   rT   rU   rV   rW   rX   rY   r)   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   s           rj    generate_appellation_export_filer     s   -&(^ %++- HH$$T*  &&v.""9-!!(+$$\2&&,,_= Yw

k.D.D DEYvvyyK,A,AABYy),,+2K2K"KLXknn%SU 	" /::@@A(,,.BYBYZkBlAmmqr	GGLL6Ll[
%5
 WW\\"3Y?
\\$ YYr]""5"- 			*Et	4#)5Q 	
  5"SV44

5 	
s0   J;K 	K?K:$K?%L :K??L Lz%export_data.update_mongo_map_from_csvrA   c                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]x  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|d   |_        |j#                  |       |j%                          z d| d	|j'                          S # t(        $ r(}d
t+        |      dcY d }~|j'                          S d }~ww xY w# |j'                          w xY w)N
uploaddataTr7   r:   r=   r2   r3   r>   r@   rA   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   read_csviterrowsrG   r   rH   rL   firstrI   addcommitr`   ra   rb   	rA   rd   rf   rg   rh   _rowwineri   s	            rj   update_mongo_map_from_csvr     s   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs$..t||s8}/LMSSUD #ItIIK	 $)< 	
  5"SV44

5 	
0   DD: :	E+E&E+E. &E++E. .F z#export_data.update_wine_db_from_csvc                 L   t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r;|d   |_        |d   |_        |d	   |_        |d
   |_        |d   |_        |d   |_        |d   r|j                  t,              j                  t/        j0                  t,        j                        t/        j0                  |d         k(        j                         }|r6|d   |_        |d   |_        |j5                  |       |j6                  |_        |d   r|j                  t:              j                  t/        j0                  t:        j                         t/        j0                  |d         k(        j                         }	|	r|	j6                  |_        |d   r|j                  t>              j                  t/        j0                  t>        j                         t/        j0                  |d         k(        j                         }
|
rtA        |
j6                        |_!        |d   r|j                  tD              j                  t/        j0                  tD        j                         t/        j0                  |d         k(        j                         }|rtA        |j6                        |_#        |d   r|j                  tH              j                  t/        j0                  tH        j                         t/        j0                  |d         k(        j                         }|rtA        |j6                        |_%        |d   r|j                  tL              j                  t/        j0                  tL        j                         t/        j0                  |d         k(        j                         }|rtA        |j6                        |_'        |d   r|j                  tP              j                  t/        j0                  tP        j                         t/        j0                  |d         k(        j                         }|rtA        |j6                        |_)        |j5                  |       |jU                           d| d|jW                          S # tX        $ r(}dtA        |      dcY d }~|jW                          S d }~ww xY w# |jW                          w xY w)Nr   Tr7   r:   r   rm   rs   rt   rv   ru   rp   ry   rn   rr   rq   r   r   r   rw   r   rx   r>   r   rC   rD   )-rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rL   r   r/   r   r   r   r   r@   r   r	   lowerr   r   rP   r   r   r   r   rb   r   r   r   r   r   r   r   r   r   r   r`   ra   )rA   rd   rf   rg   rh   r   r   r   producervarietycountryregion
sub_regionappellationsub_appellationri   s                   rj   update_wine_db_from_csvr     s0   	fhBLGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 8	FAs88F+226>>SEX3XY__aD,	 .

O	!$Y!$V!(mx=*11$**X=M=M2NRVR\R\]`ai]jRk2klrrt   -0_*(+Fx(+3;;(y> hhw/66tzz',,7OSWS]S]^abk^lSm7mnttvG*1**y> hhw/66tzz',,7OSWS]S]^abk^lSm7mnttvG,/

O)x=XXf-44TZZ5LPTPZPZ[^_g[hPi5ijpprF+.vyy>(|$+224::inn3MQUQ[Q[\_`l\mQn3nouuw  "-0-?*}%-

;+;+; <

3}K]@^ ^_  
 #+.{~~+>(()0

>+>+> ?4::cRcNdCe ef $
 '),_-?-?)@tIIKq8	r $)< 	
  5"SV44

5 	
s0   T7U 	V&V	3V4V 	VV V#z(export_data.update_wine_keyword_from_csvc                 H   t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|j                  t               j                  t         j"                  |j$                  k(        j                         }|rk|d   |_        |d   |_        |d	   |_        |d
   |_        |d   |_        |d   |_        |d   |_        |d   |_        |d   |_        |j9                  |       |j;                           d| d|j=                          S # t>        $ r(}	dtA        |	      dcY d }	~	|j=                          S d }	~	ww xY w# |j=                          w xY w)Nr   Tr7   r:   r   rm   r   r   r   r   r   r   r   r   r   r>   r   rC   rD   )!rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rL   r   r   r   rP   r   r   r   r   r   r   r   r   r   r   r   r`   ra   rb   )
rA   rd   rf   rg   rh   r   r   winedbr   ri   s
             rj   update_wine_keyword_from_csvr   a  s   	fhB&GGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAsXXf-44V^^s>GZ5Z[aacF$&HH[$9$@$@AWAW[a[d[dAd$e$k$k$m#&y>DL,/0B,CD)(+N(;D%/23H/ID,),_)=D&478R4SD1-01D-ED*.12F.GD+.12F.GD+FF4LIIK%	& $)< 	
  5"SV44

5 	
s0   F5G 	H$H1H2H HH H!z,export_data.update_producer_keyword_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]x  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|d   |_        |j#                  |       |j%                          z d| d	|j'                          S # t(        $ r(}d
t+        |      dcY d }~|j'                          S d }~ww xY w# |j'                          w xY w)Nr   Tr7   r:   r   rP   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r   r   r   r`   ra   rb   r   s	            rj    update_producer_keyword_from_csvr    s$   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs$&HH_$=$D$D_EWEW[^_c[dEd$e$k$k$mD"9~tIIK	 $)< 	
  5"SV44

5 	
r   z(export_data.update_global_noise_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]x  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|d   |_        |j#                  |       |j%                          z d| d	|j'                          S # t(        $ r(}d
t+        |      dcY d }~|j'                          S d }~ww xY w# |j'                          w xY wNr   Tr7   r:   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r   r   r   r`   ra   rb   r   s	            rj   update_global_noise_from_csvr    s    	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs " 5 < <[^^sS\~=] ^ d d fD \
tIIK	 $)< 	
  5"SV44

5 	
r   z*export_data.update_producer_noise_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]x  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|d   |_        |j#                  |       |j%                          z d| d	|j'                          S # t(        $ r(}d
t+        |      dcY d }~|j'                          S d }~ww xY w# |j'                          w xY wr  )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r   r   r   r`   ra   rb   r   s	            rj   update_producer_noise_from_csvr    s$   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs"$((="9"@"@AQAQUXYbUcAc"d"j"j"lD \
tIIK	 $)< 	
  5"SV44

5 	
r   z&export_data.update_wine_noise_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]x  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|d   |_        |j#                  |       |j%                          z d| d	|j'                          S # t(        $ r(}d
t+        |      dcY d }~|j'                          S d }~ww xY w# |j'                          w xY wr  )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r    rH   rP   r   r   r   r   r`   ra   rb   r   s	            rj   update_wine_noise_from_csvr	    s   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs hhy188Y9WX^^`D \
tIIK	 $)< 	
  5"SV44

5 	
r   z(export_data.update_spread_table_from_csvc                 .   t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r/|d   |_        |d   |_        |d	   |_        |j'                  |       |j)                           d
| d|j+                          S # t,        $ r(}dt/        |      dcY d }~|j+                          S d }~ww xY w# |j+                          w xY w)Nr   Tr7   r:   r   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r   r   r   r   r   r`   ra   rb   r   s	            rj   update_spread_table_from_csvr    s>   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 
	FAs"$((="9"@"@AQAQUXYhUiAi"j"p"p"rD"9~#&|#4 $'$6!tIIK
	 $)< 	
  5"SV44

5 	
0   D(E 	E?E:$E?%F :E??F Fz)export_data.update_word_reserved_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r%|d   |_        |d   |_        |j%                  |       |j'                           d	| d
|j)                          S # t*        $ r(}dt-        |      dcY d }~|j)                          S d }~ww xY w# |j)                          w xY w)Nr   Tr7   r:   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r#   rH   rP   r   r   r   r   r   r`   ra   rb   r   s	            rj   update_word_reserved_from_csvr  9  s/   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 		FAs!#,!7!>!>|RUVZR[?[!\!b!b!dDK	%(%8"tIIK		 $)< 	
  5"SV44

5 	
0   DE 	E5E0E5E8 0E55E8 8F
z'export_data.update_bottle_size_from_csvc                 .   t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r/|d   |_        |d   |_        |d	   |_        |j'                  |       |j)                           d
| d|j+                          S # t,        $ r(}dt/        |      dcY d }~|j+                          S d }~ww xY w# |j+                          w xY w)Nr   Tr7   r:   r   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r/   r   r   r   r   r`   ra   rb   r   s	            rj   update_bottle_size_from_csvr  \  s7   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 
	FAs!xx
3:::==CPTI;UV\\^DK	 \
!$[!1tIIK
	 $)< 	
  5"SV44

5 	
r  z&export_data.update_wine_alias_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r%|d   |_        |d   |_        |j%                  |       |j'                           d	| d
|j)                          S # t*        $ r(}dt-        |      dcY d }~|j)                          S d }~ww xY w# |j)                          w xY w)Nr   Tr7   r:   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r!   rH   rP   r   r   r   r   r   r`   ra   rb   r   s	            rj   update_wine_alias_from_csvr    s*   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 		FAs hhy188T9RSYY[DK	 \
tIIK		 $)< 	
  5"SV44

5 	
r  z%export_data.update_varieties_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r%|d   |_        |d   |_        |j%                  |       |j'                           d	| d
|j)                          S # t*        $ r(}dt-        |      dcY d }~|j)                          S d }~ww xY w# |j)                          w xY w)Nr   Tr7   r:   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r/   r   r   r   r`   ra   rb   r   s	            rj   update_varieties_from_csvr    s,   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 		FAsHHW-44WZZ3t95LMSSUDK	%(%8"tIIK		 $)< 	
  5"SV44

5 	
r  z/export_data.update_colour_substitution_from_csvc                 .   t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r/|d   |_        |d   |_        |d	   |_        |j'                  |       |j)                           d
| d|j+                          S # t,        $ r(}dt/        |      dcY d }~|j+                          S d }~ww xY w# |j+                          w xY w)Nr   Tr7   r:   r   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r   r   r   r   r   r`   ra   rb   r   s	            rj   #update_colour_substitution_from_csvr    sD   	fhB GGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs,-445H5K5KsSWy5XY__a  "9~$'$7!),-?)@&tIIK	 $)< 	
  5"SV44

5 	
r  z,export_data.update_word_elimination_from_csvc                    t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r%|d   |_        |d   |_        |j%                  |       |j'                           d	| d
|j)                          S # t*        $ r(}dt-        |      dcY d }~|j)                          S d }~ww xY w# |j)                          w xY w)Nr   Tr7   r:   r   r   r   r   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r"   rH   rP   r   r   r   r   r   r`   ra   rb   r   s	            rj    update_word_elimination_from_csvr    s2   	fhBGGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 		FAs$&HH_$=$D$D_EWEW[^_c[dEd$e$k$k$mDK	(+,=(>%tIIK		 $)< 	
  5"SV44

5 	
r  z'export_data.update_appellation_from_csvc                 $   t        t                     }	 t        j                  j	                  t        j
                         t        d      }t        j                  |d       t        j                  j	                  ||       }t        j                  |d      }|j                         D ]  \  }}|j                  t              j                  t        j                  |d   k(        j                         }|r|d   |_        |d   r|j                  t"              j                  t%        j&                  t"        j                         t%        j&                  |d         k(        j                         }|r|j                  |_        |d	   r|j                  t*              j                  t%        j&                  t*        j                         t%        j&                  |d	         k(        j                         }	|	r|	j                  |_        |d
   r|j                  t.              j                  t%        j&                  t.        j                         t%        j&                  |d
         k(        j                         }
|
r|
j                  |_        |j3                  |       |j5                          	 d| d|j7                          S # t8        $ r(}dt;        |      dcY d }~|j7                          S d }~ww xY w# |j7                          w xY w)Nr   Tr7   r:   r   r   r   r   r   rw   r>   r   rC   rD   )rF   r%   rV   rW   rX   rY   r)   rZ   r[   r   r   rG   r   rH   rP   r   r/   r   r	   r   r   r   r   r   r   r   r   r`   ra   rb   )rA   rd   rf   rg   rh   r   r   r   r   r   r   ri   s               rj   update_appellation_from_csvr    s;   	fhB*GGLL6Ll[
%5
 WW\\"3Y?
 [[. kkm 	FAs " 5 < <[^^sSWy=X Y _ _ aDK	y> hhw/66tzz',,7OSWS]S]^abk^lSm7mnttvG*1**x=XXf-44TZZ5LPTPZPZ[^_g[hPi5ijpprF)/|$+224::inn3MQUQ[Q[\_`l\mQn3nouuw  "-7]]*tIIK-	. $)< 	
  5"SV44

5 	
s0   J#K	 		K:K5K: K= 5K::K= =L)jiorV   r   typingr   pandasr[   fastapir   r   
sqlalchemyr   r   r	   sqlalchemy.ormr
   src.apps.base.models.countryr   src.apps.base.models.regionsr   r   (src.apps.export_data.schemas.export_datar   +src.apps.export_data.services.download_filer   src.apps.files.schemas.filer   src.apps.files.services.filer   ,src.apps.wine.appellation.models.appellationr   r   ,src.apps.wine.bottle_size.models.bottle_sizer   .src.apps.wine.global_noise.models.global_noiser   2src.apps.wine.keyword_spread.models.keyword_spreadr   >src.apps.wine.keyword_substitution.models.keyword_substitutionr   &src.apps.wine.producer.models.producerr   r   r   $src.apps.wine.variety.models.varietyr   src.apps.wine.wine.models.winer   r   r   r   r    *src.apps.wine.word_alias.models.word_aliasr!   6src.apps.wine.word_elimination.models.word_eliminationr"   0src.apps.wine.word_reserved.models.word_reservedr#   src.celery.celery_appr$   src.core.dependenciesr%   src.utils.constantsr&   r'   r(   r)   src.utils.enumsr*   r+   r,   src.utils.helpers.functionsr-   r.   taskrk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rb   r   r   r   r  r  r  r	  r  r  r  r  r  r  r  r       rj   <module>r;     s   	 	    & ) ) " 0 : N L @ > T C F L 
 9  A R I , (  
 Q BC$ D$N @AB BBJ EF3 G3l IJ* K*Z EF$ G$N GH* I*Z >?* @*Z @A' B'T AB& C&R ?@' A'T >?& @&R =>& ?&R CD) E)X DE& F&R DE. F.d =>  ?B ;<Ns N =Nb @A(C ( B(V DE  FB @AC  BB BCc  DB >?#  @B @A C   B F ABS  CD ?@ 3   A F >?#  @D =>  ?D GH"3 " I"J DE  FD ?@,3 , A,r:  