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