edu-rdm-integration 3.2.8__tar.gz → 3.3.4__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 (203) hide show
  1. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/CHANGELOG.md +56 -0
  2. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/PKG-INFO +58 -2
  3. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/external_packages.txt +1 -1
  4. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/setup.py +1 -1
  5. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/app_settings.py +5 -0
  6. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/collect.py +4 -54
  7. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/consts.py +0 -1
  8. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/functions.py +15 -108
  9. edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/consts.py +6 -0
  10. edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/dataclasses.py +11 -0
  11. edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/export_manger.py +246 -0
  12. edu-rdm-integration-3.3.4/src/edu_rdm_integration/export_data/queue.py +172 -0
  13. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/helpers.py +19 -2
  14. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/general.py +0 -12
  15. edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +25 -0
  16. edu-rdm-integration-3.2.8/src/edu_rdm_integration/migrations/0009_transferredentity_export_enabled.py → edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +2 -2
  17. edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +30 -0
  18. edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +21 -0
  19. edu-rdm-integration-3.3.4/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +48 -0
  20. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/models.py +35 -4
  21. edu-rdm-integration-3.3.4/src/edu_rdm_integration/redis_cache.py +52 -0
  22. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/tasks.py +38 -3
  23. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/utils.py +1 -0
  24. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/PKG-INFO +58 -2
  25. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/SOURCES.txt +9 -1
  26. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/requires.txt +1 -1
  27. edu-rdm-integration-3.2.8/src/edu_rdm_integration/export_data/consts.py +0 -1
  28. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/CONDUCT.md +0 -0
  29. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/LICENSE +0 -0
  30. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/MANIFEST.in +0 -0
  31. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/README.md +0 -0
  32. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/pyproject.toml +0 -0
  33. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/development_packages.txt +0 -0
  34. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/internal_packages.txt +0 -0
  35. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/internal_sources.txt +0 -0
  36. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/production_packages.txt +0 -0
  37. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/system_packages.txt +0 -0
  38. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/dependencies/testing_packages.txt +0 -0
  39. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/development.txt +0 -0
  40. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/production.txt +0 -0
  41. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/requirements/stage.txt +0 -0
  42. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/setup.cfg +0 -0
  43. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/__init__.py +0 -0
  44. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/__init__.py +0 -0
  45. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/apps.py +0 -0
  46. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/caches.py +0 -0
  47. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/consts.py +0 -0
  48. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/enums.py +0 -0
  49. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/errors.py +0 -0
  50. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/functions.py +0 -0
  51. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/helpers.py +0 -0
  52. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/managers.py +0 -0
  53. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/presenters.py +0 -0
  54. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/receivers.py +0 -0
  55. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/results.py +0 -0
  56. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/runners.py +0 -0
  57. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/strategies.py +0 -0
  58. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/strings.py +0 -0
  59. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/tests.py +0 -0
  60. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/adapters/validators.py +0 -0
  61. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/app_meta.py +0 -0
  62. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/apps.py +1 -1
  63. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/base.py +0 -0
  64. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
  65. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
  66. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
  67. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
  68. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
  69. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_and_export_data/utils.py +0 -0
  70. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
  71. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
  72. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
  73. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
  74. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/helpers.py +0 -0
  75. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/managers.py +0 -0
  76. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
  77. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
  78. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
  79. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
  80. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
  81. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
  82. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
  83. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
  84. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
  85. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
  86. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
  87. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
  88. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
  89. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
  90. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
  91. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
  92. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
  93. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/calculated/strategies.py +0 -0
  94. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/generators.py +0 -0
  95. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
  96. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
  97. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
  98. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
  99. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
  100. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
  101. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
  102. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
  103. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
  104. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
  105. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
  106. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
  107. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
  108. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
  109. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
  110. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
  111. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +0 -0
  112. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/collect_data/tests.py +0 -0
  113. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/entities.py +0 -0
  114. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enum_register/__init__.py +0 -0
  115. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enum_register/mixins.py +0 -0
  116. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enum_register/register.py +0 -0
  117. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/enums.py +0 -0
  118. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/__init__.py +0 -0
  119. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
  120. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
  121. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
  122. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
  123. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
  124. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
  125. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
  126. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
  127. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
  128. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/results.py +0 -0
  129. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
  130. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
  131. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
  132. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
  133. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/export.py +0 -0
  134. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/generators.py +0 -0
  135. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/helpers.py +0 -0
  136. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/export_data/strategies.py +0 -0
  137. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/__init__.py +0 -0
  138. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
  139. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/apps.py-tpl +0 -0
  140. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/caches.py-tpl +0 -0
  141. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/consts.py-tpl +0 -0
  142. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/enums.py-tpl +0 -0
  143. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/errors.py-tpl +0 -0
  144. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +0 -0
  145. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
  146. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +0 -0
  147. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
  148. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/results.py-tpl +0 -0
  149. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +0 -0
  150. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/strings.py-tpl +0 -0
  151. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +0 -0
  152. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_collect_data_template/validators.py-tpl +0 -0
  153. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/__init__.py-tpl +0 -0
  154. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/apps.py-tpl +0 -0
  155. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +0 -0
  156. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/consts.py-tpl +0 -0
  157. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/enums.py-tpl +0 -0
  158. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/errors.py-tpl +0 -0
  159. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +0 -0
  160. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/helpers.py-tpl +0 -0
  161. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +0 -0
  162. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/presenters.py-tpl +0 -0
  163. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/results.py-tpl +0 -0
  164. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +0 -0
  165. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/strings.py-tpl +0 -0
  166. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/tests.py-tpl +0 -0
  167. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/function_templates/function_export_data_template/validators.py-tpl +0 -0
  168. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/__init__.py +0 -0
  169. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/__init__.py +0 -0
  170. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/check_upload_status.py +0 -0
  171. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/collect_latest_models_data.py +0 -0
  172. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
  173. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/datamart_status.py +0 -0
  174. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/datamart_upload.py +0 -0
  175. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
  176. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/management/commands/export_latest_entities_data.py +0 -0
  177. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/mapping.py +0 -0
  178. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  179. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  180. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
  181. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
  182. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
  183. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
  184. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
  185. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
  186. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/migrations/__init__.py +0 -0
  187. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/registry/__init__.py +0 -0
  188. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/registry/actions.py +0 -0
  189. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/registry/ui.py +0 -0
  190. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/signals.py +0 -0
  191. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/storages.py +0 -0
  192. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/templates/ui-js/transferred-entity-list.js +0 -0
  193. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/__init__.py +0 -0
  194. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/actions.py +0 -0
  195. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/apps.py +0 -0
  196. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/enums.py +0 -0
  197. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/managers.py +0 -0
  198. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
  199. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration/uploader_log/ui.py +0 -0
  200. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  201. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -0
  202. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/not-zip-safe +0 -0
  203. {edu-rdm-integration-3.2.8 → edu-rdm-integration-3.3.4}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -28,6 +28,54 @@
