Inspect dependencies are installed for thirdparty libraries #93
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
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
BaseModuleHaddockclass has now an@abstractclassmethodnamedconfirm_installationthat needs to be implemented on every subclass ofBaseModuleHaddock. HADDOCK3's own modules must implement a dummy method with a simplereturnstatement 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 byconfirm_installationwill be captured and raised as a problem with the installation.I have implemented confirmation routines for both
lightdock,gdock, andFCC, 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_runFP-based implementation as well as the OOP-based implementation ofBaseModuleHaddockseeded by @brianjimenez . Taking profit from both realms 😉