Source code for cap2.pipeline.config
from yaml import load
from os import environ
[docs]class PipelineConfig:
DB_MODE_DOWNLOAD = 'download'
DB_MODE_BUILD = 'build'
def __init__(self, filename):
if filename:
self.blob = load(open(filename).read())
else:
self.blob = {}
self.out_dir = self.blob.get('out_dir', environ.get('CAP2_OUT_DIR', 'results'))
self.db_dir = self.blob.get('db_dir', environ.get('CAP2_DB_DIR', 'cap2_dbs'))
self.db_mode = self.blob.get('db_mode', PipelineConfig.DB_MODE_DOWNLOAD)
self.conda_spec_dir = self.blob.get(
'conda_spec_dir', environ.get('CAP2_CONDA_SPEC_DIR', 'config/envs')
)
self.conda_base_path = self.blob.get(
'conda_base_path', environ.get('CAP2_CONDA_BASE_PATH', 'vendor/conda')
)
self.exc_metaspades = self.blob.get('EXC_METASPADES', None)
self.module_versions = self.blob.get('module_version', {})
[docs] def allowed_versions(self, module):
"""Return a list of the allowed versions for the specified module."""
module_name = module.module_name()
if module_name not in self.module_versions:
module_name = module._module_name()
if module_name not in self.module_versions:
return []
versions = self.module_versions[module_name]
return versions