コード例 #1
0
ファイル: smart_open.py プロジェクト: cctbx/cctbx-playground
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))
コード例 #2
0
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))
コード例 #3
0
 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
コード例 #4
0
 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