from __future__ import annotations
import optparse
from abc import ABCMeta, abstractmethod
from contextlib import contextmanager
from typing import Iterator
from pip._internal.commands.install import InstallCommand
from pip._internal.index.package_finder import PackageFinder
from pip._internal.models.index import PyPI
from pip._internal.network.session import PipSession
from pip._internal.req import InstallRequirement
class BaseRepository(metaclass=ABCMeta):
DEFAULT_INDEX_URL = PyPI.simple_url
def clear_caches(self) -> None:
@abstractmethod
def find_best_match(
self, ireq: InstallRequirement, prereleases: bool | None
) -> InstallRequirement:
@abstractmethod
def get_dependencies(self, ireq: InstallRequirement) -> set[InstallRequirement]:
@abstractmethod
def get_hashes(self, ireq: InstallRequirement) -> set[str]:
@abstractmethod
@contextmanager
def allow_all_wheels(self) -> Iterator[None]:
@property
@abstractmethod
def options(self) -> optparse.Values:
@property
@abstractmethod
def session(self) -> PipSession:
@property
@abstractmethod
def finder(self) -> PackageFinder:
@property
@abstractmethod
def command(self) -> InstallCommand: