%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/__pycache__/
Upload File :
Create Path :
Current File : //opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/__pycache__/Prof.cpython-37.pyc

B

�]�i�@s�ddlTddlZddlZddlmZGdd�de�ZdZdd�Zd	d
�Z	dd�Z
Gd
d�de�ZGdd�de�ZGdd�de
�ZGdd�de�ZGdd�d�ZGdd�d�ZGdd�d�ZdZGdd�d�ZGdd�d�ZGd d!�d!�ZGd"d#�d#�ZGd$d%�d%�ZGd&d'�d'�ZGd(d)�d)�ZGd*d+�d+�ZGd,d-�d-�ZGd.d+�d+�ZGd/d0�d0�ZGd1d2�d2�ZGd3d4�d4�Z Gd5d6�d6�Z!Gd7d8�d8�Z"dS)9�)�*N)�property_nondatac@seZdZdZdd�ZdS)�MyVargcCst�|d|�dS)Nz%.2g)�	StringVar�set)�self�value�r	�C/opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/Prof.pyrsz	MyVar.setN)�__name__�
__module__�__qualname__�_defaultrr	r	r	r
rsr)��K�M�G�TcCs�t|�}d}|dkrd}|}d}x|dkr>|d}|d7}q$Wttt|���t|}|�dt|�r�ttt|d���t|d}|dkr�d|}|S)N�r���i��i�Z000�-)�float�str�int�round�suffixes�endswith)rZsign�i�sr	r	r
�
sizestrings
 rcCsdt|�}d|krdkr,nndt|�Sd|kr@dkrLnnd|S|dkrXdSd|SdS)	N�
i'z%dg{�G�z�?z%.2gg�����|�=�0z%.0e)�absr)r�ar	r	r
�
percentstring$sr$cCsd|��rt|�S|dd���}d}x*tdd�D]}||kr@P|d9}q2Wt�t|dd��|S)Nri�r)�isdigitr�upperr�
ValueError)rZsufZmultZsur	r	r
�
stringsize0sr(c@seZdZddd�ZdS)�MenuNcCs�|dkr|}g}xFt|�|�|�|�d�D](}t|�|d��}||jkr,|�|�q,W|j�|jd||�x|D]}|�	|�qrWdS)z7Delete menu items between INDEX1 and INDEX2 (included).Nr�command�delete)
�range�indexrZ	entrycgetZ_tclCommands�appendZtkZcallZ_wZ
deletecommand)rZindex1Zindex2Zcmdsr�cr	r	r
r+Bs 

zMenu.delete)N)rrr
r+r	r	r	r
r)>sr)c@seZdZdZdd�ZdS)�SizeVargcCs||_t|�}t�||�dS)N)Z_valuerrr)rrrr	r	r
rYszSizeVar.setN)rrr
rrr	r	r	r
r0Vsr0c@seZdZdd�ZdS)�
ValueLabelcOsd|d<tj|f|�|�dS)Nr �width)�Label�__init__)r�args�kwdsr	r	r
r4`szValueLabel.__init__N)rrr
r4r	r	r	r
r1_sr1c@s(eZdZd
dd�Zddd�Zdd	�ZdS)�ClickButton���cKsBtj||f|�||_||_||_|�d|j�|�d|j�dS)Nz
<Button-1>z<ButtonRelease-1>)�Buttonr4�_command�_firstdelay�
_thendelay�bind�
_event_button�_event_release)r�masterr*Z
firstdelayZ	thendelayr6r	r	r
r4hszClickButton.__init__NcCs2|��|dk	r|j}n|j}|�||j�|_dS)N)r;r<r=�afterr?�_after)r�eventZdelayr	r	r
r?ps
zClickButton._event_buttoncCs|�|j�|`dS)N)�after_cancelrC)rrDr	r	r
r@xszClickButton._event_release)r8r9)N)rrr
r4r?r@r	r	r	r
r7es

r7c@s`eZdZddd�Zdd�Zdd�Zee�Zdd	�Zd
d�Z	dd
d�Z
dd�Zdd�Zdd�Z
dS)�StatsNcCs ||_|j|_|j|_||_dS)N)�mod�os�hashlib�fn)rrGrJr	r	r
r4~szStats.__init__cCsd|_|`dS)N)�stats)rr	r	r
�clear_cache�szStats.clear_cachecCs|�|j�|jS)N)�openrJrK)rr	r	r
�	get_stats�szStats.get_statsc	Cs�|js
dS|j�|j�}||jkr.t|�dfSt|j��l}|�|j�}|j�	|�
d��}|��}||jkrtt|�}n|j
|dd�d}|��}|j�|���|_WdQRX|jj|_|�|�
d��|��|_|�
|�t|j�|}||fS)N)rrrzutf-8r)�reset)rJrH�stat�laststat�lenrM�read�lastfilesizerI�md5�encode�digest�
lastdigest�loadstr�fstat�fileno�st_size�updaterK)rrP�frrUrWZnumoldstatsZnumnewstatsr	r	r
�collect�s*





z
Stats.collectc	Cs�|s d|_g|_d|_||_dSt|��4}|��}|j�|�d���	�}|j
�|���}WdQRX|j
|dd�||_||_||_|j|_dS)Nrzutf-8r)rO)�	len_statsrK�max_sizerJrMrSrIrUrVrWrHrZr[rYrXrQr\rT)rrJr^rrXrQr	r	r
rM�s
z
Stats.openrcCs�g}|�d�}~t|�}d}xHy|jj�|�}Wntk
rFPYnX|�|�|j|kr|j}qW|rvg|_d|_	t
|j	|�|_	|j�|�t|j�|_
dS)N�
r)�split�iterrGZUse�load�
StopIterationr.�sizerKra�max�extendrRr`)rrrOrK�linesZ	linesiterra�str	r	r
rY�s&



z
Stats.loadstrcCs
|j|S)N)rK)r�idxr	r	r
�__getitem__�szStats.__getitem__cCs.y|jStk
r(t|j�|_|jSXdS)N)r`�AttributeErrorrRrK)rr	r	r
�__len__�s
z
Stats.__len__cCs|jS)N)ra)rr	r	r
�get_max_size�szStats.get_max_size)N)r)rrr
r4rLrNrrKr_rMrYrmrorpr	r	r	r
rF}s

rFc@s:eZdZdZddd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�
ProfileRow�rcCsD||_||_|rVt|dddtd�}t|dddtd�|_|jjddd�|j|dtd�t�|_	t||j	dt
d	�|_t�|_
t||j
d
t
d	�|_t�|_t||jdt
d	�|_t�|_t||jd
t
d	�|_t�|_t||jt|jtd�|_|jj|dtd�|jj|dtd�|jj|d
td�|jj|d
td�|jj|dtd�dS)N�blackr)rA�bgr2�borderwidth�relief�whiter)�row�column)rxry�sticky�)rA�textvariabler2�anchor�)rAr|r}r2Zjustify���)rArx�Frame�GROOVEr3�color�gridZNWr0�rsizevar�E�rsizer�rpercentvar�rpercent�dsizevar�dsize�dpercentvar�dpercent�kindvar�	kindwidth�LEFT�kindZNE)rrArxZusecolorZcolbgr	r	r
r4�s:

zProfileRow.__init__cCs�|�|�|dk	r|�|�|j�|�|dkr6d}nttt|���}|j�|�|j�|�ttt|���}|j�|�|�	|�dS)Nr)
�	set_colorr�rrrrr�r�r��set_kind)rr�r�r�r�r�r�r	r	r
�set_color_size_percent_kinds

