1919
2020from lean .click import LeanCommand , PathParameter , ensure_options
2121from lean .components .docker .lean_runner import LeanRunner
22- from lean .constants import DEFAULT_ENGINE_IMAGE , CONTAINER_LABEL_LEAN_VERSION_NAME
22+ from lean .constants import DEFAULT_ENGINE_IMAGE
2323from lean .container import container
2424from lean .models .api import QCParameter , QCBacktest
2525from lean .models .click_options import options_from_json , get_configs_for_options
@@ -227,6 +227,8 @@ def optimize(project: Path,
227227 if optimizer_config is not None and strategy is not None :
228228 raise RuntimeError ("--optimizer-config and --strategy are mutually exclusive" )
229229
230+ engine_image , container_module_version , project_config = container .manage_docker_image (image , update , no_update ,
231+ algorithm_file .parent )
230232 if optimizer_config is not None :
231233 config = loads (optimizer_config .read_text (encoding = "utf-8" ))
232234
@@ -242,8 +244,6 @@ def optimize(project: Path,
242244 optimization_parameters = optimizer_config_manager .parse_parameters (parameter )
243245 optimization_constraints = optimizer_config_manager .parse_constraints (constraint )
244246 else :
245- project_config_manager = container .project_config_manager
246- project_config = project_config_manager .get_project_config (algorithm_file .parent )
247247 project_parameters = [QCParameter (key = k , value = v ) for k , v in project_config .get ("parameters" , {}).items ()]
248248
249249 if len (project_parameters ) == 0 :
@@ -286,17 +286,8 @@ def optimize(project: Path,
286286 with config_path .open ("w+" , encoding = "utf-8" ) as file :
287287 file .write (dumps (config , indent = 4 ) + "\n " )
288288
289- project_config_manager = container .project_config_manager
290- cli_config_manager = container .cli_config_manager
291-
292- project_config = project_config_manager .get_project_config (algorithm_file .parent )
293- engine_image = cli_config_manager .get_engine_image (image or project_config .get ("engine-image" , None ))
294-
295289 logger = container .logger
296290
297- if str (engine_image ) != DEFAULT_ENGINE_IMAGE :
298- logger .warn (f'A custom engine image: "{ engine_image } " is being used!' )
299-
300291 lean_config_manager = container .lean_config_manager
301292 lean_config = lean_config_manager .get_complete_lean_config (environment_name , algorithm_file , None )
302293
@@ -307,9 +298,6 @@ def optimize(project: Path,
307298
308299 paths_to_mount = None
309300
310- container_module_version = container .docker_manager .get_image_label (engine_image ,
311- CONTAINER_LABEL_LEAN_VERSION_NAME , None )
312-
313301 if data_provider_historical is not None :
314302 data_provider = non_interactive_config_build_for_name (lean_config , data_provider_historical ,
315303 cli_data_downloaders , kwargs , logger , environment_name )
@@ -342,8 +330,6 @@ def optimize(project: Path,
342330 build_and_configure_modules (addon_module , cli_addon_modules , organization_id , lean_config ,
343331 kwargs , logger , environment_name , container_module_version )
344332
345- container .update_manager .pull_docker_image_if_necessary (engine_image , update , no_update )
346-
347333 run_options = lean_runner .get_basic_docker_config (lean_config , algorithm_file , output , None , release , should_detach ,
348334 engine_image , paths_to_mount )
349335
0 commit comments