
    Je_                        d Z ddlZddlmZ ddlZddlmZ ddlm	Z	 ddl
mZmZmZmZmZ ddlmZmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& dd	l'm(Z(m)Z*m+Z, dd
l-m.Z. ddl/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9 ddl:m;Z; ddl<m=Z= d Z>d Z?	 ddl@mAZB d$dZCd ZD G d de&      ZE G d de      ZF G d de"      ZG G d de&      ZH G d d e;      ZId! ZJeKd"k(  r	 eJd#       yy#  d$dZBY XxY w)%z(
Text data Importing Wizard based on Qt
    N)partial)zip_longest)to_qvariant)QAbstractTableModelQModelIndexQtSignalSlot)QColorQIntValidator)	QCheckBoxQDialogQFrameQGridLayout	QGroupBoxQHBoxLayoutQLabel	QLineEditQPushButtonQMenuQMessageBoxQRadioButtonQSizePolicyQSpacerItem
QTableView
QTabWidget	QTextEditQVBoxLayoutQWidget)
FakeObjectnumpypandas)_)	INT_TYPES
TEXT_TYPESto_text_string)programs)ima)add_actionscreate_action)
BaseDialog)SpyderPalettec                 l    d}|D ]  }	 t        |d| d      }|c S  | S # t        t        f$ r Y -w xY w)N)intfloatz('z'))eval
ValueErrorSyntaxError)value_types_t_vals       V/usr/lib/python3/dist-packages/spyder/plugins/variableexplorer/widgets/importwizard.pytry_to_parser8   '   sO    F 	b%01DK L K( 		s   !33c                 R    	 t        |       S # t        t        t        f$ r | cY S w xY wN)r0   	NameErrorr2   ImportError)r3   s    r7   try_to_evalr=   2   s,    E{{K0 s   
 &&)parsec                     t        t        t        | j                  d                  \  }}}|rt	        j                  |||      S t	        j                  |||      S )z!Just for 'day/month/year' strings/)listmapr.   splitdatetime)datestrdayfirst_a_b_cs        r7   	dateparserJ   =   sO    #c7==#567
B$$RR00  R,,    c                     t        | |      S )N)rF   )rJ   )r3   rF   s     r7   datestr_to_datetimerM   D   s    UX..rK   c                 H   t         t        j                  t        t        gt        t              z         t        j                  t        t        j                  t        j                  t        j                  t
        t        j                  t        t        j                  t        t        j                   t"        t        j$                  t&        j(                  t        j*                  i	}t-               }|D ]  }t/        | |      st-        ||         } |j1                  |       |S )z$Return color depending on value type)boolr,   GROUP_1tupler/   rA   r$   GROUP_2r%   GROUP_3rD   dateGROUP_4GROUP_5setGROUP_6GROUP_7dictGROUP_8npndarrayGROUP_9r   
isinstance	setAlphaF)r3   alphacolorscolortyps        r7   	get_colorre   H   s     	m##ugY'(-*?*?M))},,m##]""}$$m##


M))
F HE (eS!6#;'E( 
OOELrK   c                       e Zd ZdZ ee      Zd Zd Zd Z	d Z
d Zd Zd Zd	 Z ee      d
        Z ee      d        Zy)ContentsWidgetzImport wizard contents widgetc                 "    t        j                   |       t                _         j                  j	                  |        j                  j                  d       t               }t        t        d            }|j                  |       t        t        d            }|j                  d       d _        |j                  |       t        t        d            }d _        |j                  |       t        t        d            }|j                  |       t        ddt        j                   t        j"                        }|j%                  |       t'               }	|	j)                  |       t+               }
|
j-                  d	       t        t        d
            }|
