1 Star 0 Fork 0

youxinweizhi/codelab_adapter_extensions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
extension_presentation.py 1.23 KB
一键复制 编辑 原始数据 按行查看 历史
wuwenjie 提交于 2019-01-29 14:38 +08:00 . rename scratch3-adapter -> codelab-adapter
from io import StringIO
import contextlib
import sys
import subprocess
import webbrowser
from codelab_adapter import settings
from codelab_adapter.core_extension import Extension
class PresentationExtension(Extension):
def __init__(self):
name = type(self).__name__ # class name
super().__init__(name)
@contextlib.contextmanager
def stdoutIO(self, stdout=None):
old = sys.stdout
if stdout is None:
stdout = StringIO()
sys.stdout = stdout
yield stdout
sys.stdout = old
def run(self):
while self._running:
if settings.DEBUG:
message = self.read()
self.logger.info(message)
python_code = message.get('data')
try:
with self.stdoutIO() as s:
# 不用rpc, 使用dynamicland的架构原则: 保持单一入口, message is everything (everything is message)
exec(python_code)
output = s.getvalue()
except Exception as e:
output = str(e)
message = {"topic": "eim", "message": str(output)}
self.publish(message)
export = PresentationExtension
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/youxinweizhi/codelab_adapter_extensions.git
git@gitee.com:youxinweizhi/codelab_adapter_extensions.git
youxinweizhi
codelab_adapter_extensions
codelab_adapter_extensions
master

搜索帮助