z&ProfileRow.set_color_size_percent_kindcCs|jj|d�dS)N)rt)r��	configure)rr�r	r	r
r�szProfileRow.set_colorcCs<||_t|�|jkr,ddl}|j||jd�}|j�|�dS)Nr)r2)�kindtextrRr��textwrap�fillr�r)rr�r�r	r	r
r�"s
zProfileRow.set_kindcCs|�|jdddddd�dS)Nrtrz--)r�rA)rr	r	r
�clear*szProfileRow.clearN)r)	rrr
r�r4r�r�r�r�r	r	r	r
rq�s
!rqc@s�eZdZdddgZx"eddkr4e�edd�qWdd	d
�Zdd�Zd
d�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�AxisControlrrr�rg��mB���r Nc		s�d}	|�_|�_|�_|�_t|dtd��_}
t��_�j�	|�t
�jd�jddd�}|�d�j�t
|
|d	td
�}t|�}
|
|d<|r�t��_�j�	d�|
jd
�j|d�t|
d
�j|td�}nd�_��r"t��_�j�	|�|
jd�j��fdd�d�t|
d�j��fdd�td�}t|
dd�}|dk�rH|	�rHd}d}nd}d}t|
�}t|d||d�fdd�d�}t|d||d�fdd�d�}|jddd�|jdd d�d}|	�r|dk�r|jdd dd!�|jdd td"�|jd dd�|jd d td"�|jdddtddd#�n�|	�rj|d$k�rj|jddd�|jdd tddd%�|jddtd"�|jddtd"�n�|j|dttddddd&�|j|d td"�|j|ddd'�|d 7}��r�|j|dtd"�|j|d ddd(�|�r�|j|dd�dS))Nrr)rurvr�)�fixedZ14z#fdd)rAr2�textvar�fontrtz<KeyPress-Return>Zraised)�textrvr}�menuT�Auto)�label�variabler*)r�r�r*rvZGridcs��j���S)N)�gridvar�getr	)�gridcommandrr	r
�<lambda>s�z&AxisControl.__init__.<locals>.<lambda>cs��j���S)N)r�r�r	)r�rr	r
r�ysZRange)r��Yr�r~�+)r��cs
��d�S)Nr)�range_buttonr	)rr	r
r��r�)r��pady�padxr�r*rcs
��d�S)Nr)r�r	)rr	r
r��r�)rxryr)rxZrowspanry)rxryrz)rxry�
columnspanrzr�r��X)rxryrzr�r�)rxryrzZipadxZipadyr�r�)rxryr�)rxryr�r�)�name�unitr,�rangecommandr�r��framer0�rangevarrZEntryr>�event_range_enter�
Menubutton�Wr)�
BooleanVar�autovar�add_checkbutton�Checkbutton�RAISEDr�r3r7r��N)rrAr�r,r�r�r�r��autocommandZsmallr�ZrangevalZ	namelabelZnamemenuZ
autobuttonZ
gridbuttonZ
rangelabelr�r�ZudZrangeupZ	rangedownrxr	)r�rr
r43s�	

zAxisControl.__init__cCsdS)Nr	)rr	r	r
�	cmd_range�szAxisControl.cmd_rangecCs�|j��}y6t|�}||jkr>d|kr8|jdks>nt�Wn6tk
rv|j��|�d�|j�|j	�YnX|j
r�|j
�d�|�|�dS)Nrrz�Invalid range entry.
It should be a positive integer with an optional multiplier:
K, M, G, or T
(1000, 1e6, 1e9, 1e12)
Maximum range is 1T.F)r�r�r(�scale_tabler'r�Zbell�errorboxrr,r��setrange)rrDr�rngr	r	r
r��s


zAxisControl.event_range_entercCsdS)Nr	)rr	r	r
�auto_command�szAxisControl.auto_commandcCstjj|j|d�dS)N)rA�message)�tkinter�
messagebox�	showerrorr�)r�msgr	r	r
r��szAxisControl.errorboxcCs|�|�}|�|�dS)N)�scale_by_tabler�)rr,r	r	r
�fit�s
zAxisControl.fitcCs |jr|j�d�|�|�dS)NF)r�r�range_change)r�dr	r	r
r��szAxisControl.range_buttoncCsx|j}|�|�}||kr(|dkr(|d8}|j�|�}||7}|t|j�krXt|j�d}|dkrdd}|�|j|�dS)Nrr)r,r�r�r-rRr�)rr�r,Zsrangerr	r	r
r��s
zAxisControl.range_changecCs*||jkr&||_|j�|�|�|�dS)N)r,r�rr�)rr,r	r	r
r��s
zAxisControl.setrangecCs&x|jD]}||kr|SqW|jdS)Nr)r�)rrZtsr	r	r
r��szAxisControl.scale_by_table)N)rrr
r�r.r4r�r�r�r�r�r�r�r�r�r	r	r	r
r�.s
	
zr�rc@s�eZdZd0dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�ZdS)1�MarkerNcCsd||_||_||_||_d|_|j|_|j|_d|_d|_d|_	d|_
d|_d|_d|_
|��dS)Nr)r��tagr��xmarker�butdown�ocursor�cursor�
poscommand�intpos�moving�selected�entered�butdownselected�	motion_id�create)rr�r�r��posr�r	r	r
r4�szMarker.__init__cCsB|j}|jj�|||�tr,|j�||�n|jj�|||�dS)N)r�r��drawingareaZtag_bind�WM�xlabelr>�xmarks)rZsequence�functionr�r	r	r
r>s
zMarker.bindcCs:|jj�|j|d|t|jj��|jj�|j|d�dS)Nrr )r�r��coordsr�r�botyr�)r�canxr	r	r
r�sz
Marker.coordsc	Cs�|j}|j}d}|jjj|d|d|jjdd|fd�trpt|jj|ddt	d�}|_
|jjj|d||fd�n|jjj|d||fd	�|�
d
|j�|�
d|j�|�
d|j�|�
d
|j�|jjj
d|jdd�|jjj
d
|jdd�dS)Nr�Zgray12r�)�stippler2�tagsr)r�r�r�rv)�windowr�)r�r�z
<Button-1>z<ButtonRelease-1>z<Enter>z<Leave>r�)�add)r�r�r�r��create_liner�r�r3r�r�r�Z
create_window�create_textr>�event_button_1�event_button_1_release�event_enter�event_leave�event_enter_movearea�event_button_1_movearea)rr�r�r�r�r	r	r
r�s"z
Marker.createcCsHd|_|jr$d|_|jr*|�|�nd|_d|_|�|�|�|�dS)Nrr)r�r�r�r��event_stop_move�	has_moved�event_selected�event_start_move)rrDr	r	r
r�4s
zMarker.event_button_1cCs|js|�|�dS)N)r��event_deselected)rrDr	r	r
r�AszMarker.event_button_1_moveareacCspd|_|j|jkrb|jrR|jr^|j|jkr8|jks^n|�d�|�	|j
�n|�	|j
�dS|�|�dS)Nr)r�r�r�r�r��disloy�y_root�dishiyr��	setcursorr�r�)rrDr	r	r
r�Es"
zMarker.event_button_1_releasecCs*|jr&d|_t|jd<|jr&|�|�dS)Nrrv)r�r�r�r�r�)rrDr	r	r
r�Qs

zMarker.event_deselectedcCs,d|_|js(|jr|�|�n
|�d�dS)Nr�hand2)r�r�r�r�r�)rrDr	r	r
r�Xs
zMarker.event_entercCs|jr|js|�|�dS)N)r�r�r�)rrDr	r	r
r�`szMarker.event_enter_moveareacCs:d|_|js|�|j�n|j|jkr4|jks6ndS)Nr)r�r�r�r��fraloyr��frahiy)rrDr	r	r
r�ds
zMarker.event_leavecCs�d|_|j|jko|jkn}||jkr|||_|sh||_|�d�|jr||�d�|j	�
|j�n||_|�
|�dS|r�|�|�|��dS)NrZcircle)r�r�r�r��insideZ	out_eventr�r�r�r��bind_motion�event_motion_downoutZin_eventr��moved�setxvars)rrDrr	r	r
�event_motionks 




zMarker.event_motioncCs>|j|jko|jkn}|r:|j�|j�|�|�dS)N)r�r�r�r��
unbind_motionrr�)rrDrr	r	r
r�szMarker.event_motion_downoutcCs0x|jjD]}|�|�q
Wd|_t|jd<dS)Nrrv)r��marksr�r��SUNKENr�)rrD�mr	r	r
r��szMarker.event_selectedcCs�d|_|jj��|_|j|jj��|_|jj��|_|j|jj�	�|_
|jj��|_|j|jj��|_
|jj��|_|j|jj�	�|_||_||_|j|_|jj��d|_d|_d|_|��|j�|j�|_|�|�dS)Nrr)r�r�r��winfo_rootxZfralox�winfo_widthZfrahix�winfo_rootyr��winfo_heightr�r��dislox�dishixr�r��
down_event�
prev_eventr�Zdown_xmarker�xviewZdown_xvfracrZdelta�liftrrr�r)rrDr	r	r
r��s$zMarker.event_start_movecCs`|js
t�d|_|j�|j�|dk	r8|�|�|��|jrP|jsP|�	d�n|�	|j
�dS)Nrr�)r��AssertionErrorr�rr�rrr�r�r�r�)rrDr	r	r
r��s

zMarker.event_stop_movecCs2|jj�|j�tr|j��|jj�|j�dS)N)r�r��	tag_raiser�r�r�rr�)rr	r	r
r�s
zMarker.liftcCs4|j�|�}|j�|�|�|�||_|��dS)N)r��
canxscaled�	xview_posr�r�r)r�sampler�r	r	r
�move�s

