Package: edu-rdm-integration
Проект "Интеграция с Региональной витриной данных (РВД)"Для интеграции с Региональной витриной данных был выделен отдельный пакет для использования его компонентов в различных
продуктах.На текущий момент интеграция реализуется в рамках проектов Электронная школа (ЭШ) и Электронный колледж (ЭК).Описание концепцииСо стороны Минцифры предоставляется спецификация (ЕФТТ) с требованиями по формату и механизму выгрузки данных.Выбрана модель промежуточного хранения данных на стороне продукта, которые подлежат выгрузке. При помощи такого подхода,
можно обеспечить формирование не хранящихся в продукте данных и дальнейшее их обновление и удаление. Упрощается процесс
поиска ошибок в данных, т.к. можно явно определить, в каких записях находятся ошибки и далее анализировать существующие
данные в продуктах или функционал по формированию данных.Принцип работыВесь процесс разделен на сбор и выгрузку данных. Выделяются следующие понятия:Модель продукта
: Django-модель находящаяся в самом продукте. При помощи нее производится накапливание пользовательских данных;Модель РВД
: Django-модель находящаяся в пакете РВД продукта. Из моделей РВД формируется схема БД, позволяющая хранить данные для
дальнейшей выгрузки в нормализованном виде;Сущность РВД
: Описание формата выгрузки данных в РВД в виде dataclass-а. Хранит в себе описание первичных, внешних ключей,
обязательность и порядок полей.На этапе сбора данных производится формирование данных моделей РВД на основе данных моделей продуктов. Существуют так
называемые расчетные модели, для которых данные рассчитываются в процессе сбора.Стоит обратить внимание, что сущности РВД могут содержать в себе данные из нескольких моделей РВД.Требования к окружениюДля работы требуется Python >=3.7. Так же в зависимостях есть внутренние пакеты:educommon;function-tools;m3-db-utils;uploader-client.Версии всех пакетов уточнены в файлах с зависимостями.РазворачиваниеПеред внедрением пакета в проект, необходимо убедиться, что:В проекте используется логирование из educommon;В проект внедрен function-tools;В проект внедрен m3-db-utils;В проект внедрен uploader-client.Параметры конфигурационного файлаВ разных проектах существуют различные способы добавления настроек, где-то через плагины, где-то напрямую в settings.py.
Будет рассмотрен подход указания настроек в settings.py и указания параметров в конфигурационном файле.Для возможности конфигурирования необходимо проделать ряд действий:Определение значений по умолчанию настроек в settings.py:PROJECT_DEFAULT_CONFIG.update({
    # Настройки РВД
    ('rdm_general', 'EXPORT_ENTITY_ID_PREFIX'): '', # Дефолтное значение нужно изменить на специфическое системе
    ('rdm_general', 'COLLECT_CHUNK_SIZE'): 500,
    ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
    ('rdm_transfer_task', 'MINUTE'): '0',
    ('rdm_transfer_task', 'HOUR'): '*/4',
    ('rdm_transfer_task', 'TRANSFER_TASK_DAY_OF_WEEK'): '*',
    ('rdm_transfer_task', 'TIMEDELTA'): 3600,
    ('rdm_transfer_task', 'ENTITIES'): '',
    ('rdm_upload_status_task', 'MINUTE'): '*/30',
    ('rdm_upload_status_task', 'HOUR'): '*',
    ('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
    ('uploader_client', 'URL'): 'http://localhost:8090',
    ('uploader_client', 'DATAMART_NAME'): '',
    ('uploader_client', 'REQUEST_RETRIES'): 10,
    ('uploader_client', 'REQUEST_TIMEOUT'): 10,
    ('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
})Получение значений настроек из конфигурационного файла в settings.py:# Ссылка на каталог с файлами для загрузки
UPLOADS = 'uploads'

# =============================================================================
# Интеграция с Региональной витриной данных (РВД)
# =============================================================================

# Префикс идентификаторов записей сущностей специфический для продукта
RDM_EXPORT_ENTITY_ID_PREFIX = conf.get('rdm_general', 'EXPORT_ENTITY_ID_PREFIX') 

# Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
RDM_COLLECT_CHUNK_SIZE = conf.get_int('rdm_general', 'COLLECT_CHUNK_SIZE')

# Количество записей моделей обрабатываемых за одну итерацию экспорта данных
RDM_EXPORT_CHUNK_SIZE = conf.get_int('rdm_general', 'EXPORT_CHUNK_SIZE')

# Настройка запуска периодической задачи выгрузки данных:
RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA')

# Настройка запуска периодической задачи статуса загрузки данных в витрину:
RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')

# Настройка запуска периодической задачи поиска зависших этапов экспорта:
RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
RDM_CHECK_SUSPEND_TASK_TIMEDELTA = conf.get_int('rdm_check_suspend_task', 'TIMEDELTA')

# Загрузка данных в Региональную витрину данных (РВД)
# Адрес витрины (schema://host:port)
RDM_UPLOADER_CLIENT_URL = conf.get('uploader_client', 'URL')

# Мнемоника Витрины
RDM_UPLOADER_CLIENT_DATAMART_NAME = conf.get('uploader_client', 'DATAMART_NAME')

# Количество повторных попыток запроса
RDM_UPLOADER_CLIENT_REQUEST_RETRIES = conf.get_int('uploader_client', 'REQUEST_RETRIES')

# Таймаут запроса, сек
RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT = conf.get_int('uploader_client', 'REQUEST_TIMEOUT')

# Включить эмуляцию отправки запросов
RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = conf.get_bool('uploader_client', 'ENABLE_REQUEST_EMULATION')Перечень настроек в settings.py указан в таблице ниже.Название настройки в settingsОписаниеЗначение по умолчаниюUPLOADSОсновная директория в MEDIA, в которой будет создана директория edu_rdm_integration  для сохранения файлов для дальнейшей выгрузки500RDM_COLLECT_CHUNK_SIZEКоличество записей моделей обрабатываемых за одну итерацию сбора данных500RDM_EXPORT_CHUNK_SIZEКоличество записей моделей обрабатываемых за одну итерацию экспорта500RDM_UPLOADER_CLIENT_URLАдрес витрины (schema://host:port)'http://localhost:8090'RDM_UPLOADER_CLIENT_DATAMART_NAMEМнемоника Витрины'test'RDM_UPLOADER_CLIENT_REQUEST_RETRIESКоличество повторных попыток запроса10RDM_UPLOADER_CLIENT_REQUEST_TIMEOUTТаймаут запроса, сек10RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATIONВключить эмуляцию отправки запросовTrueRDM_TRANSFER_TASK_MINUTEНастройка запуска периодической задачи выгрузки данных. Минута'0'RDM_TRANSFER_TASK_HOURНастройка запуска периодической задачи выгрузки данных. Час'*/4'RDM_TRANSFER_TASK_DAY_OF_WEEKНастройка запуска периодической задачи выгрузки данных. День недели'*'RDM_TRANSFER_TASK_TIMEDELTAДельта между предыдущим и следующим запуском периодической задачи в секундах3600RDM_UPLOAD_STATUS_TASK_MINUTEНастройка запуска периодической задачи статуса загрузки данных в витрину. Минута'*/30'RDM_UPLOAD_STATUS_TASK_HOURНастройка запуска периодической задачи статуса загрузки данных в витрину. Час'*'RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEKНастройка запуска периодической задачи статуса загрузки данных в витрину. День недели'*'RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUTДельта для определения зависшего подэтапа. Минута120В дефолтный конфиг проекта необходимо добавить:# Общие настройки интеграции с РВД
[rmd_general]
# Префикс идентификаторов записей сущностей специфический для продукта. Указывается в settings.py и не должен 
# изменяться. Возможность изменения через конфигурационный файл оставлена для экстренных случаев.
# EXPORT_ENTITY_ID_PREFIX = 
# Количество записей моделей обрабатываемых за одну итерацию экспорта данных
EXPORT_CHUNK_SIZE = 500
# Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
COLLECT_CHUNK_SIZE = 500

# Настройка запуска периодической задачи выгрузки данных
[rdm_transfer_task]
MINUTE=*/2
HOUR=*
DAY_OF_WEEK=*
# Дельта между прошлым и текущим запуском, сек
TIMEDELTA=120
# Сущности, по которым должен производиться сбор и выгрузка данных. Перечисляются через запятую без пробелов.
ENTITIES =

# Настройка запуска периодической задачи статуса загрузки данных в витрину
[rdm_upload_status_task]
MINUTE=*/2
HOUR=*
DAY_OF_WEEK=*

# Настройка запуска периодической задачи поиска зависших этапов экспорта
[rdm_check_suspend_task]
MINUTE=*/10
HOUR=*
DAY_OF_WEEK=*
# Дельта для определения зависшего подэтапа, мин
STAGE_TIMEOUT=120

[uploader_client]
# Адрес витрины
URL = http://localhost:8090
# Мнемоника Витрины
DATAMART_NAME = test
# Количество повторных попыток запроса
REQUEST_RETRIES = 10
# Таймаут запроса, сек
REQUEST_TIMEOUT = 10
# Включить эмуляцию отправки запросов
ENABLE_REQUEST_EMULATION = TrueНа основе дефолтного конфига произвести конфигурирование приложений.Сборка и распространениеСборка пакета производится при помощиJob-а в Jenkins M3.build_dist.Пакет выкладывается в глобальныйPYPIи во внутреннийNexusДокументацияС документацией можно ознакомиться по ссылкеhttp://docs.py.bars.group/edu-rdm-integration/История измененийВсе изменения проекта должны быть отражены в этом файле.Формат основан наKeep a Changelogи проект следуетСемантическому версионированию.[x.y.z] - гггг-мм-ддЗдесь должно быть расширенное описание того, что было сделано, какие есть планы у команды по дальнейшему развитию.
Желательно будущие цели привязывать к конкретным задачам. Т.е. на каждую цель нужно поставить отдельную задачу и
отразить ее номер здесь.ДобавленоПРОЕКТ-ZZZZPATCH Название задачи или изменения.ПРОЕКТ-YYYYMINOR Название задачи или изменения.ПРОЕКТ-XXXXMAJOR Название задачи или изменения.ИзмененоИсправленоУдалено[2.0.0] - 2024-02-21Параметр school_ids переименован в institute_ids.ИзмененоEDUSCHL-20485MAJOR Произвести переименование параметра school_ids на institute_ids[1.0.1] - 2024-02-20Исправлено ограничение сбора логов периодомRDM_TRANSFER_TASK_TIMEDELTAвBaseCollectLatestModelsDataИсправленоEDUSCHL-21413PATCH Исправлено ограничение сбора логов периодомRDM_TRANSFER_TASK_TIMEDELTAвBaseCollectLatestModelsData[1.0.0] - 2024-01-31Удален дублирующийся клаccLogChangeизcollect_data.non_calculated.base.caches.УдаленоEDUSCHL-21308MAJOR Удален дублирующийся клаccLogChangeизcollect_data.non_calculated.base.caches.[0.10.2] - 2024-02-05Рефакторинг принудительного запуска функций без добавления их в очередь на исполнение.В класс кеша BaseCollectingExportedDataFunctionCacheStorage расчетных и не расчетных функций добавлен метод _ignore_logs.
Добавлена утилита build_related_model_graph для построения графа связей между моделями.
Добавлен миксин BaseIgnoreLogMixin, для исключения из обработки логов на основании описанных зависимостей.ДобавленоEDUSCHL-20550MINOR В класс кеша BaseCollectingExportedDataFunctionCacheStorage добавлен метод _ignore_logs.
Добавлена утилита build_related_model_graph. Добавлен миксин BaseIgnoreLogMixin.ИзмененоEDUSCHL-20274MINOR Рефакторинг принудительного запуска функций без добавления их в очередь на исполнение.[0.10.1] - 2024-02-02Изменение в формировании LogChange.
Не формируется LogChange с пустым fields.ИзмененоEDUSCHL-21251PATCH Изменение в формировании LogChange.[0.10.0] - 2024-01-19Добавлена поддержка Django 3.0.
В класс кеша BaseCollectingExportedDataFunctionCacheStorage расчетных и не расчетных функций добавлен метод _ignore_logs.
Добавлена утилита build_related_model_graph для построения графа связей между моделями.
Добавлен миксин BaseIgnoreLogMixin, для исключения из обработки логов на основании описанных зависимостей.ДобавленоEDUSCHL-18051MINOR Поднять версию Django до 3.0.14EDUSCHL-20550MINOR В класс кеша BaseCollectingExportedDataFunctionCacheStorage добавлен метод _ignore_logs.
Добавлена утилита build_related_model_graph. Добавлен миксин BaseIgnoreLogMixin.[0.9.2] - 2024-01-17Добавлена явная регистрация периодических асинхронных задач Celery.
Поднятие версии зависимостей пакета celery.ИзмененоEDUSCHL-14950PATCH Добавлена явная регистрация периодических асинхронных задач Celery.[0.9.1] - 2024-01-11Добавлен реестр выбора сущностей для сбора и выгрузки данных.
Удалена настройка RDM_TRANSFER_TASK_ENTITIES, вместо перечисления сущностей в конфиге используется реестр и модель
TransferredEntity.ДобавленоEDUSCHL-21112MINOR Добавлен реестр выбора сущностей для сбора и выгрузки данных.УдаленоEDUSCHL-21112MINOR Удалена настройка RDM_TRANSFER_TASK_ENTITIES.[0.9.0] - 2023-12-29Из ЭШ перенесены периодические задачи по сбору статусов загрузки файлов в витрину, а также
по поиску зависших этапов/подэтапов экспорта.Также из ЭШ перенесены менедж-команды:check_upload_status - проверка состояния отправленных данных в витрину,collect_lastest_models_data - сбор на основе логов за период с последней сборки до указанной даты,export_latest_entities_data - экспорт данных за период с последней сборки до указанной даты.Типы получаемых из log_change.fields полей соответствуют типам полей из логируемых моделей.ДобавленоEDUSCHL-21013MINOR Перенесена часть асинхронных РВД задач из ЭШ, а также часть менедж-командИзмененоEDUSCHL-20793MINOR Типы получаемых из log_change.fields полей должны соответствовать типам полей из логируемых моделей[0.8.6] - 2023-12-18В метод _clean_data класса BaseCollectingFunctionTestCase добавлена возможность обрабатывать поля относящиеся к
списковому типу (ArrayField).ДобавленоEDUSCHL-19606PATCH В метод _clean_data класса BaseCollectingFunctionTestCase добавлена возможность обрабатывать поля относящиеся к
списковому типу (ArrayField).[0.8.5] - 2023-12-14Формирование логов вынесено на уровень команды, а не менеджера.
Добавлено формирование логов на этапе экспорта данных.ДобавленоEDUSCHL-20073MINOR Логи при экспорте данныхИзмененоEDUSCHL-20073MINOR Формирование логов вынесено на уровень команды, а не менеджера.[0.8.4] - 2023-12-13Создание базовых хэлперов BaseCollectingDataFunctionHelper, BaseCollectingDataRunnerHelper.
Создание нового метода get_filtered_operations в BaseCollectingDataFunctionHelper.ДобавленоEDUSCHL-21029MINOR Создание базовых хэлперов.[0.8.3] - 2023-12-13Исправление ошибок и несоответствий в журнале логовИзмененоEDUCLLG-8103MINOR Исправление ошибок и несоответствий в журнале логов .[0.8.2] - 2023-12-11Поднятие версии m3-db-utils,изменение UploaderClientLogManagerИзмененоEDUCLLG-7736MINOR Поднята версии m3-db-utils до 0.3.10, редактированUploaderClientLogManager.[0.8.1] - 2023-12-08Исправлена ошибка внутри EntityEnumRegisterMixinИзмененоEDUCLLG-8098PATCH Добавлена проверка на наличие атрибута main_model_enum.[0.8.0] - 2023-12-08Вынесен функционал просмотра логов РВД из ЭШ.
Удалено перечисление UploadStatusEnum.
Удалена модель UploadStatus статусов загрузки в витрину. Вместо неё добавлена модель-перечисление DataMartRequestStatus.ИзмененоEDUCLLG-7736MINOR Вынесен функционал просмотра логов РВД из ЭШ.УдаленоEDUSCHL-20965MINOR - Удалено перечисление UploadStatusEnum. Удалена модель UploadStatus статусов загрузки в витрину.ДобавленоEDUSCHL-20965MINOR - Вместо удаленной модели UploadStatus добавлена модель-перечисление DataMartRequestStatus.[0.7.3] - 2023-12-07Исправлена аннотация в шаблоне managers.py-tpl для функции экспорта.ИсправленоEDUSCHL-19604PATCH Исправлена аннотация в шаблоне managers.py-tpl для функции экспорта.[0.7.2] - 2023-12-05В метод _clean_data класса BaseCollectingFunctionTestCase добавлена возможность обрабатывать поля относящиеся к
временному типу.
Добавление обработки plugins_info при генерации списка данных формирования команд.ДобавленоEDUSCHL-19507PATCH В метод _clean_data класса BaseCollectingFunctionTestCase добавлена возможность обрабатывать поля относящиеся к
временному типу.EDUSCHL-19507PATCH Добавление обработки plugins_info при генерации списка данных формирования команд.[0.7.1] - 2023-12-02Доработано получение множества моделей на основе данных plugins_info при работе метода _get_loggable_models.ИзмененоEDUSCHL-19576PATCH Доработано получение множества моделей на основе данных plugins_info при работе метода _get_loggable_models.[0.7.0] - 2023-12-02Добавлено формирование логов для последующего скачивания.
Доработаны шаблоны реализации Функций сбора и выгрузки данных.
Написана документация для реализации функционала новой Сущности.
Добавлено получение моделей на основе данных plugins_info при работе метода _get_loggable_models.ДобавленоEDUSCHL-20072MINOR - Реестр сбора и выгрузки. ЛогиEDUSCHL-20954PATCH Добавлена документация для реализации функционала новой Сущности.ИзмененоEDUSCHL-20954PATCH Произведена доработка шаблонов Функций сбора и выгрузки данных.EDUSCHL-19576PATCH - Добавлено получение моделей на основе данных plugins_info при работе метода _get_loggable_models.[0.6.10] - 2023-11-30При добавлении префикса RDM_EXPORT_ENTITY_ID_PREFIX в классе BaseExportDataFunctionHelper
учтены поля из get_ignore_prefix_key_fields.ИзмененоEDUSCHL-20961PATCH - При добавлении префикса RDM_EXPORT_ENTITY_ID_PREFIX в классе BaseExportDataFunctionHelper учтены поля
- из get_ignore_prefix_key_fields.[0.6.9] - 2023-11-30Доработка обработки ответа при отправке файлов в РВД.
Добавлены менедж-команды для загрузки данных и запроса статуса загрузки в РВД с использованием uploader-client.
Добавлена инструкция по реализации тестов РВД.
В BaseCollectingFunctionTestCase добавлен метод создания подэтапов сбора данных.ДобавленоEDUSCHL-20946PATCH - Доработка обработки ответа при отправке файлов в РВД.EDUSCHL-20946MINOR - Добавлены менедж-команды для загрузки данных и запроса статуса загрузки в РВД с использованием uploader-client.EDUSCHL-20951MINOR - Инструкция по реализации тестов РВДEDUSCHL-20951MINOR - Добавлен метод создания подэтапов сбора данных[0.6.8] - 2023-11-24Скорректировано описание сущности РВД TELECOM.
Рефакторинг обновления полей modified у невыгруженных записей при работе экспорта сущностей.
Временное решение обеспечения совместимости регистрации моделей и сущностей старого и нового подхода.
Добавлена возможность отправки запросов в РВД через Proxy API uploader_client.
Изменено формирование логов для последующей обработки.ДобавленоEDUSCHL-20854MINOR - Добавлена возможность отправки запросов через Proxy API.ИзмененоEDUSCHL-20808MINOR - При сборе модели командой collect_latest_models_data сжигается памятьИсправленоEDUSCHL-20884PATCH - Изменено название поля rank на rank_contact в сущности РВД TelecomEntity.EDUSCHL-20711PATCH - Доработан метод BaseExportLatestEntitiesData._update_model_modified_field.EDUSCHL-20858PATCH - Временное решение обеспечения совместимости регистрации моделей и сущностей старого и нового подхода.[0.6.7] - 2023-11-01Добавлен миксин EntityEnumRegisterMixin для регистрации сущностей в RegionalDataMartEntityEnum.
Миксин ModelEnumRegisterMixin для регистрации моделей в RegionalDataMartModelEnum.
Добавлены методы для запуска регистрации моделей и сущностей.ДобавленоEDUCLLG-7632PATCH - Добавлен функционал регистрации моделей и сущностей в моделях-перечислениях.[0.6.6] - 2023-10-16Добавлен базовый класс для тестирования Функций сбора, добавлена явная зависимость Django.ДобавленоEDUSCHL-20684PATCH - Базовый класс для тестирования Функций сбора;EDUSCHL-20684PATCH - Добавлена зависимость Django.[0.6.5] - 2023-10-11Получение метода генерации логов вынесено в отдельный метод для избавления от необходимости хранить все методы в одном классе.ИсправленоEDUCLLG-7634PATCH - Получение метода генерации логов вынесено в отдельный метод для избавления от необходимости хранить все методы в одном классе;EDUSCHL-20571PATCH - При сборе актуальных данных моделей отслеживаются уже запущенные сборы и новый сбор по модели не запускается.EDUSCHL-20571PATCH - Указание назначения полей модели-перечисления сущностей RegionalDataMartEntityEnum;EDUSCHL-20571PATCH - Добавление возможности получения значений модели-перечисления RegionalDataMartEntityEnum моделей РВД для указанных сущностей.[0.6.4] - 2023-10-09Исправлена ошибка сборки, из-за которой файлы шаблонов *.py-tpl не попадали в пакет.ДобавленоEDUCLLG-7634PATCH - Добавлено включение шаблонов *.py-tpl в пакет при сборке.[0.6.3] - 2023-10-05Доработка модели AbstractCollectDataCommandProgress и класса BaseFirstCollectModelsDataCommandsGenerator.ДобавленоEDUSCHL-20350PATCH - Добавлено формирование id генерации для команд в классе BaseFirstCollectModelsDataCommandsGenerator.
- Добавлены поля created, generation_id и institute_ids в модель AbstractCollectDataCommandProgress.[0.6.2] - 2023-10-04ИзмененоEDUCLLG-7942PATCH Доработка сборки документации.[0.6.1] - 2023-10-02Дополнение поведения BaseExportDataFunctionHelper.ИзмененоEDUSCHL-20535PATCH - В логике BaseExportDataFunctionHelper добавлена очистка строковых полей от управляющих символов.[0.6.0] - 2023-09-29Добавлена функция set_failed_status_suspended_exporting_data_stages для определения и перевода зависших этапов/подэтапов экспорта в статус (FAILED).
Добавлена функция set_failed_status_suspended_collecting_data_stages для определения и перевода зависших этапов/подэтапов сбора в статус (FAILED).ДобавленоEDUSCHL-20487MINOR Добавлена функцияset_failed_status_suspended_exporting_data_stages.EDUSCHL-20487MINOR Добавлена функцияset_failed_status_suspended_collecting_data_stages.[0.5.9] - 2023-09-25Повышена версия wheelИзмененоEDUCLLG-7939PATCH - Повышена версия wheel[0.5.8] - 2023-09-13Исправлена ошибка добавления в описание асинхронной задачи списка выгруженных сущностей
BaseExportLatestEntitiesData._set_description_to_async_task.ИсправленоEDUSCHL-20334PATCH - Баг с обновлением поля description в BaseExportLatestEntitiesData._set_description_to_async_task.[0.5.7] - 2023-09-12Баг фикс и дополнение поведения BaseExportLatestEntitiesData.ИзмененоEDUSCHL-20435PATCH - BaseExportLatestEntitiesData теперь поддерживает выгрузку ни разу невыгруженных сущностей.ИсправленоEDUSCHL-20435PATCH - Баг с условием в фильтре в BaseExportLatestEntitiesData._update_model_modified_field.[0.5.6] - 2023-09-06Доработаны классы BaseExportLatestEntitiesData и BaseExportEntitiesData.ИсправленоEDUSCHL-20435PATCH - Исправлено нахождение левой границы в классе ExportLatestEntitiesData;
- Добавлена проверка на наличие запущенных или готовых к выгрузке сущностей;
- Добавлен параметр update_modified, который обновляет поле modified у собранных моделей,
чтобы выгрузить невыгруженные записи.[0.5.5] - 2023-09-04Добавление pip в зависимости сборки пакета.ДобавленоEDUSCHL-19919PATCH Добавление pip в зависимости сборки пакета.[0.5.4] - 2023-09-04split_by_days_count переименовал в split_by_quantity.ИзмененоEDUSCHL-20302PATCH split_by_days_count переименовал в split_by_quantity.[0.5.3] - 2023-09-03Изменены параметры формирования подпериодов в generate_first_collect_models_data_script.ИзмененоEDUSCHL-20302PATCH Изменены параметры формирования подпериодов в generate_first_collect_models_data_script.[0.5.2] - 2023-08-28Замена базового класса функций.ИзмененоEDUSCHL-20344PATCH Замена базового класса функций на WebEduLazySavingPredefinedQueueFunction.[0.5.1] - 2023-08-22Для BaseFirstCollectModelsDataCommandsGenerator добавлено условие - если не заполнен creating_trigger_models,
то словарь с данными для команды не передается.ИсправленоEDUSCHL-20227PATCH Если у сущности не заполнен creating_trigger_models, то в генераторе BaseFirstCollectModelsDataCommandsGenerator
не формируется словарь с параметрами для команды.EDUSCHL-20229PATCH Если у сущности не заполнен creating_trigger_models, то в генераторе BaseFirstCollectModelsDataCommandsGenerator
не формируется словарь с параметрами для команды.[0.5.0] - 2023-08-19Дополнительная функциональность WebEduEntityValueCache была перенесена в EntityCache в function_tools.УдаленоEDUSCHL-20277MINOR Удален WebEduEntityValueCache.EDUSCHL-20277MINOR Удален WebEduEntityCacheExtended.[0.4.7] - 2023-08-17Изменено формирование очередности сбора/экспорта моделей/сущностей. Вместо отдельных перечислений используется существующее полеorder_numberмодели-перечисленияTitledModelEnum. В случае, когдаorder_numberне указан, т.е. будет использоваться значение по умолчаниюDEFAULT_ORDER_NUMBER, модель/сущность будет исключена из сбора/экспорта.ИзмененоEDUSCHL-19164MINOR Изменено формирование очередности сбора/экспорта моделей/сущностей.[0.4.6] - 2023-08-16Удален лишний вызов метода _prepare_logsИсправленоEDUSCHL-19991PATCH удален лишний вызов метода_prepare_logsв методе__init__классаBaseCollectingCalculatedExportedDataFunctionCacheStorage[0.4.5] - 2023-08-09Объединение обрабатываемых логов относящихся к одному объектуДобавленоEDUSCHL-19991PATCH Новый миксинReformatLogsMixin, новое поле is_merge_logs и новый метод _merge_logs у классаBaseCollectingExportedDataFunctionCacheStorage[0.4.4] - 2023-08-12Исправлен баг с timedeltaИсправленоEDUSCHL-20200PATCH Исправлен баг с timedelta.[0.4.3] - 2023-08-12Исправлен баг с timedeltaИсправленоEDUSCHL-20200PATCH Исправлен баг с timedelta.[0.4.2] - 2023-08-11Исправление ошибки учета миллисекунд, при генерации скриптов сбора и выгрузки данных. В текущий момент chunk_size все
равно работает некорректно. Это связано с тем, что при обнулении миллисекунд за одной записью выборки может скрываться
большое количество, например, которые были созданы или обновлены скриптами. Проблему необходимо решить в будущем, но
текущего решения хватает для эксплуатации.
В выборках моделей и логов не должна входить правая граница периода выборки.ИсправленоEDUSCHL-20235PATCH Исправлена ошибка учета миллисекунд в выборках при генерации скриптов с командами для сбора и выгрузки данных.EDUSCHL-20235PATCH В выборках моделей и логов не должна входить правая граница периода выборки.[0.4.1] - 2023-08-09Доработки для реализации принудительного выполнения функций экспорта данных сущностей.ДобавленоEDUSCHL-20235PATCH Доработки для реализации принудительного выполнения функций экспорта данных сущностей.[0.4.0] - 2023-08-09Реализованы общие классы для команд сбора/экспорта.ДобавленоEDUSCHL-20200MINOR Добавлены общие модели, методы и классы.ИзмененоEDUSCHL-20200MINOR Реализованы общие классы для команд сбора/экспорта.[0.3.3] - 2023-08-08Добавлено принудительное выполнение функций в ранере для экономии памяти.ИсправленоEDUSCHL-20235PATCH Добавлено принудительное выполнение функций в ранере для экономии памяти.[0.3.2] - 2023-08-08Откат к спискам необработанных логов. Исправлена ошибка бесконечного создания чанков логов.ИсправленоEDUSCHL-20235PATCH Откат к спискам необработанных логов.[0.3.1] - 2023-08-08Организована передача необработанных логов в виде генератора.ИзмененоEDUSCHL-20235PATCH Организована передача необработанных логов в виде генератора.[0.3.0] - 2023-08-06Добавление функциональности для отложенного заполнения кешей. Заполнение производится перед началом работы запускаемого
объекта.ДобавленоEDUSCHL-20235PATCH Добавлено отложенное заполнение кешей хелперов функций.EDUSCHL-20235MINOR Добавлено проставление подэтапа выгрузки данных у записей моделей.[0.2.2] - 2023-08-06Для API РВД добавлена поддержка параметра типа операции для загрузки данных.ДобавленоEDUSCHL-19920PATCH Для API РВД добавлена поддержка параметра типа операции для загрузки данных.[0.2.1] - 2023-08-05Восстановление сборки пакета после ухода с poetry.ИсправленоEDUSCHL-19919PATCH Восстановление сборки пакета после миграции с poetry.[0.2.0] - 2023-08-04Перенос стратегий формирования Функций используемых в генерации исходников.ДобавленоEDUSCHL-19919MINOR Перенесены стратегии создания Функций из ЭШ.[0.1.4] - 2023-08-03Возвращение ранее удаленных зависимостей миграцииИзмененоEDUSCHL-20209PATCH Возвращение зависимостей миграции.EDUSCHL-20209PATCH Доработки по формированию документации.EDUSCHL-20200Закреплены версии зависимостей, добавлена ссылка на uploader-client[0.1.3] - 2023-07-24Для раскатки миграций на ЭШ, пришлось закомментировать зависимости в initial-миграции.ИзмененоEDUSCHL-19919PATCH Вынести общую часть для работы с РВД из ЭШ для использования в ЭК.[0.1.2] - 2023-07-23Внесены изменения в кодовую базу после переноса механизма логирования из ЭШ в educommon.ИзмененоEDUSCHL-19919PATCH Вынести общую часть для работы с РВД из ЭШ для использования в ЭК.[0.1.0] - 2023-07-18Внесены изменения в кодовую базу после переноса механизма логирования из ЭШ в educommon.ДобавленоEDUSCHL-19919MINOR Перенос базовых компонентов интеграции с РВД из ЭШ.