28
28
 
29
29
  ### Удалено
30
30
 
31
+ ## 3.3.4 - 2024-08-16
32
+ Поднята максимальная версия Django (<3.3)
33
+
34
+ ### Изменено
35
+ - [EDUKNDG-14560](https://jira.bars.group/browse/EDUKNDG-14560)
36
+ MINOR Добавлена поддержка Django 3.2
37
+
38
+
39
+ ## 3.3.3 - 2024-08-19
40
+ Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
41
+ с учетом многопоточности, скорректированы номера миграций
42
+
43
+ ### Изменено
44
+ - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
45
+ PATCH Добавлен параметр export_off в модель TransferredEntity и изменен порядок запуска сбора и экспорта в
46
+ TransferLatestEntitiesDataPeriodicTask. Скорректированы номера миграций
47
+
48
+
49
+ ## 3.3.2 - 2024-07-16
50
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
51
+
52
+ ### Изменено
53
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
54
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
55
+
56
+
57
+ ## 3.3.1 - 2024-06-13
58
+ Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand.
59
+ Добавлен таймаут для сохранения информации об объемах файла в кеш.
60
+
61
+ ### Изменено
62
+ - [EDUSCHL-20649](https://jira.bars.group/browse/EDUSCHL-20649)
63
+ MINOR Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand
64
+
65
+ ### Исправлено
66
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
67
+ PATCH Реализация многопоточной выгрузки
68
+
69
+
70
+ ## 3.3.0 - 2024-06-06
71
+ Отправка файлов в РВД вынесена в отдельную задачу UploadDataAsyncTask, добавлен кеш файлов и очередь подэтапов отправки,
72
+ а также расчет объемов отправляемых файлов
73
+
74
+ ### Изменено
75
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
76
+ MINOR Реализация многопоточной выгрузки
77
+
78
+
31
79
  ## 3.2.8 - 2024-08-02
32
80
  Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
33
81
 
@@ -62,6 +110,14 @@
62
110
  PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
63
111
 
64
112
 
113
+ ## 3.2.5 - 2024-07-16
114
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
115
+
116
+ ### Изменено
117
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
118
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
119
+
120
+
65
121
  ## 3.2.4 - 2024-07-16
66
122
  Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
67
123
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 3.2.8
3
+ Version: 3.3.4
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -26,7 +26,7 @@ Requires-Dist: pip<24,>=23.2.1
26
26
  Requires-Dist: setuptools<70,>=47.3.1
27
27
  Requires-Dist: wheel<0.42,>=0.37.1
28
28
  Requires-Dist: transliterate<2
29
- Requires-Dist: Django<3.2,>=2.2
29
+ Requires-Dist: Django<3.3,>=2.2
30
30
  Requires-Dist: celery<5.3,>=4.4.7
31
31
  Requires-Dist: educommon<4,>=3.9.3
32
32
  Requires-Dist: function-tools<1,>=0.9.0
@@ -301,6 +301,54 @@ Requires-Dist: uploader-client<1,>=0.2.1
301
301
 
302
302
  ### Удалено
303
303
 
304
+ ## 3.3.4 - 2024-08-16
305
+ Поднята максимальная версия Django (<3.3)
306
+
307
+ ### Изменено
308
+ - [EDUKNDG-14560](https://jira.bars.group/browse/EDUKNDG-14560)
309
+ MINOR Добавлена поддержка Django 3.2
310
+
311
+
312
+ ## 3.3.3 - 2024-08-19
313
+ Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
314
+ с учетом многопоточности, скорректированы номера миграций
315
+
316
+ ### Изменено
317
+ - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
318
+ PATCH Добавлен параметр export_off в модель TransferredEntity и изменен порядок запуска сбора и экспорта в
319
+ TransferLatestEntitiesDataPeriodicTask. Скорректированы номера миграций
320
+
321
+
322
+ ## 3.3.2 - 2024-07-16
323
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
324
+
325
+ ### Изменено
326
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
327
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
328
+
329
+
330
+ ## 3.3.1 - 2024-06-13
331
+ Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand.
332
+ Добавлен таймаут для сохранения информации об объемах файла в кеш.
333
+
334
+ ### Изменено
335
+ - [EDUSCHL-20649](https://jira.bars.group/browse/EDUSCHL-20649)
336
+ MINOR Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand
337
+
338
+ ### Исправлено
339
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
340
+ PATCH Реализация многопоточной выгрузки
341
+
342
+
343
+ ## 3.3.0 - 2024-06-06
344
+ Отправка файлов в РВД вынесена в отдельную задачу UploadDataAsyncTask, добавлен кеш файлов и очередь подэтапов отправки,
345
+ а также расчет объемов отправляемых файлов
346
+
347
+ ### Изменено
348
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
349
+ MINOR Реализация многопоточной выгрузки
350
+
351
+
304
352
  ## 3.2.8 - 2024-08-02
305
353
  Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
306
354
 
@@ -335,6 +383,14 @@ Requires-Dist: uploader-client<1,>=0.2.1
335
383
  PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
336
384
 
337
385
 
386
+ ## 3.2.5 - 2024-07-16
387
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
388
+
389
+ ### Изменено
390
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
391
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
392
+
393
+
338
394
  ## 3.2.4 - 2024-07-16
339
395
  Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
340
396
 
@@ -1,3 +1,3 @@
1
1
  transliterate<2
2
- Django>=2.2,<3.2
2
+ Django>=2.2,<3.3
3
3
  celery>=4.4.7,<5.3
@@ -17,7 +17,7 @@ from setuptools import (
17
17
 
18
18
  PROJECT = 'edu_rdm_integration'
19
19
 
20
- VERSION = '3.2.8'
20
+ VERSION = '3.3.4'
21
21
 
22
22
  current_dir_path = Path().resolve()
23
23
 
@@ -43,3 +43,8 @@ RDM_UPLOAD_STATUS_TASK_MINUTE = '*/30'
43
43
  RDM_UPLOAD_STATUS_TASK_HOUR = '*'
44
44
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = '*'
45
45
  RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 2
46
+
47
+ # Настройка очереди Redis для формирования файлов РВД
48
+ RDM_UPLOAD_QUEUE_MAX_SIZE = 500_000_000
49
+ # Таймаут для сохранения параметров в общем кеш
50
+ RDM_REDIS_CACHE_TIMEOUT_SECONDS = 60 * 60 * 2
@@ -3,7 +3,6 @@ from datetime import (
3
3
  date,
4
4
  datetime,
5
5
  time,
6
- timedelta,
7
6
  )
8
7
  from typing import (
9
8
  TYPE_CHECKING,
@@ -42,7 +41,6 @@ from edu_rdm_integration.base import (
42
41
  BaseOperationData,
43
42
  )
44
43
  from edu_rdm_integration.consts import (
45
- LOGS_SUB_PERIOD_DAYS,
46
44
  REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
47
45
  )
48
46
  from edu_rdm_integration.helpers import (
@@ -195,13 +193,11 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
195
193
  models: Iterable[str],
196
194
  logs_period_started_at=datetime.combine(date.today(), time.min),
197
195
  logs_period_ended_at=datetime.combine(date.today(), time.min),
198
- logs_sub_period_days=LOGS_SUB_PERIOD_DAYS,
199
196
  institute_ids=(),
200
197
  **kwargs,
201
198
  ):
202
199
  super().__init__(models, logs_period_started_at, logs_period_ended_at, **kwargs)
203
200
 
204
- self.logs_sub_period_days = logs_sub_period_days
205
201
  # Учебные заведения, для которых производится выгрузка
206
202
  self.institute_ids = institute_ids
207
203
  # Генератор логов
@@ -211,42 +207,11 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
211
207
  """Возвращает генератор логов."""
212
208
  raise NotImplementedError
213
209
 
214
- def _generate_logs_by_subperiod(self):
215
- """
216
- Генерация логов с учетом подпериодов.
217
- """
218
- temp_logs_period_started_at = self.logs_period_started_at
219
- temp_logs_period_ended_at = self.logs_period_started_at + timedelta(days=self.logs_sub_period_days)
220
-
221
- if temp_logs_period_ended_at > self.logs_period_ended_at:
222
- temp_logs_period_ended_at = self.logs_period_ended_at
223
-
224
- temp_logs: Dict[str, List['AuditLog']] = {}
225
-
226
- while temp_logs_period_started_at < temp_logs_period_ended_at <= self.logs_period_ended_at:
227
- for model in self.models:
228
- logs = self.log_generator.generate(
229
- model=model,
230
- logs_period_started_at=temp_logs_period_started_at,
231
- logs_period_ended_at=temp_logs_period_ended_at,
232
- institute_ids=self.institute_ids,
233
- )
234
-
235
- temp_logs[model.key] = logs
236
-
237
- yield temp_logs, temp_logs_period_started_at, temp_logs_period_ended_at
238
-
239
- temp_logs_period_started_at = temp_logs_period_ended_at
240
- temp_logs_period_ended_at += timedelta(days=self.logs_sub_period_days)
241
-
242
- if temp_logs_period_ended_at > self.logs_period_ended_at:
243
- temp_logs_period_ended_at = self.logs_period_ended_at
244
-
245
- temp_logs.clear()
210
+ def _generate_logs(self) -> List[Tuple[Dict[str, List['AuditLog']], datetime, datetime]]:
211
+ """Генерация логов.
246
212
 
247
- def _generate_logs_for_all_period(self):
248
- """
249
- Генерация логов за весь период.
213
+ Осуществляет генерацию логов по уже существующим записям в базе данных. В качестве параметров указываются
214
+ начало и конец периода сбора логов. Генерация логов производится только для указанных моделей.
250
215
  """
251
216
  temp_logs: Dict[str, List['AuditLog']] = {}
252
217
 
@@ -262,21 +227,6 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
262
227
 
263
228
  return [(temp_logs, self.logs_period_started_at, self.logs_period_ended_at)]
264
229
 
265
- def _generate_logs(self) -> List[Tuple[Dict[str, List['AuditLog']], datetime, datetime]]:
266
- """
267
- Генерация логов.
268
-
269
- Осуществляет генерацию логов по уже существующим записям в базе данных. В качестве параметров указываются
270
- начало и конец периода сбора логов, размер подпериодов, на которые должен быть разбит основной период.
271
- Генерация логов производится только для указанных моделей.
272
- """
273
- if self.logs_sub_period_days:
274
- logs = self._generate_logs_by_subperiod()
275
- else:
276
- logs = self._generate_logs_for_all_period()
277
-
278
- return logs
279
-
280
230
  def _collect(self):
281
231
  """
282
232
  Собирает данные моделей РВД.
@@ -19,7 +19,6 @@ LOGS_DELIMITER = ' '
19
19
 
20
20
  HASH_ALGORITHM = 'md_gost12_512'
21
21
 
22
- LOGS_SUB_PERIOD_DAYS = 0
23
22
  BATCH_SIZE = 5000
24
23
 
25
24
  ACADEMIC_YEAR = {
@@ -1,22 +1,12 @@
1
- import json
2
1
  from abc import (
3
2
  ABCMeta,
4
3
  )
5
- from pathlib import (
6
- Path,
7
- )
8
4
  from typing import (
9
- Dict,
10
5
  List,
11
- Optional,
12
- Tuple,
13
6
  Type,
14
7
  Union,
15
8
  )
16
9
 
17
- from django.conf import (
18
- settings,
19
- )
20
10
  from django.core.files.base import (
21
11
  ContentFile,
22
12
  )
@@ -26,9 +16,6 @@ from django.core.files.storage import (
26
16
  from transliterate import (
27
17
  slugify,
28
18
  )
29
- from uploader_client.adapters import (
30
- adapter,
31
- )
32
19
 
33
20
  from educommon import (
34
21
  logger,
@@ -46,22 +33,9 @@ from edu_rdm_integration.adapters.functions import (
46
33
  from edu_rdm_integration.consts import (
47
34
  LOGS_DELIMITER,
48
35
  )
49
- from edu_rdm_integration.enums import (
50
- FileUploadStatusEnum,
51
- )
52
- from edu_rdm_integration.export_data.base.consts import (
53
- OPERATIONS_METHODS_MAP,
54
- OPERATIONS_URLS_MAP,
55
- )
56
- from edu_rdm_integration.export_data.base.errors import (
57
- BaseExportDataError,
58
- )
59
36
  from edu_rdm_integration.export_data.base.helpers import (
60
37
  BaseExportDataFunctionHelper,
61
38
  )
62
- from edu_rdm_integration.export_data.base.requests import (
63
- RegionalDataMartEntityRequest,
64
- )
65
39
  from edu_rdm_integration.export_data.base.results import (
66
40
  BaseExportDataFunctionResult,
67
41
  )
@@ -75,8 +49,8 @@ from edu_rdm_integration.models import (
75
49
  ExportingDataStage,
76
50
  ExportingDataSubStage,
77
51
  ExportingDataSubStageAttachment,
52
+ ExportingDataSubStageEntity,
78
53
  ExportingDataSubStageStatus,
79
- ExportingDataSubStageUploaderClientLog,
80
54
  )
81
55
  from edu_rdm_integration.utils import (
82
56
  get_exporting_data_stage_attachment_path,
@@ -99,6 +73,10 @@ class BaseExportDataFunction(
99
73
  stage=stage,
100
74
  function_id=self.uuid,
101
75
  )
76
+ ExportingDataSubStageEntity.objects.create(
77
+ exporting_data_sub_stage=self._sub_stage,
78
+ entity_id=self.first_entity.key
79
+ )
102
80
  # Проставление подэтапа выгрузки
103
81
  self.entities[0].main_model_enum.model.objects.filter(pk__in=model_ids).update(
104
82
  exporting_sub_stage=self._sub_stage,
@@ -116,11 +94,7 @@ class BaseExportDataFunction(
116
94
  EntityLogOperation.DELETE: [],
117
95
  }
118
96
 
119
- self._file_contents: Dict[int, Optional[Tuple[Optional[str], Optional[ExportingDataSubStageAttachment]]]] = {
120
- EntityLogOperation.CREATE: (None, None),
121
- EntityLogOperation.UPDATE: (None, None),
122
- EntityLogOperation.DELETE: (None, None),
123
- }
97
+ self.has_data = False
124
98
 
125
99
  def _prepare_helper_class(self) -> Type[BaseExportDataFunctionHelper]:
126
100
  """
@@ -201,8 +175,10 @@ class BaseExportDataFunction(
201
175
  Формирование файлов для дальнейшей выгрузки.
202
176
  """
203
177
  logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} prepare files..')
178
+ has_record = False
204
179
 
205
180
  for operation in EntityLogOperation.values.keys():
181
+
206
182
  records = self._data[operation]
207
183
  if records:
208
184
  title_record = (
@@ -230,83 +206,12 @@ class BaseExportDataFunction(
230
206
  )
231
207
 
232
208
  sub_stage_attachment.attachment = default_storage.save(file_path, ContentFile(joined_records))
209
+ sub_stage_attachment.attachment_size = sub_stage_attachment.attachment.size
233
210
 
234
211
  self.do_on_save(sub_stage_attachment)
212
+ has_record |= True
235
213
 
236
- self._file_contents[operation] = (file_path, sub_stage_attachment)
237
-
238
- def _send_files(self):
239
- """
240
- Отправка файлов в "Региональная витрина данных".
241
- """
242
- # TODO При старте проекта и инициализации приложения function_tools происходит поиск стратегий. При поиске
243
- # возникает ошибка "Не произведена настройка клиента". Настройка производится в конфиге
244
- # приложения regional_data_mart_integration. Нужно доработать механизм так, чтобы сборка стратегий запускалась
245
- # после готовности всех приложений.
246
-
247
- logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} send files..')
248
-
249
- requests_result = []
250
-
251
- for operation, (relative_file_path, sub_stage_attachment) in self._file_contents.items():
252
- if relative_file_path:
253
- if settings.RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION:
254
- logger.warning(
255
- f'{LOGS_DELIMITER * 3}ATTENTION!!! REGIONAL DATA MART INTEGRATION REQUEST EMULATION ENABLED!'
256
- )
257
-
258
- method = OPERATIONS_METHODS_MAP.get(operation)
259
- file_path = Path.joinpath(Path(settings.MEDIA_ROOT), relative_file_path)
260
-
261
- request = RegionalDataMartEntityRequest(
262
- datamart_name=settings.RDM_UPLOADER_CLIENT_DATAMART_NAME,
263
- table_name=self.first_entity.key.lower(),
264
- method=method,
265
- operation=OPERATIONS_URLS_MAP.get(operation),
266
- parameters={},
267
- headers={
268
- 'Content-Type': 'text/csv',
269
- },
270
- files=[],
271
- data=file_path.open('rb').read(),
272
- )
273
-
274
- result = adapter.send(request)
275
-
276
- request_id = ''
277
- if not result.error:
278
- request_id = result.response.text
279
-
280
- file_upload_status = FileUploadStatusEnum.IN_PROGRESS if request_id else FileUploadStatusEnum.ERROR
281
-
282
- sub_stage_uploader_client_log = ExportingDataSubStageUploaderClientLog(
283
- entry=result.log,
284
- sub_stage=self._sub_stage,
285
- attachment=sub_stage_attachment,
286
- request_id=request_id,
287
- file_upload_status=file_upload_status,
288
- is_emulation=settings.RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION,
289
- )
290
-
291
- self.do_on_save(sub_stage_uploader_client_log)
292
-
293
- if result.error:
294
- logger.warning(
295
- f'{result.error}\nrequest - "{result.log.request}"\nresponse - "{result.log.response}"'
296
- )
297
-
298
- error = BaseExportDataError(
299
- message=result.error,
300
- )
301
- self.result.append_entity(entity=error)
302
-
303
- break
304
- else:
305
- logger.info(
306
- f'Response with {result.response.status_code} code and content {result.response.text}'
307
- )
308
-
309
- requests_result.append(result)
214
+ self.has_data = has_record
310
215
 
311
216
  def _prepare(self, *args, **kwargs):
312
217
  """
@@ -316,7 +221,6 @@ class BaseExportDataFunction(
316
221
  if self.helper.cache.entity_instances:
317
222
  self._prepare_data()
318
223
  self._prepare_files()
319
- self._send_files()
320
224
  else:
321
225
  logger.info(f'{LOGS_DELIMITER * 3} no data for preparing.')
322
226
 
@@ -342,7 +246,10 @@ class BaseExportDataFunction(
342
246
  super().run(*args, **kwargs)
343
247
 
344
248
  if self.result.has_not_errors:
345
- self._sub_stage.status_id = ExportingDataSubStageStatus.FINISHED.key
249
+ self._sub_stage.status_id = (
250
+ ExportingDataSubStageStatus.FINISHED.key if not self.has_data
251
+ else ExportingDataSubStageStatus.READY_FOR_EXPORT.key
252
+ )
346
253
  else:
347
254
  self._sub_stage.status_id = ExportingDataSubStageStatus.FAILED.key
348
255
 
@@ -0,0 +1,6 @@
1
+ DELIMITER = ';'
2
+
3
+ # Разделитель между id подэтапа и сущностью в составном ключе очереди
4
+ REDIS_QUEUE_KEY_DELIMITER = ':'
5
+ # Ключ параметра Общий объем отправленных в РВД файлов
6
+ TOTAL_ATTACHMENTS_SIZE_KEY = 'rdm:total_attachments_size'
@@ -0,0 +1,11 @@
1
+ from typing import (
2
+ NamedTuple,
3
+ )
4
+
5
+
6
+ class UploadFile(NamedTuple):
7
+ """Структура файла подэтапа для очереди отправки."""
8
+ attachment_id: int
9
+ attachment_name: str
10
+ attachment_size: int
11
+ operation: str