def _import_requirement_or_import(): requirement = REQUIREMENTS try: from flask import Flask except ModuleNotFoundError: install_requirement(requirement) from flask import Flask global Flask
def _install_requirement_or_import(self): requirement = self.REQUIREMENTS try: import gpiozero, pigpio except ModuleNotFoundError: self.pub_notification(f'正在安装 {" ".join(requirement)}...') install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} 安装完成') from gpiozero import LED from gpiozero.pins.pigpio import PiGPIOFactory global LED, PiGPIOFactory
def _import_requirement_or_import(self): requirement = self.REQUIREMENTS try: from communitysdk import list_connected_devices, MotionSensorKit except ModuleNotFoundError: self.pub_notification(f'try to install {" ".join(requirement)}...') # 只有 local python 下才可用,adapter内置的python无法使用pip(extension) install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} installed!') from communitysdk import list_connected_devices, MotionSensorKit global list_connected_devices, MotionSensorKit
def _install_requirement_or_import(self): requirement = self.REQUIREMENTS try: import cv2 except ModuleNotFoundError: self.pub_notification(f'try to install {" ".join(requirement)}...') install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} installed!') import cv2 import numpy as np global cv2, np
def _import_requirement_or_import(self): requirement = self.REQUIREMENTS try: import psonic except ModuleNotFoundError: self.pub_notification(f'正在安装 {" ".join(requirement)}...') # 只有 local python 下才可用,adapter内置的python无法使用pip(extension) install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} 安装完成') import psonic # 使用点语法 from x import * 不在顶层 无效 global psonic
def _import_requirement_or_import(self): requirement = self.REQUIREMENTS try: importlib.import_module("cozmo") except ModuleNotFoundError: self.pub_notification(f'try to install {" ".join(requirement)}...') install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} installed!') importlib.import_module("cozmo") import cozmo from cozmo.util import degrees, distance_mm, speed_mmps global cozmo, degrees, distance_mm, speed_mmps # make it global
def _import_requirement_or_import(self): requirement = self.REQUIREMENTS try: from mcpi import minecraft from minecraftstuff import MinecraftTurtle except ModuleNotFoundError: self.pub_notification(f'try to install {" ".join(requirement)}...') install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} installed!') from mcpi import minecraft from minecraftstuff import MinecraftTurtle global minecraft, MinecraftTurtle
def _import_requirement_or_import(self): requirement = self.REQUIREMENTS try: import openadk except ModuleNotFoundError: self.pub_notification(f'try to install {" ".join(requirement)}...') install_requirement(requirement) self.pub_notification(f'{" ".join(requirement)} installed!') import openadk from openadk.rest import ApiException from openadk.models.motions_parameter import MotionsParameter from openadk.models.motions_operation import MotionsOperation from openadk.api.motions_api import MotionsApi global openadk, ApiException, MotionsParameter, MotionsOperation, MotionsApi
def _install_requirement(self): # to install jupyterlab self.pub_notification(f"jupyterlab is being installed...") output = install_requirement(self.REQUIREMENTS) if output == 0: self.pub_notification("jupyterlab installed!") self.env_manage.set_env(None) # update env
''' HCI: human–machine interaction 本插件支持将任何输入映射为鼠标键盘行为 ''' import queue import time from codelab_adapter_client import AdapterNode from codelab_adapter_client.utils import install_requirement try: import pyautogui except ModuleNotFoundError: REQUIREMENTS = ["pyautogui"] install_requirement(REQUIREMENTS) import pyautogui class HCINode(AdapterNode): NODE_ID = "eim/node_HCI" WEIGHT = 98 HELP_URL = "https://adapter.codelab.club/extension_guide/HCI/" DESCRIPTION = "接管鼠标键盘" VERSION = "1.1.0" def __init__(self, **kwargs): super().__init__(**kwargs) self.q = queue.Queue() def extension_message_handle(self, topic, payload): python_code = payload["content"]
# python3 -m pip install yeelight import time from loguru import logger from codelab_adapter_client import AdapterNode from codelab_adapter_client.utils import install_requirement try: from yeelight import discover_bulbs, Bulb except ModuleNotFoundError: install_requirement(requirement) from yeelight import discover_bulbs, Bulb class LightProxy: ''' 自维护 支持连接多盏灯 ''' def __init__(self, node=None): self.node = node self.is_connected = False # todo 装饰器, 确认某件事才往下,否则返回错误信息, require connect,每次确保某件事发生 self.lights = [] def _ensure_connect(self): if not self.is_connected: raise Exception("Device not connected!") def list(self): results = discover_bulbs()
def _install_requirement(self): # to install jupyterlab self.pub_notification("正在安装 JupyterLab...") output = install_requirement(self.REQUIREMENTS) if output == 0: self.pub_notification("JupyterLab 安装完成") self.env_manage.set_env(None) # update env