Skip to content

开发者工具

在 QuickProject 中提供了一些方便调用的值和接口,以下是各项介绍。

用户设置

含义
user_root: str用户根目录绝对路径
user_lang: str用户的默认语言,仅支持 6 个联合国官方语言
user_pip: str用户的 pip 管理器命令
using_gitee: bool使用 Gitee 提供的模板镜像(启用此选项的用户大概率为中国用户)

获取方式:

python
from QuickProject import <xxx>
from QuickProject import <xxx>

基础工具

remove

删除文件或目录

python
def remove(path):
    """
    删除文件或目录

    :param path: 路径
    :return:
    """
def remove(path):
    """
    删除文件或目录

    :param path: 路径
    :return:
    """

external_exec

执行命令,类似os.system,但更高级点。

python
def external_exec(
    cmd: str,
    without_output: bool = False,
    without_stdout: bool = False,
    without_stderr: bool = False,
    __expose: bool = False,
    __no_wait: bool = False,
):
    """
    外部执行命令

    :param cmd: 命令
    :param without_output: 是否不输出
    :param without_stdout: 是否不输出stdout
    :param without_stderr: 是否不输出stderr
    :param __expose: ⚠️是否暴露, 这意味着命令行输出可能会被截断和修改
    :param __no_wait: ⚠️是否不等待, 这意味着需要手动获取返回值和输出
    :return: status code, output | __no_wait 为 True 时返回进程对象
    """
def external_exec(
    cmd: str,
    without_output: bool = False,
    without_stdout: bool = False,
    without_stderr: bool = False,
    __expose: bool = False,
    __no_wait: bool = False,
):
    """
    外部执行命令

    :param cmd: 命令
    :param without_output: 是否不输出
    :param without_stdout: 是否不输出stdout
    :param without_stderr: 是否不输出stderr
    :param __expose: ⚠️是否暴露, 这意味着命令行输出可能会被截断和修改
    :param __no_wait: ⚠️是否不等待, 这意味着需要手动获取返回值和输出
    :return: status code, output | __no_wait 为 True 时返回进程对象
    """

requirePackage

获取本机上的 python 第三方库

python
def requirePackage(
    pname: str,
    module: str = "",
    real_name: str = "",
    not_exit: bool = True,
    not_ask: bool = False,
    set_pip: str = user_pip,
):
    """
    获取本机上的python第三方库

    :param pname: 库名
    :param module: 待引入的模块名,可缺省
    :param real_name: 用于 pip3 install 的名字
    :param not_exit: 安装后不退出
    :param not_ask: 不询问是否安装
    :param set_pip: 指定pip
    :return: 库或模块的地址
    """
def requirePackage(
    pname: str,
    module: str = "",
    real_name: str = "",
    not_exit: bool = True,
    not_ask: bool = False,
    set_pip: str = user_pip,
):
    """
    获取本机上的python第三方库

    :param pname: 库名
    :param module: 待引入的模块名,可缺省
    :param real_name: 用于 pip3 install 的名字
    :param not_exit: 安装后不退出
    :param not_ask: 不询问是否安装
    :param set_pip: 指定pip
    :return: 库或模块的地址
    """

:::caution 在 Commander 模板中会默认植入此接口,请不要调用 QuickProject 包中的此接口,以免在相对引用时发生意外; :::

SshProtocol

这是一个 SSH 的通信类,将可能用到的 SSH 通信接口都实现了,比如发送、接收文件;远程执行命令;直接登录到指定位置等等。在现代 IDE 中引用时,会获取功能提示。

_ask

在命令行中向用户询问,支持多种输入格式,具体样例可以参考:https://github.com/CITGuru/PyInquirer ,但与样例库不同的是:

  1. _ask 仅支持单个问题,因此name字段是可缺省的。
  2. _ask 支持设置超时时间,一旦超时则返回默认值。
python
_ask({
  "type": "confirm",
  "message": "是否确认"
})

_ask({
  "type": "input",
  "message": "输入配送地址"
})

_ask({
  "type": "input",
  "message": "输入配送地址"
  "default": "家里蹲大学"
}, 10) # 10秒不操作则默认返回 "家里蹲大学"

_ask({
  "type": "list",
  "message": "选择区域",
  "choices": ['北京', '上海', ...]
})
_ask({
  "type": "confirm",
  "message": "是否确认"
})

_ask({
  "type": "input",
  "message": "输入配送地址"
})

_ask({
  "type": "input",
  "message": "输入配送地址"
  "default": "家里蹲大学"
}, 10) # 10秒不操作则默认返回 "家里蹲大学"

_ask({
  "type": "list",
  "message": "选择区域",
  "choices": ['北京', '上海', ...]
})

进阶工具

QuickStart_Rhy 提供了丰富的已实现的工具,包括基础、系统、网络、API、音视频以及图像处理等,此库的文档有待完善。

Released under the MIT License.