@@ -6,7 +6,7 @@ from abc import ABCMeta
6
6
from collections .abc import Callable , Generator , Iterable , Sequence
7
7
from io import BytesIO
8
8
from re import Pattern
9
- from typing import IO , Any , ClassVar , TypeVar , overload
9
+ from typing import IO , Any , ClassVar , Protocol , TypeVar , overload , type_check_only
10
10
from typing_extensions import Literal , Self , TypeAlias
11
11
12
12
_Version : TypeAlias = Incomplete # from packaging.version
@@ -21,8 +21,8 @@ _PkgReqType: TypeAlias = str | Requirement
21
21
_DistFinderType : TypeAlias = Callable [[_Importer , str , bool ], Generator [Distribution , None , None ]]
22
22
_NSHandlerType : TypeAlias = Callable [[_Importer , str , str , types .ModuleType ], str ]
23
23
24
- def declare_namespace (name : str ) -> None : ...
25
- def fixup_namespace_packages (path_item : str ) -> None : ...
24
+ def declare_namespace (packageName : str ) -> None : ...
25
+ def fixup_namespace_packages (path_item : str , parent = None ) -> None : ...
26
26
27
27
class WorkingSet :
28
28
entries : list [str ]
@@ -35,18 +35,24 @@ class WorkingSet:
35
35
def __iter__ (self ) -> Generator [Distribution , None , None ]: ...
36
36
def find (self , req : Requirement ) -> Distribution | None : ...
37
37
def resolve (
38
- self , requirements : Iterable [Requirement ], env : Environment | None = None , installer : _InstallerType | None = None
38
+ self ,
39
+ requirements : Iterable [Requirement ],
40
+ env : Environment | None = None ,
41
+ installer : _InstallerType | None = None ,
42
+ replace_conflicting : bool = False ,
43
+ extras = None ,
39
44
) -> list [Distribution ]: ...
40
45
def add (self , dist : Distribution , entry : str | None = None , insert : bool = True , replace : bool = False ) -> None : ...
41
- def subscribe (self , callback : Callable [[Distribution ], object ]) -> None : ...
46
+ def subscribe (self , callback : Callable [[Distribution ], object ], existing : bool = True ) -> None : ...
42
47
def find_plugins (
43
- self , plugin_env : Environment , full_env : Environment | None = None , fallback : bool = True
48
+ self , plugin_env : Environment , full_env : Environment | None = None , installer = None , fallback : bool = True
44
49
) -> tuple [list [Distribution ], dict [Distribution , Exception ]]: ...
45
50
46
51
working_set : WorkingSet
47
52
48
53
require = working_set .require
49
54
run_script = working_set .run_script
55
+ run_main = run_script
50
56
iter_entry_points = working_set .iter_entry_points
51
57
add_activation_listener = working_set .subscribe
52
58
@@ -62,13 +68,15 @@ class Environment:
62
68
def __add__ (self , other : Distribution | Environment ) -> Environment : ...
63
69
def __iadd__ (self , other : Distribution | Environment ) -> Self : ...
64
70
@overload
65
- def best_match (self , req : Requirement , working_set : WorkingSet , * , replace_conflicting : bool = False ) -> Distribution : ...
71
+ def best_match (
72
+ self , req : Requirement , working_set : WorkingSet , installer : None = None , replace_conflicting : bool = False
73
+ ) -> Distribution : ...
66
74
@overload
67
75
def best_match (
68
76
self , req : Requirement , working_set : WorkingSet , installer : Callable [[Requirement ], _T ], replace_conflicting : bool = False
69
77
) -> _T : ...
70
78
@overload
71
- def obtain (self , requirement : Requirement ) -> None : ...
79
+ def obtain (self , requirement : Requirement , installer : None = None ) -> None : ...
72
80
@overload
73
81
def obtain (self , requirement : Requirement , installer : Callable [[Requirement ], _T ]) -> _T : ...
74
82
def scan (self , search_path : Sequence [str ] | None = None ) -> None : ...
@@ -85,6 +93,7 @@ class Requirement:
85
93
# TODO: change this to packaging.markers.Marker | None once we can import
86
94
# packaging.markers
87
95
marker : Incomplete | None
96
+ def __init__ (self , requirement_string : str ) -> None : ...
88
97
@staticmethod
89
98
def parse (s : str | Iterable [str ]) -> Requirement : ...
90
99
def __contains__ (self , item : Distribution | str | tuple [str , ...]) -> bool : ...
@@ -93,11 +102,12 @@ class Requirement:
93
102
def load_entry_point (dist : _EPDistType , group : str , name : str ) -> Any : ...
94
103
def get_entry_info (dist : _EPDistType , group : str , name : str ) -> EntryPoint | None : ...
95
104
@overload
96
- def get_entry_map (dist : _EPDistType ) -> dict [str , dict [str , EntryPoint ]]: ...
105
+ def get_entry_map (dist : _EPDistType , group : None = None ) -> dict [str , dict [str , EntryPoint ]]: ...
97
106
@overload
98
107
def get_entry_map (dist : _EPDistType , group : str ) -> dict [str , EntryPoint ]: ...
99
108
100
109
class EntryPoint :
110
+ pattern : ClassVar [Pattern [str ]]
101
111
name : str
102
112
module_name : str
103
113
attrs : tuple [str , ...]
@@ -143,8 +153,8 @@ def resource_listdir(package_or_requirement: _PkgReqType, resource_name: str) ->
143
153
def resource_filename (package_or_requirement : _PkgReqType , resource_name : str ) -> str : ...
144
154
def set_extraction_path (path : str ) -> None : ...
145
155
def cleanup_resources (force : bool = False ) -> list [str ]: ...
146
-
147
- class IResourceManager :
156
+ @ type_check_only
157
+ class _IResourceManager ( Protocol ) :
148
158
def resource_exists (self , package_or_requirement : _PkgReqType , resource_name : str ) -> bool : ...
149
159
def resource_stream (self , package_or_requirement : _PkgReqType , resource_name : str ) -> IO [bytes ]: ...
150
160
def resource_string (self , package_or_requirement : _PkgReqType , resource_name : str ) -> bytes : ...
@@ -158,11 +168,11 @@ class IResourceManager:
158
168
def postprocess (self , tempname : str , filename : str ) -> None : ...
159
169
160
170
@overload
161
- def get_provider (package_or_requirement : str ) -> IResourceProvider : ...
171
+ def get_provider (moduleOrReq : str ) -> IResourceProvider : ...
162
172
@overload
163
- def get_provider (package_or_requirement : Requirement ) -> Distribution : ...
173
+ def get_provider (moduleOrReq : Requirement ) -> Distribution : ...
164
174
165
- class IMetadataProvider :
175
+ class IMetadataProvider ( Protocol ) :
166
176
def has_metadata (self , name : str ) -> bool | None : ...
167
177
def metadata_isdir (self , name : str ) -> bool : ...
168
178
def metadata_listdir (self , name : str ) -> list [str ]: ...
@@ -196,7 +206,7 @@ class ContextualVersionConflict(VersionConflict):
196
206
class UnknownExtra (ResolutionError ): ...
197
207
198
208
class ExtractionError (Exception ):
199
- manager : IResourceManager
209
+ manager : _IResourceManager
200
210
cache_path : str
201
211
original_error : Exception
202
212
@@ -206,7 +216,16 @@ def register_finder(importer_type: type, distribution_finder: _DistFinderType) -
206
216
def register_loader_type (loader_type : type , provider_factory : Callable [[types .ModuleType ], IResourceProvider ]) -> None : ...
207
217
def register_namespace_handler (importer_type : type , namespace_handler : _NSHandlerType ) -> None : ...
208
218
209
- class IResourceProvider (IMetadataProvider ): ...
219
+ class IResourceProvider (IMetadataProvider , Protocol ):
220
+ def get_resource_filename (self , manager : _IResourceManager , resource_name ): ...
221
+ def get_resource_stream (self , manager : _IResourceManager , resource_name ): ...
222
+ def get_resource_string (self , manager : _IResourceManager , resource_name ): ...
223
+ def has_resource (self , resource_name ): ...
224
+ def resource_isdir (self , resource_name ): ...
225
+ def resource_listdir (self , resource_name ): ...
226
+
227
+ def invalid_marker (text ) -> SyntaxError | Literal [False ]: ...
228
+ def evaluate_marker (text , extra : Incomplete | None = None ): ...
210
229
211
230
class NullProvider :
212
231
egg_name : str | None
@@ -215,9 +234,9 @@ class NullProvider:
215
234
module_path : str | None
216
235
217
236
def __init__ (self , module ) -> None : ...
218
- def get_resource_filename (self , manager , resource_name ) -> str : ...
219
- def get_resource_stream (self , manager , resource_name ) -> BytesIO : ...
220
- def get_resource_string (self , manager , resource_name ): ...
237
+ def get_resource_filename (self , manager : _IResourceManager , resource_name ) -> str : ...
238
+ def get_resource_stream (self , manager : _IResourceManager , resource_name ) -> BytesIO : ...
239
+ def get_resource_string (self , manager : _IResourceManager , resource_name ): ...
221
240
def has_resource (self , resource_name ) -> bool : ...
222
241
def has_metadata (self , name : str ) -> bool | None : ...
223
242
def get_metadata (self , name : str ) -> str : ...
@@ -228,11 +247,21 @@ class NullProvider:
228
247
def metadata_listdir (self , name : str ) -> list [str ]: ...
229
248
def run_script (self , script_name : str , namespace : dict [str , Any ]) -> None : ...
230
249
231
- class Distribution (NullProvider , IResourceProvider , IMetadataProvider ):
250
+ # Doesn't actually extend NullProvider
251
+ class Distribution (NullProvider ):
232
252
PKG_INFO : ClassVar [str ]
233
253
location : str
234
254
project_name : str
235
255
@property
256
+ def hashcmp (self ) -> tuple [Incomplete , int , str , Incomplete | None , str , str ]: ...
257
+ def __hash__ (self ) -> int : ...
258
+ def __lt__ (self , other : Distribution ) -> bool : ...
259
+ def __le__ (self , other : Distribution ) -> bool : ...
260
+ def __gt__ (self , other : Distribution ) -> bool : ...
261
+ def __ge__ (self , other : Distribution ) -> bool : ...
262
+ def __eq__ (self , other : object ) -> bool : ...
263
+ def __ne__ (self , other : object ) -> bool : ...
264
+ @property
236
265
def key (self ) -> str : ...
237
266
@property
238
267
def extras (self ) -> list [str ]: ...
@@ -259,15 +288,17 @@ class Distribution(NullProvider, IResourceProvider, IMetadataProvider):
259
288
) -> Distribution : ...
260
289
@classmethod
261
290
def from_filename (cls , filename : str , metadata : _MetadataType = None , ** kw : str | None | int ) -> Distribution : ...
262
- def activate (self , path : list [str ] | None = None ) -> None : ...
291
+ def activate (self , path : list [str ] | None = None , replace : bool = False ) -> None : ...
263
292
def as_requirement (self ) -> Requirement : ...
264
293
def requires (self , extras : tuple [str , ...] = ()) -> list [Requirement ]: ...
294
+ def check_version_conflict (self ) -> None : ...
295
+ def has_version (self ) -> bool : ...
265
296
def clone (self , ** kw : str | int | None ) -> Requirement : ...
266
297
def egg_name (self ) -> str : ... # type: ignore[override] # supertype's egg_name is a variable, not a method
267
- def __cmp__ (self , other : Any ) -> bool : ...
268
298
def get_entry_info (self , group : str , name : str ) -> EntryPoint | None : ...
299
+ def insert_on (self , path , loc : Incomplete | None = None , replace : bool = False ) -> None : ...
269
300
@overload
270
- def get_entry_map (self ) -> dict [str , dict [str , EntryPoint ]]: ...
301
+ def get_entry_map (self , group : None = None ) -> dict [str , dict [str , EntryPoint ]]: ...
271
302
@overload
272
303
def get_entry_map (self , group : str ) -> dict [str , EntryPoint ]: ...
273
304
def load_entry_point (self , group : str , name : str ) -> Any : ...
@@ -281,37 +312,41 @@ class EggProvider(NullProvider):
281
312
282
313
class DefaultProvider (EggProvider ): ...
283
314
284
- class PathMetadata (DefaultProvider , IResourceProvider ):
315
+ class PathMetadata (DefaultProvider ):
285
316
egg_info : str
286
317
module_path : str
287
318
def __init__ (self , path : str , egg_info : str ) -> None : ...
288
319
289
320
class ZipProvider (EggProvider ):
290
321
eagers : list [str ] | None
291
322
zip_pre : str
323
+ @property
324
+ def zipinfo (self ): ...
292
325
293
- class EggMetadata (ZipProvider , IResourceProvider ):
326
+ class EggMetadata (ZipProvider ):
294
327
loader : zipimport .zipimporter
295
328
module_path : str
296
- def __init__ (self , zipimporter : zipimport .zipimporter ) -> None : ...
329
+ def __init__ (self , importer : zipimport .zipimporter ) -> None : ...
297
330
298
331
class EmptyProvider (NullProvider ):
299
332
module_path : None
300
333
def __init__ (self ) -> None : ...
301
334
302
335
empty_provider : EmptyProvider
303
336
304
- class FileMetadata (EmptyProvider , IResourceProvider ):
305
- def __init__ (self , path_to_pkg_info : str ) -> None : ...
337
+ class FileMetadata (EmptyProvider ):
338
+ def __init__ (self , path : str ) -> None : ...
339
+
340
+ class PEP440Warning (RuntimeWarning ): ...
306
341
307
342
parse_version = _Version
308
343
309
344
def yield_lines (iterable : _NestedStr ) -> Generator [str , None , None ]: ...
310
- def split_sections (strs : _NestedStr ) -> Generator [tuple [str | None , list [str ]], None , None ]: ...
345
+ def split_sections (s : _NestedStr ) -> Generator [tuple [str | None , list [str ]], None , None ]: ...
311
346
def safe_name (name : str ) -> str : ...
312
347
def safe_version (version : str ) -> str : ...
313
348
def safe_extra (extra : str ) -> str : ...
314
- def to_filename (name_or_version : str ) -> str : ...
349
+ def to_filename (name : str ) -> str : ...
315
350
def get_build_platform () -> str : ...
316
351
def get_platform () -> str : ...
317
352
def get_supported_platform () -> str : ...
@@ -320,3 +355,5 @@ def get_default_cache() -> str: ...
320
355
def get_importer (path_item : str ) -> _Importer : ...
321
356
def ensure_directory (path : str ) -> None : ...
322
357
def normalize_path (filename : str ) -> str : ...
358
+
359
+ class PkgResourcesDeprecationWarning (Warning ): ...
0 commit comments