zMarker.movecCs|j}|j}|jj}||jkr0||jkr0|j}n||jkrJ||jkrJ|j}|j�|j�|jj�	d�|j}||}d}}|j|jj
dkr�d}|jdkr�d}d}	|dkr�||ks�|dkr�||kr�d}}|jr�||jkr�d}n||jkr�d}nJ|j|k�r|jk�r0nn|j|k�r.|j
k�s<nd}}d}	|�rT|�rT|�d�nN|�rt|�d�|dk�r�d}n.|�r�|�d�|dk�r�d}n|�d�d}||_|j�|j||jj�}
|j�|
�}|j�|�|�|�|
|_|	�r|j�r|�d�dS)NrrZsb_h_double_arrowZ
sb_left_arrowZsb_right_arrow�dot)Zx_rootr�rrrr�rr�r��canvasx�numstatsr�r�r�r��limitx�xscalerr�r�r�)rrDZcurxZcuryZprevxZmarkx�dx�l�r�stoprr�r	r	r
r�s\"
 

 





zMarker.movedcCs$|j�|j�}|�|�|��dS)N)r�rr�r�r)rr�r	r	r
rs
z
Marker.setcCs||_d|_dS)N)r�r�)rr*r	r	r
�set_poscommandszMarker.set_poscommandcCs*||jkr||jd<||_|j�|�dS)Nr�)r�r�r�r�)rr�r	r	r
r�s

zMarker.setcursorcCs2|jr.tt|j��}||jkr.||_|�|�dS)N)r�rrr�r�)rr�r	r	r
rs

zMarker.setxvars)N)rrr
r4r>r�r�r�r�r�r�r�r�r�rrr�r�r�rrrrr#r�rr	r	r	r
r��s.

Cr�c@sFeZdZdZdZdZdZdRdd�Zd	d
�Zdd�Z	d
d�Z
dSdd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�ZdTd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�ZdUd2d3�Zd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%dHdI�Z&dJdK�Z'dLdM�Z(dNdO�Z)dVdPdQ�Z*dS)W�Displayi,rr�dF�Bars�Sizec	Cs||_||_||_||_||_||_||_t|�|_|j�	|�t|�|_
||_|j
�	|�|	|_|
|_
d|_g|_g|_d|_i|_d|_t|dtd�|_}d}d}
d}t|j�}|jddd�t||j|j||
d|jd�|_}t|td	d
�|_t||dd|d|d
�|_ t||dd|d|d
�|_!t||ddd|d�|_"t|t#|j$d|d�|_%t|ddd|d�}t&�}||_'d}t(||dt)|d�j|dt*t+t,t-d�|j%j|dt+t*d�|d7}t(|ddt)|d�|_.|j.j|dt*t+t,t-d�|j!j|dt*t+t,d�|d7}|j"j|dd�|j|dt*t+d�|d7}|j|dd�|j j|dt*t+t,d�t/|d�|_0t/|d�|_1|�2�|_3d|_4d|_5|j0|j|_6|j1|j|_7d|_8|�9dddd�|�9dddd�|j:dddd �|�;�|jd!|_<|j<|_=g|_>dS)"Nrrr~)rurvz#cccz#e0e0e0)rxry)r2�height�xscrollincrement�
background�bdZxscrollcommandr )�orientr2r2r�)r2r(r)r+r*r(�2)r(r2r+r*�)r,r*r2r*)r2r(r+r*)r�r+rvr*)rxryrz�Bytes)r�r+rvr*r�,�1r{����Sample)r�r�)?rAr��numkindrows�getkindcolor�xrange�yrange�xgridr��	var_xgridr�	var_ygrid�ygrid�	graphtype�statyper�ymaxs�ymins�ymax�
bound_motions�event_motion_idr�rr�r��Canvas�orgwidth�	orgheight�xscrollbar_setr��	Scrollbar�VERTICALZ
yscrollbar�xaxisr��yaxisZ
HORIZONTAL�drawingarea_xview�
xscrollbarr0�
var_yranger3�FLATr�r�r��S�yunitr�botxr��getchdim�chdim�canx0�tmaxr�yscale�xi0r�r��setscrollregionr�r�r)rrAr�r6r7r8r9r:r=r>r?r�ZbordercolorZscreencolorr)�CZxyrOrxr	r	r
r4#s�









zDisplay.__init__cCs<|jdkr |jjd|jdd�|_|j�|d�d|j|<|S)Nz<Motion>r�)r�rr)rDr�Zbind_allrrCr�)rr�r	r	r
r�s

zDisplay.bind_motioncCs$xt|j���D]}||�qWdS)N)�listrC�keys)rrDr^r	r	r
r�szDisplay.event_motioncCs.|j|d}|dkr |j|=n
||j|<dS)Nrr)rC)rZfuncid�nr	r	r
r�s
zDisplay.unbind_motionNrcCs8dt|j�}|dkr|}t||||�}|j�|�|S)NzM%d)rRrr�r.)rr�r�r�r	r	r	r
�new_xmarker�szDisplay.new_xmarkercCs||j|jS)N)rrV)r�xr	r	r
r�szDisplay.canxscaledcCs||jS)N)rX)r�yr	r	r
�
canyscaled�szDisplay.canyscaledcCs|j��|_|��dS)N)r;r�r:�	drawxaxis)rr	r	r
�	cmd_xgrid�szDisplay.cmd_xgridcCs|j��|_|��dS)N)r<r�r=�	drawyaxis)rr	r	r
�	cmd_ygrid�szDisplay.cmd_ygridcCsd|_|��dS)N)rB�yrange_auto)rr	r	r
�cmd_yrange_auto�szDisplay.cmd_yrange_autocCs0d}td|jd�}||kr |S||kr,|S|S)Nrr)rhr)rr`�lo�hir	r	r
r�szDisplay.limitxc
Cs@|j|}|j|}||jkr.|j}||j}||jkrH|j}||j}|j��}|j��}|jj||d�|jj|d�|j	j|d�|j
j|d�t|�|j}t|�|j
}|j�d�}	d}
||j}||j}|j�d|	|
||�|	|j|	||_||_||_||_||_|��|��|��|d|_||fS)N)r2r()r2)r(r�all)rSr��minwidth�	minheightr�r�yviewr�rKr�rLrr8r9rrrX�scalerVrcrerZ�	wantedpos)
rr�dyr`raZxvZyvrrX�	xscaleorgZ	yscaleorgZxqZyqr	r	r
�resize�s>










zDisplay.resizecCs|j��|�t|j�dS)N)r��update_idletasksr�MOVETOrp)rr	r	r
�moveback/s
zDisplay.movebackcCst��t��dS)N)rrcrer	r	r	r
�draw3szDisplay.drawcCs�|j}|j}|�|j|�}|dkr6tdd�|D��}ntdd�|D��}dd�|D�}|��|j}||_|j}	|j}
|j	}||d||j
}||}
d}d}d}d|}d}�xN|D�]D}|�|d�}|s�q�|�|�}|d	k�rR|	j
||||
|
||||
||dd
d�}||k�rD|	j|||
|
||
dd
d�|}||7}q�|dkr�||k�rj|}n||k�rx|}|�|�}|dk�r�|}|}n6|d|}|	j|||
|
d|||
|d
d�|	j|
d|||
|
d|||
|dd
d�q�W|d	k�r,||k�r|}n||k�r,|}|t|j�k�rPt|j�k�sVnt�|j�|�|j�|�||jk�r�||_dS)Nr'cSsg|]}|j|jf�qSr	)r�rg)�.0r!r	r	r
�
<listcomp>=sz%Display.draw_stat.<locals>.<listcomp>cSsg|]}|j|jf�qSr	)r��count)rxr!r	r	r
ry?scSsg|]
}|j�qSr	)r�)rxr!r	r	r
ry@sg�?rg�������?r&)r#)r�Zoutliner2r�rs)�barsep)r�r��Linesg�������?g333333�?r�)r�r2r�)r>r?�get_rows_n_and_otherr6�dict�reverse�lastkindvalr�rXrrVr�r7Zcreate_rectangler�rRr@rArr.rW)rrlrPr>r?�rowsZkindval�orderr�r[rXrZx0�x1rBZyminraZbwZocolor�krqr��lineZy0Zx00r	r	r
�	draw_stat7s�











*zDisplay.draw_statcCs:|dkr(|dkr(ttd|j�t|��}|�|||�dS)NZscrollZunitsr)rrhrr)r�cmdZwhatr�r	r	r
rM�szDisplay.drawingarea_xviewcCs(||jkr$||jd<||jd<||_dS)Nr�)r�r�rA)rr�r	r	r
r��s


zDisplay.setcursorcCsx|jD]}|��qWdS)N)rr)rr	r	r	r
�xmarkers_set�szDisplay.xmarkers_setcGs6|s|j��S|jj|�|jj|�|jj|�dS)N)r�rrKr�)rr5r	r	r
r�s

z
Display.xviewcCs|�t|�dS)N)rru)r�fractionr	r	r
�xview_moveto�szDisplay.xview_movetor�cCs�|dkr|��d}|j\}}}}||||}	||	}
|}|j|}|
|kr^|
|}
|}
n|
|krt|
|}
|}
nd}
||
t||�}|�|�dS)Nr)r�scrollregionrSrr�)rr�r�Z
leftmarginZrightmarginr��y1�x2�y2ZccZxmrirjrr!r	r	r
r�s 
zDisplay.xview_poscCs�|j}|j�d�|j�d�|j\}}}}|j\}}d}x:|||jtdtt	|||j
���|krt|d7}q<W|||_d}	x|	D]\}
}|j|
kr�Pq�W|
|_||_
d|_|��dS)Nrkr:rr�r))lJ)�z%dT)iʚ;z%dG)i@Bz%dM)i�z%dK)rz%d)r�rKr+r�r�rUr�minrRrrW�xstep�xdivi�xformrY�updatexaxis)rr�r�r�r�r��chdx�chdyr�divisuf�divi�formr	r	r
rc�s$
"

zDisplay.drawxaxisc
Cs�|j\}}|j}|j}x�t|j|j||�D]j}|j||j}|j�	|d|d�|rt|j
j	|d||jdddd�|j||j
}|jj|||d�q,W|j�	|j|j|jd||jd�||_|��dS)	Nrr�)r:r�gray25)r�r2r�)r�r)rUr�r:r,rYrWrVrrKr�r�r�r�r�r�r�)rr�r��step�gridonrr`r�r	r	r
r��s
zDisplay.updatexaxisc
	CsN|j}|j�d�|j�d�|��\}}t|jd�}d}|j}x$|j||jd|krf|d7}qDW|j|}d}x|D]\}	}
||	kr|Pq|Wx�t	d|||�D]|}||j}|j�
|d||d|�|r�|jj
|jd||jd	|d
dd�|
||	}|jj|d
|d||d�q�W|j�
|dd|d|j
�|��dS)Nrkr=r2rg�?r))lJ)�z%4dT)iʚ;z%4dG)i@Bz%4dM)i�z%4dK)rz%5dr~rr�)r=)r�r�g@g�?)r�)r=rLr+r�rTrr9r�rXr,r�r�r�r�r�)
rr�r�r�r2rZmaxvalr�r�r�r�rar�r	r	r
re�s4

"zDisplay.drawyaxiscCsR|jjdddd�}|j�|�\}}}}|j�|�t||�}t||�}||fS)Nrr!)r�)rKr�Zbboxr+r")r�chr�r�r�r�r�r�r	r	r
rT(szDisplay.getchdimc	Cs�|j��d}z�d|j��d<|j��t|�|_i|_d|_d|_g|_g|_	|j
}|�d�|�d�x t|�D]\}}|�
||�qtWy|j
�dd�Wntk
r�YnX|��|��|��|��Wd||j��d<XdS)Nr��watchrr{r#)r��winfo_toplevelr]rRrr�rWrBr@rAr�r+�	enumerater�r�TclErrorrcrer�rg)rrKr�r[rrkr	r	r
�
load_stats1s0



zDisplay.load_statscCsNx&t|�D]\}}|�||j|�q
W|jt|�7_|��|��dS)N)r�r�rrRr�rZ)rrKrrkr	r	r
�	add_statsTs
zDisplay.add_statscCs||_|��dS)N)r:rc)rr�r	r	r
�setxgrid[szDisplay.setxgridcCs||_|��dS)N)r=re)rr�r	r	r
�setygrid_szDisplay.setygridcCsh|�d�\}}||jks"||jkrd||_||_|dkrBd|jd<n|dkrVd|jd<nt�|�|�dS)N� r'r/r��CountZObjects)rcr>r?rRr'r�)rZgmoderKr>r?r	r	r
�setgraphtypecszDisplay.setgraphtypec	Cs�|j}|j}|j}|j|j|j}|dd}|dd}||8}||7}d|j}d}||||f|_|j|jd�|jj|d|dfd�|j	j|d|dfd�|j
jd|d|fd�|j�td�dS)Nrr)r�rr r�g)
r�rSrVrWrr�r�r�rKr�rLrnru)	rr[rSr�r�Zx1extraZx2extrar�r�r	r	r
rZps 
zDisplay.setscrollregioncCs�|jt|�}||_|j�|jd�}|j�d|d|d�|j�d|d|d�||j|||_|jt|j�|_|�t	d|j��|�
�|��dS)Nrr#rg�?r{)r8rr�rrSrorVr�setxscrollincrementrhrcrZ)rr8Zdxrangerrr	r	r
�	setxrange�szDisplay.setxrangecCsdS)N)r))r�r�rKr�)rrr	r	r
r��szDisplay.setxscrollincrementcCstt|j�|}||_|j�|�|j�dddd|�|j�dddd|�t|j�|j|_|j�t	d�|�
�dS)Nr#rg�?r{g)rr9rOrr�ror�rXrnrure)rr9Zdyranger	r	r
�	setyrange�szDisplay.setyrangecCs|j�||�|��dS)N)rNrrg)r�firstZlastr	r	r
rH�szDisplay.xscrollbar_setcCs�|s|jj��r�tdtd|j�d�|j|j��}t	t
|j�td|j�|j�|j|j��}||krrd}nt|j||��}||j
kr�||_
|j�|�dS)Nrg�?g�?r)�ycontrolr�r�rhrr�rrVrr�rRr@rSrBr�)r�forcerirjrBr	r	r
rg�s"
$
zDisplay.yrange_auto)r%r%FFr&r')Nr)N)Nr�r�)r)+rrr
rFrGrlrmr4rrrr_rrbrdrfrhrrsrvrwr�rMr�r�rr�rrcr�rerTr�r�r�r�r�rZr�r�r�rHrgr	r	r	r
r$s\

	3V

 -	#
r$c@sFeZdZdd�fdd�Zdd�Zdd�Zd	d
�Zdd�Zddd�Zd
S)�
MarkerControlcCsdS)Nrr	r	r	r	r
r��r�zMarkerControl.<lambda>c	sd�_d�_|�_|�_|j�_t|dtd�}�_t��_	t
|d|jd�jddd�t
|�j	ddd	d
�jddddd
�t|ddd�fdd�d�jddt
d�t|ddd�fdd�d�jddtd�t��_t|dd�jt�jdd��_�jjdddd�dS)Nrr)rurvz	%s sample)r�)rxry)�terminalZ16�boldrs�yellow)r|r�rtZfgrr~)rxryr�r�rr�cs
��d�S)Nr)�changesampler	)rr	r
r��r�z(MarkerControl.__init__.<locals>.<lambda>)r�r�r�r*)rxryrzr�cs
��d�S)Nr)r�r	)rr	r
r��r�ZTrack)r�r�r�rvr*Zindicatoron)rxryr�)r�
numsamples�
setcommand�markerr�r�r�r�r0�	samplevarr3r�r7r�r�r��trackingvarr�r��settrackingZtrackbutton)rrAr�r��sfr	)rr
r4�s8

zMarkerControl.__init__cCs2|j|}d|kr |jkr.nn
|�|�dS)Nr)rr��	setmarker)rr�rr	r	r
r��s
zMarkerControl.changesamplecCs|j�|�|�|�dS)N)r�r�	setsample)rrr	r	r
r��szMarkerControl.setmarkercCs6||_|j��s|j|jkr2|�td|jd��dS)Nrr)r�r�r�rr�rh)rZnumr	r	r
�
setnumsamples�szMarkerControl.setnumsamplescCs||_|j�|�|��dS)N)rr�rr�)rrr	r	r
r��szMarkerControl.setsampleNcCs>|dk	r|j�|�n
|j��}|r:|�td|jd��dS)Nrr)r�rr�r�rhr�)rZtrackingr	r	r
r��s

zMarkerControl.settracking)N)	rrr
r4r�r�r�r�r�r	r	r	r
r��s!r�c@s.eZdZd
dd�Zdd�Zdd�Zdd	�ZdS)�WindowNcCs6||_||_||_|��|_d|_|j|_|j|_dS)Nr)	�appr��
windowmenu�title�wtitle�
_is_destroyed�destroy�old_destroy�new_destroy)rr�r�r�r	r	r
r4�s
zWindow.__init__cCsB|jr
dSd|_|j�|�y|��Wntk
r<YnXdS)Nr)r�r��
del_windowr�r�)rr	r	r
r�szWindow.new_destroycCs.|j�|�|j�|�||_|j�|�dS)N)r�r�Ziconnamer�r��
chg_window)rr�r	r	r
r�szWindow.titlecCs@|j}y |��dkr|��|��Wntk
r:YnXdS)NZiconic)r�Zwm_stateZwm_deiconifyZtkraiser�)rr�r	r	r
�wakeupsz
Window.wakeup)N)rrr
r4r�r�r�r	r	r	r
r��s

r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
WindowMenucCs6t|dd�|_t|j�|_|j|jd<||_i|_dS)Nr�)r�r�)r��buttonr)r�r��wmap)rr�r�r	r	r
r4's
zWindowMenu.__init__cCs>|jj|jd|j|jf|j|jd�|j�t�|j|j<dS)Nz%d %s)r*r�rr�)	r��add_radiobuttonr��widr�r�r-�ENDr�)rr�r	r	r
�
add_window.s
zWindowMenu.add_windowcCsH|j�|j|j�|jj|j|j|jd|j|jf|j|jd�dS)Nz%d %s)r*r�rr�)r�r+r�r�Zinsert_radiobuttonr�r�r�)rr�r	r	r
r�6s
zWindowMenu.chg_windowcCsx|j|j}|j|j=y|j�|�Wntk
r:YnXx6t|j���D]$}|j||krL|j|d8<qLWdS)Nr)r�r�r�r+r�r\r])rr�rlr�r	r	r
r�?s
zWindowMenu.del_windowN)rrr
r4r�r�r�r	r	r	r
r�&s	r�c@sNeZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dS)�
ProfileAppcCs4||_t�}||_|��i|_i|_t|�|_dS)N)rGZTk�rootZwithdraw�windows�windowmenus�IntVar�
var_window)rrGr�r	r	r
r4NszProfileApp.__init__cs�tdgt�j����d�_��j�j<t�dd�}|rp|�j�j<x(t�j���D]}|�k	rV|�|�qVWx t�j���D]}|���q�W�j	�
�j��jjd��fdd�dd��jjd	�fd
d�dd�dS)Nrrr�z	<FocusIn>cs�j��j�S)N)r�rr�)rD)rr�r	r
r�dr�z'ProfileApp.add_window.<locals>.<lambda>r�)r�z<Deactivate>cs�j�d�S)Nr)r�r)rD)rr	r
r�fr�)
rhr\r�r]r��getattrr��valuesr�r�rr�r>)rr��wm�wr	)rr�r
r�WszProfileApp.add_windowNcCst|||�}|�|�|S)N)r�r�)rr�r�r�r	r	r
�add_window_framehs
zProfileApp.add_window_framecCs&x t|j���D]}|�|�qWdS)N)r\r�r�r�)rr�r�r	r	r
r�mszProfileApp.chg_windowcCsV|j}t|dd�r|j|=|j|=x t|j���D]}|�|�q2W|jsR|��dS)Nr�)r�r�r�r�r\r�r��exit)rr�r�r�r	r	r
r�qszProfileApp.del_windowcCs2y|j��Wntk
r"YnX|j��dS)N)r�r�r��quit)rr	r	r
r�{s
zProfileApp.exitcCs
|j��S)N)r��mainloop)rr	r	r
r��szProfileApp.mainloopcCs
t||�S)N)�ProfileBrowser)r�filenamer	r	r
�new_profile_browser�szProfileApp.new_profile_browser)N)rrr
r4r�r�r�r�r�r�r�r	r	r	r
r�Ms	

r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�PaneDivcCst|�|_}||_d|_}|dd}|_d}t|d|d�|_|jj|d||ddd	�|jj|dd|d|d
dd	�t|d|j|jtdd�|_	t|dd
dd�|_
|jjddtd�|j	jddtd�|j
jddtd�|j	�
d|j�|j	�
d|j�dS)Nr{rr~r )r2r(rz#808080r)r�r2rwZ	crosshair)r�r2r(rvr+i,)r2r(r+)rxryrzz
<Button-1>z<ButtonRelease-1>)r�r��movecommandZbutsize�butcentrE�topr�r��rsbut�botr�r�r>�but_down�but_up)rrAr�r�Zbs�bc�hr	r	r
r4�s<



zPaneDiv.__init__cCs||_|jjtd�dS)N)rv)rr�r�r)rrDr	r	r
r��szPaneDiv.but_downcCs*|jjtd�|j|jj}|�|�dS)N)rv)r�r�r�r`rr�)rrDrr	r	r
r��szPaneDiv.but_upcCsT|d}||jd<|j}|jj|d||ddd�|jj|dd|d|ddd�dS)N�r(rz#808080r)r�r2rw)r�r�r�)rr(r�r�r	r	r
�	setheight�s
zPaneDiv.setheightN)rrr
r4r�r�r�r	r	r	r
r��s)r�c@s$eZdZdd�Zdd�Zdd�ZdS)�
TableFramec
Cs\||_|j|_t|dtd�}|_d}t�|_t�|_t�|_	|j	�
d�t|�}t||j	ddd�}|jddt
d�t|dd	�jdd
t
d�t||ddd
�jddt
dd�t|dd	�jddt
d�t||jd�jddt
d�t|dd	�jd
ddt
d�t||jd�jd
ddt
d�|j|dt
d�|d
7}|}	t|�}
d}t|
dd	�j|dd�t|
dd	�j|d
td�t|
dd	�j|dtd�t|
dd	�j|dtd�t|
dd	�j|dtd�t|
dd	�j|dt
d�|d
7}g|_t|
|�|_|j�|j�|d
7}x4t|d
�D]$}t|
|�}|j�|�|d
7}�qW|	}|
j|dt
d�|d
7}d|_tj|_dS)Nr)rurvr�R�LzR-L)rxryrzr5)r�rrsr�)r|r*�
foregroundr~)rxryrzr�Zat)r|r�z
Total size = )rxryr�rz)r�r)rxryz%Rz%L�Kindr�)�graphrGr�r�r�r�marktimer0Z
totsizevarZsamplerrZ
OptionMenur�r�r3r��profrowsrq�totrowr.r,�	totresizer�)
rr�rAr6r�r�rx�frZomZorow�tbrZprofrowr	r	r
r4�s\
zTableFrame.__init__c
Cs�t|�}|j|7_t|jd�\}}tj|}|jdjd}|dkr\d}||d|}xR|jD]H}||jd<||_|d|jd<ddl}|j|j	|jd�}	|�
|j	�qdW||fS)N�rr2r rr�)r2)rr��divmodrqr�r�r�r�r�r�r�)
rrrqZ
charresize�extra�newwidth�oldwidth�prr�r�r	r	r
rss 

