].@sddlTddddZddZdd d d Zd d ZddZdddZddZddZdddZ ddZ Gddde Z Gddde Z dS) )*z execcCst|||tS)N)compileZ PyCF_ONLY_AST)sourcefilenamemoder(/opt/alt/python35/lib64/python3.5/ast.pyparsesr csUt|tr!t|dd}t|tr9|j}fdd|S)Nrevalcst|ttfr|jSt|tr2|jSt|trWtt|j St|t r|t t|j St|t rt t|j St|trtfddt|j|jDSt|tr|jSt|trbt|jttfrbt|jtttfrb|j}t|jtrZ| S| Snt|trt|jttfrt|jtttfrt|jtttfr|j}|j}t|jtr||S||Stdt |dS)Nc3s-|]#\}}||fVqdS)Nr).0kv)_convertrr =sz1literal_eval.._convert..zmalformed node or string: )! isinstanceStrZBytessZNumnZTupletuplemapZeltsZListlistSetsetZDictdictzipkeysvaluesZ NameConstantvalueZUnaryOpopZUAddZUSuboperandZBinOpZAddZSubrightleft ValueErrorrepr)noder r"r!)rrr r1s@zliteral_eval.._convert)rstrr Z Expressionbody)Znode_or_stringr)rr literal_eval&s  #r(TFcsGfddt|ts=td|jj|S)Ncs ttrfddtD}djjdjrYdd|Dndd|Df}rjr||rdpd7}|djfd djD7}|d Sttrd djfd dDStS) Ncs(g|]\}}||fqSrr)r ab)_formatrr bs z)dump.._format..z%s(%sz, css|]}d|VqdS)z%s=%sNr)r fieldrrr rdsz(dump.._format..css|]\}}|VqdS)Nr)r r)r*rrr rfs c3s.|]$}d|t|fVqdS)z%s=%sN)getattr)r r))r+r%rr rjs)z[%s]c3s|]}|VqdS)Nr)r x)r+rr rns) rAST iter_fields __class____name__join _attributesrr$)r%Zfieldsrv)r+annotate_fieldsinclude_attributes)r%r r+`s$zdump.._formatzexpected AST, got %r)rr2 TypeErrorr4r5)r%r9r:r)r+r9r:r dumpWs r<cCs[xTdD]L}||jkr||jkrt||rt||t||qW|S)Nlineno col_offset)r=r>)r7hasattrsetattrr/)new_nodeZold_nodeattrrrr copy_locationus  rCcs&fdd|dd|S)Ncsd|jkr3t|ds*||_n |j}d|jkrft|ds]||_n |j}x$t|D]}|||qsWdS)Nr=r>)r7r?r=r>iter_child_nodes)r%r=r>child)_fixrr rFs    z#fix_missing_locations.._fixrr)r%r)rFr fix_missing_locationss rHrGcCsCx<t|D].}d|jkr t|dd||_q W|S)Nr=r)walkr7r/r=)r%rrErrr increment_linenosrJc csEx>|jD]3}y|t||fVWq tk r<Yq Xq WdS)N)_fieldsr/AttributeError)r%r-rrr r3s  r3ccslxet|D]W\}}t|tr0|Vq t|tr x"|D]}t|trF|VqFWq WdS)N)r3rr2r)r%namer-itemrrr rDs rDcCst|ttttfs1td|jj|jrt|jdt rt|jdj t r|rddl }|j |jdj jS|jdj jSdS)Nz%r can't have docstringsr)rZAsyncFunctionDefZ FunctionDefZClassDefZModuler;r4r5r'ZExprrrinspectZcleandocr)r%ZcleanrOrrr get_docstrings rPccsTddlm}||g}x.|rO|j}|jt||Vq"WdS)Nr)deque) collectionsrQpopleftextendrD)r%rQZtodorrr rIs   rIc@s(eZdZddZddZdS) NodeVisitorcCs/d|jj}t|||j}||S)NZvisit_)r4r5r/ generic_visit)selfr%methodZvisitorrrr visitszNodeVisitor.visitcCs|xut|D]g\}}t|trXxI|D]"}t|tr/|j|q/Wq t|tr |j|q WdS)N)r3rrr2rY)rWr%r-rrNrrr rVs zNodeVisitor.generic_visitN)r5 __module__ __qualname__rYrVrrrr rUs  rUc@seZdZddZdS)NodeTransformercCsxt|D]\}}t|trg}xj|D]b}t|tr|j|}|dkrkq5nt|ts|j|q5|j|q5W||dds  1   %