403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.144.153.204
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/__pycache__/Classifiers.cpython-37.pyc
B

�]2��@s�ddlmZGdd�d�ZGdd�de�ZGdd�de�ZGdd	�d	e�ZGd
d�de�ZGdd
�d
�ZGdd�de�Z	Gdd�de�Z
Gdd�d�ZGdd�de�ZGdd�d�Z
Gdd�de�ZGdd�d�ZGdd�de�ZGdd�d�ZGd d!�d!e�ZGd"d#�d#e�ZGd$d%�d%�ZGd&d'�d'e�ZGd(d)�d)�ZGd*d+�d+e�ZGd,d-�d-e�ZGd.d/�d/�ZGd0d1�d1e�ZGd2d3�d3�ZGd4d5�d5�ZGd6d7�d7e�ZGd8d9�d9�Zd:S);�)�property_nondatac@s�eZdZd.dd�Zdd�Zdd	�Zee�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zd/dd�Zd0dd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd1d*d+�Zd2d,d-�ZdS)3�
ClassifierN�Fc	Cs�||_||_|dk	r||_|j�|g�|_|rNx4|D]}|j|jO_q4Wn|j|jjjgO_x|D]}|j	rjd}PqjW||_	|r�|j
j|_dS)NT)�mod�name�cli�ImpSet�
immnodesetZsuper_classifiers�Use�Unity�
classifier�with_referrers�View�call_with_referrers)	�selfrrr�supers�dependsr
�s�drr�J/opt/alt/python37/lib64/python3.7/site-packages/guppy/heapy/Classifiers.py�__init__s 

zClassifier.__init__cCs||�S)Nr)r�x�frrrr!szClassifier.call_with_referrerscCs|��S)N)�get_cli)rrrr�_get_cli&szClassifier._get_clicCs|j�||�S)N)r�alt)r�kindrrrr�get_alt,szClassifier.get_altcs.d�j��j����fdd��}|j�|�S)Nz	%s.dictofcs�j�t�j���S)N)r�_er_by_�ByDictOwnerr)rrrr�<lambda>4sz'Classifier.get_dictof.<locals>.<lambda>)rr�
mker_memoizedr�dictof)rr�err)rrr�
get_dictof0s

zClassifier.get_dictofcCs
|�|�S)N)�family)r�krrr�get_kind9szClassifier.get_kindcCs&|��\}}}||k	r"td|��|S)Nz1get_kindarg: argument with classifier %r expected)�get_ckc�
ValueError)rr�cla�ka�cmprrr�get_kindarg=s

zClassifier.get_kindargcCsd|jjj|jfS)Nz%s%s)rr
�reprefixr)rrrr�get_reprnameEszClassifier.get_reprnamecOs|||�}t||f�S)N)�CallableSoKind)rr#�args�kwdsr&rrr�
get_sokindHs
zClassifier.get_sokindcs&d���d��fdd�|jD��fS)Nz%s.sokind%s�csg|]}d��|��qS)z(%s))�get_userkindargrepr)�.0r&)rrr�
<listcomp>Psz-Classifier.get_sokindrepr.<locals>.<listcomp>)r/�join�kinds)r�sokindr)rr�get_sokindreprLszClassifier.get_sokindreprr4cCs|��S)N)�
get_byname)r�ctxrrr�
get_tabheaderSszClassifier.get_tabheadercCs|jS)N)�brief)rr*r=rrr�get_tabrenderingXszClassifier.get_tabrenderingcOs|j||�S)N)r%)rr1r2rrr�get_userkind]szClassifier.get_userkindcCs|jS)N)�arg)rrrrr�get_userkindargaszClassifier.get_userkindargcCst|�|��S)N)�reprrC)rrrrrr5dszClassifier.get_userkindargreprcCsLg}xB|�|�D]4\}}|�|�}|jjj||jd�}|�||f�qW|S)N)r#)�
partition_clir'rr
�idsetr#�append)r�iterable�itemsr&�vrrr�	partitiongs
zClassifier.partitioncs&|�||jj���fdd����D�S)Ncsg|]}|�|f�qSrr)r6r&)�eprrr7ssz,Classifier.partition_cli.<locals>.<listcomp>)rrZ
epartitionZ
get_domain)r�ar)rLrrEos
zClassifier.partition_clics.��|�}�fdd�|D�}�jjj|dd�S)Ncsg|]\}}��|��qSr)r')r6r&rJ)rrrr7wsz%Classifier.relimg.<locals>.<listcomp>�)Z	maximized)rErr
�union)r�X�pr9r)rr�relimgus
zClassifier.relimg�==cs��|���fdd��S)Ncs�j�|���S)N)r�select)rM)�br,rrrr }�z'Classifier.select_cli.<locals>.<lambda>)r)rrMrUr,r)rUr,rr�
select_clizszClassifier.select_clicCs|jj�|�|j||��}|S)N)rr
rFrW�nodes)rrPr&r�rrrr�
select_idsszClassifier.select_ids)NrrF)r4)r4)rS)N)�__name__�
__module__�__qualname__rrrrrrr$r'r-r/r3r;r>r@rArCr5rKrErRrWrZrrrrrs*
	


rc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zee�Z	dS)�SoKindcs8|�_|j�_|�_�jjj��fdd�|D���_dS)Ncsg|]}�j�|��qSr)rr-)r6r)rrrr7�sz#SoKind.__init__.<locals>.<listcomp>)r#rr9rrr	�clikinds)rr#r9r)rrr�s

