def for_reading(file_name, mode="r", gzip_mode="rb"): assert mode in ["r", "rb"] assert gzip_mode in ["r", "rb"] file_name = os.path.expanduser(file_name) if (file_name.endswith(".gz")): return gzip_open(file_name=file_name, mode=gzip_mode) if (file_name.endswith(".Z")): return StringIO(easy_run.fully_buffered( command='gunzip -c "%s"' % escape_sh_double_quoted(file_name), stdout_splitlines=False).raise_if_errors().stdout_buffer) if file_name.endswith('.bz2'): return bz2_open(file_name=file_name, mode=mode) try: return open(file_name, mode) except IOError, e: raise IOError( "Cannot open file for reading: %s\n" % show_string(file_name) + " "+str(e))
def for_reading(file_name, mode="r", gzip_mode="rb"): assert mode in ["r", "rb"] assert gzip_mode in ["r", "rb"] file_name = os.path.expanduser(file_name) if (file_name.endswith(".gz")): return gzip_open(file_name=file_name, mode=gzip_mode) if (file_name.endswith(".Z")): return StringIO( easy_run.fully_buffered( command='gunzip -c "%s"' % escape_sh_double_quoted(file_name), stdout_splitlines=False).raise_if_errors().stdout_buffer) if file_name.endswith('.bz2'): return bz2_open(file_name=file_name, mode=mode) try: return open(file_name, mode) except IOError, e: raise IOError("Cannot open file for reading: %s\n" % show_string(file_name) + " " + str(e))
def run_multiprocessing_chunks_if_applicable(self, command_call): assert isinstance(command_call, list) n = self.options.max_proc if (n is not None and n > 1): if (self.chunk.n == 1): from libtbx.utils import escape_sh_double_quoted cmds = [] for i in xrange(n): cmd = command_call \ + self.options_and_args \ + ["--chunk=%d,%d" % (n,i)] cmd = " ".join(['"'+escape_sh_double_quoted(s=arg)+'"' for arg in cmd]) cmds.append(cmd) from libtbx import easy_mp easy_mp.pool_map(processes=n, func=run_multi, args=cmds, chunksize=1) return True self.chunk.redirect_chunk_stdout_and_stderr(have_array=True) return False
def run_multiprocessing_chunks_if_applicable(self, command_call): assert isinstance(command_call, list) n = self.options.max_proc if (n is not None and n > 1): if (self.chunk.n == 1): from libtbx.utils import escape_sh_double_quoted cmds = [] for i in xrange(n): cmd = command_call \ + self.options_and_args \ + ["--chunk=%d,%d" % (n,i)] cmd = " ".join(['"'+escape_sh_double_quoted(s=arg)+'"' for arg in cmd]) cmds.append(cmd) from libtbx import easy_mp easy_mp.pool_map(processes=n, func=run_multi, args=cmds, chunksize=1) return True self.chunk.redirect_chunk_stdout_and_stderr(have_array=True) return False