zTableFrame.resizec	Cs|j�|jj�|jj�|jj���dS]}|�	�q(Wt
|jj�}t
|jj�}|j�
d|jjd|jj|jj|jj|jjd|d�xpt|j�D]b\}}|j|j}|j|d�
|j�|j�|j|jd||j|j|j|jd||j�q�WdS)NgY@z<Total>r)r�rrG�time�asctime�	localtimerP�timemader�r�rrgr�r�r�r��kindrowsr�r�r7)	r�lsamp�rsampr�ZrdivZldivrr!r r	r	r
r]s.
zTableFrame.updateN)rrr
r4rsr]r	r	r	r
r��s:r�c@seZdZddd�Zdd�ZdS)�ColSpecr	cCs.||_||_||_||_||_||_||_dS)N)�tf�headerr�r2r��renderrl)rrrr2r�r	rlr	r	r
r48szColSpec.__init__cCsdd|jt|�}|jtkr&||}n(|jtkrF|dd�|d}ndsNt�t|�|jks`t�|S)Nr�rr)r2rRr�r��RIGHTr)rr�Zspr	r	r
�alignAs


z
ColSpec.alignN)r	)rrr
r4rr	r	r	r
r7s
	rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zd"dd�Zd#dd �Zd!S)$r�csd|�_|j�_t|dtd�}�_i�_g�_dd�f�fdd�	}|ddt�jd	d��|d
dt	�j
�jg�|ddt	�jd
d��|ddt	�j
�j
�jgdd��|ddt	�jdd��|ddt�j�d}x�jD]}||7}q�Wd�_d�_�jd�_�jj�_|�j�_d�_d�_|d7}|�_�_t}|d}t}	d�_t|||dd�j|	|d��_t|||dd�j|	|d��_t|��_d�_ t�j||dd|	d|�j�j d�
�_!t"�jdt#�j!j$d��_%t&�j%d�d�_'d�_(d�_)t&�j!d ��_*d}
d}�jj+t,t-|
|d!��jj+t,t-|
|d!��j!j+tt,t-|
|d"��jj+t,t-|
|d!�dS)#Nr~)rurvcSsdS)Nr	r	)r`r	r	r
r�[r�z%TableFrame.__init__.<locals>.<lambda>c	s^t|�r|gt|�}�j�|�x6t||�D](\}}t�||||||��}|�j|<q.WdS)N)�callablerR�	colwidthsr.�zipr�colspecs)�namesr2r�ZputZidxfuncr��spec)rr	r
�defcol[sz#TableFrame.__init__.<locals>.defcol)�A�BrcSs|S)Nr	)r`r	r	r
r�cr�)r'r�r�)z%A:Totz%B:TotcSs|dS)Nrr	)r�r	r	r
r�fr�)zB-AzA-B�CumulcSsd|�d�gd|kS)Nr	r)rc)r�r	r	r
r�hr�cSs|dS)Nrr	)r�r	r	r
r�jr�)r�r�rr�r rr�z#ccc)r2�wrapr*r(r�rvr��z#e0e0e0)	r2rr(r*rvZ	takefocusr�r�r�)r2r,r*r2r{r()r}r�r�)�sider}r�r�).r�rGr�rr�rr
r��putcolorr
�putsize�putcount�
putpercent�putdiff�putcumul�putkind�
totxresize�
totyresize�kindcolr2Zorgkindwidth�widthbeforekind�minkindwidth�
mintextheightrFZNONErP�minpadx�Text�tothead�rowheadZtsframe�textminpadyr�rIrJrn�	scrollbarr�scrollbar_totwidth�uses_scrollbar�auto_scrollbar�
orgtextheight�packr�r�)rr�rAr�rr2r�rr�rvr�r�r	)rr
r4Ns�




