# Path: ipuz/exceptions.py
# class IPUZException(Exception):
#     pass


from datetime import datetime
from ipuz.exceptions import IPUZException
    from ipuz.structures import validate_stylespec
import re
    version_number = get_version_number(field_data)
    if version_number is None:
        raise IPUZException("Invalid version value found")
    if version_number not in valid_versions:
        raise IPUZException("Unsupported version value found")


def validate_kind(field_name, field_data):
    if not isinstance(field_data, list) or not field_data:
        raise IPUZException("Invalid {} value found".format(field_name))
    for element in field_data:
        if not isinstance(element, str) or not element:
            raise IPUZException("Invalid {} value found".format(field_name))


def validate_date(field_name, field_data):
    try:
        datetime.strptime(field_data, '%m/%d/%Y')
    except ValueError:
        raise IPUZException("Invalid date format: {}".format(field_data))


def validate_empty(field_name, field_data):
    if (type(field_data) is not int and
            not isinstance(field_data, str)):
        raise IPUZException("Invalid {} value found".format(field_name))


def validate_styles(field_name, field_data):
    if not isinstance(field_data, dict):

# Path: ipuz/exceptions.py
# class IPUZException(Exception):
#     pass


# Path: ipuz/validators.py
from datetime import datetime
from ipuz.exceptions import IPUZException
    from ipuz.structures import validate_stylespec
import re

    version_number = get_version_number(field_data)
    if version_number is None:
        raise IPUZException("Invalid version value found")
    if version_number not in valid_versions:
        raise IPUZException("Unsupported version value found")


def validate_kind(field_name, field_data):
    if not isinstance(field_data, list) or not field_data:
        raise IPUZException("Invalid {} value found".format(field_name))
    for element in field_data:
        if not isinstance(element, str) or not element:
            raise IPUZException("Invalid {} value found".format(field_name))


def validate_date(field_name, field_data):
    try:
        datetime.strptime(field_data, '%m/%d/%Y')
    except ValueError:
        raise IPUZException("Invalid date format: {}".format(field_data))


def validate_empty(field_name, field_data):
    if (type(field_data) is not int and
            not isinstance(field_data, str)):
        raise IPUZException("Invalid {} value found".format(field_name))


def validate_styles(field_name, field_data):
    if not isinstance(field_data, dict):

        raise IPUZException("Invalid {} value found".format(field_name))