zSoKind.__init__cCsJt|t�sdS|j|jkrdS|jjj�|j�}|jjj�|j�}||kS)NF)�
isinstancer^rrr
rOr9)r�otherrMrUrrr�__eq__�s
z
SoKind.__eq__cCstt|��S)N)�hashrD)rrrr�__hash__�szSoKind.__hash__cCs|j�|�S)N)rr;)rrrr�__repr__�szSoKind.__repr__cCs|j�|�S)N)r#�refdby)rrrr�_get_refdby�szSoKind._get_refdbyN)
r[r\r]rrbrdrerg�propertyrfrrrrr^�s	r^c@seZdZdd�ZdS)r0cOs"|j||�}|�|j|j|f�S)N)r#�	__class__r9)rr1r2r&rrr�__call__�szCallableSoKind.__call__N)r[r\r]rjrrrrr0�sr0c@seZdZdd�ZdS)�SoNoKindcCsd|jjjjdfS)Nz%s%s�sonokind)rrr
r.)rrrrre�szSoNoKind.__repr__N)r[r\r]rerrrrrk�srkc@s8eZdZdZdd�Zdd�Zee�Zdd�Zee�Z	dS)	�QuickSoKind)rr_cCs||_||_dS)N)rr_)rrr_rrrr�szQuickSoKind.__init__cCs|jjS)N)rr#)rrrr�_get_er�szQuickSoKind._get_ercst�fdd��jD��S)Ncsg|]}�j�|��qSr)rr')r6r&)rrrr7�sz*QuickSoKind._get_kinds.<locals>.<listcomp>)�tupler_)rr)rr�
_get_kinds�szQuickSoKind._get_kindsN)
r[r\r]�	__slots__rrnrhr#rpr9rrrrrm�srmc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�IdentityFamilycCs|�|jj�||_dS)N)�defrefiningr
�Anythingr)rrrrrrr�szIdentityFamily.__init__cCs.||jkr|j|jkS|jjdk	o,|jj|kS)N)�famrB�supercl)rrMrUrrr�_ge_ATOM�s
zIdentityFamily._ge_ATOMcCs*||jkr|j|jkS|jdk	o(|j|kS)N)rurBrv)rrMrUrrr�_le_ATOM�s
zIdentityFamily._le_ATOMcCs
||jkS)N)rB)rrMrUrrr�
c_contains�szIdentityFamily.c_containscCs|jj�|j|jg@�S)N)rr
rFrXrB)rrMrUrrr�_and_ID�szIdentityFamily._and_IDcCsdtt|j��S)Nz<id %s>)�hex�idrB)rrMrrr�c_get_brief�szIdentityFamily.c_get_briefcCsd|j��|j�|�fS)Nz%s(%s))rr/r5)rrMrrr�c_repr�szIdentityFamily.c_reprN)
r[r\r]rrwrxryrzr}r~rrrrrr�srrc@s>eZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�ZdS)�
ByIdentitycCs(t�||||j���|�t|�|_dS)N)rr�hvZcli_id�fam_mixin_argatomrrr%)rrrrrrr�szByIdentity.__init__cCsdS)Nzobject identityr)rrrrr<�szByIdentity.get_bynamer4cCsdS)NzObject Identityr)rr=rrrr>�szByIdentity.get_tabheadercCs|�|jj�|��S)N)r'rr�obj_at)r�addressrrrrA�szByIdentity.get_userkindcCs
t|j�S)N)r|rB)rrrrrrC�szByIdentity.get_userkindargcCst|�|��S)N)r{rC)rrrrrr5�szByIdentity.get_userkindargreprN)r4)	r[r\r]rr<r>rArCr5rrrrr�s
rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
ByIdentitySetcCs$t�||||j���|jj|_dS)N)rrr�Z	cli_idsetr
rFr%)rrrrrrrszByIdentitySet.__init__cCsdS)Nzby identity setr)rrrrr<
szByIdentitySet.get_bynamecCs|�|jj�|g��S)N)r%rrr	)r�noderrrrA
szByIdentitySet.get_userkindcCs,|�|�}|jj�dd�|D��}|�|�S)NcSsg|]\}}|�qSrr)r6r&rJrrrr7sz(ByIdentitySet.relimg.<locals>.<listcomp>)rErrZimmnodeset_unionr%)rrPrQr&rrrrRs
zByIdentitySet.relimgN)r[r\r]rr<rArRrrrrr��sr�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�PyObjectFamilycCs
||_dS)N)r)rrrrrrrszPyObjectFamily.__init__cCsdS)NTr)rrMrUrrrryszPyObjectFamily.c_containscCsdS)NzKind: Name/Value/Addressr)rrMrrr�c_get_idpart_headersz"PyObjectFamily.c_get_idpart_headercCsdS)Nr4r)rrMrrr�c_get_idpart_label sz!PyObjectFamily.c_get_idpart_labelcs�fdd�}|S)Ncs$�jj�|�}|j�d��d�}|S)Nz<1 �>)rr
�isor?�lstrip�rstrip)rrY)rrr�render$sz2PyObjectFamily.c_get_idpart_render.<locals>.renderr)rrMr�r)rr�c_get_idpart_render#sz"PyObjectFamily.c_get_idpart_rendercCsdS)Nz
<Anything>r)rrMrrrr}*szPyObjectFamily.c_get_briefcCsd|jjjdfS)Nz%s%srt)rr
r.)rrMrrrr~-szPyObjectFamily.c_reprcCs|S)Nr)rrMrUrrrrz0szPyObjectFamily._and_IDN)r[r\r]rryr�r�r�r}r~rzrrrrr�sr�c@s:eZdZdZdd�Zdd�Zddd�Zd	d
�Zdd�Zd
S)�ByUnityzXbyunity
Classify by <unity>.
The classification returned for every object is <Anything>.cCs.tj||||j��|gd�|�t|�|_dS)N)r)rrr�Zcli_noner�r�r%)rrrrrrr;s
zByUnity.__init__cCsdS)NZunityr)rrrrr<BszByUnity.get_bynamer4cCsdS)Nz<unclassified>r)rr=rrrr>EszByUnity.get_tabheadercGs
|jjjS)N)rr
rt)rr1rrrrAHszByUnity.get_userkindcCsdS)Nr)rrrrrrCKszByUnity.get_userkindargN)r4)	r[r\r]�__doc__rr<r>rArCrrrrr�6s
r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�IndiSizeFamilycCs|�|jj�||_dS)N)rsr
rtr)rrrrrrrPszIndiSizeFamily.__init__cCst|�}|jj�||�S)N)�intrZ
AtomFamilyrj)rrMrrrrjTszIndiSizeFamily.__call__cCs|j�||�S)N)rr)rrMrrrr�c_altXszIndiSizeFamily.c_altcCs|j|jj�|�kS)N)rBrr�classify)rrMrUrrrry[szIndiSizeFamily.c_containscCs|j�|j�S)N)r�summary_strrB)rrMrrr�c_get_render^szIndiSizeFamily.c_get_rendercCs
d|jS)Nz<size = %d>)rB)rrMrrrr}aszIndiSizeFamily.c_get_briefcCsd||jfS)Nz<size %s %d>)rB)rrMrrrr�c_get_brief_altdszIndiSizeFamily.c_get_brief_altcCsd|j��|jfS)Nz%s(%s))rr/rB)rrMrrrr~gszIndiSizeFamily.c_reprN)r[r\r]rrjr�ryr�r}r�r~rrrrr�Osr�c@s<eZdZdZdd�Zdd�Zdd�Zdd	d
�Zddd�Zd
S)�
ByIndiSizezjbyindisize
Classify by <individual size>.
The classification will be individual memory size of the object.cCs t�|||�|�t|�|_dS)N)rrr�r�r%)rrrrrrrpszByIndiSize.__init__cCsdS)Nzindividual sizer)rrrrr<tszByIndiSize.get_bynamecCs|jj�i�S)N)rr�Zcli_indisize)rrrrrwszByIndiSize.get_clir4cCsdS)NzIndividual Sizer)rr=rrrr>zszByIndiSize.get_tabheadercCs|rd|jSd|jSdS)Nz%dz%9d)rB)rr*r=rrrr@}s
zByIndiSize.get_tabrenderingN)r4)r4)	r[r\r]r�rr<rr>r@rrrrr�ks
r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�
TypeFamilycCs$|�|jj�||_|�|�|_dS)N)rsr
rtr�
fam_Family�range)rrrrrrr�szTypeFamily.__init__cCst|t�std��|�||�S)NzArgument should be a type.)r`�type�	TypeError�Set)rrMrrrrj�s
zTypeFamily.__call__cCs|j�||�S)N)rr)rrMrrrrr��szTypeFamily.c_altcCst|�|jkS)N)r�rB)rrMrUrrrry�szTypeFamily.c_containscCs|j�|j�S)N)rr�rB)rrMrrrr��szTypeFamily.c_get_rendercCs|j�t|j��|j�S)N)rr�r�rB)rrMrrrr}�szTypeFamily.c_get_briefcCs$ddddd�|}d||�|�fS)Nzstrict subtype�subtypeZ	supertypezstrict supertype)�<z<=z>=r�z
<%s of %s>)r})rrMrrrrrr��szTypeFamily.c_get_brief_altcCs|j�|�S)N)r�get_repr)rrMrrrr~�szTypeFamily.c_reprN)r[r\r]rrjr�ryr�r}r�r~rrrrr��s	r�c@sJeZdZdZdd�Zdd�Zdd�Zdd	�Zddd�Zd
d�Z	dd�Z
dS)�ByTypezMbytype
Classify by <type>.
The classification will be the type of the object.cCs(t�||||j���|�t|�|_dS)N)rrr�Zcli_typer�r�r%)rrrrrrr�szByType.__init__cCsHyt|jj|d�}Wn&tk
r<t|jj|���}YnX|�|�S)N�Type)�getattrr�types�AttributeError�builtins�lowerrA)rr�tyrrr�get_attr_for_er�s
zByType.get_attr_for_ercCsdS)Nr�r)rrrrr<�szByType.get_bynamecCsD|j}|��}||jjkr.d||jj|fSd||�|�fSdS)Nz%s.%sz%s(%r))rBr/r�
invtypemodrC)rr�tZrnrrrr��s
zByType.get_reprr4cCsdS)Nr�r)rr=rrrr>�szByType.get_tabheadercCs|j�|�}|�|�S)N)r�tc_adaptr%)rrrrrrA�szByType.get_userkindcCs|jj�|j�S)N)rr
�tc_reprrB)rrrrrrC�szByType.get_userkindargN)r4)r[r\r]r�rr�r<r�r>rArCrrrrr��s
r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�OwnedDictFamilycCs|�|j�t��dS)N)Z
defrefidisr
r��dict)rrrrrr�szOwnedDictFamily.__init__cCs|jS)N)rB)rrMrrr�_get_ownerkind�szOwnedDictFamily._get_ownerkindcCs||j�|��S)N)rBr)rrMrrrrr��szOwnedDictFamily.c_altcs���|�}|�jjjkr(�jjjj��S|�����fdd�}|S|�j��jj	�krx�jjjj
�����fdd�}|S�jjjj��SdS)Ncs4��jj�|�jj�}d|kr0d|�d�d}|S)N�.z..���)rr
r��owners�theone�split)r�ret)�	ownrenderrrrr��sz,OwnedDictFamily.c_get_render.<locals>.rendercs��jj�|�jj�S)N)rr
r�r�r�)r)�	modrenderrrrr��s)r�rr
�Nothingr��DictZ
get_renderZfam_Typer��
ModuleType�Module)rrMr+r�r)r�r�rrr��s
zOwnedDictFamily.c_get_rendercCs*|�|�}||jjjkrdSd|jSdS)Nzdict (no owner)zdict of )r�rr
r�r?)rrMr+rrrr}�s
zOwnedDictFamily.c_get_briefcCsX|j��\}}}|dkr.|j�d���\}}}|jjj}|j|jjjkrN|j	}|||fS)Nz==r)
rBr(�biperr#r"rrr
r��notownedtag)rrMr*r&r,Zdoclarrr�	c_get_ckc�s
zOwnedDictFamily.c_get_ckccCs
|�|�S)N)r})rrMrUrrr�
c_get_str_forszOwnedDictFamily.c_get_str_forcsT��|�}|�jjjk	r6|j�|����fdd�}|S�jjjjj	}|j�|�SdS)Ncs��jj�|�jj�S)N)rr
r�r�r�)r)�owner_renderrrrr�	sz3OwnedDictFamily.c_get_idpart_render.<locals>.render)
r�rr
r�rur��_parentZSpecr�r�)rrMr+r�rUr)r�rrr�s
z#OwnedDictFamily.c_get_idpart_rendercCs0|�|�}||jjjkrdSd|j�|�SdS)NzAddress*LengthzOwner )r�rr
r�rur�)rrMr+rrrr�s
z#OwnedDictFamily.c_get_idpart_headercCs,|�|�}t|�}|�d�r$d|}d|S)N�~z(%s)z	%s.dictof)r�rD�
startswith)rrMr+Zrarrrr~s


zOwnedDictFamily.c_reprN)
r[r\r]rr�r�r�r}r�r�r�r�r~rrrrr��s
r�c@s`eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zddd
�Zddd�Z	dd�Z
dd�Zdd�ZdS)rcCsjtj||||gd�||_|jj|_|jj|_|j|_|j	|_	|j
|_
|j�gg�|_
|j�gg�|_dS)N)r)rr�ownerclassifierrr�Zdict_ownership�	ownershipr"r%�notdict�
dictofnothingrr	�
notdicttagr�)rrrr�rrrr s

