def copy(self, src, dest): """Copy the given document to create a new document. :param src: the ID of the document to copy, or a dictionary or `Document` object representing the source document. :param dest: either the destination document ID as string, or a dictionary or `Document` instance of the document that should be overwritten. :return: the new revision of the destination document :rtype: `str` :since: 0.6 """ if not isinstance(src, basestring): if not isinstance(src, dict): if hasattr(src, "items"): src = dict(src.items()) else: raise TypeError("expected dict or string, got %s" % type(src)) src = src["_id"] if not isinstance(dest, basestring): if not isinstance(dest, dict): if hasattr(dest, "items"): dest = dict(dest.items()) else: raise TypeError("expected dict or string, got %s" % type(dest)) if "_rev" in dest: dest = "%s?%s" % (http.quote(dest["_id"]), http.urlencode({"rev": dest["_rev"]})) else: dest = http.quote(dest["_id"]) _, _, data = self.resource._request("COPY", src, headers={"Destination": dest}) data = json.decode(data.read()) return data["rev"]
def copy(self, src, dest): """Copy the given document to create a new document. :param src: the ID of the document to copy, or a dictionary or `Document` object representing the source document. :param dest: either the destination document ID as string, or a dictionary or `Document` instance of the document that should be overwritten. :return: the new revision of the destination document :rtype: `str` :since: 0.6 """ if not isinstance(src, basestring): if not isinstance(src, dict): if hasattr(src, 'items'): src = dict(src.items()) else: raise TypeError('expected dict or string, got %s' % type(src)) src = src['_id'] if not isinstance(dest, basestring): if not isinstance(dest, dict): if hasattr(dest, 'items'): dest = dict(dest.items()) else: raise TypeError('expected dict or string, got %s' % type(dest)) if '_rev' in dest: dest = '%s?%s' % (http.quote( dest['_id']), http.urlencode({'rev': dest['_rev']})) else: dest = http.quote(dest['_id']) _, _, data = self.resource._request('COPY', src, headers={'Destination': dest}) data = json.decode(data.read()) return data['rev']
def copy(self, src, dest): """Copy the given document to create a new document. :param src: the ID of the document to copy, or a dictionary or `Document` object representing the source document. :param dest: either the destination document ID as string, or a dictionary or `Document` instance of the document that should be overwritten. :return: the new revision of the destination document :rtype: `str` :since: 0.6 """ if not isinstance(src, util.strbase): if not isinstance(src, dict): if hasattr(src, 'items'): src = dict(src.items()) else: raise TypeError('expected dict or string, got %s' % type(src)) src = src['_id'] if not isinstance(dest, util.strbase): if not isinstance(dest, dict): if hasattr(dest, 'items'): dest = dict(dest.items()) else: raise TypeError('expected dict or string, got %s' % type(dest)) if '_rev' in dest: dest = '%s?%s' % (http.quote(dest['_id']), http.urlencode({'rev': dest['_rev']})) else: dest = http.quote(dest['_id']) _, _, data = self.resource._request('COPY', src, headers={'Destination': dest}) data = json.decode(data.read().decode('utf-8')) return data['rev']