SuperAPI AI 工具集

xdg-base-directory

设计与创作

查看项目

更新于 10-15 22:40

技能介绍

用途:帮助应用按 XDG Base Directory Specification(0.8 版,2021 年 5 月)存放用户级配置、数据、缓存与状态文件,替代 ~/.appname 等旧式路径。

主要能力:定义并校验 XDG 环境变量,包括 $XDG_CONFIG_HOME(默认 $HOME/.config)、$XDG_DATA_HOME($HOME/.local/share)、$XDG_STATE_HOME($HOME/.local/state)、$XDG_CACHE_HOME($HOME/.cache)、$XDG_RUNTIME_DIR(由系统设置,无默认值),以及系统级搜索路径 $XDG_DATA_DIRS(默认 /usr/local/share/:/usr/share/)和 $XDG_CONFIG_DIRS(默认 /etc/xdg)。核心规则:路径必须为绝对路径,相对路径须忽略;变量未设置或为空时使用默认值;搜索路径以冒号分隔,用户目录优先于系统目录,首个匹配生效。

使用方式:提供仅用标准库的 Python 实现(get_config_home、get_data_home、get_state_home、get_cache_home、get_runtime_dir、get_config_dirs、get_data_dirs),以及应用专用 paths 模块和 ensure_directories 建目录函数;跨平台场景可用 platformdirs 库(user_config_dir、user_data_dir、user_cache_dir、user_state_dir,支持 ensure_exists=True)。测试可用环境变量覆盖或 pytest monkeypatch 验证默认值、相对路径忽略、空字符串回退、搜索路径解析等。

适用场景:CLI 工具、Linux/Unix 应用、跨平台 Python 包、从旧路径迁移、文件存储架构设计、尊重用户目录偏好及自定义 XDG 覆盖的测试。

限制与注意:$XDG_RUNTIME_DIR 无默认值,未设置时须处理 None;该目录常为 tmpfs 且有容量限制,登出即清理,不应存大文件或持久数据;缓存不应放入配置目录;写文件前需先创建父目录。资料未提供具体安装命令、收费或平台支持范围等信息。