zByDictOwner.__init__cCsd|j��S)Nz[dict of] %s)r�r<)rrrrr<0szByDictOwner.get_bynamecCs |j�|j|jj|j|j�}|S)N)r�Z
cli_dictofr�r�rr�r�)rrrrrr3szByDictOwner.get_clicCs6||jkr|jS||jkr |jS|�|j�|��SdS)N)r�r�r�r�r%r�r')rr&rrrr'8s


zByDictOwner.get_kindcCs2||jkr|jS||jkr |jS|j�|j�SdS)N)r�r�r�r�r�r-rB)rrrrrr-@s


zByDictOwner.get_kindargr4cCsd|j�|�S)Nz
Dict of %s)r�r>)rr=rrrr>HszByDictOwner.get_tabheadercCs:||jkr|j}n$||jkr"d}nd|j�|j|�}|S)Nzdict (no owner)zdict of )r�r?r�r�r@rB)rrr=rYrrrr@Ks

zByDictOwner.get_tabrenderingcCs0|dkr|jS||jjjkr"|jS|�|�SdS)N)r�rr
r�r�r%)rr&rrrrAUs
zByDictOwner.get_userkindcCs,||jkrdS||jkr"|jjjS|jSdS)N)r�r�rr
r�rB)rrrrrrC]s



zByDictOwner.get_userkindargcCs||�|j�}|jj��}|j}xN|jD]D}||}|sL|jj�|�||}|r&|d}|dk	r&|�|�q&W|jj	�
|�S)Nr)rErXrrZ
mutnodesetr�r�Zupdate_dictowners�addr
rF)rrPrQ�nsZdrgr&r�rJrrrr�eszByDictOwner.ownersN)r4)r4)
r[r\r]rr<rr'r-r>r@rArCr�rrrrrs


rc@s\eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
d�Z	ddd�Z
dd�Zdd�ZdS)�ByClassOrDictOwnera�byclodo
Classify by <type or dict owner>.
The classification is performed as follows:
1.      If the object is not a dictionary,
        the classification will be the type of the object.
2.      The object is a dictionary. The referrers of the
        object are searched to find one that 'owns' the
        dictionary. That is, typically, that the dict is
        the __dict__ attribute of the owner. If no such
        owner is found, the type 'dict' will be the
        classification. If an owner is found, a special
        object that indicates the classification of the owner
        will be returned. The classification of the owner
        will be done by class. (As byclass.)cCsV|j}|j}||@j}|j}tj|||d|g|gd�||_|j|_|j|_||_dS)N)rrr)	r�r"rrr�suprMr�ad)rrrrMrr�r�rrrr�s
zByClassOrDictOwner.__init__cCsdS)Nz[dict of] classr)rrrrr<�szByClassOrDictOwner.get_bynamecCs|jjS)N)r�r)rrrrr�szByClassOrDictOwner.get_clicCs0|\}}||jjkr |j�|�S|j�|�SdS)N)rr�rMr')rZxxx_todo_changemer+�kdrrrr'�szByClassOrDictOwner.get_kindcCs<|j|jjkr t}|j�|�}n|j�|�}|jj}||fS)N)rurr%r�r-rMr�)rrr+r�rrrr-�szByClassOrDictOwner.get_kindargr4cCsdS)NzKind (class / dict of class)r)rr=rrrr>�sz ByClassOrDictOwner.get_tabheaderNcCs�y||dkr>|dk	r>|dkr&|jjj}n|j�|�}|j�|�S|dk	rv|dkrv|j�|�}|tkrjtd��|j�	|�St�Wntk
r�td��YnXdS)Nrz<dict is not an equivalence class of Clodo, use dictof=() etczPArgument should be either
    <type except dict>
    dictof=<type>
    dictof=())
