Mercurial > repos > shellac > guppy_basecaller
diff env/lib/python3.7/site-packages/planemo/conda_recipes.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/env/lib/python3.7/site-packages/planemo/conda_recipes.py Sat May 02 07:14:21 2020 -0400 @@ -0,0 +1,63 @@ +"""Planemo specific utilities for dealing with conda recipe generation. +""" + +from __future__ import absolute_import + +import os + +from planemo import git +from planemo.bioconda_scripts import bioconductor_skeleton +from planemo.io import info + +# Bioconda helper functions + + +def clone_bioconda_repo(path): + """Clone bioconda repository in given path.""" + bioconda_repo = "git@github.com:bioconda/bioconda-recipes.git" + git.clone(None, bioconda_repo, path) + return "git clone of bioconda repo worked" + + +def write_bioconda_recipe(package_name, clone, update, bioconda_dir_path=None): + """Make a bioconda recipe given the package name. + + clone: y/N , clone the whole bioconda repository and create recipe inside + repository. + + update: The update feature differs from the one in bioconda, as it + updates the specific package, as opposed to the every package in the + biocoda repository. + """ + # set bioconda path + if bioconda_dir_path is None: + bioconda_recipe_path = os.path.join(os.path.expanduser("~"), "bioconda-recipes") + else: + bioconda_recipe_path = os.path.join(bioconda_dir_path, "bioconda-recipes") + + # Clone + if clone and (not os.path.exists(bioconda_recipe_path)): + clone_bioconda_repo(bioconda_recipe_path) + info("bioconda-recipes cloned and writing to %s" % bioconda_dir_path) + else: + info("Bioconda repository not cloned or already exists") + + # Check if package_name is in recipes + presence = any(package_name in r for r, d, f in os.walk(bioconda_recipe_path)) + if presence: + info("Package already exists in bioconda") + if update: + info("Package will be updated") + recipe_dir = os.path.join(bioconda_recipe_path, "recipes") + bioconductor_skeleton.write_recipe(package_name, recipe_dir, True) + elif not presence: + info("Package found in bioconda recipes") + recipe_dir = os.path.join(bioconda_recipe_path, "recipes") + bioconductor_skeleton.write_recipe(package_name, recipe_dir, True) + return + + +__all__ = ( + "clone_bioconda_repo", + "write_bioconda_recipe", +)