Real SQS throws `There should be at least one SendMessageBatchRequestEntry in the request. (Service: AmazonSQS; Status Code: 400; Error Code: AWS.SimpleQueueService.EmptyBatchRequest;` when there is a send batch of zero size.

This would be useful to mimic inside localstack in order to find these bugs earlier.
]
QUEUE_ATTRIBUTES = {}
def parse_request_data(method, path, data):
    """ Extract request data either from query string (for GET) or request body (for POST). """
    if method == 'POST':
        return urlparse.parse_qs(to_str(data))
    elif method == 'GET':
        parsed_path = urlparse.urlparse(path)
        return urlparse.parse_qs(parsed_path.query)
    return {}
def _format_attributes(req_data):
    result = {}
    for i in range(1, 500):
        key1 = 'Attribute.%s.Name' % i
        key2 = 'Attribute.%s.Value' % i
        if key1 not in req_data:
            break
        key_name = req_data[key1][0]
        key_value = (req_data.get(key2) or [''])[0]
        result[key_name] = key_value
    return result
def _format_attributes_names(req_data):
    result = set()
    for i in range(1, 500):
        key = 'AttributeName.%s' % i
        if key not in req_data:
            break
        result.add(req_data[key][0])
    return result
def _get_attributes_forward_request(method, path, headers, req_data, forward_attrs):