src.environment_manager module¶
Classes which setup software dependencies for the PODs and which execute the PODs’ code.
-
class
src.environment_manager.AbstractEnvironmentManager(log=<Logger>)[source]¶ Bases:
abc.ABCAbstract interface for EnvironmentManagers.
-
class
src.environment_manager.NullEnvironmentManager(log=<Logger>)[source]¶ Bases:
src.environment_manager.AbstractEnvironmentManagerEnvironmentManager which performs no environment switching. Useful only as a dummy setting for building framework test harnesses.
-
setup()¶
-
tear_down()¶
-
-
class
src.environment_manager.VirtualenvEnvironmentManager(log=<Logger>)[source]¶ Bases:
src.environment_manager.AbstractEnvironmentManagerAbstractEnvironmentManagerthat manages dependencies assuming that current versions of the scripting language executables are already available on$PATH. For python-based PODs, it uses pip and virtualenvs to install needed libraries. For R-based PODs, it attempts to install needed libraries into the current user’s$PATH. For other scripting languages, no library management is performed.-
setup()¶
-
tear_down()¶
-
-
class
src.environment_manager.CondaEnvironmentManager(log=<Logger>)[source]¶ Bases:
src.environment_manager.AbstractEnvironmentManagerAbstractEnvironmentManagerthat uses the conda package manager to define and switch runtime environments.-
env_name_prefix= '_MDTF_'¶
-
activate_env_commands(env_name)[source]¶ Source conda_init.sh to set things that aren’t set b/c we aren’t in an interactive shell.
-
setup()¶
-
tear_down()¶
-
-
class
src.environment_manager.AbstractRuntimeManager[source]¶ Bases:
abc.ABCInterface for RuntimeManagers.
-
__init__()¶ Initialize self. See help(type(self)) for accurate signature.
-
-
class
src.environment_manager.SubprocessRuntimePODWrapper(pod: Any = sentinel.Mandatory, env: Any = None, env_vars: dict = <factory>)[source]¶ Bases:
objectWrapper for
diagnostic.Diagnosticthat adds fields and methods used bySubprocessRuntimeManager.-
pod: Any = sentinel.Mandatory¶
-
env: Any = None¶
-
process: Any = None¶
-
validate_commands()[source]¶ Produces the shell command(s) to validate the POD’s runtime environment (ie, check for all requested third-party module dependencies.) Dependencies are passed as arguments to the shell script
src/validate_environment.sh, which is invoked in the POD’s subprocess before the POD is run.- Returns
- Command-line invocation to validate the POD’s
runtime environment.
- Return type
(
str)
-
__init__(pod: Any = sentinel.Mandatory, env: Any = None, env_vars: dict = <factory>) → None¶ Initialize self. See help(type(self)) for accurate signature.
-
__post_init__(*args, **kwargs)¶
-
-
class
src.environment_manager.SubprocessRuntimeManager(case, EnvMgrClass)[source]¶ Bases:
src.environment_manager.AbstractRuntimeManagerRuntimeManager that spawns a separate system subprocess for each POD.