zTableFrame.__init__cCsv|j��t|j���|j|_t|j���|j|_t	t
|j��|_t	t
|j��|_|j|j|_|j|j|_dS)N)
r�r]rrr2r�r
r/r�rr�pixwidthZ	pixheight)rr	r	r
�setchdim�s
zTableFrame.setchdimcCsb|jjdkr|�d�}d}n|j�|jj�f}|�d�}|j�d||f�|jj||ddd�dS)Nz<Total>r�z#e0e0e0�@�end)r�Z12r�)r�r*r�)�colorowr�rr�r7r��insertZ
tag_config)r�colr�r�r	r	r
r�s

zTableFrame.putcolorcCs,d|_|jj}|j|7_|�||�dS)Nr�)�valmoder5rz�cumulval�putval)rr7rzr	r	r
r�szTableFrame.putcountcCs,d|_|jj}|j|7_|�||�dS)Nr')r8r5rgr9r:)rr7rgr	r	r
r�szTableFrame.putsizecCs||_|�|�t|���dS)N)�curval�aprr)rr7�valr	r	r
r:�szTableFrame.putvalcCs^|j|j}|jdkr|j}n|jdkr.|j}|rFt|jd|�}nd}|�|�|��dS)Nr�r'gY@z---)	�
statbynamerlr8rzrgr$r;r<r)rr7r#�refZpsr	r	r
r�s

zTableFrame.putpercentcCsh|j|jd|j|jd}}|jdkr<|j|j}}n|jdkrT|j|j}}|�|||�dS)Nrrr�r')�	rowbynamerlr8rzrgr:)rr7r#�br	r	r
r�s"

zTableFrame.putdiffcCs|�||j�dS)N)r:r9)rr7r	r	r
r�szTableFrame.putcumulcCsxddl}|j|jj|jd�}|�|�|d��t|�dkrtdd|j}x(|dd�D]}|�||�|��qXWdS)Nr)r2rrbr�)	r�rr5r�r2r<rrRr#)rr7r�Z	wraplines�initialr�r	r	r
r�szTableFrame.putkindcs�|�_|�_�jj�_�jj�_�fdd�|�d�D��_i�_�jdj	}�j|�_
d�j|<�j
g�_dg�_xpt
�j�D]b\}}|j	}t|ttf�s�|f}x>|D]6}|�jkr��j��j|�d�j|<�j�d�q�Wq�WdS)Ncs"g|]}|��r�j|���qSr	)�stripr)rxr`)rr	r
rysz&TableFrame.setmode.<locals>.<listcomp>r�rr)�moder6r��mcontrolbyname�	mcontrolsrKrc�colsZcontrolnamesrlZcolorcontrol�controls�lastidxsr��
isinstance�tupler\r.)rrDr6r�r�corlr	)rr
�setmodes*







zTableFrame.setmodecCsx||jkrdS||_|j}|rP|j|ddd�|jjttd�|jj|jd<n$|j|ddd�|j�	�d|jd<dS)Nr)�setscrollbar)rr�Zyscrollcommand)
r-r,rsr+r0r�r�rr�Zpack_forget)rZsbr�r	r	r
rNs

zTableFrame.setscrollbarcCs(|j}|�dd�|�dt|j��dS)Nz1.0z100.0)r�r+r6rrP)rrr�tr	r	r
�
update_simple'szTableFrame.update_simplerrc	s�|j��fdd�|jD�}||jkr,|s,dS||_t|jd<|jd<|jd<|j�dt�|j�dt�|j�dt��s�|j�	dd�t
|jd<|jd<|jd<dSi|_g}x8t|j�D]*\}}�||}|�
|�||j|j<q�Wt|j|d|jdjj|d|j|jjjd�g}|_|d|_t|j�d	k�r~|�
t|j|d	|jd	jj|d	|dd
��|d	|_|j�tdd�|D��}	xJ|D]B}
��	dd|
j���	dd
|	|
jd���	dd|
j��q�W�jddd�|j�dd�|D�|_x&|jD]}��	d|� |j!�d��qW��	dd�|j��fdd�|_"t#|dj$|dj%d�|_&|j|_'d|_(x|jD]}|�)|��q~W|�"d�d|_(x|t|dj*�D]j\}}||_&t|�d	k�r�|dj||d	j|d	j+|ji|_'x|jD]}|�)|��q�W|�"d��q�W|�rx|j,�rxt-|j�d��.d�d�d}
t-|jd�}|
|k}||j/k�rx|�0|�t
|jd<|jd<|jd<dS)Ncs&g|]}tdt|jt��d���qS)rr)rhr�rrR)rx�control)rKr	r
ry0sz%TableFrame.update.<locals>.<listcomp>�statez1.0r4z-- No Sample --r)r6r?r)�relativecSsg|]}tt|j���qSr	)rRrr-)rx�sampr	r	r
ryXszSample %s: z%%%dd)r-z at %s
r-z#e0e0e0)r*cSsg|]}t|jj��qSr	)rrPrg)rxrTr	r	r
rybs)rrbcs��d|�S)Nr4)r6)r�)rOr	r
r�jr�z#TableFrame.update.<locals>.<lambda>z<Total>z

�.rr()1rKrHrIZNORMALr�r(r)r+r�r6ZDISABLEDr>r�r.r�r5rGr�r6r��displayr?�sampsZ	colorsamprRZrelsamprhr-�datetimeZ
tag_configureZsizesrGrrr<�Rowrzrgr5r@r9r	r�rr.rrcr-rN)rr�rNZidxsZ	statbyidxrrQrPrWr^rTr7r#Znumrowsr�Zneeds_scrollbarr	)rKrOr
r],s�



"




zTableFrame.updatecCsFt|�}|j}|j|}||jdkr0|jd}||_||}t||j�\}}t||jd|j�|j_|j	|7_	x2|j
|j|jfD]}||d<|j
|d|d<q�Wt|�}t|j||j�\}	}|j|	}
t|jd�}|
|jk�r|j}
|
||j|}|j|7_|
|jd<|j|d|jd<|jddd�||fS)Nrrr2r�r(r�)r�rN)rr1r�r�rhr#r$r"r2r r(r)r�r&r!r�r/r%r*r])rrrqrNr�r�Z	charwidthr�rOZ	rowresizeZ	newheightZ	oldheightr	r	r
rs�s4



zTableFrame.resizeN)rr)r)rrr
r4r2rrrr:rrrrrMrNrPr]rsr	r	r	r
r�Msk	


