3 \/@sddlTd ddZeeefZddZd!d d Zd d ZddZ d"ddZ ddZ ddZ d#ddZ ddZGdddeZGdddeZdS)$)* execcCst|||tS)N)compileZ PyCF_ONLY_AST)sourcefilenamemoder /usr/lib64/python3.6/ast.pyparsesr cs:t|trt|dd}t|tr&|j}fdd|S)Neval)rcst|tr|jSt|ttfr$|jSt|tr4|jSt|trNt t |j St|t rht t |j St|trtt |j St|trtfddt|j|jDSt|tr|jSt|tot|jttfr |j}t|trrt|jtr| S| Snht|trrt|jttfrr|j}|j }t|trrt|trrt|jtrj||S||St!dt"|dS)Nc3s"|]\}}||fVqdS)Nr ).0kv)_convertr r Asz1literal_eval.._convert..zmalformed node or string: )# isinstanceConstantvalueStrZBytessZNumnZTupletuplemapZeltsZListlistSetsetZDictdictzipkeysvaluesZ NameConstantZUnaryOpopZUAddZUSuboperand _NUM_TYPESZBinOpZAddZSubleftright ValueErrorrepr)noder"r$r%)rr r r3s>            zliteral_eval.._convert)rstrr Z Expressionbody)Znode_or_stringr )rr literal_eval(s     "r+TFcs2fddt|ts*td|jj|S)NcsttrfddtD}djjdjr>dd|Dn dd|Df}rjr||rfdphd7}|djfd djD7}|d Sttrd djfd dDStS) Ncsg|]\}}||fqSr r )r ab)_formatr r csz)dump.._format..z%s(%sz, css|]}d|VqdS)z%s=%sNr )r fieldr r r resz(dump.._format..css|]\}}|VqdS)Nr )r r,r-r r r rgs c3s$|]}d|t|fVqdS)z%s=%sN)getattr)r r,)r.r(r r rks)z[%s]c3s|]}|VqdS)Nr )r x)r.r r ros) rAST iter_fields __class____name__join _attributesrr')r(Zfieldsrv)r.annotate_fieldsinclude_attributes)r(r r.as    zdump.._formatzexpected AST, got %r)rr5 TypeErrorr7r8)r(r<r=r )r.r<r=r dumpXs  r?cCsBx||_n|j}xt|D]}|||qNWdS)Nr@rA)r:rBr@rAiter_child_nodes)r(r@rAchild)_fixr r rIs    z#fix_missing_locations.._fixrr )r(r )rIr fix_missing_locationss rKrJcCs2x,t|D] }d|jkr t|dd||_q W|S)Nr@r)walkr:r2r@)r(rrHr r r increment_linenos rMc cs>x8|jD].}y|t||fVWqtk r4YqXqWdS)N)_fieldsr2AttributeError)r(r0r r r r6s  r6ccsTxNt|D]B\}}t|tr$|Vq t|tr x|D]}t|tr4|Vq4Wq WdS)N)r6rr5r)r(namer0itemr r r rGs    rGcCst|ttttfs"td|jj|jo6t|jdt sr7r8r*ZExprrrrrr)inspectZcleandoc)r(ZcleantextrRr r r get_docstrings   rTccs@ddlm}||g}x$|r:|j}|jt||VqWdS)Nr)deque) collectionsrUpopleftextendrG)r(rUZtodor r r rLs   rLc@seZdZddZddZdS) NodeVisitorcCs"d|jj}t|||j}||S)NZvisit_)r7r8r2 generic_visit)selfr(methodZvisitorr r r visits zNodeVisitor.visitcCs\xVt|D]J\}}t|tr@x6|D]}t|tr"|j|q"Wq t|tr |j|q WdS)N)r6rrr5r])r[r(r0rrQr r r rZs    zNodeVisitor.generic_visitN)r8 __module__ __qualname__r]rZr r r r rYsrYc@seZdZddZdS)NodeTransformercCsxt|D]\}}t|tr|g}xL|D]D}t|tr`|j|}|dkrJq&nt|ts`|j|q&|j|q&W||dd<q t|tr |j|}|dkrt||q t|||q W|S)N) r6rrr5r]rXappenddelattrrC)r[r(r0Z old_valueZ new_valuesrrDr r r rZ.s&         zNodeTransformer.generic_visitN)r8r^r_rZr r r r r` s$r`N)rr)TF)rJ)T)Z_astr intfloatcomplexr#r+r?rFrKrMr6rGrTrLobjectrYr`r r r r s  0     %