HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyo
�
[�3Lc	@s,dZddlZddlZddlZddlZddljZddlj	Z	ddd�Zddd�Zd�Z
dejfd��YZdded	�Zd
ejfd��YZdejfd
��YZddded�Zedkr(ddlZddlZddlZddlj	Z	dZejj�Zgee�D]Zeejde�^qNZ ge D]Z!e!j"d�^qwZ#ej$j%e�Z&ej$j'e�dZ(e&dkZ)ee�Z*ej+j,e*e e#e&e(e)gdd�Z-e	j.e-�Z/e	j0d�e/d<e	j1dd�e/d<e	j2dd�e/d<e3dddd d!d"d#d$g�Z4d%gZ5ee-d&e/d'e4�Z6ee6d(e5�Z7d)�Z8e6j9j:d*e8�ej;�Z<e<j=d+�e<j>e7�e<j?�e-j�Z@ee@�\ZAZBZCeCj=d,�ejD�ndS(-s�

Some gtk specific tools and widgets

   * rec2gtk          : put record array in GTK treeview - requires gtk

Example usage

    import matplotlib.mlab as mlab
    import mpl_toolkits.gtktools as gtktools

    r = mlab.csv2rec('somefile.csv', checkrows=0)

    formatd = dict(
        weight = mlab.FormatFloat(2),
        change = mlab.FormatPercent(2),
        cost   = mlab.FormatThousands(2),
        )


    exceltools.rec2excel(r, 'test.xls', formatd=formatd)
    mlab.rec2csv(r, 'test.csv', formatd=formatd)


    import gtk
    scroll = gtktools.rec2gtk(r, formatd=formatd)
    win = gtk.Window()
    win.set_size_request(600,800)
    win.add(scroll)
    win.show_all()
    gtk.main()

