Skip to content

Conversation

@joaomcteixeira
Copy link
Member

@joaomcteixeira joaomcteixeira commented Sep 17, 2021

Closes #29

concept

HADDOCK3 integrates third-party packages in its workflows. This PR implements a structure meant to assess if third-party packages are installed before executing the workflow. Hence, HADDOCK3 is not responsible for the proper installation of such packages.

detailed implementations

The BaseModuleHaddock class has now an @abstractclassmethod named confirm_installation that needs to be implemented on every subclass of BaseModuleHaddock. HADDOCK3's own modules must implement a dummy method with a simple return statement to bypass the required install confirmation. Third-party modules should implement whatever routines needed to properly check the module is functional with all third-party software installed. These confirmation steps take place while preparing the run and before executing the workflow. Any error raised by confirm_installation will be captured and raised as a problem with the installation.

I have implemented confirmation routines for both lightdock, gdock, and FCC, as well as for all other HADDOCK3 modules.

Updated installation instructions and dependencies.


I think this implementation is a good example of both the modularity and extensibility of the prepare_run FP-based implementation as well as the OOP-based implementation of BaseModuleHaddock seeded by @brianjimenez . Taking profit from both realms 😉

@joaomcteixeira joaomcteixeira merged commit e1bb9ef into haddocking:main Oct 25, 2021
@joaomcteixeira joaomcteixeira deleted the optional_deps branch October 25, 2021 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Change LightDock to an optional dependency

2 participants