Skip to main content

用于操作优测设备的python-sdk

Project description

优测 Python UBox

Python Version

用于操作优测设备的 Python UBox 包,提供简单易用的 API 接口来与优测设备进行交互。

功能特性

  • 🚀 简单易用: 提供直观的 Python API 接口
  • 🔑 JWT Token管理: 自动token生成、过期检测和懒申请机制
  • 🛡️ 错误处理: 完善的异常处理和错误信息
  • 📚 类型提示: 完整的类型注解支持
  • 🔧 上下文管理: 支持 with 语句自动管理连接

安装

使用 uv 安装(推荐)

# 安装 uv(如果还没有安装)

# 创建虚拟环境
uv venv
# 安装包
uv pip install -U ubox-py-sdk -i https://mirrors.tencent.com/repository/pypi/tencent_pypi/simple

使用 pip 安装

确保python版本>=3.9.5

python -m pip install ubox-py-sdk --index-url https://pypi.tuna.tsinghua.edu.cn/simple --extra-index-url https://mirrors.tencent.com/repository/pypi/tencent_pypi/simple

架构说明

  1. 默认模式(自动占用设备)

    • 特点:自动占用、续期、释放设备
  2. 默认模式(使用预获取的authCode)

    • 适用:已有authCode
    • 特点:跳过占用流程,更稳定可靠
  3. 本地模式

    • 适用:仅限本地设备调试
    • 特点:直接访问,性能更好
    • 注意:仅限本地调试自动化脚本

快速开始

运行示例

我们提供了完整的示例文件来帮助你快速上手:

# 运行基础示例文件
python examples/example.py

# 运行事件处理示例
python examples/event_handler_example.py

# 运行设备列表示例
python examples/device_list_example.py

基础使用

from ubox_py_sdk import UBox, UBoxConnectionError, UBoxAuthenticationError, OSType, RunMode

try:
    # 调试模式示例
    with UBox(secret_id="sid", secret_key="skey") as client:
        device = client.init_device(udid="device-001", os_type=OSType.ANDROID)

except UBoxAuthenticationError as e:
    print(f"认证失败: {e}")
except UBoxConnectionError as e:
    print(f"连接失败: {e}")
except Exception as e:
    print(f"其他错误: {e}")

日志配置

UBox SDK 提供了灵活的日志配置功能:

# 默认配置(仅控制台输出)
ubox = UBox(secret_id="sid", secret_key="skey")

# 自定义日志级别
ubox = UBox(
    secret_id="sid", 
    secret_key="skey",
    log_level="DEBUG"  # 显示详细调试信息
)

# 文件日志输出
ubox = UBox(
    secret_id="sid", 
    secret_key="skey",
    log_level="INFO",
    log_to_file=True,
    log_file_path="logs/ubox.log"  # 自动创建目录
)

# 生产环境配置
ubox = UBox(
    secret_id="sid", 
    secret_key="skey",
    log_level="WARNING",  # 只记录警告和错误
    log_to_file=True,
    log_file_path="logs/production.log"
)

PhonePlatform 枚举值说明

  • PhonePlatform.ANDROID = 1: Android设备
  • PhonePlatform.IOS = 2: iOS设备
  • PhonePlatform.HARMONYOS = 3: 鸿蒙设备
  • PhonePlatform.HARMONYOS_NEXT = 4: 鸿蒙NEXT设备

OSType

设备操作系统类型枚举:

  • OSType.ANDROID: Android设备
  • OSType.IOS: iOS设备
  • OSType.HM: HarmonyOS设备

异常类

  • UBoxError: 基础异常类
  • UBoxConnectionError: 连接异常
  • UBoxAuthenticationError: 认证异常
  • UBoxValidationError: 数据验证异常
  • UBoxTimeoutError: 超时异常
  • UBoxRateLimitError: 速率限制异常
  • UBoxDeviceError: 设备异常

项目结构

ubox-py-sdk/
├── src/                        # 源代码目录
│   └── ubox_py_sdk/           # 主包目录
│       ├── __init__.py         # 包初始化文件,导出主要API
│       ├── client.py           # 主要客户端类,管理连接和认证
│       ├── device.py           # 设备管理类,封装设备操作接口
│       ├── device_operations.py # 设备操作实现,包含各种操作的具体逻辑
│       ├── exceptions.py       # 异常定义,包含各种错误类型
│       ├── jwt_util.py         # JWT工具类,处理认证token
│       ├── logger.py           # 日志工具,提供统一的日志记录
│       └── models.py           # 数据模型,定义各种数据结构
├── examples/                   # 使用示例目录
│   └── README.md              # 示例说明文档
├── api.py                     # API接口定义文件
├── pyproject.toml             # 项目配置文件
├── Makefile                   # 构建和部署脚本
├── uv.lock                    # 依赖锁定文件
├── .python-version            # Python版本文件
├── README.md                  # 项目说明文档
├── ubox-py-sdk接口文档.md     # 详细接口文档
└── .gitignore                 # Git忽略文件

编译

uv build

发布包

uv publish --publish-url https://mirrors.tencent.com/repository/pypi/tencent_pypi/simple

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ubox_py_sdk-0.1.10.tar.gz (144.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ubox_py_sdk-0.1.10-py3-none-any.whl (56.2 kB view details)

Uploaded Python 3

File details

Details for the file ubox_py_sdk-0.1.10.tar.gz.

File metadata

  • Download URL: ubox_py_sdk-0.1.10.tar.gz
  • Upload date:
  • Size: 144.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.12

File hashes

Hashes for ubox_py_sdk-0.1.10.tar.gz
Algorithm Hash digest
SHA256 eb33e1d3e9998f4fd05ef3711c10e79c8a61b2b76a5a985240a282924d31b7f7
MD5 5a4ec9243771906dec4de19da3dc97a7
BLAKE2b-256 4d5b1b02fe6b2fc0637f95c7e75cef535fb6febd35deecee94201a559125d3ab

See more details on using hashes here.

File details

Details for the file ubox_py_sdk-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for ubox_py_sdk-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 c08c394518ddd45c8798fd751e3f387305bc813a2c5e8959b460e260021ba2f5
MD5 33ea2bb960c161677869c0dbcfe668dc
BLAKE2b-256 b031b25e96bf5b2c47a17a40486bd622ed3633826ee845ea0f56b8126a13115c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page