def convert_graph(self, graph_file, input_format, output_formats,<EOL>email=None, use_threads=False, callback=None):
if email is None:<EOL><INDENT>email = self.email<EOL><DEDENT>if input_format not in GraphFormats._any:<EOL><INDENT>raise ValueError("<STR_LIT>".format(input_format))<EOL><DEDENT>if not set(output_formats) <= set(GraphFormats._any):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if use_threads and callback is not None:<EOL><INDENT>if not hasattr(callback, '<STR_LIT>'):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if len(inspect.getargspec(callback).args) != <NUM_LIT:1>:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT><DEDENT>if not (os.path.exists(graph_file)):<EOL><INDENT>raise ValueError("<STR_LIT>".format(graph_file))<EOL><DEDENT>url = "<STR_LIT>".format(<EOL>email,<EOL>input_format,<EOL>'<STR_LIT:U+002C>'.join(output_formats)<EOL>)<EOL>if "<STR_LIT:U+0020>" in url:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if use_threads:<EOL><INDENT>convert_thread = threading.Thread(<EOL>target=self._run_convert_graph,<EOL>args=[url, graph_file, callback]<EOL>)<EOL>convert_thread.start()<EOL><DEDENT>else:<EOL><INDENT>return self._run_convert_graph(url, graph_file)<EOL><DEDENT>return<EOL>
Convert a graph from one GraphFormat to another.

Arguments:
    graph_file (str): Filename of the file to convert
    input_format (str): A grute.GraphFormats
    output_formats (str[]): A grute.GraphFormats
    email (str: self.email)*: The email to notify
    use_threads (bool: False)*: Whether to use Python threads to run
        computation in the background when waiting for the server
    callback (function: None)*: The function to run upon completion of
        the call, if using threads. (Will not be called if use_threads
        is set to False.)

Returns:
    HTTP Response if use_threads=False. Else, no return value.

Raises:
    RemoteDataUploadError: If there's an issue uploading the data
    RemoteError: If there's a server-side issue
    ValueError: If there's a problem with the supplied arguments