edu-rdm-integration 3.2.7__tar.gz → 3.3.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 (203) hide show
  1. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/CHANGELOG.md +58 -0
  2. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/PKG-INFO +59 -1
  3. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/setup.py +1 -1
  4. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/app_settings.py +5 -0
  5. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/collect.py +4 -54
  6. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/consts.py +0 -1
  7. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/functions.py +15 -108
  8. edu-rdm-integration-3.3.3/src/edu_rdm_integration/export_data/consts.py +6 -0
  9. edu-rdm-integration-3.3.3/src/edu_rdm_integration/export_data/dataclasses.py +11 -0
  10. edu-rdm-integration-3.3.3/src/edu_rdm_integration/export_data/export_manger.py +246 -0
  11. edu-rdm-integration-3.3.3/src/edu_rdm_integration/export_data/queue.py +172 -0
  12. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/helpers.py +19 -2
  13. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/general.py +0 -12
  14. edu-rdm-integration-3.3.3/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +25 -0
  15. edu-rdm-integration-3.2.7/src/edu_rdm_integration/migrations/0009_transferredentity_export_enabled.py → edu-rdm-integration-3.3.3/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +2 -2
  16. edu-rdm-integration-3.3.3/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +30 -0
  17. edu-rdm-integration-3.3.3/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +21 -0
  18. edu-rdm-integration-3.3.3/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +48 -0
  19. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/models.py +35 -4
  20. edu-rdm-integration-3.3.3/src/edu_rdm_integration/redis_cache.py +52 -0
  21. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/tasks.py +69 -33
  22. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/utils.py +1 -0
  23. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/PKG-INFO +59 -1
  24. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/SOURCES.txt +9 -1
  25. edu-rdm-integration-3.2.7/src/edu_rdm_integration/export_data/consts.py +0 -1
  26. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/CONDUCT.md +0 -0
  27. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/LICENSE +0 -0
  28. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/MANIFEST.in +0 -0
  29. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/README.md +0 -0
  30. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/pyproject.toml +0 -0
  31. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/development_packages.txt +0 -0
  32. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/external_packages.txt +0 -0
  33. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/internal_packages.txt +0 -0
  34. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/internal_sources.txt +0 -0
  35. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/production_packages.txt +0 -0
  36. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/system_packages.txt +0 -0
  37. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/dependencies/testing_packages.txt +0 -0
  38. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/development.txt +0 -0
  39. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/production.txt +0 -0
  40. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/requirements/stage.txt +0 -0
  41. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/setup.cfg +0 -0
  42. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/__init__.py +0 -0
  43. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/__init__.py +0 -0
  44. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/apps.py +0 -0
  45. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/caches.py +0 -0
  46. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/consts.py +0 -0
  47. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/enums.py +0 -0
  48. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/errors.py +0 -0
  49. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/functions.py +0 -0
  50. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/helpers.py +0 -0
  51. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/managers.py +0 -0
  52. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/presenters.py +0 -0
  53. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/receivers.py +0 -0
  54. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/results.py +0 -0
  55. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/runners.py +0 -0
  56. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/strategies.py +0 -0
  57. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/strings.py +0 -0
  58. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/tests.py +0 -0
  59. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/adapters/validators.py +0 -0
  60. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/app_meta.py +0 -0
  61. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/apps.py +1 -1
  62. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/base.py +0 -0
  63. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
  64. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
  65. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
  66. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
  67. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
  68. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_and_export_data/utils.py +0 -0
  69. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
  70. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
  71. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
  72. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
  73. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/helpers.py +0 -0
  74. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/managers.py +0 -0
  75. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
  76. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
  77. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
  78. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
  79. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
  80. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
  81. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
  82. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
  83. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
  84. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
  85. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
  86. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
  87. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
  88. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
  89. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
  90. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
  91. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
  92. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/calculated/strategies.py +0 -0
  93. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/generators.py +0 -0
  94. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
  95. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
  96. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
  97. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
  98. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
  99. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
  100. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
  101. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
  102. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
  103. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
  104. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
  105. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
  106. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
  107. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
  108. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
  109. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
  110. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +0 -0
  111. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/collect_data/tests.py +0 -0
  112. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/entities.py +0 -0
  113. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/enum_register/__init__.py +0 -0
  114. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/enum_register/mixins.py +0 -0
  115. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/enum_register/register.py +0 -0
  116. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/enums.py +0 -0
  117. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/__init__.py +0 -0
  118. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
  119. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
  120. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
  121. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
  122. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
  123. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
  124. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
  125. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
  126. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
  127. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/results.py +0 -0
  128. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
  129. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
  130. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
  131. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
  132. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/export.py +0 -0
  133. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/generators.py +0 -0
  134. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/helpers.py +0 -0
  135. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/export_data/strategies.py +0 -0
  136. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/__init__.py +0 -0
  137. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
  138. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/apps.py-tpl +0 -0
  139. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/caches.py-tpl +0 -0
  140. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/consts.py-tpl +0 -0
  141. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/enums.py-tpl +0 -0
  142. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/errors.py-tpl +0 -0
  143. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +0 -0
  144. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
  145. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +0 -0
  146. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
  147. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/results.py-tpl +0 -0
  148. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +0 -0
  149. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/strings.py-tpl +0 -0
  150. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +0 -0
  151. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_collect_data_template/validators.py-tpl +0 -0
  152. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/__init__.py-tpl +0 -0
  153. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/apps.py-tpl +0 -0
  154. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +0 -0
  155. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/consts.py-tpl +0 -0
  156. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/enums.py-tpl +0 -0
  157. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/errors.py-tpl +0 -0
  158. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +0 -0
  159. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/helpers.py-tpl +0 -0
  160. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +0 -0
  161. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/presenters.py-tpl +0 -0
  162. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/results.py-tpl +0 -0
  163. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +0 -0
  164. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/strings.py-tpl +0 -0
  165. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/tests.py-tpl +0 -0
  166. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/function_templates/function_export_data_template/validators.py-tpl +0 -0
  167. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/__init__.py +0 -0
  168. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/__init__.py +0 -0
  169. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/check_upload_status.py +0 -0
  170. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/collect_latest_models_data.py +0 -0
  171. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
  172. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/datamart_status.py +0 -0
  173. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/datamart_upload.py +0 -0
  174. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
  175. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/management/commands/export_latest_entities_data.py +0 -0
  176. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/mapping.py +0 -0
  177. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  178. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  179. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
  180. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
  181. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
  182. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
  183. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
  184. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
  185. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/migrations/__init__.py +0 -0
  186. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/registry/__init__.py +0 -0
  187. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/registry/actions.py +0 -0
  188. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/registry/ui.py +0 -0
  189. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/signals.py +0 -0
  190. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/storages.py +0 -0
  191. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/templates/ui-js/transferred-entity-list.js +0 -0
  192. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/__init__.py +0 -0
  193. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/actions.py +0 -0
  194. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/apps.py +0 -0
  195. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/enums.py +0 -0
  196. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/managers.py +0 -0
  197. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
  198. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration/uploader_log/ui.py +0 -0
  199. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  200. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -0
  201. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/not-zip-safe +0 -0
  202. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/requires.txt +0 -0
  203. {edu-rdm-integration-3.2.7 → edu-rdm-integration-3.3.3}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -28,6 +28,54 @@
