def _get_manifest_dir(data=None, name=None): """ get manifest directory from the data dictionary, falling back on alternatives it prefers, in order: 1. locating it from the bcbio_system.yaml file 2. locating it from the galaxy directory 3. location it from the python executable. it can accept either the data or config dictionary """ manifest_dir = None if data: bcbio_system = tz.get_in(["config", "bcbio_system"], data, None) bcbio_system = bcbio_system if bcbio_system else data.get("bcbio_system", None) if bcbio_system: sibling_dir = os.path.normpath(os.path.dirname(bcbio_system)) else: sibling_dir = dd.get_galaxy_dir(data) if sibling_dir: manifest_dir = os.path.normpath(os.path.join(sibling_dir, os.pardir, "manifest")) if not manifest_dir or not os.path.exists(manifest_dir): manifest_dir = os.path.join(config_utils.get_base_installdir(), "manifest") if not os.path.exists(manifest_dir) and name: manifest_dir = os.path.join(config_utils.get_base_installdir(name), "manifest") return manifest_dir
def _get_manifest_dir(data=None, name=None): """ get manifest directory from the data dictionary, falling back on alternatives it prefers, in order: 1. locating it from the bcbio_system.yaml file 2. locating it from the galaxy directory 3. location it from the python executable. it can accept either the data or config dictionary """ manifest_dir = None if data: bcbio_system = tz.get_in(["config", "bcbio_system"], data, None) bcbio_system = bcbio_system if bcbio_system else data.get( "bcbio_system", None) if bcbio_system: sibling_dir = os.path.normpath(os.path.dirname(bcbio_system)) else: sibling_dir = dd.get_galaxy_dir(data) if sibling_dir: manifest_dir = os.path.normpath( os.path.join(sibling_dir, os.pardir, "manifest")) if not manifest_dir or not os.path.exists(manifest_dir): manifest_dir = os.path.join(config_utils.get_base_installdir(), "manifest") if not os.path.exists(manifest_dir) and name: manifest_dir = os.path.join(config_utils.get_base_installdir(name), "manifest") return manifest_dir
def _get_versions_manifest(): """Retrieve versions from a pre-existing manifest of installed software. """ all_pkgs = ["htseq", "cn.mops", "vt", "platypus-variant", "gatk-framework"] + \ [p.get("name", p["cmd"]) for p in _cl_progs] + [p["name"] for p in _alt_progs] manifest_dir = os.path.join(config_utils.get_base_installdir(), "manifest") if os.path.exists(manifest_dir): out = [] for plist in ["toolplus", "brew", "python", "r", "debian", "custom"]: pkg_file = os.path.join(manifest_dir, "%s-packages.yaml" % plist) if os.path.exists(pkg_file): with open(pkg_file) as in_handle: pkg_info = yaml.safe_load(in_handle) added = [] for pkg in all_pkgs: if pkg in pkg_info: added.append(pkg) out.append({ "program": pkg, "version": pkg_info[pkg]["version"] }) for x in added: all_pkgs.remove(x) out.sort(key=lambda x: x["program"]) for pkg in all_pkgs: out.append({"program": pkg, "version": ""}) return out
def _get_versions_manifest(): """Retrieve versions from a pre-existing manifest of installed software. """ all_pkgs = ["htseq", "cn.mops", "vt", "platypus-variant", "gatk-framework"] + \ [p.get("name", p["cmd"]) for p in _cl_progs] + [p["name"] for p in _alt_progs] manifest_dir = os.path.join(config_utils.get_base_installdir(), "manifest") if os.path.exists(manifest_dir): out = [] for plist in ["toolplus", "brew", "python", "r", "debian", "custom"]: pkg_file = os.path.join(manifest_dir, "%s-packages.yaml" % plist) if os.path.exists(pkg_file): with open(pkg_file) as in_handle: pkg_info = yaml.safe_load(in_handle) added = [] for pkg in all_pkgs: if pkg in pkg_info: added.append(pkg) out.append({"program": pkg, "version": pkg_info[pkg]["version"]}) for x in added: all_pkgs.remove(x) out.sort(key=lambda x: x["program"]) for pkg in all_pkgs: out.append({"program": pkg, "version": ""}) return out