r�UniSetr�r�rArr�r�r�r')rrr"ZdorrrrA�s zByClassOrDictOwner.get_userkindcCsN|j|jjkr<|j|jjjkr$d}n|jj�|j�}d|S|jj	�|�SdS)Nz()z	dictof=%s)
rurr%rBrr�r�r�r5r)rrrrrrr5�sz&ByClassOrDictOwner.get_userkindargreprcCs|j�|�S)N)rr�)rrPrrrr��szByClassOrDictOwner.owners)r4)NN)
r[r\r]r�rr<rr'r-r>rAr5r�rrrrr�us	


r�c@s\eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�ZdS)�RetClaSetFamilycCs|�|jj�||_dS)N)rsr
rtr)rrrrrrr�szRetClaSetFamily.__init__cCs.||jkr|j|jkS|jjdk	o,|jj|kS)N)rurBrv)rrMrUrrrrw�s
zRetClaSetFamily._ge_ATOMcCs*||jkr|j|jkS|jdk	o(|j|kS)N)rurBrv)rrMrUrrrrx�s
zRetClaSetFamily._le_ATOMcCs|jjjjj�||�S)N)rBrr#rfr)rrMrrrrr��szRetClaSetFamily.c_altcCs|jjjj�|d�S)NF)rBr#rfrr@)rrMrrr�_get_arg_brief�szRetClaSetFamily._get_arg_briefcCsd|�|�S)Nz<referred by: %s>)r�)rrMrrrr}�szRetClaSetFamily.c_get_briefcCs$ddddd�|}d||�|�fS)Nzby less thanz
by at mostzby at leastzby more than)r�z<=z>=r�z<referred %s: %s>)r�)rrMrrrrrr��szRetClaSetFamily.c_get_brief_altcCs|j|jjdfS)Nz==)rrBr_)rrMrrrr��szRetClaSetFamily.c_get_ckccCs
d|jS)Nz	%r.refdby)rB)rrMrrrr~�szRetClaSetFamily.c_reprcCs0t|t�std��|jjj}||�f}t||�S)NzSoKind expected)r`r^r�rr#rfr0)r�sokr#r9rrrr:�s



zRetClaSetFamily.sokindN)
r[r\r]rrwrxr�r�r}r�r�r~r:rrrrr��s	r�c@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zddd
�Zdd�Z	dd�Z
dS)�ByRetClaSetcCs8tj|||dd�||_||_|j�t|�|_||_dS)NT)r
)	rr�rg�referrer_classifierrr�r�r%r�)rrrr�r��docrrrrs
zByRetClaSet.__init__cCsdS)Nzreferrer kindsr)rrrrr<
szByRetClaSet.get_bynamecCsi}|jj�|j|jj|�S)N)rr�Zcli_rcsr�r�r)r�memorrrrszByRetClaSet.get_clicCs`|jjdkr|j}n||jjjkr(d}n|f}g}x|D]}|�|j�|��q8W|jj	�
|�S)N�ORr)ru�opnamerBrr
r�rGr�r-rr	)rr&�ksZrksrrr�get_inverted_refkinds
z ByRetClaSet.get_inverted_refkindcCs"|r|�t|j|��S|jjSdS)N)r%rmr�rZ
refdbynothing)rr&rrrr' szByRetClaSet.get_kindr4cCs d|j�|�}|rd|}|S)NzReferrers by %sz{%s})r�r>)rr=�thrrrr>&szByRetClaSet.get_tabheadercsD��fdd�|jjD�}|��d�|�}�r8d|}n|s@d}|S)Ncsg|]}�j�|���qSr)r�r@)r6r)r=rrrr7-sz0ByRetClaSet.get_tabrendering.<locals>.<listcomp>z, z{%s}z	<Nothing>)rBr9�sortr8)rr*r=ZrsrYr)r=rrr@,s

