Skip to content

Commit fb537c7

Browse files
authored
moving hookManager to api (#17879)
1 parent 0fd242b commit fb537c7

File tree

6 files changed

+17
-20
lines changed

6 files changed

+17
-20
lines changed

conan/api/subapi/config.py

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from conan.internal.model.pkg_type import PackageType
2121
from conan.api.model import RecipeReference
2222
from conan.internal.model.settings import Settings
23+
from conans.client.hook_manager import HookManager
2324
from conans.util.files import load, save, rmdir, remove
2425

2526

@@ -29,6 +30,7 @@ def __init__(self, conan_api):
2930
self.conan_api = conan_api
3031
self._new_config = None
3132
self._cli_core_confs = None
33+
self.hook_manager = HookManager(HomePaths(conan_api.home_folder).hooks_path)
3234

3335
def home(self):
3436
return self.conan_api.cache_folder
@@ -234,3 +236,4 @@ def reinit(self):
234236
if self._new_config is not None:
235237
self._new_config.clear()
236238
self._populate_global_conf()
239+
self.hook_manager = HookManager(HomePaths(self.conan_api.home_folder).hooks_path)

conan/api/subapi/export.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
from conan.api.output import ConanOutput
22
from conan.internal.cache.cache import PkgCache
3-
from conan.internal.cache.home_paths import HomePaths
43
from conan.internal.conan_app import ConanApp
54
from conan.internal.api.export import cmd_export
65
from conan.internal.methods import run_package_method
76
from conans.client.graph.graph import BINARY_BUILD, RECIPE_INCACHE
8-
from conans.client.hook_manager import HookManager
97
from conan.api.model import PkgReference
108
from conans.util.files import mkdir
119

@@ -18,13 +16,13 @@ def __init__(self, conan_api):
1816
def export(self, path, name, version, user, channel, lockfile=None, remotes=None):
1917
ConanOutput().title("Exporting recipe to the cache")
2018
app = ConanApp(self.conan_api)
21-
hook_manager = HookManager(HomePaths(self.conan_api.home_folder).hooks_path)
19+
hook_manager = self.conan_api.config.hook_manager
2220
return cmd_export(app, hook_manager, self.conan_api.config.global_conf, path, name, version,
2321
user, channel, graph_lock=lockfile, remotes=remotes)
2422

2523
def export_pkg(self, deps_graph, source_folder, output_folder):
2624
cache = PkgCache(self.conan_api.cache_folder, self.conan_api.config.global_conf)
27-
hook_manager = HookManager(HomePaths(self.conan_api.home_folder).hooks_path)
25+
hook_manager = self.conan_api.config.hook_manager
2826

2927
# The graph has to be loaded with build_mode=[ref.name], so that node is not tried
3028
# to be downloaded from remotes

conan/api/subapi/install.py

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
import os
22

33
from conan.internal.api.install.generators import write_generators
4-
from conan.internal.cache.home_paths import HomePaths
54
from conan.internal.conan_app import ConanBasicApp
65
from conan.internal.deploy import do_deploys
76

87
from conans.client.graph.install_graph import InstallGraph
9-
from conans.client.hook_manager import HookManager
108
from conans.client.installer import BinaryInstaller
119
from conan.errors import ConanInvalidConfiguration
1210

@@ -22,7 +20,8 @@ def install_binaries(self, deps_graph, remotes=None):
2220
:param remotes:
2321
"""
2422
app = ConanBasicApp(self.conan_api)
25-
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages)
23+
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages,
24+
self.conan_api.config.hook_manager)
2625
install_graph = InstallGraph(deps_graph)
2726
install_graph.raise_errors()
2827
install_order = install_graph.install_order()
@@ -35,7 +34,8 @@ def install_system_requires(self, graph, only_info=False):
3534
:param graph: Dependency graph to intall packages for
3635
"""
3736
app = ConanBasicApp(self.conan_api)
38-
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages)
37+
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages,
38+
self.conan_api.config.hook_manager)
3939
installer.install_system_requires(graph, only_info)
4040

