edu-rdm-integration 0.6.1__tar.gz → 0.6.3__tar.gz

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.
Files changed (127) hide show
  1. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/CHANGELOG.md +19 -0
  2. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/PKG-INFO +143 -80
  3. edu-rdm-integration-0.6.3/README.md +220 -0
  4. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/setup.py +1 -1
  5. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/strategies.py +1 -1
  6. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/generators.py +5 -0
  7. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +1 -1
  8. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/strategies.py +1 -1
  9. edu-rdm-integration-0.6.3/src/edu_rdm_integration/migrations/__init__.py +0 -0
  10. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/models.py +19 -4
  11. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/PKG-INFO +143 -80
  12. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/SOURCES.txt +1 -0
  13. edu-rdm-integration-0.6.1/README.md +0 -176
  14. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/CONDUCT.md +0 -0
  15. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/LICENSE +0 -0
  16. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/MANIFEST.in +0 -0
  17. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/pyproject.toml +0 -0
  18. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/development_packages.txt +0 -0
  19. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/external_packages.txt +0 -0
  20. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/internal_packages.txt +0 -0
  21. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/internal_sources.txt +0 -0
  22. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/production_packages.txt +0 -0
  23. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/system_packages.txt +0 -0
  24. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/dependencies/testing_packages.txt +0 -0
  25. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/development.txt +0 -0
  26. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/production.txt +0 -0
  27. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/requirements/stage.txt +0 -0
  28. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/setup.cfg +0 -0
  29. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/__init__.py +0 -0
  30. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/__init__.py +0 -0
  31. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/apps.py +0 -0
  32. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/caches.py +0 -0
  33. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/consts.py +0 -0
  34. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/enums.py +0 -0
  35. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/errors.py +0 -0
  36. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/functions.py +0 -0
  37. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/helpers.py +0 -0
  38. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/managers.py +0 -0
  39. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/presenters.py +0 -0
  40. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/receivers.py +0 -0
  41. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/results.py +0 -0
  42. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/runners.py +0 -0
  43. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/strategies.py +0 -0
  44. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/strings.py +0 -0
  45. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/tests.py +0 -0
  46. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/adapters/validators.py +0 -0
  47. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/app_settings.py +0 -0
  48. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/apps.py +0 -0
  49. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
  50. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
  51. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
  52. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
  53. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/base/managers.py +0 -0
  54. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
  55. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
  56. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
  57. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
  58. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
  59. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
  60. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
  61. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
  62. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
  63. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
  64. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
  65. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
  66. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
  67. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
  68. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
  69. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
  70. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
  71. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/collect.py +0 -0
  72. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
  73. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
  74. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
  75. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
  76. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
  77. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
  78. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
  79. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
  80. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
  81. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
  82. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
  83. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
  84. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
  85. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
  86. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
  87. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
  88. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/consts.py +0 -0
  89. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/entities.py +0 -0
  90. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/enums.py +0 -0
  91. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/__init__.py +0 -0
  92. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
  93. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
  94. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
  95. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
  96. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
  97. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/functions.py +0 -0
  98. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
  99. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
  100. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
  101. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
  102. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/results.py +0 -0
  103. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
  104. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
  105. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
  106. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
  107. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/consts.py +0 -0
  108. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/export.py +0 -0
  109. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/generators.py +0 -0
  110. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/export_data/helpers.py +0 -0
  111. {edu-rdm-integration-0.6.1/src/edu_rdm_integration/management → edu-rdm-integration-0.6.3/src/edu_rdm_integration/function_templates}/__init__.py +0 -0
  112. {edu-rdm-integration-0.6.1/src/edu_rdm_integration/management/commands → edu-rdm-integration-0.6.3/src/edu_rdm_integration/management}/__init__.py +0 -0
  113. {edu-rdm-integration-0.6.1/src/edu_rdm_integration/migrations → edu-rdm-integration-0.6.3/src/edu_rdm_integration/management/commands}/__init__.py +0 -0
  114. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
  115. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
  116. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/management/general.py +0 -0
  117. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/mapping.py +0 -0
  118. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  119. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  120. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/signals.py +0 -0
  121. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/storages.py +0 -0
  122. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration/utils.py +0 -0
  123. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  124. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -0
  125. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/not-zip-safe +0 -0
  126. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/requires.txt +0 -0
  127. {edu-rdm-integration-0.6.1 → edu-rdm-integration-0.6.3}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -29,6 +29,25 @@
