'Pulls values off the request in the provided location
:param request: The flask request object to parse arguments from'

def source(self, request):

    if isinstance(self.location, six.string_types):
        value = getattr(request, self.location, MultiDict())
        if callable(value):
            value = value()
        if (value is not None):
            return value
    else:
        values = MultiDict()
        for l in self.location:
            value = getattr(request, l, None)
            if callable(value):
                value = value()
            if (value is not None):
                values.update(value)
        return values
    return MultiDict()