zByRetClaSet.get_tabrenderingcGs�d}g}xf|D]^}t|t�rZ|j|jk	r@td|jj|jjf��|�|j�|dkrl|}q|�|j�	|��qWt
|�dks�|dkr�t|j|jj
�|��}n|}|�|�S)Nz:Expected a SoKind with the %r classifier, argument had %r.rN)r`r^rr�r)r�extendr_rGr-�lenrmrrr	r%)rr1Zfirstsokr_rBr�rrrrA7s"

zByRetClaSet.get_userkindN)r4)r[r\r]rr<rr�r'r>r@rArrrrr�s
r�c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�InRelFamilycCs||_|�|jj�dS)N)rrsr
rt)rrrrrrrSszInRelFamily.__init__cCs,tdd�|D��}tdd�|D��}||kS)NcSsg|]}|df�qS)rr)r6rrrrr7\sz(InRelFamily._eq_args.<locals>.<listcomp>cSsg|]}|df�qS)rr)r6rrrrr7]s)r�)rrMrUrrr�_eq_argsWszInRelFamily._eq_argscCs2||jkr|�|j|j�S|jjdk	o0|jj|kS)N)rur�rBrv)rrMrUrrrrw`s
zInRelFamily._ge_ATOMcCs.||jkr|�|j|j�S|jdk	o,|j|kS)N)rur�rBrv)rrMrUrrrrxfs
zInRelFamily._le_ATOMcCs|j�||�S)N)rr)rrMrrrrr�lszInRelFamily.c_altcCsd|j�|d�S)Nz<via %s>)rr@)rrMrrrr}oszInRelFamily.c_get_briefcCsd|j��|j�|�fS)Nz%s(%s))rr/r5)rrMrrrr~rs
zInRelFamily.c_reprN)
r[r\r]rr�rwrxr�r}r~rrrrr�Rs	r�c@s`eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zddd�Z	ddd�Z
dd�Zdd�ZdS)�ByInRelcCs*tj|||dd�||_|�t|�|_dS)NT)r
)rrr�r�r�r%)rrrr�rrrrxszByInRel.__init__cCs.|jjj}|j}||j|j�}|jddd�S)Nr4F)�safe)rr��PathZ	rel_tablerZrelatorZstra)rrY�Pr�rrrr�_rel2str}s
zByInRel._rel2strcs��jjj}|}�fdd�}|�d�r0|dd�}|�d�rr|dd��d�}d�jji}t||�}||j|�}�n||�d��r�|dd�}|�dd	��	�r�||j
|�}n�|�d
�r�|dd��d�}t|i�}||j|�}n�|�d��r|d
d��d�}t|i�}||j|�}nt|�d��rF|dd��d�}t
|�}||j|�}n@|�d��rz|dd��d�}t
|�}||j|�}ntd|��nf|�d��r�|dd�}|�d��r�|dd��d�}t
|�}||j|�}n||j|�}ntd|��|S)Ncs�jjjj|jf|��S)N)rr�heapycZRelation�code)�Rr1)rrr�mkrel�szByInRel._str2rel.<locals>.mkrel�_rN�[�]Zhpr�rz	f_locals[�	z
f_locals [�
zkeys()[�z__dict__.keys()[�zCant make a relation of %r.z->�z
f_valuestack[�
)rr�r�r�r�r
�evalZ
R_INDEXVAL�replace�isalnumZR_ATTRIBUTEZR_LOCAL_VARZR_CELLr�Z
R_INDEXKEYZ	R_HASATTR�SyntaxErrorZR_STACKZR_INTERATTR)rrr�Zorgsr��locrY�relr)rr�_str2rel�sP






zByInRel._str2relcCsdS)Nzreferred viar)rrrrr<�szByInRel.get_bynamecCsi}i}|jj�|j||�S)N)rr�Z	cli_inrelr�)rZmemokindZmemorelrrrr�szByInRel.get_clicCs
|�|�S)N)r%)rr&rrrr'�szByInRel.get_kindr4cCs$|sdSd}|dkrd|}|SdS)Nz
Referred Via:zReferred Via�andz{%s}r)rr=rYrrrr>�szByInRel.get_tabheadercCs|�|�}|dkrd|}|S)Nr�z{%s})r5)rrr=rYrrrr@�s
zByInRel.get_tabrenderingcs���fdd�|D��S)Ncsg|]}��|��qSr)r�)r6r)rrrr7�sz(ByInRel.get_userkind.<locals>.<listcomp>)r')rr1r)rrrA�szByInRel.get_userkindcs&�fdd�|jD�}|��d�|�S)Ncsg|]}t��|���qSr)rDr�)r6r)rrrr7�sz/ByInRel.get_userkindargrepr.<locals>.<listcomp>z, )rBr�r8)rrrMr)rrr5�szByInRel.get_userkindargreprN)r4)r4)
r[r\r]rr�r�r<rr'r>r@rAr5rrrrr�ws1
	
r�c@sHeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zddd
�Zddd�Z	dS)�
AndClassifiercCs@|dkr dd�dd�|D��}tj|||d||d�||_dS)Nz(%s)z & cSsg|]
}|j�qSr)r)r6rrrrr7�sz*AndClassifier.__init__.<locals>.<listcomp>)rrr)r8rrr1)rrrr1rrrr�s

zAndClassifier.__init__cCsdd�dd�|jD��S)Nz<%s>z & cSsg|]}|���qSr)r<)r6rrrrr7�sz,AndClassifier.get_byname.<locals>.<listcomp>)r8r1)rrrrr<�szAndClassifier.get_bynamecCs$i}|jj�tdd�|jD��|�S)NcSsg|]
}|j�qSr)r)r6rrrrr7�sz)AndClassifier.get_cli.<locals>.<listcomp>)rr�Zcli_andror1)rr�rrrr�szAndClassifier.get_clicCs>g}x(t||j�D]\}}|�|�|��qW|jjj�|�S)N)�zipr1rGr'rr�Zfam_AndZ_cons)rr&r�ZkiZcirrrr'�szAndClassifier.get_kindcCsdd�dd�|jD��S)Nz(%s)z & cSsg|]}|���qSr)r/)r6rrrrr7�sz.AndClassifier.get_reprname.<locals>.<listcomp>)r8r1)rrrrr/�szAndClassifier.get_reprnamer4cCs.dd�dd�|jD��}|dkr*d|}|S)Nz%sz & cSsg|]}|�d��qS)r�)r>)r6rrrrr7�sz/AndClassifier.get_tabheader.<locals>.<listcomp>r�z(%s))r8r1)rr=rYrrrr>�szAndClassifier.get_tabheadercCsTg}x0t|j|j�D]\}}|�|d�}|�|�qWd�|�}|dkrPd|}|S)Nr�z & z(%s))r�rBr1r@rGr8)rr*r=�ssrMZclrrYrrrr@�s
zAndClassifier.get_tabrenderingN)r4)r4)
r[r\r]rr<rr'r/r>r@rrrrr��s
r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�ModuleFamilycCs$|�|jj�||_|�|�|_dS)N)rsr
rtrr�r�)rrrrrrrszModuleFamily.__init__cCs
||jkS)N)rB)rrMrUrrrryszModuleFamily.c_containscCs|j�|j�S)N)rr�rB)rrMrrrr�	szModuleFamily.c_get_rendercCs|j�t|j��|j�S)N)rr�r�rB)rrMrrrr}szModuleFamily.c_get_briefcCsd|j��|j�|�fS)Nz%s(%s))rr/r5)rrMrrrr~s
zModuleFamily.c_reprN)r[r\r]rryr�r}r~rrrrrs
rc@sHeZdZdd�Zdd�Zdd�Zdd�Zdd
d�Zdd
d�Zdd�Z	dS)�ByModulecsn�fdd�}|j�|jjjj|jjjj|d�}t�	�|||�|jjj�_
d�_|�t
���_|jj�_dS)Ncs�jd7_|S)NrN)�nc)r)rrrr�sz#ByModule.__init__.<locals>.classifyr)r�Zcli_user_definedr
r�rrr�rBrr�
not_modulerr�rr%r�r�)rrrr�rr)rrrs
zByModule.__init__cCsdS)N�moduler)rrrrr<%szByModule.get_bynamecCs|dkr|jS|�|�SdS)N)rr%)rr&rrrr'(szByModule.get_kindcCs(||jkrdS|j|jkst�|jSdS)N)rrur%�AssertionErrorrB)rrrrrr-.s
zByModule.get_kindargr4cCsdS)Nr�r)rr=rrrr>5szByModule.get_tabheaderNcCs�|dkr|dkr|jS|dkrXy|jjjjj|}Wqftk
rTtd|��YqfXn|jj�|�}t	||j
�s�tdt|���|dk	r�|j
|kr�td||j
f��|�|�S)Nz(No module %r in View.target.sys.modules.z3The specified object is not of module type, but %r.z,The specified module has not name %r but %r.)rrr�target�sys�modules�KeyErrorr)r�r`r�r�r�r[r%)rr�at�mrrrrA8s zByModule.get_userkindcCsT||jkrdS|j}|j}d|}|jjjj�|�|k	rL|dtt	|��7}|SdS)Nr4z%rz, at=%s)
rrBr[r�_rootrr	�getr{r|)rrrrrrrrr5Ks
zByModule.get_userkindargrepr)r4)NN)
r[r\r]rr<r'r-r>rAr5rrrrrs

