FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

enhancement: 非法环境变量降级为 warning + 默认值,而非直接报错 · Issue #1728 · SwanHubX/SwanLab · GitHub

enhancement: 非法环境变量降级为 warning + 默认值,而非直接报错 #1728

Description

背景

源自 #1723 的 review 讨论(@ShaohonChen评论)。

#1723 已经把配置加载推迟到首次使用,import swanlab 不再因非法环境变量失败;但当真正消费配置时(swanlab.init() / swanlab.login() / swanlab.Api() 等),非法环境变量仍会抛出 ValidationError、YAML 解析错误或路径错误,直接阻断使用。

现状

create_settings() 在首次消费配置时,以下情况仍会直接报错:

  • 非法的 SWANLAB_MODE
  • 非整数或越界的 SWANLAB_DASHBOARD_PORT
  • 旧版嵌套环境变量格式错误
  • 非法的 SWANLAB_LOGDIR
  • 损坏的 swanlab.yaml

提议

对于非法的环境变量,选择忽略并回退到默认值,同时输出 warning 说明忽略了什么、为什么,而不是直接抛错阻断使用。

动机

  • 生产环境兼容性:环境变量复杂(空字符串 ""、陈旧值、与其他工具命名冲突等)的生产环境里,SDK 能展现出更强的兼容性,避免训练任务被配置问题意外中断。
  • 产品侧可补救:只要数据上报成功,后续可以通过前端改名、移动实验等方式把实验转换成想要的形式,对用户更友好。
  • 可追溯:行为不一致的场景可以通过 warning 事后分析回来。

需要讨论的点

  1. 边界划分:哪些校验适合「忽略 + warning」(格式 / 范围类),哪些仍应硬失败(如鉴权凭据缺失、路径不可写)?
  2. 提示形式:warning 应同时输出到终端与诊断日志 debug.log,确保用户能事后追溯,而非静默回退。
  3. 回退后的行为一致性:降级到默认值后,后续与配置相关的行为(host、port、mode 等)需保证逻辑自洽,不能半回退。

参考

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions


Back | FazBrowse Home | New Git URL