thonny源码
2019-07-29 09:36:16 0 举报
流程图
作者其他创作
大纲/内容
函数_init_server_loop
python代码
_report_backend_crash
running.py
python代码执行输出
SubprocessProxy
函数execute_scriptget_shell().submit_magic_command(cd_cmd_line + exe_cmd_line)
shell.py1
函数cmd_run_current_scriptself.execute_current(\"Run\")
self._handle_socket_request(client_socket)
函数 SubprocessProxy类的send_commandself._send_msg(cmd)
thonny1.开启socket监听、连接、代码接收 2.代码本地保存和执行 3.代码执行结果socket传输
1.使用websocket与浏览器传输2.代码文件名和保存路径由浏览器指定3.保证一次只运行一个python文件,分别用两个队列存储正执行的代码文件名和输出(其中找到程序结束的标志后将执行完的文件名出队)
shell.py2
get_workbench().event_generate(\"CommandAccepted\
函数event_generate
self._poll_socket_requests()
函数_send_msgself._proc.stdin.write(serialize_message(msg) + \"\\") self._proc.stdin.flush()
函数 Runner类的send_commandresponse = self._proxy.send_command(cmd)【不知道self._proxy是什么时候赋值的self._proxy = backend_class(clean)】
err = \"Backend terminated or disconnected.\"
CPythonProxy
函数send_command
client(.py)1.socket连接本地thonny中监听端口2.传输代码3.接收代码执行结果
get_cwd
函数_try_submit_inputself._submit_input(submittable_text)
get_workbench().event_generate(\"BackendRestart\
BackendProxy
函数 fetch_next_messagemsg = self._response_queue.popleft()
函数 类BaseShellText的submit_commandself._try_submit_input()
函数 类ShellText get_workbench().bind(\"ProgramOutput\
get_workbench().event_generate(\"MagicCommand\
workbench.py
SameAsFrontendCPythonProxy
函数_submit_input
函数event_generatehandler(event)
函数_init_commands运行按钮事件绑定:get_workbench().add_command( \"run_current_script\
收藏
收藏
0 条评论
下一页