code: def _include_docs(self, rows):
          '''rows here are tuples (key, value, id), returns a list of tuples
          (key, value, id, doc)'''
          resp = list()
          for row in rows:
              if isinstance(row[1], dict) and '_id' in row[1]:
                  d_id = row[1]['_id']
              else:
                  d_id = row[2]
              try:
                  doc = self._get_doc(d_id)
                  doc = copy.deepcopy(doc)
                  if doc.get('_deleted', None):
                      raise NotFoundError('%s deleted' % d_id)
              except NotFoundError:
                  # FIXME: this just returns None instead of dict if the
                  # document is not there/was deleted.
                  # I'm not sure if this is how couchdb would behave
                  # check it!
                  doc = None
              resp.append(row + (doc, ))
          return resf _include_docs(self, rows):
          '''rows here are tuples (key, value, id), returns a list of tuples
          (key, value, id, doc)'''
          resp = list()
          for row in rows:
              if isinstance(row[1], dict) and '_id' in row[1]:
                  d_id = row[1]['_id']
              else:
                  d_id = row[2]
              try:
                  doc = self._get_doc(d_id)
                  doc = copy.deepcopy(doc)
                  if doc.get('_deleted', None):
                      raise NotFoundError('%s deleted' % d_id)
              except NotFoundError:
                  # FIXME: this just returns None instead of dict if the
                  # document is not there/was deleted.
                  # I'm not sure if this is how couchdb would behave
                  # check it!
                  doc = None
              resp.append(row + (doc, ))
          return resp
docs: rows here are tuples (key, value, id), returns a list of tuples
          (key, value, id, doc)