- Проверка условий для проведения контроля теперь не добавляется в список ошибок. Метод возвращает булево значение.
- Добавил в элемент атрибуты определяющие его тип как "заглушку" или скаляра. Если оба атрибута False, то это реальное значение из отчёта.
- Поправил создание элементов. Отталкиваюсь не от размерности, а от необходимых для контроля значений. Отсутствующие в отчете значения, как и планировалось, замещаются элементом со значением ноль и признаком, что он "заглушка".
- Перед проверкой выполнения логических условий теперь проверяются "типы" элементов. Логический контроль не выполняется если оба элемента "заглушки", либо один элемент "заглушка", а другой скаляр.
- Поправил выполнение операций round и isnull. Забыл про возможность наличия аргумента для обрезки значения.
- Поправил лексер-парсер для формул где метод isnull вложен в любой другой.
2020-08-20
- Переработал парсинг отчета с учетом мультилайнов.
- Реализовал вспомогательные дата-классы для раздела и строки.
- Индексы разделов/строк/графов теперь трансформируются сначала в число (если это возможно), затем обратно в строку. Так как есть ключи вида "01", однако в формуле "1".
- Изменил формат и тип сообщения о непройденном контроле.
- Доработал инициализацию элементов языка контролей.
- Координаты и специфики теперь в множестве типа set.
- Создание элементов проиходит отталкиваясь от отчета. Отсутствующие элементы НЕ замещаются элементом со значением None. Это временное решение так как надо отталкиваться от размерности указанной в схеме и замещать отсутствующие элементами со значением 0. В ближайшее время будет переделано.
- Поправил/оптимизировал лексер-парсер так как допускается использование функции SUM без круглых скобок.
- Прочие мелкие исправления.
2020-08-18
- Исправил ошибку при работе с элементами значение которых None. Причина возникновения, отсутствие метода isnull в формуле для незаполненной или полностью отсутствующей ячейки. В таком случае её значение так и будет оставаться None при проведении всех операций, а при сравнении будет интерпритироваться как ошибка.
- Исправил округление по умолчанию. Исходя из документации оно должно применяться к значениям элементов только при сравнениях их друг с другом.
- Исправил парсинг контролей в которых есть числа с запятой.
- Добавил setup.py
Прошлое
- Готов лексер и парсер для разбора формул контролей.
- Готовы парсеры для разбора отчета и шаблона с проверками.
- Сделал классы болванки для проверки формата заполнения ячеек и прогона контролей.