edu-rdm-integration 3.2.7__py3-none-any.whl → 3.2.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- edu_rdm_integration/tasks.py +32 -31
- {edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/METADATA +11 -1
- {edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/RECORD +7 -7
- {edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/LICENSE +0 -0
- {edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/namespace_packages.txt +0 -0
- {edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/top_level.txt +0 -0
edu_rdm_integration/tasks.py
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
from collections import (
|
2
|
+
defaultdict,
|
3
|
+
)
|
1
4
|
from typing import (
|
2
5
|
TYPE_CHECKING,
|
3
6
|
Dict,
|
@@ -208,6 +211,7 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
|
|
208
211
|
self._exporting_data_manager_to_period_end: Dict[str, 'datetime'] = {}
|
209
212
|
|
210
213
|
self._transferred_entities = []
|
214
|
+
self._entites_models_map = defaultdict(list)
|
211
215
|
|
212
216
|
def process(self, *args, **kwargs):
|
213
217
|
"""Выполняет задачу."""
|
@@ -222,15 +226,20 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
|
|
222
226
|
pk=self.request.id,
|
223
227
|
).values_list('pk', flat=True).first()
|
224
228
|
|
225
|
-
|
226
|
-
|
227
|
-
|
229
|
+
collected_entity_models = set()
|
230
|
+
|
231
|
+
for entity_enum, export_enabled in sorted(
|
232
|
+
self._transferred_entities, key=lambda entity: entity[0].order_number
|
233
|
+
):
|
234
|
+
entity_models = self._entites_models_map.get(entity_enum.key, ())
|
235
|
+
for model_enum_value in entity_models:
|
236
|
+
if model_enum_value.key not in collected_entity_models:
|
237
|
+
self._run_collect_model_data(model_enum_value.key, task_id)
|
238
|
+
collected_entity_models.add(model_enum_value.key)
|
228
239
|
|
229
|
-
# Перехватывем ошибку экспорта для того, чтобы не останавливать сборку и экспорт остальных сущностей
|
230
240
|
try:
|
231
|
-
|
232
|
-
|
233
|
-
self._run_export_entity_data(entity_enum_value.key, task_id)
|
241
|
+
if export_enabled:
|
242
|
+
self._run_export_entity_data(entity_enum.key, task_id)
|
234
243
|
except Exception:
|
235
244
|
continue
|
236
245
|
|
@@ -255,24 +264,17 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
|
|
255
264
|
|
256
265
|
def _collect_transferred_entities(self) -> None:
|
257
266
|
"""Собирает сущности РВД, по которым будет произведен сбор и экспорт данных."""
|
258
|
-
|
267
|
+
self._transferred_entities = [
|
259
268
|
(RegionalDataMartEntityEnum.get_model_enum_value(key=entity), export_enabled)
|
260
269
|
for entity, export_enabled in TransferredEntity.objects.values_list('entity', 'export_enabled')
|
261
270
|
]
|
262
|
-
|
263
|
-
# Собираем словарь по сущностям с
|
264
|
-
for
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
]
|
270
|
-
entity_data = {
|
271
|
-
'collected_models': model_enums,
|
272
|
-
'exported_entity': entity_enum if export_enabled else None,
|
273
|
-
}
|
274
|
-
self._transferred_entities.append(entity_data)
|
275
|
-
collected_entity_models.update(model_enums)
|
271
|
+
|
272
|
+
# Собираем словарь по сущностям с моделями для сборки
|
273
|
+
for entity, _ in self._transferred_entities:
|
274
|
+
self._entites_models_map[entity.key].extend(
|
275
|
+
(model_enum for model_enum in (entity.main_model_enum, *entity.additional_model_enums)
|
276
|
+
if model_enum.order_number != DEFAULT_ORDER_NUMBER)
|
277
|
+
)
|
276
278
|
|
277
279
|
def _collect_managers(self) -> None:
|
278
280
|
"""Собирает менеджеры Функций для сбора и выгрузки данных."""
|
@@ -286,17 +288,16 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
|
|
286
288
|
tags={REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA},
|
287
289
|
)
|
288
290
|
|
289
|
-
for
|
290
|
-
for
|
291
|
-
collect_manager_class = collecting_models_data_managers_map.get(
|
291
|
+
for entity_key, entity_models in self._entites_models_map.items():
|
292
|
+
for entity_model in entity_models:
|
293
|
+
collect_manager_class = collecting_models_data_managers_map.get(entity_model.key)
|
292
294
|
if collect_manager_class:
|
293
|
-
self._collecting_data_managers[
|
295
|
+
self._collecting_data_managers[entity_model.key] = collect_manager_class
|
296
|
+
|
297
|
+
export_manager_class = exporting_entities_data_managers_map.get(entity_key)
|
298
|
+
if export_manager_class:
|
299
|
+
self._exporting_data_managers[entity_key] = export_manager_class
|
294
300
|
|
295
|
-
entity = transferred_entity['exported_entity']
|
296
|
-
if entity:
|
297
|
-
export_manager_class = exporting_entities_data_managers_map.get(entity.key)
|
298
|
-
if export_manager_class:
|
299
|
-
self._exporting_data_managers[entity.key] = export_manager_class
|
300
301
|
|
301
302
|
def _calculate_collecting_managers_logs_period_ended_at(self) -> None:
|
302
303
|
"""Определяет дату последнего успешного этапа сбора у менеджеров Функций сбора."""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: edu-rdm-integration
|
3
|
-
Version: 3.2.
|
3
|
+
Version: 3.2.8
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
5
5
|
Home-page:
|
6
6
|
Download-URL:
|
@@ -301,6 +301,14 @@ Requires-Dist: uploader-client <1,>=0.2.1
|
|
301
301
|
|
302
302
|
### Удалено
|
303
303
|
|
304
|
+
## 3.2.8 - 2024-08-02
|
305
|
+
Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
|
306
|
+
|
307
|
+
### Изменено
|
308
|
+
- [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
|
309
|
+
PATCH Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
|
310
|
+
|
311
|
+
|
304
312
|
## 3.2.7 - 2024-07-31
|
305
313
|
Исправлен файл MANIFEST.in для включения в сборку js-шаблонов.
|
306
314
|
|
@@ -308,6 +316,7 @@ Requires-Dist: uploader-client <1,>=0.2.1
|
|
308
316
|
- [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
|
309
317
|
PATCH Добавлено включение js-шаблонов в сборку в файл MANIFEST.in
|
310
318
|
|
319
|
+
|
311
320
|
## 3.2.6 - 2024-07-23
|
312
321
|
Добавлен параметр export_off (Отключение экспорта для сущности) в модель TransferredEntity
|
313
322
|
Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
|
@@ -325,6 +334,7 @@ Requires-Dist: uploader-client <1,>=0.2.1
|
|
325
334
|
- [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
|
326
335
|
PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
|
327
336
|
|
337
|
+
|
328
338
|
## 3.2.4 - 2024-07-16
|
329
339
|
Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
|
330
340
|
|
@@ -11,7 +11,7 @@ edu_rdm_integration/mapping.py,sha256=bwa2fJCbV4YjQcAgRrgT3hgM6dJhr_uBtQgx3L3F2C
|
|
11
11
|
edu_rdm_integration/models.py,sha256=Q6BxMUlKmqLBwoJFB0aefD9uE4F3D2fncFqTEKBsOSA,29612
|
12
12
|
edu_rdm_integration/signals.py,sha256=3eRlpkDcFCF6TN80-QM8yBYLcyozzcmoPjz6r4_ApWg,73
|
13
13
|
edu_rdm_integration/storages.py,sha256=o5WqUG7SnkeuMt-z8spUi-IraivST-7KHzfY-M3v7FA,6807
|
14
|
-
edu_rdm_integration/tasks.py,sha256=
|
14
|
+
edu_rdm_integration/tasks.py,sha256=sWIwzWs1ZjxQUpfbnX5Poi7TwJh8Q0E-c0MkZYCgSwg,15176
|
15
15
|
edu_rdm_integration/utils.py,sha256=-my8q9fude6Nc9r_qUDww-8QaU2tcv-xOexewYqOPJw,10369
|
16
16
|
edu_rdm_integration/adapters/__init__.py,sha256=cU0swn4Ny5ZQz5buWRcWsT1mpWuUFJaUlHf2l7TtEBo,83
|
17
17
|
edu_rdm_integration/adapters/apps.py,sha256=TyJTkSPs2qAHJ11fqbwLGk3Ea7ujtqWwbxqmvYNQxG8,363
|
@@ -166,9 +166,9 @@ edu_rdm_integration/uploader_log/enums.py,sha256=rgSO3BL2rh2xpfm0Pt4waQW8fB1VMJL
|
|
166
166
|
edu_rdm_integration/uploader_log/managers.py,sha256=y5wTSMzF9hpOpIU_A7nIafL_LBU3QEie6LAYWoB-pBQ,3203
|
167
167
|
edu_rdm_integration/uploader_log/ui.py,sha256=YM9Buqp2wxE95Wf5gvAATBzuYzDOossK1sEmvFk07cI,2110
|
168
168
|
edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js,sha256=2xyGe0wdVokM0RhpzRzcRvJPBkBmPe3SlZry4oP4Nzs,6201
|
169
|
-
edu_rdm_integration-3.2.
|
170
|
-
edu_rdm_integration-3.2.
|
171
|
-
edu_rdm_integration-3.2.
|
172
|
-
edu_rdm_integration-3.2.
|
173
|
-
edu_rdm_integration-3.2.
|
174
|
-
edu_rdm_integration-3.2.
|
169
|
+
edu_rdm_integration-3.2.8.dist-info/LICENSE,sha256=uw43Gjjj-1vXWCItfSrNDpbejnOwZMrNerUh8oWbq8Q,3458
|
170
|
+
edu_rdm_integration-3.2.8.dist-info/METADATA,sha256=Ts7QmTHgVR_PzXvUkyWyU6RDHdc-CDl-V8svZCKpHM4,68279
|
171
|
+
edu_rdm_integration-3.2.8.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
172
|
+
edu_rdm_integration-3.2.8.dist-info/namespace_packages.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
173
|
+
edu_rdm_integration-3.2.8.dist-info/top_level.txt,sha256=nRJV0O14UtNE-jGIYG03sohgFnZClvf57H5m6VBXe9Y,20
|
174
|
+
edu_rdm_integration-3.2.8.dist-info/RECORD,,
|
File without changes
|
File without changes
|
{edu_rdm_integration-3.2.7.dist-info → edu_rdm_integration-3.2.8.dist-info}/namespace_packages.txt
RENAMED
File without changes
|
File without changes
|