Source code for idmtools_platform_comps.utils.python_version
"""idmtools special comps hooks.
Notes:
- TODO update this to use new function plugins
Copyright 2021, Bill & Melinda Gates Foundation. All rights reserved.
"""
SLURM_ENVIRONMENTS = ['slurmdev', 'slurm2', 'slurmstage', 'calculon']
PYTHON_EXECUTABLE = 'python3'
[docs]def platform_task_hooks(task, platform):
"""
Update python task with proper python executable.
Args:
task: PythonTask or CommandTask
platform: the platform user uses
Returns: re-build task
Notes:
- TODO revisit with SingularityTasks later
"""
try:
from idmtools_models.python.python_task import PythonTask
from idmtools.entities.command_task import CommandTask
if isinstance(task, PythonTask):
if platform.environment.lower() in SLURM_ENVIRONMENTS and task.python_path.lower() == 'python':
task.python_path = PYTHON_EXECUTABLE
elif isinstance(task, CommandTask) and platform.environment.lower() in SLURM_ENVIRONMENTS:
cmd_list = task.command.executable.split(' ')
if cmd_list[0].lower() == 'python':
cmd_list[0] = PYTHON_EXECUTABLE
task.command.executable = ' '.join(cmd_list)
except ImportError:
pass
return task