XׯdRddlZddlZddlZddlmZddlmZddlmZddlmZm Z m Z ddl m Z ddl Z ddl mZddlmZmZdd lmZd ad ad ad Zd ZGdde ZGdde ZGdde ZGdde ZGdde ZGddeZdS)N) newTreeView) FileChooser) create_module) WizardForm WizardPageWizardProgressPage)datetime)Version) log_errorlog_info) to_unicodeFct|tj|}|d|dS)NTable Data Import)PowerImportWizardmformsForm main_form set_titlerun)editor selectionimporters (..\modules\sqlide_power_import_wizard.pyshowPowerImportr.sG )>)>)@)@)LLH *+++ LLNNNNNcdtj|d}|d}d|D]}|jdkrt|jddn]|jdkr+t|jt|jdn'|jdkrdt|jdndSrtjd}||ffd |d |d r7|d tjd tj dSdSdS)Nmenurz db.Schemaschematablezdb.Table)r!r tableszTable Data Import Wizardc$t|SN)r)senderuser_selections rz#handleContextMenu..JsQ_9`9`rr!r) rfromgrttyper name schemaName newMenuItemadd_clicked_callback insert_itemSeparatorMenuItem)r,r%argsrrsitemr&s @rhandleContextMenur53si >$v, ' 'D[!IN    6[ (216(:(:TJJN E Vz ! !'1!&'9'9ZPQP\E]E]^^N E Vx  '+z!,7O7OPPN E FFR!"<== !!"`"`"`"`"`aaa D!!! ' " R   Q 22v7O P P Q Q Q Q Q RR R Rrc&eZdZdZdZdZdZdS) ResultsPagecftj||d|jddS)NzImport ResultsFinish)r__init__ next_buttonset_textselfowners rr:zResultsPage.__init__Ps5D%)9::: !!(+++++rc8|jdSr$maincloser>s rgo_nextzResultsPage.go_nextT rcH|jjjSr$)rBselect_file_pageimportfile_pathget_string_valuerDs rget_pathzResultsPage.get_pathWsy)9JJLLLrc|jjjrtd|jjjj|jjjjfz}d||fz}|jtj |ddd|jj dd|jj dd |jj j rd nd }|jtj |dd|jtj td |jjjjzdddS) Nz%d.%dzFile %s was imported in %.3f sFTzTable r .r! z has been usedz was createdz%d records imported)rBimport_progress_page import_timefloatseconds microsecondsrKcontentaddrnewLabeldestination_tabledestination_pageexisting_table_radio get_activestrmodule item_count)r>itimetexts r create_uizResultsPage.create_uiZs 9 ) 5 A'TY%C%O%WY]YbYwZDZQ%RRSSE3t}}6NND L  V_T22E4 @ @ @#'9#>x#H#H#HAEA\]dAeAeAeTXT]TnUDUOUOUQUQBdWdBde ..t<<< -BTYEcEjEu-u)v)vwwy~AE F F F F FrN)__name__ __module__ __qualname__r:rErKr`rrr7r7OsX,,,MMM F F F F Frr7cBeZdZdZdZdZdZfdZdZdZ xZ S)ImportProgressPagectj||d||jdd||jddd|_d|_d|_dS)Nz Import DatazPrepare ImportzImport data filezImport Data Dile) rr:add_taskprepare_importadd_threaded_task start_importr\stoprPr=s rr:zImportProgressPage.__init__gsk#D%??? d)+;=MNNN t02DFXYYY  rc|jjj|_t j|_|j|jjj |j |jjj |j |jjj |j|jjd|jjd|jt%|jjj|jt%|jjj|j|jjj|j|j_dS)Nr r!T)rBconfiguration_page active_moduler\ threadingEventrlcreate_new_tablerXnew_table_radiorZforce_drop_table drop_table_cbtruncate_tabletruncate_table_cb set_tablerWset_decimal_separatorr[ds_entryrJset_date_formatdf_entry set_mappingcolumn_mappingprogress_notify progress_inforDs rriz!ImportProgressPage.prepare_importps_i2@ O%%  $$TY%?%O%Z%Z%\%\]]] $$TY%?%M%X%X%Z%Z[[[ ""49#=#O#Z#Z#\#\]]] di9(CTYE`ahEijjj ))#di.J.S.d.d.f.f*g*ghhh ##C (D(M(^(^(`(`$a$abbb  < KLLL$($8 !trc2|||dSr$) send_progress)r>pctmsgs rrz"ImportProgressPage.progress_notify}s 3$$$$$rcd|_tj}|j|j}tj|z |_|Sr$)rPr nowr\startrl)r>rretvals rrkzImportProgressPage.start_importsD ""49--#<>>E1 rc|dd|_d|_tt||dS)NT)resetr\rlsuperrfpage_activatedr> advancing __class__s rrz!ImportProgressPage.page_activatedsH 4    $''66yAAAAArcd|r|jdSdSr$)on_closerBrCrDs r go_cancelzImportProgressPage.go_cancels4 ==??  IOO       rc|jrZ|jjrNtjtjdddddkr|jdSdSdS)N Confirmationz'Do you wish to stop the import process?YesNorTF)r\ is_runningrResultOk Utilities show_messagerlsetrDs rrzImportProgressPage.on_closesx ; 4;1 &"2"?"?Py|ACGHJ#K#KKK t5tr) rarbrcr:rirrkrrr __classcell__rs@rrfrffs      %%%BBBBB rrfcreZdZdZdZfdZdZdZdZdZ dZ dd Z dd Z dd Z dZdZdZxZS)ConfigurationPagecztj||ddd|_d|_|jjd|_ddd d d d |_g|_g|_ d|_ d|_ i|_ tj|jjjtjd |_dS)NzConfigure Import SettingsTwideFcsvrcp1250 iso8859_2latin_1utf-8utf-16)zcp1250 (windows-1250)zlatin2 (iso8859-2)zlatin1 (iso8859-1)rrz5.7.5)rr:last_analyze_statusinput_file_typerBformatsro encoding_list dest_colsr~ ds_show_count df_show_count opts_mappingr r*r serverVersion#is_supported_mysql_version_at_leastfromstr is_server_5_7r=s rr:zConfigurationPage.__init__sD%)D4PPPP#( $!Y.q16>3>3<&-'/ 11  $_TY-=-KLLppqxrABIrJrJKKrc8|jdSr$rArDs rrzConfigurationPage.go_cancelrFrc&|r||r7|jjjs|t t|||r| dSdSr$) get_modulerBrXrsrZload_dest_columnsrrrcall_create_preview_tablers rrz ConfigurationPage.page_activateds   OO     %TY7GRRTT %  " " $ $ $ &&55i@@@  -  * * , , , , , - -rc dtjd}|d|tjdjzddt jjdkrtj tj }| dd| tj d|fd ||ddj|ddt jjdkrtjtj_jd fd  fd  tjd}|d|djjD]\}}tjd}|d|tj|d dd|ddkrtj dd |d  |f fd | dd fdj|<|ddkrtj dd d|dD tA|d!"|d  |f fd tA|d!f fd j|<| dd||ddj|jjddj#djdkrTtjd_$j$dj$tjdddtj_%j% ddj$j%ddtMj'D]J\}}j%(|j'|dkrj%|Kj%j)jj$ddtjd_*j*dd_+jj*ddtjtj,_-j-dj- ddtj.d_/j-j/j*j-ddtjd} | dtjd_0j0d| j0ddtjd_1j1d| j1ddj0tjd ddtj_2j2d!j2 d"dj0j2ddj0#dj13d#d$ddtj_4j4d%j4 d&dj1j4ddj1#dj| dddS)'NTzDetected file format: %sFrzadmin_option_file.pngcjrjdnjdS)NFT)optpanelis_shownshowrDsrr'z-ConfigurationPage.create_ui..s_X\XeXnXnXpXps rset_text_entryz3ConfigurationPage.create_ui..set_text_entrys,,..4466s88q==$VWd;;;$00d6TUUUUUXX]]$VWc:::$00d6TUUUUUOOB'''$//Bwx|}@BCCCCCrc tj|d|dt|tjdjdS)Nroptsr)rrr[rJrrrr)selectorrr>s rset_selector_entryz7ConfigurationPage.create_ui..set_selector_entrysW &.XE^E^E`E`AaAa2bccc ,,S$2PQQQQQr descriptionr+r_#rc||Sr$rd)rrrs rr'z-ConfigurationPage.create_ui..sXfXfglntXuXurc.|Sr$)r)valopt_vals rr'z-ConfigurationPage.create_ui..s':K:KC:P:PrselectKcg|]}|Srdrd).0vs r z/ConfigurationPage.create_ui..s&?&?&?Qq&?&?&?rrc||Sr$rd)rrrs rr'z-ConfigurationPage.create_ui..s[m[mnvx~[[rc`||vr||ndS)Nr) set_selectedindex)inputvaluesrs rr'z-ConfigurationPage.create_ui..slcjcwcwPUY_P_P_x~yEyEFKyLyLyLefdgdgrrz Encoding: rzColumns:dzDecimal Separator:rMz Date format: aExpects string pattern with the date format. Default format is: %Y-%m-%d %H:%M:%S Common used options: %d is the day number %m is the month number %y is the four digits year number %H is the hour number %M is the minute number %S is the second number More formats can be found under the following location: https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behaviorz%Y-%m-%d %H:%M:%S)5 set_spacingrnewBoxrUrVrrrooptions newButton ToolButtonset_sizeset_iconAppgetget_resource_pathr/rTnewPanelTitledBoxPanelrr set_paddingitems newTextEntryradd_changed_callbackadd_endr newSelector add_itemsrlistrrr encoding_box encoding_sel enumerateradd_itemencoding_changedtable_preview_box preview_table BorderedPanelcolumn_captionnewScrollPanel column_scrollds_boxdf_boxrzmake_label_with_tooltipr|) r> format_boxadvanced_opts_btnboxr,r label_boxie extra_optsrrrs ` @@@rr`zConfigurationPage.create_uis ]4(( q!!!v'ADDX'XYY[`bfggg t!) * *a / / & 01B C C   & &r2 . . .  & &vz~~'7'7'I'IJa'b'b c c c  2 24O4O4O4O Q Q Q NN,eT : : : UD111 t!) * *a / /"OF,ABBDM M # #J / / / C C C C C R R R R R-&&C OOA    OOA   "08>>@@ 0 0 d"M$// %%a((( fod=.ABBE4PPP<6))$133G$$R,,,%%d7m44400RV1u1u1u1u1uvvv%%gud;;;.P.P.P.PD%d+<8++$022G$$R,,,%%&?&?$v,&?&?&?@@@((d6l.A.A.C.C)D)D)J)J4PW=)Y)YZZZ007UY11111AAAFJ4PVlbltooltiprls rr z)ConfigurationPage.make_label_with_tooltip:smD!! $$eT222    FJNN$$667HIIJJJ g 5$ rc T |jjd|jjdd|jjddd}nk#t$r^}t d|jjdd|jjddt t|d}Yd}~nd}~wwxYw|rog|_| }|rT|j t | d| }|PdSdSdS) NzSHOW COLUMNS FROM `r z`.`r!`rz` : Field) rBrexecuteManagementQueryrW Exceptionr r r[r goToFirstRowappendstringFieldValueByNamenextRow)r>rsetroks rrz#ConfigurationPage.load_dest_columnsCs 9#:::\`\e\wyA]B]B]BDHDMD_`gDhDhDhr,rs rrz+ConfigurationPage.call_create_preview_tableQs   !!$"3"3"5"5666  5 ( (T-?-G ("4#5#=#C#C#E#EFF 7 7 d'!$'W 6666 ) ( ( ( 7 7rc|j|jjj|jdkr<|j|j|j |j s9tj dd|jjzdddd|_dSd|_dS)Nrrz~Can't analyze file. Please try to change encoding type. If that doesn't help, maybe the file is not: %s, or the file is empty.rrFT)ro set_filepathrBrHrIrJr set_encodingrr analyze_filerr show_warningtitlerrDs rr)zConfigurationPage.call_analyze\s '' (B(R(c(c(e(efff  5 ( (   + +D,>t?P?a?a?c?c,d e e e!..00    ) )*=@@CGCUC[@[]acegi j j j',D $5#' trTc|r8|jdz|_|jdkr|jddSdS|jdkr6|jdz |_|jdkr|jddSdSdSNrTrF)rr rr>rs r show_df_boxzConfigurationPage.show_df_boxg  ,!%!3a!7D !Q&&   &&&&&'&!A%%%)%7!%;"%**K$$U+++++&%**rc|r8|jdz|_|jdkr|jddSdS|jdkr6|jdz |_|jdkr|jddSdSdSr2)rr rr3s r show_ds_boxzConfigurationPage.show_ds_boxrr5rFc d}dddddddd d fd }jujjd j&jjd_d_g_g_d }tj _j j jj dj tjjdzjdjdtjjdkrjddnjddg_fdfd}tj}|d||jjffd j |ddddtjj tjdddddtjjjjs<j tjdddddtjn;j tjdddddtjg_tAjjD]\}d|dd||dd }|D],} | !d!r|| r | |d"<n-||} j"| j | dddzdztjj tjtG|ddddzdztjjjjs?j ||j$dddzdztjn8j ||dddzdztjj"|tKtj&_tAjjD]?\}j'tj(tG|dd#d@j)tjjr_g} d} jjD]2}t|d$| krt|d$n| } 3tjj} tUd| D]g}tUd| D]r}tjj|d$kr2|"jj|d$]|"d%s| "|| D]S}j+}tA|D](\}|,tG|)Tj-djddj jd&dj.dS)'Nctj}|d|||fd|S)NTcZtj|d|rdndS)NactiveTF)rrrZ)checkboxrs rr'zOConfigurationPage.create_preview_table..create_chkbox..sP(JZ[acku}vIvIvKvKnVmqmqQVKWKWr)r newCheckBox set_activer/)rowchks r create_chkboxz=ConfigurationPage.create_preview_table..create_chkboxsX%''C NN4  $ $sS&W&W&W X X XJrr_bigintgeometryintdoublebinaryr json) is_string is_bignumber is_geometry is_numberis_floatis_binis_date_or_timeis_jsonc"fdtjddfdtD}|js@ddks ddkr(jdkrdd<td d zt|D](\}}d|kr |n) fd S) Nc|}D]}||vr|ddkr!|dkrd|ddkr!|dkrd|dkrd|dkrd||d<dSdS)Nr+rEFr T)rJr7r4)selrrrr> type_itemss r sel_changedzWConfigurationPage.create_preview_table..create_select_type..sel_changeds0022 #A JqM11!&>X55*Q-8:S:S ,,U333!&>Z77JqMZs rrzVConfigurationPage.create_preview_table..create_select_type..sypppdQ[I[I[_cgm_m_mswtHLRtRtR[_[mtRTtRtRtRrr+rCrGr_zWColumn %s is of type GeoJso but server doesn't support this, importing as text instead.r,cSr$rd)r?rRrTsrr'zTConfigurationPage.create_preview_table..create_select_type..s[[c-B-Br) rrrrrrrrr rrr)r?rrrrRrTr>rSs` @@rcreate_select_typezBConfigurationPage.create_preview_table..create_select_types      &$&&C LLb ! ! !ppppd:+<+<+>+>&?&?pppE MM% % B3v;*+D+DF W]H]H]cgcw|BdBdB$F ruxyvAABBB!%((  1v;!##$$Q'''E$  $ $%B%B%B%B%B%B C C CJrrcNtjdd|t |D];\}}||dkr*||n<|ffd S)NrUrdest_colcTtj|dS)NrZ)rrrJ)rrRs rr'zXConfigurationPage.create_preview_table..create_select_dest_col..s$(:J6S]_b_s_s_u_u:v:vr)rrrrrrrr)r?colsrcrRs @rcreate_select_dest_colzFConfigurationPage.create_preview_table..create_select_dest_cols$&&C LLb ! ! ! MM$   !$  1J''$$TZZ]]333E(  $ $S%v%v%v%v%v w w wJrr)rrrrrc~jD]$}|t|%jD]}||d<dS)Nr;) checkbox_listr>boolr~)r\r;r<r?r>s rsell_allz8ConfigurationPage.create_preview_table..sell_allsY . 2 2##DLL1111* ' ' &H  ' 'rch|jvr|Stjkr j|ndSr$)rr)col_namerrr>s r find_columnz;ConfigurationPage.create_preview_table..find_columns;4>))01C4G4G0G0Gt~e,,TQrTc@||Sr$)rZ)r<columnsrcs rr'z8ConfigurationPage.create_preview_table..s;_g_ghoqyrErErGrG`H`Hrrz Source Columnz Dest Columnz Field Typer(r,)r;r,r+col_norZis_r+rrrF)/rr removerrtreeview_previewdest_column_table_colfield_type_table_colrnewTablesuspend_layoutrUset_column_count set_row_countrro_columnsset_row_spacingset_column_spacingrrrar=r>r/ HFillFlagrVrBrXrsrZr~r startswithr"r[rr TreeFlatList add_columnStringColumnType end_columnsrangeadd_node set_stringset_allow_sorting resume_layout)r>clean_uprArXr^rfr@colr?r]chk_box col_valuesval_lencol_lenjnoderrcrSs` @@@rr(z&ConfigurationPage.create_preview_table~s    #)PZhm{CNVkuAGHH # # # # # # J   )   % % ' ' '  " . .r 2 2 2$0&--d.CDDD(,%!%D )+D &(*D %   $_.. ))+++ t1222 ++A... ((T-?-H)I)IA)MNNN **1--- --a000 t!* + +q 0 0   ( (S 1 1 1 1   ( (S 1 1 1 ' ' ' ' '  R R R R R R  "" t   3$BTB]"H"H"H"H"H I I I sAq!Q0@AAA v??Aq!VM]^^^y)9DDFF `   " "6?=#A#A1aAvO_ ` ` ` `   " "6?<#@#@!Q1fN^ _ _ _  2 ;<< , ,FAs!3v;QR`k`klopvlwyz`{`{||C  <<&&3q6",Q-CKE#mC((G   % %g . . .   " "7Aq!A#qsF'>1ac1Q3PVP`aaa   & &s + + + + +F,? @ @ 2 ;<< b bFAs  ! , ,V-Dc#f+FVFVXZ\` a a a a ))+++ t!* + + 1JG)2 X X/23wq#A'#J1#MNNNN 2!!#&&&&! 1 1,5577'nn11FAsOOAs3xx00001 //555 &&sC000 ""4#8%FFF ((*****rc.|dSr$)rrDs rrz"ConfigurationPage.encoding_changeds &&(((((rcjtjtj|jjj\}}t|dd|_ |jj D]}|j |j kr ||_ dStd)NrzUnsupported file type.)ospathsplitextbasenamerBrHrIrJr[rrr,ror )r> file_namefile_extformats rrzConfigurationPage.get_modules g..rw/?/? @Z@j@{@{@}@}/~/~ 8"8ABB<00i' 6 6F{d222%+"3455 5rc|js%tjddddddS|jD] }|drdStjddddddS) Nrz>File not loaded properly, please check the file and try again.rrFr;Tz'You need to specify at least one column)rrrrr~)r>r?s rvalidatezConfigurationPage.validate&s'    ) )*=?BFHJKM N N N5&  C8} tt    ) )*=?hjnprsu v v v5r)T)F)rarbrcr:rrr`r rrr)r4r7r(rrrrrs@rrrsKKK& - - - - -|6|6|6| $ $ $ 7 7 7    , , , , , , , ,Y+Y+Y+Y+v)))666       rrcNeZdZdZdZfdZdZdZdZdZ dZ d Z xZ S) SelectDestinationPagecxtj||dd|jdi|_dS)NzSelect DestinationTrF)rr: back_button set_enabled table_listr=s rr:zSelectDestinationPage.__init__3s?D%)=DIIII $$U+++rc8|jdSr$rArDs rrzSelectDestinationPage.go_cancel8rFrc|tt|||rtjtj|jjj \}}|j || dSdSr$)rrrrrrrrBrHrIrJnew_table_namerpreload_existing_tables)r>rrrrs rrz$SelectDestinationPage.page_activated;s #T**99)DDD  +"$'"2"2273C3CDID^DnDDEBEB4C4C#D#D Ix   ) )) 4 4 4  ( ( * * * * * + +rc|}|jjdd}|rO|}i|_g}|rxt |d}|dvr| }O| || }|x|jj dr|jjd|jj dzd}|r|}|r|ddkr|s"t |dn3t |d }|jj dd|}|jj d|d |j|<| }||j |j t!|j|jj dr|jj d r|jj dd|jj d }|t!|jvrQ|j t!|j||j|j||jj drA|j||jj ddSdSdS) NzSHOW DATABASESrr)mysqlsysinformation_schemafabricperformance_schemar zSHOW FULL TABLES FROM `%s`z BASE TABLErMrr!)#check_server_lower_case_table_namesrBrrr!rr stringFieldValuerr$r"rWlowerdestination_table_selclearrrkeysrrdestination_database_sel)r>compare_in_lowercaser%r&db_listdbname table_name full_names rrz-SelectDestinationPage.preload_existing_tablesCs#GGIIy667GKK  q""$$B DOG $#D$9$9!$<$<==<<>>%kkkBv&&&\\^^  $y*84 ,y'>>?[^b^g^y{C_D@DFGHH,**,,B,0033|CCUi*\D4I4I!4L4L)M)M)Moyz~{P{PQR{S{SpTpTpZpZp\p\J3793Nx3X3X3XZdZd(eIDHID_`hDit~99DOI6!\\^^ ,  & , , . . .  & 0 0do6J6J6L6L1M1M N N Ny*84 l9TU\9] l(, (CH(M(M(MtyOjkrOsOst do&:&:&<& q qrcF |dtjd}|tj|j|ddtjd}|dtjd}|dtjd|_ |j d|j |j d|j jvr,|j jd|j d||j ddtj|_|jd d ||jdd||ddtjd}|dtjd|_|j d |j |j d|j jvs|j jd|jd||jddtj|_|jd d ||jdd|tjd ddtj|_||jdd||dddtj|_|j d|jt4|j |jffd ||jdddtj|_|j d|jt8|j |jffd |j r5|jd|jdn4|jd|jd||jdd|j|dddS)Nrz0Select destination table and additional options.FTrrzUse existing table:r!rrzCreate new table: rUrMc.|adSr$)rZrvr%s r set_truncz2SelectDestinationPage.create_ui..set_truncs#..00NNNrzTruncate table before importc|Sr$rd)r%rs rr'z1SelectDestinationPage.create_ui..s\e\efl\m\mrc.|adSr$)rZ drop_tablers rset_dropz1SelectDestinationPage.create_ui..set_drops**,,JJJrzDrop table if existsc|Sr$rd)r%rs rr'z1SelectDestinationPage.create_ui..sT\T\]cTdTdr)rrrV set_styleBoldInfoCaptionStylerTrUrnewRadioButtonrYr<r/ radio_clickrBrWr>rrrrsrrrrr=rwrvrurrZr)r>labeltable_destination_boxexisting_table_box new_table_boxrrs @@rr`zSelectDestinationPage.create_uiis  RSS 3444 t,,,!' e 4 4))!,,,#]400&&q)))$*$9!$<$<! !**+@AAA !66t7GHHH di1 1 1di6QRY6Z6f  % 0 0 6 6 6t8%FFF%+%7%9%9" "++B333t94FFF!!"4eTBBB d++ !!!$$$%4Q77 %%&:;;; 11$2BCCC $)5 5 59TU\9]9e  + +D 1 1 1$.t<<<(.(:(<(<% %..sB777$7EEE&/#..t<<<$133d14>>>!!-t<<< 1 1 1"(!3!5!5 ''(FGGG )).999 33DDZ4m4m4m4m4mnnn!!$"8%FFF - - -$/11 ##$:;;; %%j111 //@R0d0d0d0d0deee  $ / / 1 1 /   # #E * * *  " ' ' - - - -   # #D ) ) )  " ' ' . . .!!$"4eTBBB .t<<<<r%s rrz9SelectDestinationPage.check_server_lower_case_table_namessWy667mopqq  :D%%'' :++G449 9urc|jjd|d|dd}|r|rdSdS)NzSHOW TABLES FROM `z` like ''rTF)rBrrr!)r>r r!r%s rcheck_if_table_existsz+SelectDestinationPage.check_if_table_existssXy666\b\b\bdididi7jlmnn  D%%'' 4urc|}|jr=|jt |j|j_nYt |j |jjd<t |j  |jjd<t|jjddkr%tjddddddS|r1|jjd|jjd<|jjdd |jjd}|js%||jvs6||jjd|jjdrtjdd d d d }|tjkr|jdn|tjkr|jd|jd|jt3|j|ndSdS)Nr r!rz Table Importz"You need to specify new table namerrFrMzYou specified to create a new table, but a table with the same name already exists in the selected schema. Would you like to drop it, or use the existing one and truncate?zDrop the tablez Use Existing One and Truncate itCancelT)rrYrZrr rrJrBrWrrrrrrrrrurrrr> ResultCancelrwrrrr)r>rrress rrzSelectDestinationPage.validates#GGII  $ / / 1 1 !*./*TE_EpEpErEr:s:s*tDI ' '4>t?\?m?m?o?o4p4pDI ' 13=d>Q>b>b>d>d3e3e3k3k3m3mDI ' 049.w788A== ++N<`bfhjlnooou# d7;y7RSZ7[7a7a7c7c +G4$(I$?$I$I$I49KfgnKoKopJ%0022 ! do8U8UY]YsYstxt}uPQYuZ\`\e\wx\@ZAZA8U&33NErtDFhjrss&/))&11$7777F///*55d;;;-88>>>.;;DAUAUAWAWr entry_boxs rr`zSelectFileWizardPage.create_uist !XYY 3444 u---M$'' a    fol33UDAAA%244 d*D$777 &&}555%+%5%7%7" "++K888 "++H555 "778NOOO d0%??? E400000rc8|jdSr$rArDs rrzSelectFileWizardPage.go_cancelrFrc|j}tj|s%t jddddddStjtj |\}}|j j D]}|j |ddkrn&t j ddd dddS|ddd krptj|d krMt j dd d ddt jkr|jddSdS)Nz Invalid Pathz!Please specify a valid file path.OKrFrrz=This file type is not supported, valid options are: CSV, JSONrrGi@zThis file appears to be a JSON filetype, and the size is over 100MB, which will take a long time to import. If possible, obtain the data in CSV format instead. Do you wish to continue with this file anyway?ContinuerT)rIrJrrisfilerrrrrrBrr,r/getsizerr)r> file_pathfileNamefileExtrs rrzSelectFileWizardPage.validates(99;; w~~i((    ' '8[]acegi j j j5G,,RW-=-=i-H-HII'i'  F{gabbk))*   ) )*=?~AEGIKM N N N5 122;& wy))I55#001DGWYcemoqrrv|vEEE(222666 5trcvttj}|tj|jg}|j j D]/}| | d0| d||j j d dd|r2|}|j||adSdS)Nr|rF)rrOpenFile set_directoryrrdirnamerIrJrBrr"get_file_extensionset_extensionsjoin run_modalrKrr)r> filechooser extensionsr\rs rrz&SelectFileWizardPage.importfile_browses!&/22 !!"'//$2F2W2W2Y2Y"Z"Z[[[ i' > >F   f7799!< = = = =""388J#7#79J19M9`9`9b9bcd9eglmmm  " " &#,,..I  * *9 5 5 5%MMM  & &rN)rarbrcr:r`rrrrdrrrrs_,,, 11120 & & & & &rrceZdZifdZdS)rcVtj|tj||_|ddg|_|jtd|d|jtd|d||_ | t||_ ||j t||_||jt#||_||jt'||_||jt+||_||jdS)NrirTrG)rr:rrrr set_min_sizerr"rrWcenterrrHadd_pagerrXrrnrfrOr7 result_page)r>rr?rs rr:zPowerImportWizard.__init__*s_D&+"7"7"9"9:::  "c"""  M%>>??? M&&$??@@@!* 4T : : d+,,, 5d ; ; d+,,,"3D"9"9 d-...$6t$<$<! d/000&t,, d&'''''rN)rarbrcr:rdrrrr)s+24((((((rr)rrprrrsqlide_power_import_export_ber workbench.uirrrr rworkbench.utilsr workbench.logr r wb_commonr rrrvrr5r7rfrrrrrdrrrs-0  777777CCCCCCCCCC######.-------    RRR8FFFFF*FFF.11111+111fWWWWW WWWr kkkkkJkkkZH&H&H&H&H&:H&H&H&T((((( (((((r