Development-Project-Synergy-Finder
/
env
/Lib
/site-packages
/pip
/_internal
/models
/selection_prefs.py
| from typing import Optional | |
| from pip._internal.models.format_control import FormatControl | |
| class SelectionPreferences: | |
| """ | |
| Encapsulates the candidate selection preferences for downloading | |
| and installing files. | |
| """ | |
| __slots__ = [ | |
| "allow_yanked", | |
| "allow_all_prereleases", | |
| "format_control", | |
| "prefer_binary", | |
| "ignore_requires_python", | |
| ] | |
| # Don't include an allow_yanked default value to make sure each call | |
| # site considers whether yanked releases are allowed. This also causes | |
| # that decision to be made explicit in the calling code, which helps | |
| # people when reading the code. | |
| def __init__( | |
| self, | |
| allow_yanked: bool, | |
| allow_all_prereleases: bool = False, | |
| format_control: Optional[FormatControl] = None, | |
| prefer_binary: bool = False, | |
| ignore_requires_python: Optional[bool] = None, | |
| ) -> None: | |
| """Create a SelectionPreferences object. | |
| :param allow_yanked: Whether files marked as yanked (in the sense | |
| of PEP 592) are permitted to be candidates for install. | |
| :param format_control: A FormatControl object or None. Used to control | |
| the selection of source packages / binary packages when consulting | |
| the index and links. | |
| :param prefer_binary: Whether to prefer an old, but valid, binary | |
| dist over a new source dist. | |
| :param ignore_requires_python: Whether to ignore incompatible | |
| "Requires-Python" values in links. Defaults to False. | |
| """ | |
| if ignore_requires_python is None: | |
| ignore_requires_python = False | |
| self.allow_yanked = allow_yanked | |
| self.allow_all_prereleases = allow_all_prereleases | |
| self.format_control = format_control | |
| self.prefer_binary = prefer_binary | |
| self.ignore_requires_python = ignore_requires_python | |