rc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�	AltFamilycCs|dkrtd|��||_dS)N)r�z<=z==z!=r�z>=zNo such comparison symbol: %r)r)�altcode)rrrrrrrXszAltFamily.__init__cCs|jj�|j|j�S)N)rBrur�r)rrMrrrr}]szAltFamily.c_get_briefcCs6t|j���}|ddkr&|j|d<ntd��t|�S)Nr�z==zJCan not make alternative kind, non-equality comparison on underlying kind.)�listrBr(rr)ro)rrM�ckcrrrr�`szAltFamily.c_get_ckccCsdt|j�|jfS)Nz
%s.alt(%r))rDrBr)rrMrrrr~iszAltFamily.c_reprN)r[r\r]rr}r�r~rrrrrWs	rc@s$eZdZdd�Zdd�Zdd�ZdS)�FindexFamilycCs$|�|jj�||_|�|�|_dS)N)rsr
rtrr�r�)rrrrrrrnszFindexFamily.__init__cCsBd|jkrt|jj�ks$ndSd|jj|jj|jfSdS)Nrz<None>z%s / %d)rBr�rr9r?)rrMrrrr}ss zFindexFamily.c_get_briefcCsd|j��|jfS)Nz%s(%d))rr/rB)rrMrrrr~yszFindexFamily.c_reprN)r[r\r]rr}r~rrrrrmsrc@s.eZdZdd�Zdd�Zdd�Zddd	�Zd
S)�ByFindexcCsJdd�|D�|_dd�|jD�}tj||||d�||_|�t|�|_dS)NcSsg|]}|j�|��qSr)rur�)r6r&rrrr7sz%ByFindex.__init__.<locals>.<listcomp>cSsg|]}|d�qS)rr)r6rrrrr7�s)r)�altsrrr9r�rr%)rrrr9rrrrr~s
zByFindex.__init__cCs,tdd�|jD��}i}|jj�||�}|S)NcSsg|]\}}}|j||f�qSr)r)r6r*r&r,rrrr7�sz$ByFindex.get_cli.<locals>.<listcomp>)rorrr�Z
cli_findex)rrr�rrrrr�szByFindex.get_clicCsd|jfS)Nz"index of first matching kind of %s)r9)rrrrr<�szByFindex.get_bynamer4cCsdS)NzFirst Matching Kind / Indexr)rr=rrrr>�szByFindex.get_tabheaderN)r4)r[r\r]rrr<r>rrrrr}src@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zd9dd�Zdd�Z
dd�Zd:dd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�ZdS);�_GLUECLAMP_)
z_parent:ImpSetz_parent:Viewz_parent.View:hvz_parent:UniSetz _parent.UniSet:fam_mixin_argatomz_parent:Usez_root.guppy.etc.etc:str2intz_root:rez_root:typesz_root:builtinscOs|jj|f|�|�S)N)r��fam_EquivalenceRelation)r�constructorr1r2rrrr�sz_GLUECLAMP_._er_by_cCs|jt|dd�S)N�Clodo)r)rr�)rrrr�
_get_Clodo�sz_GLUECLAMP_._get_ClodocCs|jt|dd�S)NZId)r)rr)rrrr�_get_Id�sz_GLUECLAMP_._get_IdcCs|jt|dd�S)NZIdset)r)rr�)rrrr�
_get_Idset�sz_GLUECLAMP_._get_IdsetcCs|jt|dd�S)Nr�)r)rr)rrrr�_get_Module�sz_GLUECLAMP_._get_ModulecCs|jt|dd�S)Nr)r)rr�)rrrr�
_get_Unity�sz_GLUECLAMP_._get_UnitycCs|�|j�S)N)�mker_refdbyr)rrrr�_get_Rcs�sz_GLUECLAMP_._get_RcscCs6t|�dkr|jSdd�|D�}d}|j�t|||�S)NrcSsg|]
}|j�qSr)r)r6r#rrrr7�sz(_GLUECLAMP_.mker_and.<locals>.<listcomp>)r�rr�rr�)rZers�classifiersrrrr�mker_and�s
z_GLUECLAMP_.mker_andNcs,�dkrd�jj�������fdd��S)Nz	%s.dictofcs��t���j�S)N)rrrr)r#rrrrr �sz)_GLUECLAMP_.mker_dictof.<locals>.<lambda>)rrr!)rr#rr)r#rrr�mker_dictof�s
z_GLUECLAMP_.mker_dictofcCsiS)Nr)rrrr�_get_memo_er�sz_GLUECLAMP_._get_memo_ercCs(|j�|�}|dkr$|�|j|<}|S)N)Zmemo_err)rrrrJrrrr!�sz_GLUECLAMP_.mker_memoizedcs,�dkrd�jj�������fdd��S)Nz	%s.refdbycs.��t���jj�jd��j���jjf�S)Nz�%s
Classify by <%s> of referrers.
This classifier uses the %r classifier to classify the
referrers of the object. The classifications of the referrers
are collected in a set. This set becomes the classification of
the object.
)rr�rr�rr<rr)r#rrrrr �sz)_GLUECLAMP_.mker_refdby.<locals>.<lambda>)rrr!)rr#rr)r#rrrr�s
z_GLUECLAMP_.mker_refdbycCs|�t|d�S)N�Size)rr�)rrrr�	_get_Size�sz_GLUECLAMP_._get_SizecCs|�t|d�S)Nr�)rr�)rrrr�	_get_Type�sz_GLUECLAMP_._get_TypecCs|j}|�t|d|j�S)NZVia)rrr�r�)rrrrr�_get_Via�sz_GLUECLAMP_._get_ViacCs�t|t�r|St|t�s td��d|}|}|�d�r@|�d�sHt|��|�d��d�}|�	d�}t
|�dkrvt|��|d}|�|d�}|j�
|�}|d	kr�t
|�dkr�t|��d}�nt
|�d
kr�t|��|dkr�t|��yt|j|��d�}Wn&tk
�rt|j|���}YnXt||��s8td
|��|dd	k�sNt|��|d�	d�}t
|�dk�rrt|��d�|dd��}	|d}
|j|	k�r�td|||	f��|j|
k�r�td|||
f��|S)Nz"type, class or basestring expectedz�String argument to tc_adapt should be of form
'<class MODULE.NAME at 0xADDR>' or
'<type MODULE.NAME at 0xADDR>' or
'<at 0xADDR>'. I got: %rr�r�� r�rr�r�)r��classr�z%s object expectedrNr�z,The %s %r has wrong __module__, expected %r.z*The %s %r has wrong __name__, expected %r.)r`r��strr�r��endswithr)r�r�r�r�Zstr2intrr�r�r��
capitalizer�r�r�r8r\r[)rr&�errrr��addrrr��namesZ
modulenameZtcnamerrrr��sX


