1"""
2For types associated with installation schemes.
3
4For a general overview of available schemes and their context, see
5https://docs.python.org/3/install/index.html#alternate-installation.
6"""
7
8
9SCHEME_KEYS = ['platlib', 'purelib', 'headers', 'scripts', 'data']
10
11
12class Scheme:
13    """A Scheme holds paths which are used as the base directories for
14    artifacts associated with a Python package.
15    """
16
17    __slots__ = SCHEME_KEYS
18
19    def __init__(
20        self,
21        platlib,  # type: str
22        purelib,  # type: str
23        headers,  # type: str
24        scripts,  # type: str
25        data,  # type: str
26    ):
27        self.platlib = platlib
28        self.purelib = purelib
29        self.headers = headers
30        self.scripts = scripts
31        self.data = data
32