1# Licensed under the LGPL: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html
2# For details: https://github.com/pylint-dev/astroid/blob/main/LICENSE
3# Copyright (c) https://github.com/pylint-dev/astroid/blob/main/CONTRIBUTORS.txt
4
5from astroid import nodes
6from astroid.brain.helpers import register_module_extender
7from astroid.builder import parse
8from astroid.manager import AstroidManager
9
10
11def pkg_resources_transform() -> nodes.Module:
12 return parse(
13 """
14def require(*requirements):
15 return pkg_resources.working_set.require(*requirements)
16
17def run_script(requires, script_name):
18 return pkg_resources.working_set.run_script(requires, script_name)
19
20def iter_entry_points(group, name=None):
21 return pkg_resources.working_set.iter_entry_points(group, name)
22
23def resource_exists(package_or_requirement, resource_name):
24 return get_provider(package_or_requirement).has_resource(resource_name)
25
26def resource_isdir(package_or_requirement, resource_name):
27 return get_provider(package_or_requirement).resource_isdir(
28 resource_name)
29
30def resource_filename(package_or_requirement, resource_name):
31 return get_provider(package_or_requirement).get_resource_filename(
32 self, resource_name)
33
34def resource_stream(package_or_requirement, resource_name):
35 return get_provider(package_or_requirement).get_resource_stream(
36 self, resource_name)
37
38def resource_string(package_or_requirement, resource_name):
39 return get_provider(package_or_requirement).get_resource_string(
40 self, resource_name)
41
42def resource_listdir(package_or_requirement, resource_name):
43 return get_provider(package_or_requirement).resource_listdir(
44 resource_name)
45
46def extraction_error():
47 pass
48
49def get_cache_path(archive_name, names=()):
50 extract_path = self.extraction_path or get_default_cache()
51 target_path = os.path.join(extract_path, archive_name+'-tmp', *names)
52 return target_path
53
54def postprocess(tempname, filename):
55 pass
56
57def set_extraction_path(path):
58 pass
59
60def cleanup_resources(force=False):
61 pass
62
63def get_distribution(dist):
64 return Distribution(dist)
65
66_namespace_packages = {}
67"""
68 )
69
70
71def register(manager: AstroidManager) -> None:
72 register_module_extender(manager, "pkg_resources", pkg_resources_transform)