massive update, probably broken
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-pyright / node_modules / pyright / dist / typeshed-fallback / stubs / setuptools / pkg_resources / __init__.pyi
1 import importlib.abc
2 import types
3 import zipimport
4 from abc import ABCMeta
5 from typing import IO, Any, Callable, Generator, Iterable, Optional, Sequence, Tuple, TypeVar, Union, overload
6
7 LegacyVersion = Any  # from packaging.version
8 Version = Any  # from packaging.version
9
10 _T = TypeVar("_T")
11 _NestedStr = Union[str, Iterable[Union[str, Iterable[Any]]]]
12 _InstallerType = Callable[[Requirement], Optional[Distribution]]
13 _EPDistType = Union[Distribution, Requirement, str]
14 _MetadataType = Optional[IResourceProvider]
15 _PkgReqType = Union[str, Requirement]
16 _DistFinderType = Callable[[_Importer, str, bool], Generator[Distribution, None, None]]
17 _NSHandlerType = Callable[[_Importer, str, str, types.ModuleType], str]
18
19 def declare_namespace(name: str) -> None: ...
20 def fixup_namespace_packages(path_item: str) -> None: ...
21
22 class WorkingSet:
23     entries: list[str]
24     def __init__(self, entries: Iterable[str] | None = ...) -> None: ...
25     def require(self, *requirements: _NestedStr) -> Sequence[Distribution]: ...
26     def run_script(self, requires: str, script_name: str) -> None: ...
27     def iter_entry_points(self, group: str, name: str | None = ...) -> Generator[EntryPoint, None, None]: ...
28     def add_entry(self, entry: str) -> None: ...
29     def __contains__(self, dist: Distribution) -> bool: ...
30     def __iter__(self) -> Generator[Distribution, None, None]: ...
31     def find(self, req: Requirement) -> Distribution | None: ...
32     def resolve(
33         self, requirements: Iterable[Requirement], env: Environment | None = ..., installer: _InstallerType | None = ...
34     ) -> list[Distribution]: ...
35     def add(self, dist: Distribution, entry: str | None = ..., insert: bool = ..., replace: bool = ...) -> None: ...
36     def subscribe(self, callback: Callable[[Distribution], None]) -> None: ...
37     def find_plugins(
38         self, plugin_env: Environment, full_env: Environment | None = ..., fallback: bool = ...
39     ) -> tuple[list[Distribution], dict[Distribution, Exception]]: ...
40
41 working_set: WorkingSet = ...
42
43 require = working_set.require
44 run_script = working_set.run_script
45 iter_entry_points = working_set.iter_entry_points
46 add_activation_listener = working_set.subscribe
47
48 class Environment:
49     def __init__(self, search_path: Sequence[str] | None = ..., platform: str | None = ..., python: str | None = ...) -> None: ...
50     def __getitem__(self, project_name: str) -> list[Distribution]: ...
51     def __iter__(self) -> Generator[str, None, None]: ...
52     def add(self, dist: Distribution) -> None: ...
53     def remove(self, dist: Distribution) -> None: ...
54     def can_add(self, dist: Distribution) -> bool: ...
55     def __add__(self, other: Distribution | Environment) -> Environment: ...
56     def __iadd__(self, other: Distribution | Environment) -> Environment: ...
57     @overload
58     def best_match(self, req: Requirement, working_set: WorkingSet) -> Distribution: ...
59     @overload
60     def best_match(self, req: Requirement, working_set: WorkingSet, installer: Callable[[Requirement], _T] = ...) -> _T: ...
61     @overload
62     def obtain(self, requirement: Requirement) -> None: ...
63     @overload
64     def obtain(self, requirement: Requirement, installer: Callable[[Requirement], _T] = ...) -> _T: ...
65     def scan(self, search_path: Sequence[str] | None = ...) -> None: ...
66
67 def parse_requirements(strs: str | Iterable[str]) -> Generator[Requirement, None, None]: ...
68
69 class Requirement:
70     unsafe_name: str
71     project_name: str
72     key: str
73     extras: Tuple[str, ...]
74     specs: list[tuple[str, str]]
75     # TODO: change this to packaging.markers.Marker | None once we can import
76     #       packaging.markers
77     marker: Any | None
78     @staticmethod
79     def parse(s: str | Iterable[str]) -> Requirement: ...
80     def __contains__(self, item: Distribution | str | Tuple[str, ...]) -> bool: ...
81     def __eq__(self, other_requirement: Any) -> bool: ...
82
83 def load_entry_point(dist: _EPDistType, group: str, name: str) -> Any: ...
84 def get_entry_info(dist: _EPDistType, group: str, name: str) -> EntryPoint | None: ...
85 @overload
86 def get_entry_map(dist: _EPDistType) -> dict[str, dict[str, EntryPoint]]: ...
87 @overload
88 def get_entry_map(dist: _EPDistType, group: str) -> dict[str, EntryPoint]: ...
89
90 class EntryPoint:
91     name: str
92     module_name: str
93     attrs: Tuple[str, ...]
94     extras: Tuple[str, ...]
95     dist: Distribution | None
96     def __init__(
97         self,
98         name: str,
99         module_name: str,
100         attrs: Tuple[str, ...] = ...,
101         extras: Tuple[str, ...] = ...,
102         dist: Distribution | None = ...,
103     ) -> None: ...
104     @classmethod
105     def parse(cls, src: str, dist: Distribution | None = ...) -> EntryPoint: ...
106     @classmethod
107     def parse_group(cls, group: str, lines: str | Sequence[str], dist: Distribution | None = ...) -> dict[str, EntryPoint]: ...
108     @classmethod
109     def parse_map(
110         cls, data: dict[str, str | Sequence[str]] | str | Sequence[str], dist: Distribution | None = ...
111     ) -> dict[str, EntryPoint]: ...
112     def load(self, require: bool = ..., env: Environment | None = ..., installer: _InstallerType | None = ...) -> Any: ...
113     def require(self, env: Environment | None = ..., installer: _InstallerType | None = ...) -> None: ...
114     def resolve(self) -> Any: ...
115
116 def find_distributions(path_item: str, only: bool = ...) -> Generator[Distribution, None, None]: ...
117 def get_distribution(dist: Requirement | str | Distribution) -> Distribution: ...
118
119 class Distribution(IResourceProvider, IMetadataProvider):
120     PKG_INFO: str
121     location: str
122     project_name: str
123     key: str
124     extras: list[str]
125     version: str
126     parsed_version: Tuple[str, ...]
127     py_version: str
128     platform: str | None
129     precedence: int
130     def __init__(
131         self,
132         location: str | None = ...,
133         metadata: _MetadataType = ...,
134         project_name: str | None = ...,
135         version: str | None = ...,
136         py_version: str = ...,
137         platform: str | None = ...,
138         precedence: int = ...,
139     ) -> None: ...
140     @classmethod
141     def from_location(
142         cls, location: str, basename: str, metadata: _MetadataType = ..., **kw: str | None | int
143     ) -> Distribution: ...
144     @classmethod
145     def from_filename(cls, filename: str, metadata: _MetadataType = ..., **kw: str | None | int) -> Distribution: ...
146     def activate(self, path: list[str] | None = ...) -> None: ...
147     def as_requirement(self) -> Requirement: ...
148     def requires(self, extras: Tuple[str, ...] = ...) -> list[Requirement]: ...
149     def clone(self, **kw: str | int | None) -> Requirement: ...
150     def egg_name(self) -> str: ...
151     def __cmp__(self, other: Any) -> bool: ...
152     def get_entry_info(self, group: str, name: str) -> EntryPoint | None: ...
153     @overload
154     def get_entry_map(self) -> dict[str, dict[str, EntryPoint]]: ...
155     @overload
156     def get_entry_map(self, group: str) -> dict[str, EntryPoint]: ...
157     def load_entry_point(self, group: str, name: str) -> Any: ...
158
159 EGG_DIST: int
160 BINARY_DIST: int
161 SOURCE_DIST: int
162 CHECKOUT_DIST: int
163 DEVELOP_DIST: int
164
165 def resource_exists(package_or_requirement: _PkgReqType, resource_name: str) -> bool: ...
166 def resource_stream(package_or_requirement: _PkgReqType, resource_name: str) -> IO[bytes]: ...
167 def resource_string(package_or_requirement: _PkgReqType, resource_name: str) -> bytes: ...
168 def resource_isdir(package_or_requirement: _PkgReqType, resource_name: str) -> bool: ...
169 def resource_listdir(package_or_requirement: _PkgReqType, resource_name: str) -> list[str]: ...
170 def resource_filename(package_or_requirement: _PkgReqType, resource_name: str) -> str: ...
171 def set_extraction_path(path: str) -> None: ...
172 def cleanup_resources(force: bool = ...) -> list[str]: ...
173
174 class IResourceManager:
175     def resource_exists(self, package_or_requirement: _PkgReqType, resource_name: str) -> bool: ...
176     def resource_stream(self, package_or_requirement: _PkgReqType, resource_name: str) -> IO[bytes]: ...
177     def resource_string(self, package_or_requirement: _PkgReqType, resource_name: str) -> bytes: ...
178     def resource_isdir(self, package_or_requirement: _PkgReqType, resource_name: str) -> bool: ...
179     def resource_listdir(self, package_or_requirement: _PkgReqType, resource_name: str) -> list[str]: ...
180     def resource_filename(self, package_or_requirement: _PkgReqType, resource_name: str) -> str: ...
181     def set_extraction_path(self, path: str) -> None: ...
182     def cleanup_resources(self, force: bool = ...) -> list[str]: ...
183     def get_cache_path(self, archive_name: str, names: Iterable[str] = ...) -> str: ...
184     def extraction_error(self) -> None: ...
185     def postprocess(self, tempname: str, filename: str) -> None: ...
186
187 @overload
188 def get_provider(package_or_requirement: str) -> IResourceProvider: ...
189 @overload
190 def get_provider(package_or_requirement: Requirement) -> Distribution: ...
191
192 class IMetadataProvider:
193     def has_metadata(self, name: str) -> bool: ...
194     def metadata_isdir(self, name: str) -> bool: ...
195     def metadata_listdir(self, name: str) -> list[str]: ...
196     def get_metadata(self, name: str) -> str: ...
197     def get_metadata_lines(self, name: str) -> Generator[str, None, None]: ...
198     def run_script(self, script_name: str, namespace: dict[str, Any]) -> None: ...
199
200 class ResolutionError(Exception): ...
201
202 class DistributionNotFound(ResolutionError):
203     @property
204     def req(self) -> Requirement: ...
205     @property
206     def requirers(self) -> set[str]: ...
207     @property
208     def requirers_str(self) -> str: ...
209     def report(self) -> str: ...
210
211 class VersionConflict(ResolutionError):
212     @property
213     def dist(self) -> Any: ...
214     @property
215     def req(self) -> Any: ...
216     def report(self) -> str: ...
217     def with_context(self, required_by: set[Distribution | str]) -> VersionConflict: ...
218
219 class ContextualVersionConflict(VersionConflict):
220     @property
221     def required_by(self) -> set[Distribution | str]: ...
222
223 class UnknownExtra(ResolutionError): ...
224
225 class ExtractionError(Exception):
226     manager: IResourceManager
227     cache_path: str
228     original_error: Exception
229
230 class _Importer(importlib.abc.MetaPathFinder, importlib.abc.InspectLoader, metaclass=ABCMeta): ...
231
232 def register_finder(importer_type: type, distribution_finder: _DistFinderType) -> None: ...
233 def register_loader_type(loader_type: type, provider_factory: Callable[[types.ModuleType], IResourceProvider]) -> None: ...
234 def register_namespace_handler(importer_type: type, namespace_handler: _NSHandlerType) -> None: ...
235
236 class IResourceProvider(IMetadataProvider): ...
237 class NullProvider: ...
238 class EggProvider(NullProvider): ...
239 class DefaultProvider(EggProvider): ...
240
241 class PathMetadata(DefaultProvider, IResourceProvider):
242     def __init__(self, path: str, egg_info: str) -> None: ...
243
244 class ZipProvider(EggProvider): ...
245
246 class EggMetadata(ZipProvider, IResourceProvider):
247     def __init__(self, zipimporter: zipimport.zipimporter) -> None: ...
248
249 class EmptyProvider(NullProvider): ...
250
251 empty_provider: EmptyProvider
252
253 class FileMetadata(EmptyProvider, IResourceProvider):
254     def __init__(self, path_to_pkg_info: str) -> None: ...
255
256 def parse_version(v: str) -> Version | LegacyVersion: ...
257 def yield_lines(strs: _NestedStr) -> Generator[str, None, None]: ...
258 def split_sections(strs: _NestedStr) -> Generator[tuple[str | None, str], None, None]: ...
259 def safe_name(name: str) -> str: ...
260 def safe_version(version: str) -> str: ...
261 def safe_extra(extra: str) -> str: ...
262 def to_filename(name_or_version: str) -> str: ...
263 def get_build_platform() -> str: ...
264 def get_platform() -> str: ...
265 def get_supported_platform() -> str: ...
266 def compatible_platforms(provided: str | None, required: str | None) -> bool: ...
267 def get_default_cache() -> str: ...
268 def get_importer(path_item: str) -> _Importer: ...
269 def ensure_directory(path: str) -> None: ...
270 def normalize_path(filename: str) -> str: ...