28
28
 
29
29
  ### Удалено
30
30
 
31
+ ## 3.3.3 - 2024-08-19
32
+ Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
33
+ с учетом многопоточности, скорректированы номера миграций
34
+
35
+ ### Изменено
36
+ - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
37
+ PATCH Добавлен параметр export_off в модель TransferredEntity и изменен порядок запуска сбора и экспорта в
38
+ TransferLatestEntitiesDataPeriodicTask. Скорректированы номера миграций
39
+
40
+
41
+ ## 3.3.2 - 2024-07-16
42
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
43
+
44
+ ### Изменено
45
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
46
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
47
+
48
+
49
+ ## 3.3.1 - 2024-06-13
50
+ Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand.
51
+ Добавлен таймаут для сохранения информации об объемах файла в кеш.
52
+
53
+ ### Изменено
54
+ - [EDUSCHL-20649](https://jira.bars.group/browse/EDUSCHL-20649)
55
+ MINOR Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand
56
+
57
+ ### Исправлено
58
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
59
+ PATCH Реализация многопоточной выгрузки
60
+
61
+
62
+ ## 3.3.0 - 2024-06-06
63
+ Отправка файлов в РВД вынесена в отдельную задачу UploadDataAsyncTask, добавлен кеш файлов и очередь подэтапов отправки,
64
+ а также расчет объемов отправляемых файлов
65
+
66
+ ### Изменено
67
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
68
+ MINOR Реализация многопоточной выгрузки
69
+
70
+
71
+ ## 3.2.8 - 2024-08-02
72
+ Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
73
+
74
+ ### Изменено
75
+ - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
76
+ PATCH Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
77
+
78
+
31
79
  ## 3.2.7 - 2024-07-31
32
80
  Исправлен файл MANIFEST.in для включения в сборку js-шаблонов.
33
81
 
@@ -35,6 +83,7 @@
35
83
  - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
36
84
  PATCH Добавлено включение js-шаблонов в сборку в файл MANIFEST.in
37
85
 
86
+
38
87
  ## 3.2.6 - 2024-07-23
39
88
  Добавлен параметр export_off (Отключение экспорта для сущности) в модель TransferredEntity
40
89
  Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
@@ -52,6 +101,15 @@
52
101
  - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
53
102
  PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
54
103
 
104
+
105
+ ## 3.2.5 - 2024-07-16
106
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
107
+
108
+ ### Изменено
109
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
110
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
111
+
112
+
55
113
  ## 3.2.4 - 2024-07-16
56
114
  Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
57
115
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 3.2.7
3
+ Version: 3.3.3
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -301,6 +301,54 @@ Requires-Dist: uploader-client<1,>=0.2.1
301
301
 
302
302
  ### Удалено
303
303
 
304
+ ## 3.3.3 - 2024-08-19
305
+ Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
306
+ с учетом многопоточности, скорректированы номера миграций
307
+
308
+ ### Изменено
309
+ - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
310
+ PATCH Добавлен параметр export_off в модель TransferredEntity и изменен порядок запуска сбора и экспорта в
311
+ TransferLatestEntitiesDataPeriodicTask. Скорректированы номера миграций
312
+
313
+
314
+ ## 3.3.2 - 2024-07-16
315
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
316
+
317
+ ### Изменено
318
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
319
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
320
+
321
+
322
+ ## 3.3.1 - 2024-06-13
323
+ Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand.
324
+ Добавлен таймаут для сохранения информации об объемах файла в кеш.
325
+
326
+ ### Изменено
327
+ - [EDUSCHL-20649](https://jira.bars.group/browse/EDUSCHL-20649)
328
+ MINOR Удалён устаревший параметр logs_sub_period_days у базового класса команды сбора данных BaseCollectModelsDataByGeneratingLogsCommand
329
+
330
+ ### Исправлено
331
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
332
+ PATCH Реализация многопоточной выгрузки
333
+
334
+
335
+ ## 3.3.0 - 2024-06-06
336
+ Отправка файлов в РВД вынесена в отдельную задачу UploadDataAsyncTask, добавлен кеш файлов и очередь подэтапов отправки,
337
+ а также расчет объемов отправляемых файлов
338
+
339
+ ### Изменено
340
+ - [EDUSCHL-21835](https://jira.bars.group/browse/EDUSCHL-21835)
341
+ MINOR Реализация многопоточной выгрузки
342
+
343
+
344
+ ## 3.2.8 - 2024-08-02
345
+ Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
346
+
347
+ ### Изменено
348
+ - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
349
+ PATCH Исправлена ошибка задвоения сборки и экспорта в периодической задаче TransferLatestEntitiesDataPeriodicTask.
350
+
351
+
304
352
  ## 3.2.7 - 2024-07-31
305
353
  Исправлен файл MANIFEST.in для включения в сборку js-шаблонов.
306
354
 
@@ -308,6 +356,7 @@ Requires-Dist: uploader-client<1,>=0.2.1
308
356
  - [EDUSCHL-21965](https://jira.bars.group/browse/EDUSCHL-21965)
309
357
  PATCH Добавлено включение js-шаблонов в сборку в файл MANIFEST.in
310
358
 
359
+
311
360
  ## 3.2.6 - 2024-07-23
312
361
  Добавлен параметр export_off (Отключение экспорта для сущности) в модель TransferredEntity
313
362
  Изменен порядок запуска сбора и экспорта по сущностям в периодической задаче TransferLatestEntitiesDataPeriodicTask
@@ -325,6 +374,15 @@ Requires-Dist: uploader-client<1,>=0.2.1
325
374
  - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
326
375
  PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
327
376
 
377
+
378
+ ## 3.2.5 - 2024-07-16
379
+ Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
380
+
381
+ ### Изменено
382
+ - [EDUSCHL-22070](https://jira.bars.group/browse/EDUSCHL-22070)
383
+ PATCH Добавлен параметр use_times_limit в BaseCollectLatestModelsData для использования переданных параметров logs_period_started_at и logs_period_ended_at
384
+
385
+
328
386
  ## 3.2.4 - 2024-07-16
329
387
  Внесены корректировки в запросы используемые в функциях get_collecting_managers_max_period_ended_dates и get_exporting_managers_max_period_ended_dates.
330
388
 
@@ -17,7 +17,7 @@ from setuptools import (
17
17
 
18
18
  PROJECT = 'edu_rdm_integration'
19
19
 
20
- VERSION = '3.2.7'
20
+ VERSION = '3.3.3'
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