Source code for icolos.utils.execute_external.ligprep

from icolos.utils.enums.program_parameters import (
    SchrodingerExecutablesEnum,
    LigprepEnum,
)
from icolos.utils.execute_external.execute import ExecutorBase

SEE = SchrodingerExecutablesEnum()
EE = LigprepEnum()


[docs]class LigprepExecutor(ExecutorBase): """For the execution of the "ligprep" binary.""" def __init__(self, prefix_execution=None, binary_location=None): super().__init__( prefix_execution=prefix_execution, binary_location=binary_location )
[docs] def execute( self, command: str, arguments: list, check=True, location=None, pipe_input=None ): # check, whether a proper executable is provided if command not in [EE.LIGPREP]: raise ValueError( "Parameter command must be an dictionary of the internal Ligprep executable list." ) # Note: It seems in former times, the call "ligprep" had to be changed to "$SCHRODINGER/ligprep" here. return super().execute( command=command, arguments=arguments, check=check, location=location, pipe_input=pipe_input, )
[docs] def is_available(self): try: result = self.execute( command=EE.LIGPREP, arguments=[EE.LIGPREP_HELP], check=True ) if EE.LIGPREP_HELP_IDENTIFICATION_STRING in result.stdout: return True return False except Exception as e: return False