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.8.tar.gz (143.6 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.8-py3-none-any.whl (55.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for ubox_py_sdk-0.1.8.tar.gz
Algorithm Hash digest
SHA256 9dd309e4dd64b0296a21e98d80bc0d122d080d9a3aebbe2b14beb3e6af0684b8
MD5 d0404627151e29e785a777e1ef8dec08
BLAKE2b-256 2757e58d6b2b795b99f03f112a43178cf6514d4685656e0719273c7955ceabfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ubox_py_sdk-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 fbe7098d9e180a5c57b35e08e14d8daff91fbc1b8bb1ebc8355f778f2ac77e73
MD5 aa82fcfbfb817b608b338e093a574359
BLAKE2b-256 378b4d2cd5ce86a58d41a2aca3a22a6e0d05d2ed140a0265fd06268d7cb8aedc

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