code: def cigarRead(fileHandleOrFile):
      
      fileHandle = _getFileHandle(fileHandleOrFile)
      #p = re.compile("cigar:\\s+(.+)\\s+([0-9]+)\\s+([0-9]+)\\s+([\\+\\-\\.])\\s+(.+)\\s+([0-9]+)\\s+([0-9]+)\\s+([\\+\\-\\.])\\s+(.+)\\s+(.*)\\s*)*")
      p = re.compile("cigar:\\s+(.+)\\s+([0-9]+)\\s+([0-9]+)\\s+([\\+\\-\\.])\\s+(.+)\\s+([0-9]+)\\s+([0-9]+)\\s+([\\+\\-\\.])\\s+([^\\s]+)(\\s+(.*)\\s*)*")
      line = fileHandle.readline()
      while line != '':
          pA = cigarReadFromString(line)
          if pA != None:
              yield pA
          line = fileHandle.readline()
      if isinstance(fileHandleOrFile, "".__class__):
          fileHandle.close()
docs: Reads a list of pairwise alignments into a pairwise alignment structure.
  
      Query and target are reversed!