4141
def install_sources(self, graph, remotes):
@@ -45,7 +45,8 @@ def install_sources(self, graph, remotes):
4545
:param graph: Dependency graph to install packages for
4646
"""
4747
app = ConanBasicApp(self.conan_api)
48-
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages)
48+
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages,
49+
self.conan_api.config.hook_manager)
4950
installer.install_sources(graph, remotes)
5051

5152
# TODO: Look for a better name
@@ -86,7 +87,7 @@ def install_consumer(self, deps_graph, generators=None, source_folder=None, outp
8687
if gen not in final_generators:
8788
final_generators.append(gen)
8889
conanfile.generators = final_generators
89-
hook_manager = HookManager(HomePaths(self.conan_api.home_folder).hooks_path)
90+
hook_manager = self.conan_api.config.hook_manager
9091
write_generators(conanfile, hook_manager, self.conan_api.home_folder,
9192
envs_generation=envs_generation)
9293

conan/api/subapi/local.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,13 @@
11
import os
22

33
from conan.cli import make_abs_path
4-
from conan.internal.cache.home_paths import HomePaths
54
from conan.internal.conan_app import ConanApp
65
from conan.internal.api.local.editable import EditablePackages
76
from conan.internal.methods import run_build_method, run_source_method
87
from conans.client.graph.graph import CONTEXT_HOST
98
from conans.client.graph.profile_node_definer import initialize_conanfile_profile
109
from conan.internal.errors import conanfile_exception_formatter
1110
from conan.errors import ConanException
12-
from conans.client.hook_manager import HookManager
1311
from conan.api.model import RecipeReference
1412
from conans.util.files import chdir
1513

@@ -93,13 +91,13 @@ def source(self, path, name=None, version=None, user=None, channel=None, remotes
9391
conanfile.folders.set_base_build(None)
9492
conanfile.folders.set_base_package(None)
9593

96-
hook_manager = HookManager(HomePaths(self._conan_api.home_folder).hooks_path)
94+
hook_manager = self._conan_api.config.hook_manager
9795
run_source_method(conanfile, hook_manager)
9896

9997
def build(self, conanfile):
10098
""" calls the 'build()' method of the current (user folder) conanfile.py
10199
"""
102-
hook_manager = HookManager(HomePaths(self._conan_api.home_folder).hooks_path)
100+
hook_manager = self._conan_api.config.hook_manager
103101
conanfile.folders.set_base_package(conanfile.folders.base_build)
104102
conanfile.folders.set_base_pkg_metadata(os.path.join(conanfile.build_folder, "metadata"))
105103
run_build_method(conanfile, hook_manager)

conans/client/installer.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
from multiprocessing.pool import ThreadPool
44

55
from conan.api.output import ConanOutput
6-
from conan.internal.cache.home_paths import HomePaths
76
from conan.internal.methods import run_build_method, run_package_method
87
from conan.internal.api.install.generators import write_generators
98
from conans.client.graph.graph import BINARY_BUILD, BINARY_CACHE, BINARY_DOWNLOAD, BINARY_EDITABLE, \
109
BINARY_UPDATE, BINARY_EDITABLE_BUILD, BINARY_SKIP
1110
from conans.client.graph.install_graph import InstallGraph
12-
from conans.client.hook_manager import HookManager
1311
from conans.client.source import retrieve_exports_sources, config_source
1412
from conan.internal.errors import conanfile_remove_attr, conanfile_exception_formatter
1513
from conan.errors import ConanException
@@ -170,12 +168,12 @@ class BinaryInstaller:
170168
locally in case they are not found in remotes
171169
"""
172170

173-
def __init__(self, app, global_conf, editable_packages):
171+
def __init__(self, app, global_conf, editable_packages, hook_manager):
174172
self._app = app
175173
self._editable_packages = editable_packages
176174
self._cache = app.cache
177175
self._remote_manager = app.remote_manager
178-
self._hook_manager = HookManager(HomePaths(app.cache_folder).hooks_path)
176+
self._hook_manager = hook_manager
179177
self._global_conf = global_conf
180178
self._home_folder = app.cache_folder
181179

conans/client/rest_client_local_recipe_index.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ class RestApiClientLocalRecipesIndex:
6161
def __init__(self, remote, home_folder):
6262
self._remote = remote
6363
local_recipes_index_path = HomePaths(home_folder).local_recipes_index_path
64-
local_recipes_index_path = os.path.join(local_recipes_index_path, remote.name)
65-
local_recipes_index_path = os.path.join(local_recipes_index_path, ".conan")
64+
local_recipes_index_path = os.path.join(local_recipes_index_path, remote.name, ".conan")
6665
repo_folder = self._remote.url
6766

6867
from conan.internal.conan_app import LocalRecipesIndexApp

0 commit comments

Comments
 (0)