3 \v)@sddlZddlZddlZddlmZmZddddgZGdddZGdddeZdd dZ e d krej Z e j d d d de jZejsejjrdZndZe edS)N)CommandCompilercompile_commandInteractiveInterpreterInteractiveConsoleinteractrc@sBeZdZdddZdddZdd Zdd d Zd d ZddZdS)rNcCs$|dkrddd}||_t|_dS)NZ __console__)__name____doc__)localsrcompile)selfr r /usr/lib64/python3.6/code.py__init__s  zInteractiveInterpreter.__init__singlec CsRy|j|||}Wn$tttfk r6|j|dSX|dkrDdS|j|dS)NFT)r OverflowError SyntaxError ValueErrorshowsyntaxerrorruncode)r sourcefilenameZsymbolcoder r r runsource's  z InteractiveInterpreter.runsourcec Cs>yt||jWn(tk r&Yn|jYnXdS)N)execr SystemExit showtraceback)r rr r r rNs zInteractiveInterpreter.runcodec Cstj\}}}|t_|t_|t_|rp|tkrpy|j\}\}}}} Wntk rVYnXt||||| f}|t_tjtj krt j ||} |j dj | ntj|||dS)N)sysexc_info last_type last_valuelast_tracebackrargsr excepthook__excepthook__ tracebackformat_exception_onlywritejoin) r rtypevaluetbmsgZdummy_filenamelinenooffsetlinelinesr r r ras    z&InteractiveInterpreter.showsyntaxerrorc Cs|tj\t_t_}}|t_zPtj|d|d|j}tjtj krT|j dj |ntj|d|d|Wdd}}XdS)Nrr) rrr r!r"r&format_exceptiontb_nextr$r%r(r))r Zlast_tbZeir1r r r rs z$InteractiveInterpreter.showtracebackcCstjj|dS)N)rstderrr()r datar r r r(szInteractiveInterpreter.write)N)rr)N) r __module__ __qualname__rrrrrr(r r r r rs   ' #c@s:eZdZdddZddZdddZd d Zdd d ZdS)rN cCstj||||_|jdS)N)rrr resetbuffer)r r rr r r rs zInteractiveConsole.__init__cCs g|_dS)N)buffer)r r r r r:szInteractiveConsole.resetbufferc!CsPy tjWntk r$dt_YnXy tjWntk rJdt_YnXd}|dkrx|jdtjtj||jjfn|r|jdt |d}xyP|rtj}ntj}y|j |}Wn t k r|jdPYn X|j |}Wqt k r|jd|jd}YqXqW|dkr4|jd |jjn|d krL|jd|dS) Nz>>> z... zFType "help", "copyright", "credits" or "license" for more information.zPython %s on %s %s (%s) z%s r z KeyboardInterrupt znow exiting %s... r)rZps1AttributeErrorZps2r(versionplatform __class__rstr raw_inputEOFErrorpushKeyboardInterruptr:)r bannerexitmsgZcprtmorepromptr0r r r rsF         zInteractiveConsole.interactcCs6|jj|dj|j}|j||j}|s2|j|S)Nr<)r;appendr)rrr:)r r0rrHr r r rDs   zInteractiveConsole.pushrcCst|S)N)input)r rIr r r rBs zInteractiveConsole.raw_input)Nr9)NN)r)rr7r8rr:rrDrBr r r r rs   6c CsJt|}|dk r||_n"y ddl}Wntk r8YnX|j||dS)Nr)rrBreadline ImportErrorr)rFZreadfuncZlocalrGZconsolerLr r r rs __main__z-q store_truez*don't print version and copyright messages)actionhelpr)NNNN)rr&argparseZcodeoprr__all__rrrrArgumentParserparser add_argument parse_argsr#qflagsquietrFr r r r s$t