Skip to content
Snippets Groups Projects
Commit f3cef51b authored by Loraine Gueguen's avatar Loraine Gueguen
Browse files

Factorize run_tool()

parent 73cc89a8
No related branches found
No related tags found
2 merge requests!10Release 2.0,!9Release 2.0 (merge dev to master)
This commit is part of merge request !10. Comments created here will be created in the context of that merge request.
...@@ -67,25 +67,22 @@ class LoadData(speciesData.SpeciesData): ...@@ -67,25 +67,22 @@ class LoadData(speciesData.SpeciesData):
""" """
logging.debug("Getting 'Homo sapiens' ID in chado database") logging.debug("Getting 'Homo sapiens' ID in chado database")
get_sapiens_id_job = self.instance.tools.run_tool( get_sapiens_id_job_output_dataset_id = utilities.run_tool_and_get_single_output_dataset_id(self.instance,
tool_id=GET_ORGANISMS_TOOL, tool_id=GET_ORGANISMS_TOOL,
history_id=self.history_id, history_id=self.history_id,
tool_inputs={"genus": "Homo", "species": "sapiens"}) tool_inputs={"genus": "Homo", "species": "sapiens"})
get_sapiens_id_job_output_dataset_id = get_sapiens_id_job["outputs"][0]["id"]
get_sapiens_id_json_output = self.instance.datasets.download_dataset(dataset_id=get_sapiens_id_job_output_dataset_id) get_sapiens_id_json_output = self.instance.datasets.download_dataset(dataset_id=get_sapiens_id_job_output_dataset_id)
logging.debug("Deleting Homo 'sapiens' in the instance's chado database")
try: try:
logging.debug("Deleting Homo 'sapiens' in the instance's chado database")
get_sapiens_id_final_output = json.loads(get_sapiens_id_json_output)[0] get_sapiens_id_final_output = json.loads(get_sapiens_id_json_output)[0]
sapiens_id = str( sapiens_id = str(get_sapiens_id_final_output["organism_id"]) # needs to be str to be recognized by the chado tool
get_sapiens_id_final_output["organism_id"]) # needs to be str to be recognized by the chado tool utilities.run_tool(
self.instance.tools.run_tool(
tool_id=DELETE_ORGANISMS_TOOL, tool_id=DELETE_ORGANISMS_TOOL,
history_id=self.history_id, history_id=self.history_id,
tool_inputs={"organism": str(sapiens_id)}) tool_inputs={"organism": sapiens_id})
except bioblend.ConnectionError:
logging.debug("Homo sapiens isn't in the instance's chado database (bioblend.ConnectionError)")
except IndexError: except IndexError:
logging.debug("Homo sapiens isn't in the instance's chado database (IndexError)") logging.error("Homo sapiens isn't in the instance's chado database (IndexError)")
pass pass
def purge_histories(self): def purge_histories(self):
...@@ -98,7 +95,6 @@ class LoadData(speciesData.SpeciesData): ...@@ -98,7 +95,6 @@ class LoadData(speciesData.SpeciesData):
""" """
histories = self.instance.histories.get_histories() histories = self.instance.histories.get_histories()
self.instance.histories.get_histories(deleted=False)
for h in histories: for h in histories:
self.instance.histories.delete_history(history_id=h["id"]) self.instance.histories.delete_history(history_id=h["id"])
......
...@@ -6,6 +6,7 @@ import logging ...@@ -6,6 +6,7 @@ import logging
import sys import sys
import os import os
import subprocess import subprocess
import bioblend
def parse_config(config_file): def parse_config(config_file):
...@@ -172,3 +173,24 @@ def get_unique_species_dict_list(sp_dict_list): ...@@ -172,3 +173,24 @@ def get_unique_species_dict_list(sp_dict_list):
unique_species_list_of_dict.append(v) unique_species_list_of_dict.append(v)
return unique_species_list_of_dict return unique_species_list_of_dict
def run_tool(instance, tool_id, history_id, tool_inputs):
output_dict = None
try:
logging.debug("Running tool {0} with tool inputs: {1}".format(tool_id, tool_inputs))
output_dict = instance.tools.run_tool(
tool_id=tool_id,
history_id=history_id,
tool_inputs=tool_inputs)
except bioblend.ConnectionError:
logging.error("Unexpected HTTP response (bioblend.ConnectionError) when running tool {0} with tool inputs: {1}".format(tool_id, tool_inputs))
return output_dict
def run_tool_and_get_single_output_dataset_id(instance, tool_id, history_id, tool_inputs):
output_dict = run_tool(instance, tool_id, history_id, tool_inputs)
single_output_dataset_id = output_dict["outputs"][0]["id"]
return single_output_dataset_id
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment