view @ 0:4395ea2a01f4 draft

"planemo upload for repository commit 35da2dcd86747c9bff138e100dbe08c6106f3780"
author bgruening
date Sat, 06 Feb 2021 10:00:10 +0000
line wrap: on
line source


def get_json_value(json_input, keys_path):
    """Returns the value specified in keys_path (using dot notation) or an empty string if the key doesn't exist"""
    if not isinstance(json_input, dict):
        return ""
    keys = keys_path.split(".")
        value = json_input[keys[0]]
        for key in keys[1:]:
            value = value[key]
        return value
    except KeyError:
        return ""

def concat_conditional(a, b):
    if a == "" or b == "":
        return ""
        return f"{a}_{b}"

def get_total_number_of_modules(pipeline_lines):
    """Gets the number of modules from the header of the previous pipeline"""
    number_of_modules = pipeline_lines[LINE_NUM_MODULES].strip().split(':')[1]
    return int(number_of_modules)

def get_pipeline_lines(input_pipeline):
    """Returns a list with the lines in the .cppipe file"""
    with open(input_pipeline) as f:
        lines = f.readlines()
    return lines

def update_module_count(pipeline_lines, count):
    """Updates the number of modules in the .cppipe header"""
    module_count_entry = pipeline_lines[LINE_NUM_MODULES].strip().split(':')[0]
    pipeline_lines[4] = f"{module_count_entry}:{count}\n"
    return pipeline_lines

def write_pipeline(filename, lines_pipeline):
    """Writes the lines composing the pipeline into a file"""
    with open(filename, "w") as f:

def build_header(module_name, module_number):
    """Creates the first line of a module given the name and module number"""
    result = "|".join([f"{module_name}:[module_num:{module_number}",
                       "batch_state:array(\\x5B\\x5D, dtype=uint8)",
    return result