j                  |d	d	       t               }t               }t        t        d             _         j.                  j                  d       |j                   j.                         t        t        d             _         j0                  j                  d       |j                   j0                         t        t        d            }|j                  d       |j                  |       |j)                  |       |
j                  |d	d       t3        d       _         j4                  j7                  d        j4                  j9                  d       |j:                  j=                   j4                  j8                         |
j                   j4                  d	d       t        t        d            }|
j                  |dd	       t               }t               }t        t        d             _         j>                  j                  d       |j                   j>                         t        t        d            }|j                  |       |j)                  |       |
j                  |dd       t3        d       _          j@                  j7                  d        j@                  j9                  d       |j:                  j=                   j@                  j8                         |
j                   j@                  dd       |
jC                  dd       tE        t        d            }t+               }|j)                  |       t        t        d            }|j                  |d	d	       t3        d       _#         jF                  j7                  d       tI        d	tK        tM        |      jO                                jF                        } jF                  jQ                  |        jF                  jR                  j=                   fd       |j                   jF                  d	d       |jU                  dd       t        t        d            }|j                  |d	d       t3        d       _+         jV                  j7                  d       |j                   jV                  d	d       tY        t        d             _-        |j                   jZ                  dd	dd	       |
j                  |dd	dd	       t'               }|j)                  |
       |j:                  j=                  |j8                         |j:                  j=                   j\                         |j:                  j=                   j^                         ta               }|j                  |	       |j                   j                         |j                  |        j)                  |       y ) NT	Import asdatacodeFtext(      r   zColumn separator:Tab
Whitespaceother   ,      zRow separator:EOL;   zAdditional optionsz
Skip rows:0c                 $    j                         S r:   )get_skiprows)rl   selfs    r7   <lambda>z)ContentsWidget.__init__.<locals>.<lambda>   s    $"3"3"5 rK      z	Comments:   #   	Transpose)1r   __init__r   text_editorsetTextsetReadOnlyr   r   r#   	addWidgetr   
setChecked_as_data_as_coder   r   	ExpandingMinimumaddItemr   	setLayoutr   
setSpacingtab_btnws_btnr   line_edtsetMaximumWidth
setEnabledtoggledconnecteol_btnline_edt_rowsetRowMinimumHeightr   skiprows_edtr   lenr&   
splitlinessetValidatortextChangedsetColumnMinimumWidthcomments_edtr   	trnsp_boxset_as_dataset_as_coder   )r|   parentrl   type_layout
type_labeldata_btncode_btntxt_btnh_spacer
type_framegrid_layout	col_labelcol_wcol_btn_layoutother_btn_col	row_labelrow_wrow_btn_layoutother_btn_rowother_groupother_layoutskiprows_labelintvalidcomments_label
opts_framelayouts   `                         r7   r   zContentsWidget.__init__b   s   v&$T?  &$$T* "mAkN+
j)&	*D!h'&	*h'qy)g&r2*44k6I6IKH%X
[) "mq!1012	iA.	$#AeH-&  ."1\?3u%  -$QwZ0  &  /'eQ*!#%%b)  &%%dmm&>&>?dmmQ21-./	iA.	$#AeH-%  .$QwZ0  /'eQ*%cN))"-$$U+%%d&7&7&B&BCd//A6''2."6 78"}l+,0~q!4%cN))"- Ct(<(G(G(I$J!%!2!24&&x0%%--5	7t00!Q7**1a0+/~q!4%cN))"-t00!Q7"1[>2t~~q!Q:k1aA6X
[)  !6!67  !1!12  !1!12
 $))*$vrK   c                     | j                   S )zReturn if data type conversion)r   r|   s    r7   get_as_datazContentsWidget.get_as_data       }}rK   c                     | j                   S )zReturn if code type conversionr   r   s    r7   get_as_codezContentsWidget.get_as_code   r   rK   c                     | j                   S )z!Return if numeric type conversion)_as_numr   s    r7   
get_as_numzContentsWidget.get_as_num   s    ||rK   c                     | j                   j                         ry| j                  j                         ryt        | j                  j                               S )zReturn the column separator	N)r   	isCheckedr   r&   r   rl   r   s    r7   get_col_sepzContentsWidget.get_col_sep   s@    <<!!#[[""$dmm00233rK   c                 ~    | j                   j                         ryt        | j                  j	                               S )zReturn the row separator
)r   r   r&   r   rl   r   s    r7   get_row_sepzContentsWidget.get_row_sep   s/    <<!!#d//44677rK   c                     t        | j                  j                               }|r|dk7  rt        |      S | j                  j	                          y)z$Return number of lines to be skipped+r   )r&   r   rl   r.   clear)r|   	skip_rowss     r7   r{   zContentsWidget.get_skiprows   sF    "4#4#4#9#9#;<	 c)y>!##%rK   c                 H    t        | j                  j                               S )zReturn comment string)r&   r   rl   r   s    r7   get_commentszContentsWidget.get_comments   s    d//44677rK   c                 H    || _         | j                  j                  |       y)zSet if data type conversionN)r   asDataChangedemit)r|   as_datas     r7   r   zContentsWidget.set_as_data   s      (rK   c                     || _         y)zSet if code type conversionNr   )r|   as_codes     r7   r   zContentsWidget.set_as_code  s      rK   N)__name__
__module____qualname____doc__r	   rO   r   r   r   r   r   r   r   r{   r   r
   r   r    rK   r7   rg   rg   ^   sh    '4LMrh48	8 
$Z) )
 
$Z   rK   rg   c                       e Zd ZdZg dfdZ e       fdZ e       fdZd Ze	j                  fdZe	j                  fdZd	 Zd
 Zd Zy)PreviewTableModelz!Import wizard preview table modelNc                 >    t        j                  | |       || _        y r:   )r   r   _data)r|   rj   r   s      r7   r   zPreviewTableModel.__init__  s    $$T62
rK   c                 ,    t        | j                        S )zReturn row countr   r   r|   r   s     r7   rowCountzPreviewTableModel.rowCount  s    4::rK   c                 2    t        | j                  d         S )zReturn column countr   r   r   s     r7   columnCountzPreviewTableModel.columnCount  s    4::a=!!rK   c                 p    t        | j                  |j                            |j                                  S )zReturn a data element)r   r   rowcolumn)r|   indexs     r7   _display_datazPreviewTableModel._display_data  s'    4::eiik25<<>BCCrK   c                    |j                         s
t               S |t        j                  k(  r| j	                  |      S |t        j
                  k(  rAt        t        | j                  |j                            |j                            d            S |t        j                  k(  r3t        t        t        j                  t        j                  z              S t               S )zReturn a model data elementg      ?)isValidr   r   DisplayRoler   BackgroundColorRolere   r   r   r   TextAlignmentRoler.   
AlignRightAlignVCenter)r|   r   roles      r7   rj   zPreviewTableModel.data  s    }}= 2>>!%%e,,R+++y

599;'7 > ? ?R)))s2==#@ABB}rK   c                      y)zSet model dataFr   )r|   r   r3   r   s       r7   setDatazPreviewTableModel.setData*  s    rK   c                 &    | j                   dd dd S )zReturn a copy of model dataN)r   r   s    r7   get_datazPreviewTableModel.get_data.  s    zz!}QrK   c                 (   |j                         sy	 |d   dk(  rwt        | j                  |j                            |j	                            |d         j                         | j                  |j                            |j	                         <   nD|d   dk(  rz| j                  |j                            |j	                            j                  dd      }t        |      dz  | j                  |j                            |j	                         <   n|d   d	k(  rw| j                  |j                            |j	                            j                  d
d      }t        |      | j                  |j                            |j	                         <   nC|d   dk(  rdt        | j                  |j                            |j	                                  | j                  |j                            |j	                         <   n|d   dk(  rdt        | j                  |j                            |j	                                  | j                  |j                            |j	                         <   nk|d   dk(  rct        | j                  |j                            |j	                                  | j                  |j                            |j	                         <   | j                  j                  ||       y# t        $ r}t        |       Y d}~yd}~ww xY w)zParse a type to an other typeFatyperT   rF   perc% g      Y@accountrs   unicoder.   r/   N)r   rM   r   r   r   rT   replacer0   r&   r.   r/   dataChangedr   	Exceptionprint)r|   r   kwargs_tmpinstances        r7   parse_data_typez!PreviewTableModel.parse_data_type2  sC   }}	g&('

599;(?(O$*:$688< 

599;'7 F*zz%))+.u||~>FFsBO:>t*T/

599;'7I-zz%))+.u||~>FFsBO:>t*

599;'7I-:HJJuyy{+ELLN;;=

599;'7E):=JJuyy{+ELLN;;=

599;'7G+:?JJuyy{+ELLN;;=

599;'7!!%/ 	(OO	s   KK3 3	L<LLc                 D    | j                          | j                          y r:   )beginResetModelendResetModelr   s    r7   resetzPreviewTableModel.resetN  s    rK   )r   r   r   r   r   r   r   r   r   r   r   rj   EditRoler   r   r  r  r   rK   r7   r   r     sX    +t  *m  "- "D  "~~  *,  8rK   r   c                   T    e Zd ZdZd Z	 	 d	dZd Z	 	 d	dZ e       d        Z	d Z
y)
PreviewTableImport wizard preview widgetc           	         t        j                  | |       d | _        t        | dt	        | j
                  dd            | _        t        | dt	        | j
                  dd            | _        t        | dt	        | j
                  d	            | _        t        | d
t	        | j
                  d
	            | _	        t        | dt	        | j
                  d	            | _
        t        | dt	        | j
                  d	            | _        t        | dt	        | j
                  d	            | _        t               | _        | j                  j                  d       t!        | j                  | j                  | j                  f       t        |       | _        | j"                  j%                  | j                         t!        | j"                  | j                  | j                  f       | j"                  j                  d       t        |       | _        | j&                  j%                  | j"                         t!        | j&                  | j                  | j                  | j                  f       y )NrF   rT   T)r   rF   )	triggered
monthfirstFr   )r   r   r   r.   r/   Datez	String to)r   r   _modelr*   
ft_partialparse_to_typedate_dayfirst_actiondate_monthfirst_actionperc_action
acc_action
str_action
int_actionfloat_actionr   	date_menusetTitler)   
parse_menuaddMenuopt_menur   s     r7   r   zPreviewTable.__init__T  s   D&) %2$
 !3!36DQ%S!&3D, !3!36ER'T#(v !3!36BD'i !3!39EG'i !3!39EG'e !3!35AC)$ !3!37CE 'T^^d&?&?&*&A&A&C 	D+/T__t'7'7&IJ  -ddoo.T]]T__doo%)%6%6%8 	9rK   c           	      4   ||k7  sJ d       g }|j                  |      }|t        |      k  sJ d       ||d }|D ]  }	t        |	      j                         }
t        |
      dk(  s|r|
j	                  |      r>t        |	      j                  |      }|D cg c]  }t        t        |             }}|j                  |        t        j                  d      rddl	m
} t        t        |d|i      }nt        t        |ddi      }t        t        |d               D cg c]  }|D cg c]  }||   	 c} }}}|r8t        t        |d               D cg c]  }|D cg c]  }||   	 c} c}}S |S c c}w c c}w c c}}w c c}w c c}}w )z"Decode the shape of the given textz#Column sep should not equal Row sepzSkip Rows > Line CountNr   r!   )nan	fillvalue)rC   r   r&   strip
startswithr8   appendr'   is_module_installedr!   r$  rA   r   range)r|   rl   colseprowsep	transposeskiprowscommentsout	text_rowsr   strippedlinexr$  colrs                   r7   _shape_textzPreviewTable._shape_textv  s    F!FFJJv&	#i.(B*BB(hi(	 	C%c*002H8}!h&.&9&9(&C!#&,,V4D=ABL!23BDBJJt	 ''0!{C7378C{C8489C05c#a&k0BC$1#$CC5:3s1v;5GHcS)QsV)HH
 C %C)Hs6   E?&	F	/F;F		F(F4FF	Fc                 P    | j                   y| j                   j                         S )zReturn model dataN)r  r   r   s    r7   r   zPreviewTable.get_data  s"    ;;{{##%%rK   c                     | j                  ||||||      }t        |      | _        | j                  | j                         y)zPut data into table modelN)r7  r   r  setModel)r|   rl   r+  r,  r-  r.  r/  rj   s           r7   process_datazPreviewTable.process_data  s=     ffi (*'-dkk"rK   c                 z    | j                         }|sy|D ]#  } | j                         j                  |fi | % y)zParse to a given typeN)selectedIndexesmodelr  )r|   r  indexesr   s       r7   r  zPreviewTable.parse_to_type  sA     &&( 	:E(DJJL((9&9	:rK   c                 v    | j                   j                  |j                                |j                          y)zReimplement Qt methodN)r"  popup	globalPosaccept)r|   events     r7   contextMenuEventzPreviewTable.contextMenuEvent  s$    EOO-.rK   Nr   r   Fr   r   )r   r   r   r   r   r7  r   r;  r
   r  rE  r   rK   r7   r  r  R  sE    & 9D 6;:=8& 7<;># 
V: :rK   r  c                   (    e Zd ZdZd Z	 	 ddZd Zy)PreviewWidgetr  c                    t        j                  | |       t               }t               }t	        t        d            }|j                  |       t        t        d            x| _        }t        j                  t        u}|j                  |       |j                  |       |j                  |       t        t        d            }|j                  |j                                 |j                  |       t        r=t        t        d            x| _        }|j                  d       |j                  |       t#        ddt$        j&                  t$        j(                        }	|j+                  |	       t-               }
|
j/                  |       t1        |       | _        |j                  |
       |j                  | j2                         | j/                  |       y )Nri   arrayrA   	DataFrameFrm   rn   )r   r   r   r   r   r#   r   r   	array_btnr\   r]   r    r   r   r   pddf_btnr   r   r   r   r   r   r   r  _table_view)r|   r   vert_layoutr   r   rL  available_arraylist_btnrN  r   r   s              r7   r   zPreviewWidget.__init__  ss   v&!m "mAkN+
j)%1!G*%==**J6_-_-i(&	*	 3 3 556h'#/+#??DK&e$!!&)r2*44k6I6IKH%X
[)'-j)d../{#rK   c                     t         r1|| _        t        ||||      | _        |t        |||d      | _        | j                  j                  ||||||       y)zOpen clipboard text as table)seplineterminatorr.  commentNT)rU  r.  rV  delim_whitespace)rM  pd_textrZ   pd_inforO  r;  )r|   rl   r+  r,  r-  r.  r/  s          r7   	open_datazPreviewWidget.open_data  s^     DLF6!85DL~#6H$t =%%dFFI&.	:rK   c                 6    | j                   j                         S )zReturn table data)rO  r   r   s    r7   r   zPreviewWidget.get_data  s    ((**rK   NrF  )r   r   r   r   r   rZ  r   r   rK   r7   rH  rH    s    &"$H 498;:+rK   rH  c                   f     e Zd ZdZ	 d
 fd	Zd Zd Zd ZddZd Z	d Z
 e       d	        Z xZS )ImportWizardzText data import wizardc                 	   t         |   |       | j                  t        j                         |t        d      }| j                  |       |$| j                  t        j                  d             |t        d      }|t        d      }d\  | _
        | _        t        |       | _        t        | |      | _        t!        |       | _        | j                  j%                  | j                  t        d             | j                  j'                  d|       | j                  j%                  | j"                  t        d             | j                  j'                  d	t        d
             | j                  j)                  d	d       t+               }t-        t        d            }|j/                  |       t1               | _        | j2                  j5                  |       |j/                  | j2                         t+               }	t7        t        d            }
|	j/                  |
       |
j8                  j;                  | j<                         t?        ddt@        jB                  t@        jD                        }|	jG                  |       t7        t        d            | _$        | jH                  jK                  d       |	j/                  | jH                         | jH                  j8                  j;                  tM        | jN                  d             t7        t        d            | _(        |s| jP                  jK                  d       |	j/                  | jP                         | jP                  j8                  j;                  tM        | jN                  d	             t7        t        d            | _)        | jR                  jK                  d       |	j/                  | jR                         | jR                  j8                  j;                  | jT                         | j                  jV                  j;                  | jP                  jJ                         | j                  jV                  j;                  | jR                  jX                         t[               }|j]                  |       |j/                  | j                         |j]                  |	       | j_                  |       y )NImport wizard
fileimportzRaw textvariable_name)NNrl   r   tablerr   PreviewFzVariable NameCancelrm   rn   Previous)stepNextDone)0superr   setAttributer   WA_DeleteOnCloser#   setWindowTitlesetWindowIconr(   iconvar_name	clip_datar   
tab_widgetrg   text_widgetrH  table_widgetaddTab
setTabTextsetTabEnabledr   r   r   r   name_edtr   r   clickedr   rejectr   r   r   r   r   back_btnr   r  	_set_stepfwd_btndone_btnprocessr   setDisabledr   	addLayoutr   )r|   r   rl   titlero  contents_titlevarnamename_layout
name_labelbtns_layout
cancel_btnr   r   	__class__s                r7   r   zImportWizard.__init__  su     	"--.=o&EE"<sxx56!z]N?(G(2%t~ %T*)$5)$/t//6;""1n5t00!G*=""1a	l3%%a/!mAo./
j)!g&dmm,!m 8-
j)""4;;/r2*44k6I6IKH%#AjM2  'dmm,%%jb&IJ"1V9-LL##E*dll+$$ZQ%GH#AfI.  'dmm,%%dll3&&..t||/F/FG&&..t}}/H/HI%)%vrK   c                     t        | j                  j                               D ]  }| j                  j                  |d         | j                  j                  |d       | j                  j	                  |       y)zChange tab focusFTN)r*  rr  countrw  setCurrentIndex)r|   tab_idxis      r7   
_focus_tabzImportWizard._focus_tab0  s]    t,,./ 	4AOO))!U3	4%%gt4''0rK   c           	      t   | j                   j                         |z   }|| j                   j                         k  r|dk\  sJ || j                   j                         dz
  k(  r	 | j                  j	                  | j                         | j                  j                         | j                  j                         | j                  j                  j                         | j                  j                         | j                  j                                | j                  j                  d       | j                  j                  d       | j                   j                  d       | j"                  j                  d       nV|dk(  rQ| j                  j                  d       | j                   j                  d       | j"                  j                  d       | j1                  |       y# t$        t&        f$ r?}t)        j*                  | t-        d      t-        d      t/        |      z         Y d}~yd}~ww xY w)zProceed to a given stepr   rr   TFr_  zc<b>Unable to proceed to next step</b><br><br>Please check your entries.<br><br>Error message:<br>%sN)rr  currentIndexr  rt  rZ  _get_plain_textrs  r   r   r   r   r{   r   r~  r   
setDefaultr}  r{  r2   AssertionErrorr   criticalr#   strr  )r|   rg  new_taberrors       r7   r|  zImportWizard._set_step7  s   //..047..00W\AAdoo++-a//!!++D,@,@,B(,(8(8(D(D(F(,(8(8(D(D(F(,(8(8(B(B(L(L(N(,(8(8(E(E(G(,(8(8(E(E(GI ((.((.''.((. \MM$$U+LL##D)MM$$U+   0 $$T1_+= = >@CE
KL s   $DG) )H785H22H7c                 2    | j                   | j                  fS )zReturn processed data)rp  rq  r   s    r7   r   zImportWizard.get_dataS  s     }}dnn,,rK   c                     |dk7  rt        |      dk(  r|d   S |S t        |      dk(  r| j                  |d   d      S |D cg c]  }| j                  |d       c}S c c}w )z$Reduce the alist dimension if neededr   rr   rf  )r   _simplify_shape)r|   alistrecals       r7   r  zImportWizard._simplify_shapeY  sf    !85zQRy Lu:?''b	1556;<$$R+<<<s   Ac                    | j                  | j                  j                               }| j                  j                  j	                         rt        j                  |      S t        j                  t        ury| j                  j                  j	                         rU| j                  j                  }t        j                  | j                  j                        }t        j                  |fi |S |S )z"Return clipboard processed as data)r  rt  r   rL  r   r\   rJ  rM  read_csvr    rN  rY  ioStringIOrX  )r|   rj   infobufs       r7   _get_table_datazImportWizard._get_table_datac  s    ##!!**,.&&00288D>!kk+!!((224$$,,D++d//778C;;s+d++rK   c                 J    | j                   j                  j                         S )zReturn clipboard as text)rs  r   toPlainTextr   s    r7   r  zImportWizard._get_plain_textp  s    ++7799rK   c                    | j                   j                         }	 t        |      | _        | j                  j                         r| j                         | _	        n`| j                  j                         r(t        t        | j                                     | _	        nt        | j                               | _	        | j                          y# t        $ r t        |      | _        Y w xY w)zProcess the data from clipboardN)rx  rl   r  rp  UnicodeEncodeErrorr&   rs  r   r  rq  r   r=   r  rC  )r|   rp  s     r7   r  zImportWizard.processt  s     ==%%'	5MDM '')!113DN))+(t33568DN ,D,@,@,BCDN " 	5*84DM	5s   C C)(C))NNNN)r   )r   r   r   r   r   r  r|  r   r  r  r  r
   r  __classcell__)r  s   @r7   r]  r]    sD    !EIEN1!8-=: 
V rK   r]  c                     ddl m}  |       }t        d|       }|j                         rt	        |j                                yy)Testr   )qapplicationN)spyder.utils.qthelpersr  r]  exec_r  r   )rl   r  _appdialogs       r7   testr    s5    3>D$%F||~foo  rK   __main__z17/11/1976	1.34
14/05/09	3.14)T)Lr   rD   	functoolsr   r  r  	itertoolsr   qtpy.compatr   qtpy.QtCorer   r   r   r	   r
   
qtpy.QtGuir   r   qtpy.QtWidgetsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    spyder_kernels.utils.lazymodulesr    r!   r\   r"   rM  spyder.config.baser#   spyder.py3compatr$   r%   r&   spyder.utilsr'   spyder.utils.icon_managerr(   r  r)   r*   2spyder.plugins.variableexplorer.widgets.basedialogr+   spyder.utils.paletter,   r8   r=   dateutil.parserr>   rJ   rM   re   rg   r   r  rH  r]  r  r   r   rK   r7   <module>r     s   
  + 	 ! $ J J ,= = = = = =
+ + ! B B ! ) = I .-2/,j W j ZE+ ENY: Yx6+G 6+r\: \~! z	,- e--s   C4 4C<