\c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�FillercCst|ddd�|_|_dS)Nr)r2r()rEr��can)rrAr	r	r
r4�szFiller.__init__cCst|jd�t|jd�fS)Nr2r()rr[)rr	r	r
�getsize�szFiller.getsizecCs|jj||d�dS)N)r2r()r[r�)rr�r�r	r	r
�setsize�szFiller.setsizecCs0|��\}}|�td||�td||��dS)Nr)r\r]rh)r�dw�dhr�r�r	r	r
rs�sz
Filler.resizeN)rrr
r4r\r]rsr	r	r	r
rZ�srZc@seZdZdd�ZdS)rYcCs||_||_||_dS)N)rzrgr�)rrzrgr�r	r	r
r4�szRow.__init__N)rrr
r4r	r	r	r
rY�srYc@seZdZddd�ZdS)r5Nr'cCsP||_|j|_|j|_||_||_|j�|j�|j��|_	i|_
|dk	rp|�||�}x�|D]}	|	|j
|	j<qZWn�g}
d}x0|jD]&}|jdkr�t
|
�}q�q�|
�|j�q�W|�|
�}d}
d}xNt|�D]B\}}|
|}|dkr�tdd|�}||j
|<|
|j7}
||j7}q�W|dk	�rFt|j||j|
d�}|g|||�<||j
d<||_dS)Nz<Other>r)rPrgrzr�r-r�rrrrXrr}r�rRr.Zget_rows_of_kindsr�rY)rrGrPr�r-r6r?rSr�r!ZkindsZoidxrxrgrzrr��otherr	r	r
r4�sB






zSample.__init__)Nr'N)rrr
r4r	r	r	r
r5�sr5c@s2eZdZdZdZdd�Zdd�ZdKdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZeZd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zd2d3�Zd4d5�Zd6d7�Zd8d9�Z d:d;�Z!d<d=�Z"d>d?�Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'dHdI�Z(dJS)Lr�)�redZgreenZbluer�ZmagentaZcyanrwr c

s4d�_|�_|j�_}|j�_}|rD|j�|�}|j�|��_n|j	�
��_t|��_�t
�jtdd��_t�jdd��_t�j��_�j�jd<�jjd�jd��jjd	�jd��jjd
�jd��jjd�jd��jjd�jd�t�jd
d��_t�j��_�j�jd<ddg}t��_���jd|�j�j��_ ddddddg}t��_!t�jdd��_"t�j"��_#�j#�j"d<t�j"dd��_$��%�j$|�j!�j&��j#j'd�j$d�t��_(t�j"dd��_)��%�j)dg�j(�j*��j#j'd�j)d�t+�j�jj,��_-|�.�j�j-��_/t�jdd��_0t�j0��_1�j1�j0d<�j1jd�j2d��j1jd�j3d�t
�jdt4d��_5t6�j5d�jd d!��_7��8|�d�_9t:��_;�j;�<d�t=�j5d"�j;�j>td#��_?t@�j��_At
�j��_BtC�jBtDjE�jF�jGd$��_HtD�j5d%�jHjI�jHjJd&�jHjK�jHjLd'��_MtD�j5d(�jHjN�jHjOd)�jHjP�jHjQ�jHjRd*��_S�jM�jH_M�jS�jH_Sg�_Ti�_UxLdD]D}�jH�V|�}tW�j5|�jX�}|�Y|jZ��jT�[|�|�jU|<�q�Wt\��_]�j]�<d+��jj^d,�j]�j_d-�t\��_`�j`�<d+��jj^d.�j`�jad-�t\��_b�jb�<d+��jj^d/�jb�jcd-�td��jB�}	�_etf�jB�jgd0�}
�_h�jMjjiddd1d1tjd2��jSjjid+dd1d1d3��jTdjjidd+d+tjd1d1d4��jTd+jjid+d+d+tjd1d1d4��j7jiddd1d1d3��j?jidd1d1d1d3�tk�j��_l�jjmtnd5��jjmtnd5��j jmtnd5��j"jmtnd5��j-jojmtnd5��j0jmtnd5��jjidd6tptjtqd7���r���sd8�jt��je�u�j!�v��jF���w|�|
j�x�|
�ytz�jHj�{�|	j�{���|
j�x�d9�_|�j�}��j�~�f�_d:d;d<d<d=�}������fd>d?�}|�dS)@Nrr)rvr+ZFile)r�r�zNew Profile Browser)r�r*zOpen ProfilezClose WindowzClear CacheZExitZPane)r&r|)r'r�ZGraph)rr)z%A:Totz%B:Tot)rzA-BzB-A)r�ZTablezTable header)r�ZHeader)r�r�zTable scrollbar)r��On�OffrIZHelpZAbout)r+rvra)r�r*r*ZCollect)r�r�r*rv)r�r6r7r�Zsamples)r�r,r�r�r�r�r��bytes)r�r,r�r�r�r�r�rzShow Control Panel)r�r�r*z
Show Graphz
Show Table)r�r~)rxryr�r�rz)rxryr�r�)rxryr�rzr�r�)rr�)ryr�rzz<Map>)i�i�)ir3)ik�=)i�))rrr)rrr)rrr)rrrcsr�j���j���j��}|�jj���jj���_�j���_�j���_d�_	��
d�j�d�_dS)Nrz<Configure>r)
rr2r�r
r�tf_wanted_margin�lastwr
�lasth�in_configurer>�event_configure�inited)�rx)r�rr	r
�	initfinal�	s
z*ProfileBrowser.__init__.<locals>.initfinal)�rlr�rGr�rA�path�abspath�dirname�
initialdirrH�getcwdZToplevelr�r�r��menubarr�Z
filebuttonr)ZfilemenuZadd_command�cmd_new�cmd_open�	cmd_close�cmd_clear_cache�cmd_exitZ
panebuttonZpanemenur�graphtypevar�modechooser�
cmd_graphtypeZgraphbutton�
var_tablemodeZtablebuttonZ	tablemenuZ
headermenu�addmodechooser�
cmd_tablemodeZadd_cascade�var_tablescrollbarZtablescrollbarmenu�cmd_tablescrollbarr�r�r�r�r�Z
helpbuttonZhelpmenu�	cmd_about�cmd_helpr��	ctrlframer:Z
exitbutton�set_filename�
id_collectr��
collectingrr��cmd_collectZ
collectbuttonrFrK�disptabr$r�r�r6r7rVr8r:r�r��xcontrolr9r=r�r�rhr�rFrEr_r��update_tableframer#r�r.r��var_showcontrolr��cmd_showcontrol�
var_showgraph�
cmd_showgraph�
var_showtable�
cmd_showtabler�rr��cmd_dt_moved�d_tr�r�rZ�fillerr0r�r�r�r��gridmainr>�	event_maprMr��
load_filenamertr�rhr
ZminsizeZwinfo_screenwidthZwinfo_screenheight�maxsize�setusergeometry)
rr�r�rGrA�choicesr�r�rQrr�Zminsizesrnr	)r�rr
r4�sJ














zProfileBrowser.__init__cCs|�d�dS)NZabout)r�)rr	r	r
r��	szProfileBrowser.cmd_about�helpc	Csr|jj}|j��d}zFd|j��d<|j��|jjj|jt|jj|�d�}|j	�
|�Wd||j��d<XdS)Nr�r�)Zinpickle)rGrHr�r�r]r'Z
gsltextviewerr�Zpbhelpr�r�)rZpicknamerHr�r	r	r	r
r��	s
zProfileBrowser.cmd_helpcCs|j��dS)N)rKrL)rr	r	r
rx
szProfileBrowser.cmd_clear_cachecCs|j��dS)N)r�r�)rr	r	r
rw
szProfileBrowser.cmd_closecGs6|j��r|��n|jdk	r2|j�|j�d|_dS)N)r�r��
event_collectr�r�rE)rr5r	r	r
r�
s



zProfileBrowser.cmd_collectcCs�|j��\}}|rj||jjkr.|j�|j�n|j|d�}|j�|�x|jD]}|�t|j��qRW|j	�
d|j�|_dS)Ni�)
rKr_rVrr�r�rFr�rRr�rBr�r�)r�or^rkr/r	r	r
r�
szProfileBrowser.event_collectcCs�|jd7_|j��|j��}||jj��|jj��}t||�}||jj��|jj��}|j�|d�\}}|j	}||8}|j�||d�|j�
�|jd8_dS)Nrr)rjr�r
rr�r�rrVrsrgrv)rrrmZmx�_Z
wanted_marginr	r	r
r�
s

zProfileBrowser.cmd_dt_movedcCs|j��dS)N)r�r�)rr	r	r
ry?
szProfileBrowser.cmd_exitcCs"|j�|j��|j�|��dS)N)rVr�rzr�rKr)rr	r	r
r|B
szProfileBrowser.cmd_graphtypecCs|j�|j�dS)N)r�r�r�)rr	r	r
ruF
szProfileBrowser.cmd_newcCs4tjj|j|jddgd�}|��}|r0|�|�dS)N)zHeapy data filesz.hpy)z	All filesr)rrZ	filetypes)r�Z
filedialogZOpenr�rrZshowr�)r�opr�r	r	r
rvI
s

