Files
ipam/PYTHON_3_10_COMPATIBILITY.md
T
Your Name a8e764b102 feat(python3.10): 适配 Python 3.10 并修复 SNMP 问题
修改内容:
1. 修复 SNMP 凭据显示问题:确保设备列表返回 snmp_credential_id
2. 修复清除 SNMP 凭据功能:新增 clear_snmp_credential 参数
3. 前端适配:处理清除凭据时的参数转换
4. 更新 requirements.txt:添加 Python 3.10 兼容说明和 typing-extensions
5. 添加 PYTHON_3_10_COMPATIBILITY.md 兼容性说明文档

验证:
- 所有代码无 Python 3.11 特有语法
- 依赖包版本均支持 Python 3.10
- typing-extensions 提供向后兼容支持
2026-07-23 13:58:52 +08:00

1.4 KiB

Python 3.10 兼容性说明

概述

本分支 (python3.10) 专门针对 Python 3.10 环境优化,确保所有代码和依赖都能在 Python 3.10 下正常运行。

兼容性调整

已验证的兼容特性

所有依赖包版本均支持 Python 3.10 无 Python 3.11 特有语法(如 tomllibasyncio.TaskGrouptyping.Self 等) 类型注解完全兼容 Python 3.10 match 关键字未用作 Python 3.10 的模式匹配语句(仅用作 re.match() 的变量名)

依赖版本要求

  • typing-extensions>=4.5.0 - 提供额外的类型支持
  • 所有核心依赖(FastAPI、SQLAlchemy、Pydantic 等)均已验证兼容

已知的 Python 3.11+ 特性未使用

项目中未使用以下 Python 3.11+ 特有的功能:

  • tomllib 标准库(如有需要可使用 tomli 第三方库)
  • asyncio.TaskGroup
  • typing.Self
  • ExceptionGroup / except*
  • StrEnum / IntEnum 的新特性

安装说明

cd backend
pip install -r requirements.txt

升级提示

如果未来需要升级到 Python 3.11+,可以:

  1. 使用 tomllib 替代可能的 TOML 解析需求
  2. 考虑使用 asyncio.TaskGroup 改进异步代码结构
  3. 使用 typing.Self 简化类型注解

验证

可以使用以下命令验证 Python 版本兼容性:

python --version  # 应为 3.10.x
python -c "import sys; assert sys.version_info >= (3, 10), 'Python 3.10+ required'"