29
29
  ### Удалено
30
30
 
31
31
 
32
+ ## [0.6.3] - 2023-10-05
33
+
34
+ Доработка модели AbstractCollectDataCommandProgress и класса BaseFirstCollectModelsDataCommandsGenerator.
35
+
36
+ ### Добавлено
37
+
38
+ - [EDUSCHL-20350](https://jira.bars.group/browse/EDUSCHL-20350)
39
+ PATCH - Добавлено формирование id генерации для команд в классе BaseFirstCollectModelsDataCommandsGenerator.
40
+ - Добавлены поля created, generation_id и institute_ids в модель AbstractCollectDataCommandProgress.
41
+
42
+
43
+ ## [0.6.2] - 2023-10-04
44
+
45
+ ### Изменено
46
+
47
+ - [EDUCLLG-7942](https://jira.bars.group/browse/EDUCLLG-7942)
48
+ PATCH Доработка сборки документации.
49
+
50
+
32
51
  ## [0.6.1] - 2023-10-02
33
52
 
34
53
  Дополнение поведения BaseExportDataFunctionHelper.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 0.6.1
3
+ Version: 0.6.3
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -28,25 +28,70 @@ Requires-Dist: function-tools<1,>=0.5.0
28
28
  Requires-Dist: m3-db-utils<1,>=0.3.4
29
29
  Requires-Dist: uploader-client<1,>=0.1.12
30
30
 
31
- # Проект "Интеграция с Региональной витриной данных"
31
+ # Проект "Интеграция с Региональной витриной данных (РВД)"
32
+
33
+ Для интеграции с Региональной витриной данных был выделен отдельный пакет для использования его компонентов в различных
34
+ продуктах.
35
+
36
+ На текущий момент интеграция реализуется в рамках проектов Электронная школа (ЭШ) и Электронный колледж (ЭК).
32
37
 
33
38
  ## Описание концепции
34
39
 
40
+ Со стороны Минцифры предоставляется спецификация (ЕФТТ) с требованиями по формату и механизму выгрузки данных.
41
+
42
+ Выбрана модель промежуточного хранения данных на стороне продукта, которые подлежат выгрузке. При помощи такого подхода,
43
+ можно обеспечить формирование не хранящихся в продукте данных и дальнейшее их обновление и удаление. Упрощается процесс
44
+ поиска ошибок в данных, т.к. можно явно определить, в каких записях находятся ошибки и далее анализировать существующие
45
+ данные в продуктах или функционал по формированию данных.
46
+
35
47
  ## Принцип работы
36
48
 
49
+ Весь процесс разделен на сбор и выгрузку данных. Выделяются следующие понятия:
50
+
51
+ Модель продукта
52
+ : Django-модель находящаяся в самом продукте. При помощи нее производится накапливание пользовательских данных;
53
+
54
+ Модель РВД
55
+ : Django-модель находящаяся в пакете РВД продукта. Из моделей РВД формируется схема БД, позволяющая хранить данные для
56
+ дальнейшей выгрузки в нормализованном виде;
57
+
58
+ Сущность РВД
59
+ : Описание формата выгрузки данных в РВД в виде dataclass-а. Хранит в себе описание первичных, внешних ключей,
60
+ обязательность и порядок полей.
61
+
62
+ На этапе сбора данных производится формирование данных моделей РВД на основе данных моделей продуктов. Существуют так
63
+ называемые расчетные модели, для которых данные рассчитываются в процессе сбора.
64
+
65
+ Стоит обратить внимание, что сущности РВД могут содержать в себе данные из нескольких моделей РВД.
66
+
37
67
  ## Требования к окружению
38
68
 
69
+ Для работы требуется Python >=3.7. Так же в зависимостях есть внутренние пакеты:
70
+
71
+ - educommon;
72
+ - function-tools;
73
+ - m3-db-utils;
74
+ - uploader-client.
75
+
76
+ Версии всех пакетов уточнены в файлах с зависимостями.
77
+
39
78
  ## Разворачивание
40
79
 
41
- ## Параметры конфигурационного файла
80
+ Перед внедрением пакета в проект, необходимо убедиться, что:
81
+
82
+ - В проекте используется логирование из educommon;
83
+ - В проект внедрен function-tools;
84
+ - В проект внедрен m3-db-utils;
85
+ - В проект внедрен uploader-client.
42
86
 
87
+ ## Параметры конфигурационного файла
43
88
 
44
89
  В разных проектах существуют различные способы добавления настроек, где-то через плагины, где-то напрямую в settings.py.
45
90
  Будет рассмотрен подход указания настроек в settings.py и указания параметров в конфигурационном файле.
46
91
 
47
- Для возможности конфигурирования необходимо проделать ряд действий. В settings.py нужно добавить:
92
+ Для возможности конфигурирования необходимо проделать ряд действий:
48
93
 
49
- - Определение значений по умолчанию настроек:
94
+ - Определение значений по умолчанию настроек в settings.py:
50
95
  ```
51
96
  PROJECT_DEFAULT_CONFIG.update({
52
97
  # Настройки РВД
@@ -67,7 +112,7 @@ Requires-Dist: uploader-client<1,>=0.1.12
67
112
  ('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
68
113
  })
69
114
  ```
70
- - Получение значений настроек из конфигурационного файла:
115
+ - Получение значений настроек из конфигурационного файла в settings.py:
71
116
 
72
117
  ```
73
118
  # Ссылка на каталог с файлами для загрузки
@@ -120,90 +165,89 @@ Requires-Dist: uploader-client<1,>=0.1.12
120
165
  RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = conf.get_bool('uploader_client', 'ENABLE_REQUEST_EMULATION')
121
166
 
122
167
  ```
168
+
169
+ Перечень настроек в settings.py указан в таблице ниже.
170
+
171
+ | Название настройки в settings | Описание | Значение по умолчанию |
172
+ |----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|-------------------------|
173
+ | UPLOADS | Основная директория в MEDIA, в которой будет создана директория edu_rdm_integration для сохранения файлов для дальнейшей выгрузки | 500 |
174
+ | RDM_COLLECT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию сбора данных | 500 |
175
+ | RDM_EXPORT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию экспорта | 500 |
176
+ | RDM_UPLOADER_CLIENT_URL | Адрес витрины (schema://host:port) | 'http://localhost:8090' |
177
+ | RDM_UPLOADER_CLIENT_DATAMART_NAME | Мнемоника Витрины | 'test' |
178
+ | RDM_UPLOADER_CLIENT_REQUEST_RETRIES | Количество повторных попыток запроса | 10 |
179
+ | RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT | Таймаут запроса, сек | 10 |
180
+ | RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION | Включить эмуляцию отправки запросов | True |
181
+ | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
182
+ | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
183
+ | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
184
+ | RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
185
+ | RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
186
+ | RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
187
+ | RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
188
+ | RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
189
+
123
190
 
124
- В дефолтный конфиг проекта необходимо добавить:
125
-
126
- ```
127
- # Общие настройки интеграции с РВД
128
- [rmd_general]
129
- # Префикс идентификаторов записей сущностей специфический для продукта. Указывается в settings.py и не должен
130
- # изменяться. Возможность изменения через конфигурационный файл оставлена для экстренных случаев.
131
- # EXPORT_ENTITY_ID_PREFIX =
132
- # Количество записей моделей обрабатываемых за одну итерацию экспорта данных
133
- EXPORT_CHUNK_SIZE = 500
134
- # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
135
- COLLECT_CHUNK_SIZE = 500
136
-
137
- # Настройка запуска периодической задачи выгрузки данных
138
- [rdm_transfer_task]
139
- MINUTE=*/2
140
- HOUR=*
141
- DAY_OF_WEEK=*
142
- # Дельта между прошлым и текущим запуском, сек
143
- TIMEDELTA=120
144
-
145
- # Настройка запуска периодической задачи статуса загрузки данных в витрину
146
- [rdm_upload_status_task]
147
- MINUTE=*/2
148
- HOUR=*
149
- DAY_OF_WEEK=*
150
-
151
- # Настройка запуска периодической задачи поиска зависших этапов экспорта
152
- [rdm_check_suspend_task]
153
- MINUTE=*/10
154
- HOUR=*
155
- DAY_OF_WEEK=*
156
- # Дельта для определения зависшего подэтапа, мин
157
- STAGE_TIMEOUT=120
158
-
159
- [uploader_client]
160
- # Адрес витрины
161
- URL = http://localhost:8090
162
- # Мнемоника Витрины
163
- DATAMART_NAME = test
164
- # Количество повторных попыток запроса
165
- REQUEST_RETRIES = 10
166
- # Таймаут запроса, сек
167
- REQUEST_TIMEOUT = 10
168
- # Включить эмуляцию отправки запросов
169
- ENABLE_REQUEST_EMULATION = True
170
- ```
171
191
 
172
- На основе дефолтного конфига произвести конфигурирование приложений.
192
+ - В дефолтный конфиг проекта необходимо добавить:
173
193
 
174
- Перечень настроек в settings.py указан в таблице ниже.
175
-
176
- | Название настройки в settings | Описание | Значение по умолчанию |
177
- |----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|-------------------------|
178
- | UPLOADS | Основная директория в MEDIA, в которой будет создана директория edu_rdm_integration для сохранения файлов для дальнейшей выгрузки | 500 |
179
- | RDM_COLLECT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию сбора данных | 500 |
180
- | RDM_EXPORT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию экспорта | 500 |
181
- | RDM_UPLOADER_CLIENT_URL | Адрес витрины (schema://host:port) | 'http://localhost:8090' |
182
- | RDM_UPLOADER_CLIENT_DATAMART_NAME | Мнемоника Витрины | 'test' |
183
- | RDM_UPLOADER_CLIENT_REQUEST_RETRIES | Количество повторных попыток запроса | 10 |
184
- | RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT | Таймаут запроса, сек | 10 |
185
- | RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION | Включить эмуляцию отправки запросов | True |
186
- | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
187
- | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
188
- | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
189
- | RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
190
- | RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
191
- | RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
192
- | RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
193
- | RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
194
+ ```
195
+ # Общие настройки интеграции с РВД
196
+ [rmd_general]
197
+ # Префикс идентификаторов записей сущностей специфический для продукта. Указывается в settings.py и не должен
198
+ # изменяться. Возможность изменения через конфигурационный файл оставлена для экстренных случаев.
199
+ # EXPORT_ENTITY_ID_PREFIX =
200
+ # Количество записей моделей обрабатываемых за одну итерацию экспорта данных
201
+ EXPORT_CHUNK_SIZE = 500
202
+ # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
203
+ COLLECT_CHUNK_SIZE = 500
204
+
205
+ # Настройка запуска периодической задачи выгрузки данных
206
+ [rdm_transfer_task]
207
+ MINUTE=*/2
208
+ HOUR=*
209
+ DAY_OF_WEEK=*
210
+ # Дельта между прошлым и текущим запуском, сек
211
+ TIMEDELTA=120
212
+
213
+ # Настройка запуска периодической задачи статуса загрузки данных в витрину
214
+ [rdm_upload_status_task]
215
+ MINUTE=*/2
216
+ HOUR=*
217
+ DAY_OF_WEEK=*
218
+
219
+ # Настройка запуска периодической задачи поиска зависших этапов экспорта
220
+ [rdm_check_suspend_task]
221
+ MINUTE=*/10
222
+ HOUR=*
223
+ DAY_OF_WEEK=*
224
+ # Дельта для определения зависшего подэтапа, мин
225
+ STAGE_TIMEOUT=120
226
+
227
+ [uploader_client]
228
+ # Адрес витрины
229
+ URL = http://localhost:8090
230
+ # Мнемоника Витрины
231
+ DATAMART_NAME = test
232
+ # Количество повторных попыток запроса
233
+ REQUEST_RETRIES = 10
234
+ # Таймаут запроса, сек
235
+ REQUEST_TIMEOUT = 10
236
+ # Включить эмуляцию отправки запросов
237
+ ENABLE_REQUEST_EMULATION = True
238
+ ```
194
239
 
240
+ На основе дефолтного конфига произвести конфигурирование приложений.
195
241
 
196
242
  ## Сборка и распространение
197
243
 
198
- ## Инструкция для разработчика
199
-
200
- ## Настройка PyCharm для работы
244
+ Сборка пакета производится при помощи [Job-а в Jenkins M3.build_dist](http://jenkins.py.bars.group/view/PY/job/M3.packages/job/M3.build_dist/).
201
245
 
202
- ## Запуск в системе
246
+ Пакет выкладывается в глобальный [PYPI](https://pypi.org/project/edu-rdm-integration/) и во внутренний [Nexus](http://nexus.py.bars.group/#browse/browse:pypi-edu-private:edu-rdm-integration)
203
247
 
204
- ## Запуск в контейнере
248
+ ## Документация
205
249
 
206
- ## Правила внесения изменений
250
+ С документацией можно ознакомиться по ссылке http://docs.py.bars.group/edu-rdm-integration/
207
251
  # История изменений
208
252
 
209
253
  Все изменения проекта должны быть отражены в этом файле.
@@ -235,6 +279,25 @@ ENABLE_REQUEST_EMULATION = True
235
279
  ### Удалено
236
280
 
237
281
 
282
+ ## [0.6.3] - 2023-10-05
283
+
284
+ Доработка модели AbstractCollectDataCommandProgress и класса BaseFirstCollectModelsDataCommandsGenerator.
285
+
286
+ ### Добавлено
287
+
288
+ - [EDUSCHL-20350](https://jira.bars.group/browse/EDUSCHL-20350)
289
+ PATCH - Добавлено формирование id генерации для команд в классе BaseFirstCollectModelsDataCommandsGenerator.
290
+ - Добавлены поля created, generation_id и institute_ids в модель AbstractCollectDataCommandProgress.
291
+
292
+
293
+ ## [0.6.2] - 2023-10-04
294
+
295
+ ### Изменено
296
+
297
+ - [EDUCLLG-7942](https://jira.bars.group/browse/EDUCLLG-7942)
298
+ PATCH Доработка сборки документации.
299
+
300
+
238
301
  ## [0.6.1] - 2023-10-02
239
302
 
240
303
  Дополнение поведения BaseExportDataFunctionHelper.
@@ -0,0 +1,220 @@
1
+ # Проект "Интеграция с Региональной витриной данных (РВД)"
2
+
3
+ Для интеграции с Региональной витриной данных был выделен отдельный пакет для использования его компонентов в различных
4
+ продуктах.
5
+
6
+ На текущий момент интеграция реализуется в рамках проектов Электронная школа (ЭШ) и Электронный колледж (ЭК).
7
+
8
+ ## Описание концепции
9
+
10
+ Со стороны Минцифры предоставляется спецификация (ЕФТТ) с требованиями по формату и механизму выгрузки данных.
11
+
12
+ Выбрана модель промежуточного хранения данных на стороне продукта, которые подлежат выгрузке. При помощи такого подхода,
13
+ можно обеспечить формирование не хранящихся в продукте данных и дальнейшее их обновление и удаление. Упрощается процесс
14
+ поиска ошибок в данных, т.к. можно явно определить, в каких записях находятся ошибки и далее анализировать существующие
15
+ данные в продуктах или функционал по формированию данных.
16
+
17
+ ## Принцип работы
18
+
19
+ Весь процесс разделен на сбор и выгрузку данных. Выделяются следующие понятия:
20
+
21
+ Модель продукта
22
+ : Django-модель находящаяся в самом продукте. При помощи нее производится накапливание пользовательских данных;
23
+
24
+ Модель РВД
25
+ : Django-модель находящаяся в пакете РВД продукта. Из моделей РВД формируется схема БД, позволяющая хранить данные для
26
+ дальнейшей выгрузки в нормализованном виде;
27
+
28
+ Сущность РВД
29
+ : Описание формата выгрузки данных в РВД в виде dataclass-а. Хранит в себе описание первичных, внешних ключей,
30
+ обязательность и порядок полей.
31
+
32
+ На этапе сбора данных производится формирование данных моделей РВД на основе данных моделей продуктов. Существуют так
33
+ называемые расчетные модели, для которых данные рассчитываются в процессе сбора.
34
+
35
+ Стоит обратить внимание, что сущности РВД могут содержать в себе данные из нескольких моделей РВД.
36
+
37
+ ## Требования к окружению
38
+
39
+ Для работы требуется Python >=3.7. Так же в зависимостях есть внутренние пакеты:
40
+
41
+ - educommon;
42
+ - function-tools;
43
+ - m3-db-utils;
44
+ - uploader-client.
45
+
46
+ Версии всех пакетов уточнены в файлах с зависимостями.
47
+
48
+ ## Разворачивание
49
+
50
+ Перед внедрением пакета в проект, необходимо убедиться, что:
51
+
52
+ - В проекте используется логирование из educommon;
53
+ - В проект внедрен function-tools;
54
+ - В проект внедрен m3-db-utils;
55
+ - В проект внедрен uploader-client.
56
+
57
+ ## Параметры конфигурационного файла
58
+
59
+ В разных проектах существуют различные способы добавления настроек, где-то через плагины, где-то напрямую в settings.py.
60
+ Будет рассмотрен подход указания настроек в settings.py и указания параметров в конфигурационном файле.
61
+
62
+ Для возможности конфигурирования необходимо проделать ряд действий:
63
+
64
+ - Определение значений по умолчанию настроек в settings.py:
65
+ ```
66
+ PROJECT_DEFAULT_CONFIG.update({
67
+ # Настройки РВД
68
+ ('rdm_general', 'EXPORT_ENTITY_ID_PREFIX'): '', # Дефолтное значение нужно изменить на специфическое системе
69
+ ('rdm_general', 'COLLECT_CHUNK_SIZE'): 500,
70
+ ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
71
+ ('rdm_transfer_task', 'MINUTE'): '0',
72
+ ('rdm_transfer_task', 'HOUR'): '*/4',
73
+ ('rdm_transfer_task', 'TRANSFER_TASK_DAY_OF_WEEK'): '*',
74
+ ('rdm_transfer_task', 'TIMEDELTA'): 3600,
75
+ ('rdm_upload_status_task', 'MINUTE'): '*/30',
76
+ ('rdm_upload_status_task', 'HOUR'): '*',
77
+ ('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
78
+ ('uploader_client', 'URL'): 'http://localhost:8090',
79
+ ('uploader_client', 'DATAMART_NAME'): '',
80
+ ('uploader_client', 'REQUEST_RETRIES'): 10,
81
+ ('uploader_client', 'REQUEST_TIMEOUT'): 10,
82
+ ('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
83
+ })
84
+ ```
85
+ - Получение значений настроек из конфигурационного файла в settings.py:
86
+
87
+ ```
88
+ # Ссылка на каталог с файлами для загрузки
89
+ UPLOADS = 'uploads'
90
+
91
+ # =============================================================================
92
+ # Интеграция с Региональной витриной данных (РВД)
93
+ # =============================================================================
94
+
95
+ # Префикс идентификаторов записей сущностей специфический для продукта
96
+ RDM_EXPORT_ENTITY_ID_PREFIX = conf.get('rdm_general', 'EXPORT_ENTITY_ID_PREFIX')
97
+
98
+ # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
99
+ RDM_COLLECT_CHUNK_SIZE = conf.get_int('rdm_general', 'COLLECT_CHUNK_SIZE')
100
+
101
+ # Количество записей моделей обрабатываемых за одну итерацию экспорта данных
102
+ RDM_EXPORT_CHUNK_SIZE = conf.get_int('rdm_general', 'EXPORT_CHUNK_SIZE')
103
+
104
+ # Настройка запуска периодической задачи выгрузки данных:
105
+ RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
106
+ RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
107
+ RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
108
+ RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA')
109
+
110
+ # Настройка запуска периодической задачи статуса загрузки данных в витрину:
111
+ RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
112
+ RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
113
+ RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')
114
+
115
+ # Настройка запуска периодической задачи поиска зависших этапов экспорта:
116
+ RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
117
+ RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
118
+ RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
119
+ RDM_CHECK_SUSPEND_TASK_TIMEDELTA = conf.get_int('rdm_check_suspend_task', 'TIMEDELTA')
120
+
121
+ # Загрузка данных в Региональную витрину данных (РВД)
122
+ # Адрес витрины (schema://host:port)
123
+ RDM_UPLOADER_CLIENT_URL = conf.get('uploader_client', 'URL')
124
+
125
+ # Мнемоника Витрины
126
+ RDM_UPLOADER_CLIENT_DATAMART_NAME = conf.get('uploader_client', 'DATAMART_NAME')
127
+
128
+ # Количество повторных попыток запроса
129
+ RDM_UPLOADER_CLIENT_REQUEST_RETRIES = conf.get_int('uploader_client', 'REQUEST_RETRIES')
130
+
131
+ # Таймаут запроса, сек
132
+ RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT = conf.get_int('uploader_client', 'REQUEST_TIMEOUT')
133
+
134
+ # Включить эмуляцию отправки запросов
135
+ RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = conf.get_bool('uploader_client', 'ENABLE_REQUEST_EMULATION')
136
+
137
+ ```
138
+
139
+ Перечень настроек в settings.py указан в таблице ниже.
140
+
141
+ | Название настройки в settings | Описание | Значение по умолчанию |
142
+ |----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|-------------------------|
143
+ | UPLOADS | Основная директория в MEDIA, в которой будет создана директория edu_rdm_integration для сохранения файлов для дальнейшей выгрузки | 500 |
144
+ | RDM_COLLECT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию сбора данных | 500 |
145
+ | RDM_EXPORT_CHUNK_SIZE | Количество записей моделей обрабатываемых за одну итерацию экспорта | 500 |
146
+ | RDM_UPLOADER_CLIENT_URL | Адрес витрины (schema://host:port) | 'http://localhost:8090' |
147
+ | RDM_UPLOADER_CLIENT_DATAMART_NAME | Мнемоника Витрины | 'test' |
148
+ | RDM_UPLOADER_CLIENT_REQUEST_RETRIES | Количество повторных попыток запроса | 10 |
149
+ | RDM_UPLOADER_CLIENT_REQUEST_TIMEOUT | Таймаут запроса, сек | 10 |
150
+ | RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION | Включить эмуляцию отправки запросов | True |
151
+ | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
152
+ | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
153
+ | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
154
+ | RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
155
+ | RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
156
+ | RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
157
+ | RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
158
+ | RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
159
+
160
+
161
+
162
+ - В дефолтный конфиг проекта необходимо добавить:
163
+
164
+ ```
165
+ # Общие настройки интеграции с РВД
166
+ [rmd_general]
167
+ # Префикс идентификаторов записей сущностей специфический для продукта. Указывается в settings.py и не должен
168
+ # изменяться. Возможность изменения через конфигурационный файл оставлена для экстренных случаев.
169
+ # EXPORT_ENTITY_ID_PREFIX =
170
+ # Количество записей моделей обрабатываемых за одну итерацию экспорта данных
171
+ EXPORT_CHUNK_SIZE = 500
172
+ # Количество записей моделей ЭШ обрабатываемых за одну итерацию сбора данных
173
+ COLLECT_CHUNK_SIZE = 500
174
+
175
+ # Настройка запуска периодической задачи выгрузки данных
176
+ [rdm_transfer_task]
177
+ MINUTE=*/2
178
+ HOUR=*
179
+ DAY_OF_WEEK=*
180
+ # Дельта между прошлым и текущим запуском, сек
181
+ TIMEDELTA=120
182
+
183
+ # Настройка запуска периодической задачи статуса загрузки данных в витрину
184
+ [rdm_upload_status_task]
185
+ MINUTE=*/2
186
+ HOUR=*
187
+ DAY_OF_WEEK=*
188
+
189
+ # Настройка запуска периодической задачи поиска зависших этапов экспорта
190
+ [rdm_check_suspend_task]
191
+ MINUTE=*/10
192
+ HOUR=*
193
+ DAY_OF_WEEK=*
194
+ # Дельта для определения зависшего подэтапа, мин
195
+ STAGE_TIMEOUT=120
196
+
197
+ [uploader_client]
198
+ # Адрес витрины
199
+ URL = http://localhost:8090
200
+ # Мнемоника Витрины
201
+ DATAMART_NAME = test
202
+ # Количество повторных попыток запроса
203
+ REQUEST_RETRIES = 10
204
+ # Таймаут запроса, сек
205
+ REQUEST_TIMEOUT = 10
206
+ # Включить эмуляцию отправки запросов
207
+ ENABLE_REQUEST_EMULATION = True
208
+ ```
209
+
210
+ На основе дефолтного конфига произвести конфигурирование приложений.
211
+
212
+ ## Сборка и распространение
213
+
214
+ Сборка пакета производится при помощи [Job-а в Jenkins M3.build_dist](http://jenkins.py.bars.group/view/PY/job/M3.packages/job/M3.build_dist/).
215
+
216
+ Пакет выкладывается в глобальный [PYPI](https://pypi.org/project/edu-rdm-integration/) и во внутренний [Nexus](http://nexus.py.bars.group/#browse/browse:pypi-edu-private:edu-rdm-integration)
217
+
218
+ ## Документация
219
+
220
+ С документацией можно ознакомиться по ссылке http://docs.py.bars.group/edu-rdm-integration/
@@ -17,7 +17,7 @@ from setuptools import (
17
17
 
18
18
  PROJECT = 'edu_rdm_integration'
19
19
 
20
- VERSION = '0.6.1'
20
+ VERSION = '0.6.3'
21
21
 
22
22
  current_dir_path = Path().resolve()
23
23
 
@@ -100,7 +100,7 @@ class CollectingCalculatedExportedDataFunctionImplementationStrategy(
100
100
  """
101
101
  Формирование названия шаблона создания функции.
102
102
  """
103
- return 'function_sync_template'
103
+ return 'function_collect_data_template'
104
104
 
105
105
  def _prepare_manager_class(self):
106
106
  """
@@ -1,3 +1,4 @@
1
+ import uuid
1
2
  from datetime import (
2
3
  date,
3
4
  datetime,
@@ -111,6 +112,8 @@ class BaseFirstCollectModelsDataCommandsGenerator:
111
112
 
112
113
  self.batch_size = batch_size
113
114
 
115
+ self.generation_id = uuid.uuid4()
116
+
114
117
  # Правую дату нужно увеличивать на одну секунду, т.к. подрезались миллисекунды
115
118
  self.get_logs_periods_sql = (
116
119
  """
@@ -169,6 +172,7 @@ class BaseFirstCollectModelsDataCommandsGenerator:
169
172
  'period_started_at': start_datetime,
170
173
  'period_ended_at': end_datetime,
171
174
  'model': rdm_model.key,
175
+ 'generation_id': self.generation_id,
172
176
  }
173
177
  )
174
178
 
@@ -214,6 +218,7 @@ class BaseFirstCollectModelsDataCommandsGenerator:
214
218
  'period_started_at': period_started_at,
215
219
  'period_ended_at': period_ended_at,
216
220
  'model': rdm_model.key,
221
+ 'generation_id': self.generation_id,
217
222
  }
218
223
  )
219
224
 
@@ -100,7 +100,7 @@ class CollectingExportedDataFunctionImplementationStrategy(
100
100
  """
101
101
  Формирование названия шаблона создания функции.
102
102
  """
103
- return 'function_sync_template'
103
+ return 'function_collect_data_template'
104
104
 
105
105
  def _prepare_manager_class(self):
106
106
  """
@@ -98,7 +98,7 @@ class ExportDataFunctionImplementationStrategy(
98
98
  """
99
99
  Формирование названия шаблона создания функции.
100
100
  """
101
- return 'function_sync_template'
101
+ return 'function_export_data_template'
102
102
 
103
103
  def _prepare_manager_class(self):
104
104
  """