'Send a resource to the server using PUT.'

def put(self, path, data={}, content_type=MULTIPART_CONTENT, follow=False, **extra):

    if (content_type is MULTIPART_CONTENT):
        post_data = encode_multipart(BOUNDARY, data)
    else:
        post_data = data
    query_string = None
    if (not isinstance(data, basestring)):
        query_string = urlencode(data, doseq=True)
    parsed = urlparse(path)
    r = {'CONTENT_LENGTH': len(post_data), 'CONTENT_TYPE': content_type, 'PATH_INFO': self._get_path(parsed), 'QUERY_STRING': (query_string or parsed[4]), 'REQUEST_METHOD': 'PUT', 'wsgi.input': FakePayload(post_data)}
    r.update(extra)
    response = self.request(**r)
    if follow:
        response = self._handle_redirects(response, **extra)
    return response
