"""
Базовые валидаторы для импортируемых данных.

Использовать только для расширения/исправления логики, реализованной с помощью
`edulib.eduimporter`. При написании новых классов для импорта/экспорта данных
рекомендуется использовать пакет `data-transfer`.
"""
from abc import (
    ABCMeta,
)


class IImportDataValidator(metaclass=ABCMeta):
    """
    Базовый класс валидатора импортируемых данных.
    """

    def __call__(self, data_row, errors, warnings):
        """
        Валидирует строку входных данных.

        :param data_row: словарь, представляющий одну строку импортируемых
        данных
        :param errors: Список ошибок, возникших в ходе валидации.
        :param warnings: Список предупреждений, возникших в ходе валидации.
        """
        raise NotImplementedError()
