1from __future__ import annotations 2 3import os.path 4import sys 5 6 7def _xdg(*path: str, env: str, default: str) -> str: 8 return os.path.join( 9 os.environ.get(env) or os.path.expanduser(default), 10 'babi', *path, 11 ) 12 13 14def xdg_data(*path: str) -> str: 15 return _xdg(*path, env='XDG_DATA_HOME', default='~/.local/share') 16 17 18def xdg_config(*path: str) -> str: 19 return _xdg(*path, env='XDG_CONFIG_HOME', default='~/.config') 20 21 22def prefix_data(*path: str) -> str: 23 return os.path.join(sys.prefix, 'share/babi', *path) 24