Your IP : 216.73.217.88


Current Path : /proc/242857/root/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/
Upload File :
Current File : //proc/242857/root/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyc

�
��]c@s'ddlmZmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
ddlmZm
Z
dejfd��YZee	�Zde
fd	��YZd
efd��YZdefd
��YZdefd��YZd�Zd�Zd�Zd�ZdS(i����(terrortmessageN(tUtils(tpy_object_typetunspecified_type(tCythonTransformtEnvTransformt
TypedExprNodecBseZd�ZRS(cCs
||_dS(N(ttype(tselfR((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyt__init__
s(t__name__t
__module__R
(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyRstMarkParallelAssignmentscBs�eZeZeZd�Zdd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�ZRS(cCsg|_tt|�j|�S(N(tparallel_block_stacktsuperR
R
(R	tcontext((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR
s	c
Cst|tjtjf�r�|jdkr.dS|jr|jd}|jj	|j�}|r�|\}}|r�|r�||kr�||f}t
|jd|�q�n	|j}||f|j|j<|jj
|�qn9t|tj�rx$|jD]}	|j|	t�q�WndS(Ni����sMReduction operator '%s' is inconsistent with previous reduction operator '%s'(t
isinstancet	ExprNodestNameNodetNodest
PyArgDeclNodetentrytNoneRtassignmentstgetRtpostassigned_nodestappendtSequenceNodetargstmark_assignmenttobject_expr(
R	tlhstrhst
inplace_opt
parallel_nodetprevious_assignmentRtprevious_inplace_optttarg((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR!s*	
		cCs'|j|j|j�|j|�|S(N(RR!R"t
visitchildren(R	tnode((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyt"visit_WithTargetAssignmentStatNodeDs
cCs'|j|j|j�|j|�|S(N(RR!R"R)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_SingleAssignmentNodeIs
cCs8x$|jD]}|j||j�q
W|j|�|S(N(tlhs_listRR"R)(R	R*R!((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_CascadedAssignmentNodeNs
cCs0|j|j|j�|j�|j|�|S(N(RR!tcreate_binop_nodetoperatorR)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_InPlaceAssignmentNodeTs
c
Cs�t}|jj}|j}t|tj�r�|j}|jdkr�|j
r�|j�j|j
�}|sv|jr~|j
dkr�t|j�dkr�|jd}q{|j
dkr{t|j�dkr{|jrxt|j�dkrx|jd}|j
ru|j|j��}|jrr|j|jdtj|jdddtj��|jd}|jd}qrquqxq{q~q�nt|tj�rp|j}|jdkrp|j
rp|j�j|j
�}|s�|jrm|j
dkrjt}x%|jd D]}	|j||	�q�Wt|j�dkrg|j|tj|jd|jd|jd��qgqjqmqpn|s�|j|tj|jd|d
tj|jdd���n|j|�|S(Ntreversediit	enumerateitvaluetPY_SSIZE_T_MAXRtrangetxranget+tbasetindext0(R6R7(tFalsetiteratortsequencettargetRRtSimpleCallNodetfunctionR	Rtis_nametcurrent_envtlookuptnamet
is_builtintlenRtis_sequence_constructort
infer_typetis_builtin_typeRtIntNodeRt
PyrexTypestc_py_ssize_t_typetTruet
binop_nodet	IndexNodeR)(
R	R*t
is_specialR>R?RARR=t
iterator_typeR(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_ForInStatNodeYsZ		$$
		


"	
 	
cCsg|j|j|j�|jdk	rV|j|jtj|jd|j|j��n|j|�|S(NR8(	RR?tbound1tstepRRRORR)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_ForFromStatNode�s
cCs|j|�|S(N(R)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_WhileStatNode�s
cCs6|jdk	r%|j|jt�n|j|�|S(N(R?RRR R)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_ExceptClauseNode�s
cCsdS(N((R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_FromCImportStatNode�scCsJx6|jD]+\}}|dkr
|j|t�q
q
W|j|�|S(Nt*(titemsRR R)(R	R*RER?((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_FromImportStatNode�s

cCsd|jr(|j|jttj��n|jrP|j|jttj��ntj||�|S(N(	tstar_argRRtBuiltint
tuple_typetstarstar_argt	dict_typeRtvisit_FuncDefNode(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyt
visit_DefNode�s		cCs5x!|jD]}|j||�q
W|j|�|S(N(RRR)(R	R*R(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_DelStatNode�s
cCs�|jr|jd|_n	d|_t}|jrt|jsIt|_q�|jjp_|jj|_|jj}nt|_|jo�|jj}|jj|�|p�t|j�dk}|j	r�|r�|jr�t
|jd�t|_	n|jr^|j}dddg|_|j
|�||_|jj�|jrx|j|j�|_qxn|j
|�|jj�t|_	|S(Ni����isOnly prange() may be nestedtbodyR?R(RtparentRR<t	is_prangeRNtis_parallelRRGtparallel_errorsRRtchild_attrsR)tpoptelse_clausetvisit(R	R*tnestedRj((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_ParallelStatNode�s:							
	
	

	cCs |jrt|jd�n|S(Ns&Yield not allowed in parallel sections(RRR(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_YieldExprNode�s	cCst|j�|_|S(N(tboolRtin_parallel(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_ReturnStatNode�sN(RRR<tin_loopRiR
RRR+R,R.R1RSRVRWRXRYR\RcRdRoRpRs(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR
s&	#					8								,	tMarkOverflowingArithmeticcBs�eZeZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
eZeZeZ
eZd�Zd�Zd	�ZRS(
cCs+g|_|j|_tt|�j|�S(N(t	env_stacktscopetenvRRut__call__(R	troot((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyRy�s	cCs-t|j|_}|j|�||_|S(N(R<tmight_overflowR)(R	R*tsaved((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_safe_nodes
	cCs|j|�|S(N(R)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_neutral_node
s
cCs-t|j|_}|j|�||_|S(N(RNR{R)(R	R*R|((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_dangerous_nodes
	cCsB|jj|j�|j|_|j|�|jj�|_|S(N(RvRRxtlocal_scopeR}Rk(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyRbs

cCs@|jr<|jp$|jj|j�}|r<t|_q<n|S(N(R{RRxRDRERN(R	R*R((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_NameNodes
	cCs-|jdkr|j|�S|j|�SdS(Ns&|^(R0R~R(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_BinopNode"s
cCsmt|tj�rit|tj�ritj|j�ri|jpQ|jj	|j
�}|rit|_qindS(N(
RRRKRRtlong_literalR4RRxRDRERNR{(R	R!R"R((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytvisit_assignment0scCs'|j|j|j�|j|�|S(N(R�R!R"R)(R	R*((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR,8s
cCs8x$|jD]}|j||j�q
W|j|�|S(N(R-R�R"R)(R	R*R!((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR.=s
(RRR<R{RyR}R~RRbR�R�tvisit_UnopNodetvisit_UnaryMinusNodeR1t
visit_NodeR�R,R.(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyRu�s									tPyObjectTypeInferercBseZdZd�ZRS(s0
    If it's not declared, it's a PyObject.
    cCs?x8|jj�D]'\}}|jtkrt|_qqWdS(sY
        Given a dict of entries, map all unspecified types to a specified type.
        N(tentriesR[RRR(R	RwRER((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytinfer_typesGs(RRt__doc__R�(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR�CstSimpleAssignmentTypeInferercBseZdZd�ZRS(s�
    Very basic type inference.

    Note: in order to support cross-closure type inference, this must be
    applies to nested scopes in top-down order.
    cs�|jd}|jd}|tkr/t}nN|dkrDt}n9x2|jj�D]!}|jtkrTt	|_qTqTWdSi�i�g�x�|jj
�D]�\}}|jtkr�t�}x*|jD]}|j
|j|j��q�W|rG|�|<xQ|D]9}	|	�kr/t|g��|	<q�|	j|�qWqW�j|�q�q�W���fd�}
xtr�x�r|�j�}g|jD]}|jj|�^q�}|r�tj|�r�|||j|j�}nt	}xW|j�D]I}
|
jtkr||
_q�|
j|ks�td||
|f��q�W|rot|jd|j|jf�n|
|�q|Wx��j
�D]�\}}t|�dkr�|t|g�kr�g|jD]*}|j|�dkr�|j|�^q�}|ry|||j|j�|_g|jD]}|j|�^q"}|||j|j�|_|
|��|=�rvPqvqyq�q�W�ssPqsqsWx@�D]8}t	|_|r�t|jd|j|jf�q�q�WdS(	NR�sinfer_types.verbosecsi|�krexV�|D]G}�|}|j|�|r||kr�|=�j|�qqWndS(N(tremoveR(tdepRt
entry_deps(tdependancies_by_entrytentries_by_dependancytready_to_infer(sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytresolve_dependancyxs

sIunexpected type mismatch between closures for inferred type %s: %s vs. %ss inferred '%s' to be of type '%s'is*inferred '%s' to be of type '%s' (default)((t
directivesRNtaggressive_spanning_typeRtsafe_spanning_typeR�tvaluesRRRR[tsettcf_assignmentstupdatettype_dependenciesRwtaddRRkR"RIRtallR{Rtall_entriestAssertionErrorRRERG(R	Rwtenabledtverboset
spanning_typeRRER�tassmtR�R�ttypest
entry_typetetdeps((R�R�R�sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR�Xs~

			


		%#'
*"

	(RRR�R�(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR�OscCsr||kr|}n4|tjks3|tjkr7tStj||�}|tjtjtjfkrntjS|S(N(RLtc_bint_typeRR�t
c_double_typetc_float_typeR^t
float_type(ttype1ttype2tresult_type((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytfind_spanning_type�s	cCsVtt|�}|jr$|j}n|jr9|j}n|jrR|j|�n|S(N(treduceR�tis_referencet
ref_base_typetis_consttconst_base_typetis_cpp_classtcheck_nullary_constructor(R�R{RR�((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR��s			cCs�tt|�}|jr$|j}n|jr9|j}n|jrR|j|�n|jru|j	dkrnt
S|Sna|tjkr�|S|tj
kr�|S|jr�|S|jr�|S|jr�|S|jr�|r�|St
S(Ntstr(R�R�R�R�R�R�R�R�tis_pyobjectRERRLR�R�tis_ptrt	is_structtis_int(R�R{RR�((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyR��s0							cCst�S(N(R�(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pytget_type_inferer�s(tErrorsRRRRR^RLtCythonRRRtVisitorRRtExprNodeRR R
RutobjectR�R�R�R�R�R�(((sP/opt/alt/python27/lib64/python2.7/site-packages/Cython/Compiler/TypeInference.pyt<module>s"�Kd		
	,