xdg-base-dirs
xdg-base-dirs copied to clipboard
An implementation of the XDG Base Directory Specification in Python
xdg
xdg is a Python module that provides functions to return paths to the
directories defined by the XDG Base Directory Specification, to save you
from duplicating the same snippet of logic in every Python utility you write
that deals with user cache, configuration, or data files. It has no external
dependencies.
Installation
To install the latest release from PyPI, use pip:
python3 -m pip install xdg
The latest release of xdg currently implements version 0.8 of the
specification, released on 8th May 2021.
In Python projects using Poetry or Pipenv for dependency management, add
xdg as a dependency with poetry add xdg or pipenv install xdg.
Alternatively, since xdg is only a single file you may prefer to just copy
src/xdg/__init__.py from the source distribution into your project.
Usage
from xdg import (
xdg_cache_home,
xdg_config_dirs,
xdg_config_home,
xdg_data_dirs,
xdg_data_home,
xdg_runtime_dir,
xdg_state_home,
)
xdg_cache_home(), xdg_config_home(), xdg_data_home(), and
xdg_state_home() return pathlib.Path objects containing the value of
the environment variable named XDG_CACHE_HOME, XDG_CONFIG_HOME,
XDG_DATA_HOME, and XDG_STATE_HOME respectively, or the default defined in
the specification if the environment variable is unset, empty, or contains a
relative path rather than absolute path.
xdg_config_dirs() and xdg_data_dirs() return a list of pathlib.Path
objects containing the value, split on colons, of the environment variable named
XDG_CONFIG_DIRS and XDG_DATA_DIRS respectively, or the default defined in
the specification if the environment variable is unset or empty. Relative paths
are ignored, as per the specification.
xdg_runtime_dir() returns a pathlib.Path object containing the value of the
XDG_RUNTIME_DIR environment variable, or None if the environment variable is
not set, or contains a relative path rather than an absolute path.
Copyright
Copyright © 2016-2021 Scott Stevenson.
xdg is distributed under the terms of the ISC licence.