i����Nc	Cs�tjdddtjdtjd|�}|dk	rF|j|�n|dk	rb|j|�n
|jd�|j�|j�|j	�dS(sp
    create an error message dialog with string msg.  Optionally set
    the parent widget and dialog title
    tparentttypetbuttonstmessage_formatsError!N(
tgtkt
MessageDialogtNonet
MESSAGE_ERRORt
BUTTONS_OKtset_transient_fort	set_titletshowtruntdestroy(tmsgRttitletdialog((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt
error_message)s				



c	Cs�tjdddtjdtjd|�}|dk	rF|j|�n|dk	rb|j|�n|j�|j�|j	�dS(sp
    create a simple message dialog with string msg.  Optionally set
    the parent widget and dialog title
    RRRRN(
RRRtMESSAGE_INFORR	R
RRR
(RRRR((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytsimple_message?s				


cs�|dkrdStj|�}d|_d|_�fd�}t|tj�sdt|tj�ry||_d|_nt|tj�r�d|_n|S(sr
    copy the format, perform any overrides, and attach an gtk style attrs


    xalign = 0.
    cell = None

    gcso|j|��}yt|�}Wn|jdd�n0X|dkr[|jdd�n|jdd�dS(Nt
foregroundtblackitred(t	get_valuetfloattset_property(tcolumntcelltmodeltthisitertval(tcolnum(sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytnegative_red_cellasg�?N(	RtcopytxalignRt
isinstancetmlabtFormatFloatt	FormatIntt
FormatDate(tformatRR ((RsH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytgtkformat_factorySs			$	tSortedStringsScrolledWindowcBskeZdZdd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
RS(s�
    A simple treeview/liststore assuming all columns are strings.
    Supports ascending/descending sort by clicking on column header
    cs$tjj|��|_d	|_|jtj�|jtj	tj	�t
jgt��}tj
|��|_tj|j�}|j�|j�jtj�|jt�dd
��fd��Y}|d	kr�t�}n|j�}x�t��D]�\}}tj�}||kr4t�||<n||}	tj||d|�}
|jd|	j�|jdt�|jd|j|�|
jd|||��|
jdt�|	j d	k	r�|
j!||	j �n|j"|
�qW||_#|
|_$|j%|�||_&|j'�d	S(s�
        xalignd if not None, is a dict mapping col header to xalignent (default 1)

        formatterd if not None, is a dict mapping col header to a ColumnFormatter
        tClickedcs#eZd�Z��fd�ZRS(cSs||_||_d|_dS(Ni(Rtitnum(tselfRR,((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt__init__�s		c
s�g}g}x�t|jj�D]�\}}�j||j�}yt|j�jd��}Wntk
rrnXt	j
|�r�t	j}n|j||f�qW|j
�|jds�|j�nt|�\}}|j|�|jjj|�g}	x%|D]}
|	j|jj|
�qW|	|j_xmt|jj�D]Y\}
}tgtt���D]}|jjj||�^qk�}||jj|
<qIW|jd7_dS(Nt%ii(t	enumerateRtitersRR,Rtstriptrstript
ValueErrortnpytisnantinftappendtsortR-treversetziptextendRtreorderttupletrangetlentrownumd(
R.RtindtdsutrownumRRtvalstotherindtnewitersR,tjtkey(t
colheadersR(sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt__call__�s2






=(t__name__t
__module__R/RL((RKR(sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR+�s	ttextR"teditableteditedtclickedt	clickableN(((RtScrolledWindowR/RKRtseqtset_shadow_typetSHADOW_ETCHED_INt
set_policytPOLICY_AUTOMATICtgobjecttTYPE_STRINGRAt	ListStoreRtTreeViewRt
get_selectiontset_modetSELECTION_MULTIPLEtset_rules_hinttTruetdictR!R1tCellRendererTexttColumnFormattertTreeViewColumnRR"tconnecttposition_editedRtset_cell_data_funct
append_columnt
formatterdtlastcoltaddttreeviewtclear(R.RKRkttypesRnR+R,theadertrenderert	formatterR((RKRsH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR/{sF		


!
		
	cCs||j||<dS(N(R(R.Rrtpathtnewtexttposition((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyRh�scCs>t�|_g|_t�|_|jj�t�|_dS(N(RctiterdR2RBRRotdatad(R.((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyRo�s
	
cCs\g}xOt|�D]A\}}|jj|j|�}|j||j|�g�qW|S(N(R1RktgetRKR=ttostr(R.trowRUR,RRs((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytflat�s
 cGs�tg|jj�D]\}}||f^q�}xa|j�D]S}t|�}|j|}|jj|�|j|=|j|=|jj|�qAWx.t	|j�D]\}}|||j
|<q�WdS(N(RcRwtvaluestget_selectedR?RtremoveRxR2R1RB(R.tunusedRJRtkeydR{R,((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt__delete_selected�s4


cCs�t|�}|j|}|jj|�|j|=|j|=||jt|j�<|jj|�x6|jj�D]%\}}||krs|j|=qsqsWdS(N(	R?RwRRRxRBRAR2titems(R.R{RJRREtthiskey((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt
delete_row�s


cCs{|jj�}|jj||j|��t|�}||j|<||j|<||jt|j	�<|j	j|�dS(N(
RR9tsetR|R?RxRwRBRAR2(R.R{RRJ((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytadd_rows

cCs�|j|}|j|}t|�}||j|<|j|=|j|=||j|<||j|<|jj||j|��dS(N(RBRwR?RxRR�R|(R.REtnewrowRJRtnewkey((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt
update_rows






cCs|j|}|j|S(N(RBRx(R.RERJ((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytget_rows
cCs,g}d�}|jj�j||�|S(NcSs|j|j|d��dS(Ni(R9R(RRttitertselected((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytforeach#s(RnR^tselected_foreach(R.R�R�((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR~!s	N(RMRNt__doc__RR/RhRoR|t-_SortedStringsScrolledWindow__delete_selectedR�R�R�R�R~(((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR*usY									icCs@|dkrt�}ng}x�t|jj�D]n\}}|j|}|j|�}|dkr�tjj|jtj	��}nt
||�}|||<q1W|jj}	t|	|�}
tj
t|jj��}x|D]}|
j|�q�W|r<tj�}
|
jdd�|
j|
�|
j�|
|
_n|
S(s�
    formatd is a dictionary mapping dtype name -> mlab.Format instances

    This function creates a SortedStringsScrolledWindow (derived
    from gtk.ScrolledWindow) and returns it.  if autowin is True,
    a gtk.Window is created, attached to the
    SortedStringsScrolledWindow instance, shown and returned.  If
    autowin=False, the caller is responsible for adding the
    SortedStringsScrolledWindow instance to a gtk widget and
    showing it.
    i iXN(RRcR1tdtypetnamesRyR$tdefaultformatdRt	FormatObjR)R*R6tarangeRAR�RtWindowtset_default_sizeRmtshow_alltwin(trtformatdREtautowintformatsR,tnametdtR(RKtscrollRCR{R�((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytrec2gtk+s,
!


tRecListStorecBs/eZdZddd�Zd�Zd�ZRS(s}
    A liststore as a model of an editable record array.

    attributes:

     * r - the record array with the edited values

     * formatd - the list of mlab.FormatObj instances, with gtk attachments

     * stringd - a dict mapping dtype names to a list of valid strings for the combo drop downs

     * callbacks - a matplotlib.cbook.CallbackRegistry.  Connect to the cell_changed with

        def mycallback(liststore, rownum, colname, oldval, newval):
           print 'verify: old=%s, new=%s, rec=%s'%(oldval, newval, liststore.r[rownum][colname])

        cid = liststore.callbacks.connect('cell_changed', mycallback)

        cCs�|dkrt�}n|dkr6tj|�}n||_tjdg�|_||_|j	j
|_gt|j�D]-\}}t
|j|tj��|�^q||_tt|j|j��|_}g}xF|jD];}t|tj�r|jtj�q�|jtj�q�Wt�|_t|�r�|jtjgt|��|j�}|j�t|j	j
�}	xtt|�D]c\}
}t j!tj�}x"||D]}
|j|
g�q�W|t|j�|
f|j|<q�Wnt j!j"||�x�|D]�}g}xXt|j|�D]D\}}t|tj�r^|j|�q0|j|j#|��q0Wt|�r�|jdgt|��n|j|�qWdS(s�
        r is a numpy record array

        formatd is a dict mapping dtype name to mlab.FormatObj instances

        stringd, if not None, is a dict mapping dtype names to a list of
        valid strings for a combo drop down editor
        tcell_changediN($RRcR$tget_formatdtstringdtcbooktCallbackRegistryt	callbacksR�R�R�theadersR1R)RyR�R�R<R�R#t
FormatBoolR9RZtTYPE_BOOLEANR[tcombodRAR=tTYPE_INTtkeysR:R�RR\R/Rz(R.R�R�R�R,R�RpR(R�tvalidtikeyRJt
combostoretsR{RFRsR((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR/osJ
		C"
'
cCs�t|�}|j|}t|�}|j|}|j||}y|j|�}	Wn5tk
r�tjd|�}
t|
dd�dSX|	|j||<|j	|	�|||<|j
jd|||||	�dS(NsError converting "%s"RtErrorR�(tintR�R�R�tfromstrR5R�texception_to_strRRzR�tprocess(R.RrRtRuRvR(REtcolnametoldvaltnewvalR((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyRh�s


c	Cs�t|�}|j|}|j�}t|�}|j|}|j||}||j||<||||<|jjd|||||�dS(NR�(R�R�t
get_activeR�R�R�R�(	R.tcellrendererRtRvR(R�RER�R�((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pytposition_toggled�s


N(RMRNR�RR/RhR�(((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR�[sA	tRecTreeViewcBs,eZdZdd�Zd�Zd�ZRS(s8
    An editable tree view widget for record arrays
    cCs�||_tjj||�t|jj��}|dkrFg}nt|�}x/t|j	�D]\}}|j
|}|j|�}|tj
kr�tj�}||kr�|jd|j|�|jdt�q�n�||krAtj�}|jd|j|�|j|\}	}
|jd|	�|jdt�nctj�}||kr�|jd|j|�|jdt�n|dk	r�|jd|j�ntj|�}|j|�|j|t�|tjkr*|j|d|�||krO|j|\}	}
|j|d|
�qOn%|tj
krO|j|d	|�n|dk	rb|jdk	rb|j||j�qbqbW|jd
|j�|j �j!tj"�|j �j#|j$�dS(s�
        build a gtk.TreeView to edit a RecListStore

        constant, if not None, is a list of dtype names which are not editable
        ttoggledtactivatableRQRRPR"ROstext-columntactivesbutton-release-eventN(%trecliststoreRR]R/R�R�R�RR1R�R�tget_column_typeRZR�tCellRendererToggleRgR�RRbtCellRendererComboRhR�RdR"RfRjt
pack_startR[t
add_attributeRRiton_selection_changedR^R_tSELECTION_BROWSEtset_select_functiont	on_select(R.R�tconstanttcombostringsR,RqRstcoltypeRrR�tlistindttvcol((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR/�sR		

cGstS(N(tFalse(R.targs((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR�#scGsT|j�\}}|j�d}t|tj�rP|j|||dt�ndS(Nit
start_editing(t
get_cursortget_cell_renderersR#RRdtset_cursor_on_cellRb(R.R�Rttcoltren((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR�&sN(RMRNR�RR/R�R�(((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyR��sH	cCsnt|d|d|�}t|d|�}|r`tj�}|j|�|j�|||fS||fSdS(s
    create a RecListStore and RecTreeView and return them.

    If autowin is True, create a gtk.Window, insert the treeview into
    it, and return it (return value will be (liststore, treeview, win)

    See RecListStore and RecTreeView for a description of the keyword args
    R�R�R�N(R�R�RR�RmR�(R�R�R�R�R�t	liststoreRnR�((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt
edit_recarray,s



t__main__i
tdayss%ag�cAR�s&clientid,date,weekdays,gains,prices,ups%Y-%m-%dtdatet	precisionitpricesitgaintweekdaystSuntMontTuetWedtThutFritSattclientidR�R�R�cCs!d|||j||fGHdS(Nsverify: old=%s, new=%s, rec=%s(R�(R�RER�R�R�((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt
mycallbackdsR�swith full customizationswith all defaults(ER�R!RRZtnumpyR6tmatplotlib.cbookR�tmatplotlib.mlabR$RRRR)RTR*RbR�R\R�R]R�R�RMtdatetimetnptNR�ttodayR@R,t	timedeltatdatestdtstrftimeR�trandomtrandntgainstrandR�tupR�trect
fromarraysR�R�R�R'tFormatMillionst
FormatPercentRcR�R�R�RnR�R�RgR�R�R
RmR�tr2tlsttvtwin2tmain(((sH/opt/alt/python27/lib64/python2.7/site-packages/mpl_toolkits/gtktools.pyt<module>!s\	"�0|U/"!	$