def generate_docs(): docs = [] #filter for images in the conf that have the generate_docs flag set to true image_configs = filter(lambda image: image["automated_flags"]["generate_docs"] == True and image["automated_flags"]["include_in_ui"] == True and image["automated_flags"]["build"] == True, config["image_data"]) remote_docs = get_current_versions() #maps the current documentation to a map of {image_name: version} key values remote_versions_list = list(map(lambda image_doc: {image_doc["id"]: image_doc["version"]}, remote_docs)) remote_versions = utils.flatten_list_of_dicts(remote_versions_list) print "current versions detected: " + str(remote_versions) for image_config in image_configs: # Here we check first if the remote documentation exists, then if the local version is the same as the remote. # If the remote documentation exists and the version matches the local, we re-use the old documentation if image_config["name"] in remote_versions and image_config["version"] == remote_versions[image_config["name"]]: remote_doc = list(filter(lambda image_doc: image_doc["id"] == image_config["name"], remote_docs))[0] print "using remote doc: {}".format(remote_doc) doc = remote_doc else: doc = generate_doc_for_image(image_config) docs.append(doc) docs.extend(get_other_docs()) return docs
def get_docs(params): tools = params.image_config["tools"] doc_builder = get_doc_builder() docs = {} for tool in tools: print "Writing doc for tool {}".format(tool) #flattens the arrays of objects with packages:version key value pairs into single object with all key value pairs docs[tool] = utils.flatten_list_of_dicts(doc_builder[tool](params)) return docs
def generate_docs(): docs = [] #filter for images in the conf that have the generate_docs flag set to true image_configs = filter( lambda image: image["automated_flags"]["generate_docs"] == True and image["automated_flags"]["include_in_ui"] == True and image[ "automated_flags"]["build"] == True, config["image_data"]) remote_docs = get_current_versions() #maps the current documentation to a map of {image_name: version} key values remote_versions_list = list( map(lambda image_doc: {image_doc["id"]: image_doc["version"]}, remote_docs)) remote_versions = utils.flatten_list_of_dicts(remote_versions_list) print "current versions detected: " + str(remote_versions) legacy_gatk_doc = filter( lambda remote_doc: remote_doc["id"] == "terra-jupyter-gatk_legacy", remote_docs)[0] legacy_bioconductor_doc = utils.read_json_file(static_config_location)[ 0] # hard coding this until next bioconductor release (~06/2022) for image_config in image_configs: # Here we check first if the remote documentation exists, then if the local version is the same as the remote. # If the remote documentation exists and the version matches the local, we re-use the old documentation remote_doc = list( filter(lambda image_doc: image_doc["id"] == image_config["name"], remote_docs))[0] if image_config["name"] in remote_versions and image_config[ "version"] == remote_versions[image_config["name"]]: print "using remote doc: {}".format(remote_doc) doc = remote_doc else: doc = generate_doc_for_image(image_config) #Computing legacy images for gatk and bioconductor if image_config["name"] == "terra-jupyter-gatk": legacy_gatk_doc = get_legacy_image(image_config["version"], remote_doc, legacy_gatk_doc) # TODO: add back in after next bioconductor release (~06/2022) #if image_config["name"] == "terra-jupyter-bioconductor": #legacy_bioconductor_doc = get_legacy_image(image_config["version"], doc) docs.append(doc) docs.extend(get_other_docs()) docs.extend([legacy_gatk_doc, legacy_bioconductor_doc]) return docs