# Path: ipuz/structures/crosswordvalue.py
# def validate_crosswordvalues(field_name, field_data):
#     validate_list_of_lists(
#         field_name, field_data, "CrosswordValue", validate_crosswordvalue
#     )
# 
# Path: ipuz/validators.py
# def validate_dict_of_strings(field_name, field_data):
#     if not isinstance(field_data, dict):
#         raise IPUZException("Invalid {} value found".format(field_name))
#     for key, value in field_data.items():
#         validate_string(field_name, key)
#         validate_string(field_name, value)
# 
# def validate_list_of_strings(field_name, field_data):
#     if not isinstance(field_data, list):
#         raise IPUZException("Invalid {} value found".format(field_name))
#     for element in field_data:
#         validate_string(field_name, field_data)
# 
# def validate_string(field_name, field_data):
#     if not isinstance(field_data, str):
#         raise IPUZException("Invalid {} value found".format(field_name))


from ipuz.structures import (
    validate_crosswordvalues,
)
from ipuz.validators import (
    validate_dict_of_strings,
    validate_list_of_strings,
    validate_string,
)


IPUZ_FILL_VALIDATORS = {
    "start": validate_crosswordvalues,
    "solution": validate_crosswordvalues,
    "answer": validate_string,
    "answers": validate_list_of_strings,
    "misses": validate_dict_of_strings,

# Path: ipuz/structures/crosswordvalue.py
# def validate_crosswordvalues(field_name, field_data):
#     validate_list_of_lists(
#         field_name, field_data, "CrosswordValue", validate_crosswordvalue
#     )
# 
# Path: ipuz/validators.py
# def validate_dict_of_strings(field_name, field_data):
#     if not isinstance(field_data, dict):
#         raise IPUZException("Invalid {} value found".format(field_name))
#     for key, value in field_data.items():
#         validate_string(field_name, key)
#         validate_string(field_name, value)
# 
# def validate_list_of_strings(field_name, field_data):
#     if not isinstance(field_data, list):
#         raise IPUZException("Invalid {} value found".format(field_name))
#     for element in field_data:
#         validate_string(field_name, field_data)
# 
# def validate_string(field_name, field_data):
#     if not isinstance(field_data, str):
#         raise IPUZException("Invalid {} value found".format(field_name))


# Path: ipuz/puzzlekinds/fill.py
from ipuz.structures import (
    validate_crosswordvalues,
)
from ipuz.validators import (
    validate_dict_of_strings,
    validate_list_of_strings,
    validate_string,
)



IPUZ_FILL_VALIDATORS = {
    "start": validate_crosswordvalues,
    "solution": validate_crosswordvalues,
    "answer": validate_string,
    "answers": validate_list_of_strings,
    "misses": validate_dict_of_strings,

}