zProfileBrowser.cmd_opencCs|��dS)N)�grid_things)rr	r	r
r�V
szProfileBrowser.cmd_showcontrolcCsX|j��rL|j��rL|j�|jjd�|j�|jj|jjd�|j�	�|�
�dS)Nr)r�r�r�rrsr rVrFrSrvr�)rr	r	r
r�Y
s

zProfileBrowser.cmd_showgraphcCs$|j�|j��|j�|j��dS)N)rrMr}r�r6r])rr	r	r
rb
szProfileBrowser.cmd_tablemodecCsn|j}|j��}|dkr.d|_|jddd�n<|dkrHd|_|�d�n"|dkrbd|_|�d�ndsjt�dS)Nr�r)r�rNrbrrc)rr�r�r.r]rNr)rrrr	r	r
r�f
s
z!ProfileBrowser.cmd_tablescrollbarcCsB|j��d|j��|j��|j��|j��f}|j�|�dS)Nz%dx%d+%d+%d)r�r]rr
r
rZgeometry)r�gr	r	r
r�u
s

zProfileBrowser.setusergeometrycCs0t||d�}t|�}||d<|�||||�|S)N)r�r�)r�r)r~)rr�r�r��cmdvarr*r�r�r	r	r
r{�
s
zProfileBrowser.modechooserc	
s���fdd����fdd�}g�xT|D]L}t�}��|�|�|d�x(|D] }|j||||||dkd�qNWq&W��dS)Ncs��d�dd��D���dS)Nr�cSsg|]}|���qSr	)r�)rx�vr	r	r
ry�
szDProfileBrowser.addmodechooser.<locals>.setcmdvar.<locals>.<listcomp>)r�joinr	)r��varsr	r
�	setcmdvar�
sz0ProfileBrowser.addmodechooser.<locals>.setcmdvarcs����dS)Nr	r	)r*r�r	r
r��
sz*ProfileBrowser.addmodechooser.<locals>.cmdr)r*r�rr�Zcolumnbreak)rr.rr�)	rr�r�r�r*r�r��varr#r	)r�r*r�r�r
r~�
s


zProfileBrowser.addmodechoosercCsv|j��}|j��}|j��|jj��|jj��|jj��|j��|j	j��|�
�|j��|��dS)N)
r�rr
r�Zgrid_forgetrVr�rr�r�r�rt�sizewidgets)rZowZohr	r	r
r��
s




zProfileBrowser.grid_thingscCs d}|j��}|r2|jj|ddddtd�|d7}d}|j��}|j��}||f}|rz|jjjd|t	tddd�|d7}|r�|r�|j
jjd|t	td�|d7}|r�|jjjd|t	tddd�|s�|r�|jj|dt	td�|d7}|j
�dd�|j
jj|dt	td�|j�dd�dS)Nrrr~)rxryr�r�r�rz)rxryrzr�r�)rxryrz)r�r�r�r�r�r�r�rVr�r�r�rr�r�r]Z	resizable)rrxr/ryr�rO�gtr	r	r
r��
s4





zProfileBrowser.gridmaincCs�|j|jk	rdS|jsdS|jr$dS|j��}|j��}||jkrP||jkrPdS|jd7_||_||_|��|jd8_dS)Nr)	Zwidgetr�rlrjrr
rhrir�)rrD�curw�curhr	r	r
rk�
s

zProfileBrowser.event_configurecCs�|j��|j��}|j��}|j��}|j��}g}|j��rL|�	|j
�|j��rb|�	|j�|sr|�	|j
�i}d}xJ|D]B}|j}	|	��}
|	��}|
||}||d}
|p�|
}|
||<q�W|j��r�|jj}	n|j��r�|j
j}	n|j
j}	|	��}|	��}|||}||d}|	|j
jk�rN|j���sN||j
��dd}|�sZ|�r~|j���r�|j���r�t|j
j���}|||jj��}|j
�||||j
�\}}
|j�||||j�|j��|j�t|j
j��|jj����np|j���r|j
�|||j
�nN|j���r<|j�|||j�n,|j
�|||j
�|j
�|j
��dd�|j���r~|j
��dS)Nrr�r{r~i�)r�r]rr
rtr
rr�r�r.rVr�rr�r�r\rrsrtr�r�rhr]rv)rr�r�ZmbxZmbyZsfsZdysZdidhr�r^ZdiyZdihr�rqZfx�fwZcwZfdwZdproprr	r	r
r��
sd












zProfileBrowser.sizewidgetscCs|j�||�dS)N)rVrs)rr^r_r	r	r
rs=szProfileBrowser.resizecCs*|j�d�|j�d|j�|j��dS)Nz<Map>z<Unmap>)r��unbindr>�event_unmapr)rrDr	r	r
r�AszProfileBrowser.event_mapcCs |j�d�|j�d|j�dS)Nz<Unmap>z<Map>)r�r�r>r�)rrDr	r	r
r�FszProfileBrowser.event_unmapc
Csd|j��d}�z>d|j��d<|j��|r<|jj�|�}y|j�|�Wnftk
r�t	d��
�|jjj�
�\}}}tjj|jd|dd�|jjj�||��d�Yn�X|j�|j�x|jD]}|�t|j��q�W|�|�|��|j�d�|jd	�d�|jd�d	�|��|jjd	d
�|�rL|jj�|�|_ Wd||j��d<XdS)Nr�r��	tracebackzError when loading
%r:
z%sr)rAr�rr)r�)!r�r�r]rGrorprKrM�	Exception�
__import__�	print_excZ_root�sys�exc_infor�r�r�r�r��format_exception_onlyrVr�rFr�rRr��
xrange_fitr�r��
yrange_fitrrqrr)rr�r��etyperr�r/r	r	r
r�Js:

zProfileBrowser.load_filenamecCs|j��dS)N)rr])rr	r	r
r�qsz ProfileBrowser.update_tableframecCs,|dkrdS|jtt|��t|j�SdS)Nz<Other>rs)�colorsr"�hashrR)rr�r	r	r
r7tszProfileBrowser.getkindcolorcCs&||_|sd}d|}|j�|�dS)Nz	<No File>zHeapy Profile Browser: %s)r�r�r�)rr�r�r	r	r
r�zs
zProfileBrowser.set_filenamecCsD|��|j|jkr|��|jdkr0|��n|��|��dS)N)rZrBr9r�rYrcr�Ztrack)rr	r	r
�
setnormpos�s

zProfileBrowser.setnormposcCsdS)Nr	)rr	r	r
�
redraw_all�szProfileBrowser.redraw_allcCs|j�d�dS)Nr)Zrcontrolr�)rr	r	r
�trackoff�szProfileBrowser.trackoffcCs|j�t|j��dS)N)r�r�rRrK)rr	r	r
r��szProfileBrowser.xrange_fitcCs|jjdd�dS)Nr)r�)rVrg)rr	r	r
r��szProfileBrowser.yrange_fitN)r�))rrr
r�r6r4r�r�rxrwr�r�r�ryr|rurvr�r�r�rr�r�r{r~r�r�rkr�rsr�r�r�r�r7r�r�r�r�r�r�r	r	r	r
r��sNr

!
	&D'r�c@s"eZdZdZddd�Zdd�ZdS)�_GLUECLAMP_)z_parent:Usez_parent:pbhelpz_root.guppy.etc:textViewz
_root:hashlibz_root:osz
_root.os:pathz
_root:timez_root.guppy.gsl:TextNcCst|�}|�|�|��dS)a=pb( [filename: profilefilename+])

Create a Profile Browser window.

Argument
    filename: profilefilename+
        The name of a file containing profile data.
See also
    Heapy Profile Browser[1]
    Screenshot[2]
References
    [0] heapy_Use.html#heapykinds.Use.pb
    [1] ProfileBrowser.html
    [2] pbscreen.jpgN)r�r�r�)rr�Zpar	r	r
�pb�s
z_GLUECLAMP_.pbcCs|d�dS)Nz
/tmp/x.hpyr	)rr	r	r
�tpg�sz_GLUECLAMP_.tpg)N)rrr
Z	_imports_r�r�r	r	r	r
r��s

r�)#r�Ztkinter.filedialogZtkinter.messageboxZguppy.etc.Descriptorrrrrrr$r(r)r0r3r1r:r7rFrqr�r�r�r$r�r�r�r�r�r�rrZrYr5r�r�r	r	r	r
�<module>s\	mDL# @.'<?oc-&

Zerion Mini Shell 1.0