Source code for schrodinger.maestro.commands
from contextlib import contextmanager
from schrodinger import get_maestro
maestro = get_maestro()
[docs]@contextmanager
def temporary_preference(command, preference, value):
"""
Set a maestro command preference to a temporary value, then after executing
other code, restore the original value for the command preference.
:param command: Command used to set temporary value
:type command: str
:param preference: Preference to temporarily set
:type preference: str
:param value: Temporary value
:type value: str
"""
old_value = maestro.get_command_option(command, preference)
maestro.command('%s %s="%s"' % (command, preference, value))
try:
yield
finally:
maestro.command('%s %s="%s"' % (command, preference, old_value))