z_GLUECLAMP_.tc_adaptcCs4t|t�rd}ntd��d||j|jtt|��fS)Nr�z
type expectedz<%s %s.%s at %s>)r`r�r�r\r[r{r|)rr&r�rrrr�)s
z_GLUECLAMP_.tc_reprcs$dd�dd�d����fdd�}|S)NcSs|S)Nr)r&rrrr ;rVz&_GLUECLAMP_._get_alt.<locals>.<lambda>cSs|S)Nr)r&rrrr <rV)z==z!=cs.��|�}|dkr&��t|�}|�|<||�S)N)rr�r)rr,rM)�altmemorrrr?s

z!_GLUECLAMP_._get_alt.<locals>.altr)rrr)r2rr�_get_alt9sz_GLUECLAMP_._get_altcCs
|�|�S)N)�findex)rrrrrr�Gsz_GLUECLAMP_.bipercCs
|�t�S)N)r�r�)rrrr�_get_dictofJsz_GLUECLAMP_._get_dictofcCs|�|jj�S)N)r"r
r�)rrrr�_get_dictofnothingMsz_GLUECLAMP_._get_dictofnothingcCsBi}x8t|jjj���D]"\}}|�d�r|dd�||<qW|S)Nr����)rr��_module�__dict__rIr-)rr�r&rJrrr�_get_invtypemodPs

z_GLUECLAMP_._get_invtypemodcCs|jjjS)N)r
r�r�)rrrr�_get_notdictWsz_GLUECLAMP_._get_notdictc	Gs$|�t|dd�dd�|D��|�S)Nz
findex(%s)z, cSsg|]}t|��qSr)rD)r6r&rrrr7^sz&_GLUECLAMP_.findex.<locals>.<listcomp>)rrr8)rr9rrrr4Zs
z_GLUECLAMP_.findexcCs|jjS)N)rlrf)rrrr�_get_refdbynothingbsz_GLUECLAMP_._get_refdbynothingcGs�d}g}|std��xl|D]d}|��}|dkr8|d}n|d|k	rTtdt|���|ddkrptdt|���|�|d�qWt||j�|��S)	z sokind(0..*:Kind+) -> SetOfKind
Nz$At least one argument must be given.rz&Kind at index %d has wrong classifier.r�z==z'Kind at index %d has wrong comparision.rN)r)r(r�rGrmrr	)rr9r*r_rrrrrr:es 

z_GLUECLAMP_.sokindcCst|jd�S)Nr)rkr)rrrr�
_get_sonokindzsz_GLUECLAMP_._get_sonokind)N)N)r[r\r]Z	_imports_rrrrrrr r"r#r$r!rr&r'r(r�r�r3r�r5r6r:r;r4r<r:r=rrrrr�s8

8rN)Zguppy.etc.Descriptorrr�objectr^r0rkrmrrrr�r�r�r�r�r�r�r�rr�r�r�r�r�r�rrrrrrrrrr�<module>s:   $'PVZ6M%`)C

Youez - 2016 - github.com/yon3zu
LinuXploit