edu-rdm-integration 3.0.4__tar.gz → 3.2.0__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 (192) hide show
  1. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/CHANGELOG.md +20 -0
  2. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/PKG-INFO +34 -4
  3. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/README.md +11 -1
  4. edu-rdm-integration-3.2.0/pyproject.toml +8 -0
  5. edu-rdm-integration-3.2.0/requirements/dependencies/system_packages.txt +4 -0
  6. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/setup.py +1 -1
  7. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/app_settings.py +2 -0
  8. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/tasks.py +45 -3
  9. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/PKG-INFO +34 -4
  10. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/requires.txt +2 -2
  11. edu-rdm-integration-3.0.4/pyproject.toml +0 -8
  12. edu-rdm-integration-3.0.4/requirements/dependencies/system_packages.txt +0 -4
  13. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/CONDUCT.md +0 -0
  14. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/LICENSE +0 -0
  15. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/MANIFEST.in +0 -0
  16. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/dependencies/development_packages.txt +0 -0
  17. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/dependencies/external_packages.txt +0 -0
  18. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/dependencies/internal_packages.txt +0 -0
  19. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/dependencies/internal_sources.txt +0 -0
  20. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/dependencies/production_packages.txt +0 -0
  21. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/dependencies/testing_packages.txt +0 -0
  22. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/development.txt +0 -0
  23. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/production.txt +0 -0
  24. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/requirements/stage.txt +0 -0
  25. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/setup.cfg +0 -0
  26. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/__init__.py +0 -0
  27. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/__init__.py +0 -0
  28. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/apps.py +0 -0
  29. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/caches.py +0 -0
  30. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/consts.py +0 -0
  31. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/enums.py +0 -0
  32. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/errors.py +0 -0
  33. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/functions.py +0 -0
  34. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/helpers.py +0 -0
  35. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/managers.py +0 -0
  36. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/presenters.py +0 -0
  37. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/receivers.py +0 -0
  38. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/results.py +0 -0
  39. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/runners.py +0 -0
  40. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/strategies.py +0 -0
  41. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/strings.py +0 -0
  42. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/tests.py +0 -0
  43. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/adapters/validators.py +0 -0
  44. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/app_meta.py +0 -0
  45. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/apps.py +0 -0
  46. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/base.py +0 -0
  47. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
  48. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
  49. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
  50. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
  51. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
  52. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_and_export_data/utils.py +0 -0
  53. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
  54. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
  55. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
  56. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
  57. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/helpers.py +0 -0
  58. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/managers.py +0 -0
  59. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
  60. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
  61. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
  62. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
  63. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
  64. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
  65. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
  66. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
  67. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
  68. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
  69. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
  70. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
  71. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
  72. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
  73. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
  74. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
  75. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
  76. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/calculated/strategies.py +0 -0
  77. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/collect.py +0 -0
  78. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/generators.py +0 -0
  79. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
  80. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
  81. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
  82. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
  83. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
  84. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
  85. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
  86. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
  87. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
  88. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
  89. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
  90. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
  91. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
  92. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
  93. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
  94. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
  95. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +0 -0
  96. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/collect_data/tests.py +0 -0
  97. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/consts.py +0 -0
  98. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/entities.py +0 -0
  99. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/enum_register/__init__.py +0 -0
  100. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/enum_register/mixins.py +0 -0
  101. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/enum_register/register.py +0 -0
  102. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/enums.py +0 -0
  103. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/__init__.py +0 -0
  104. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
  105. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
  106. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
  107. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
  108. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
  109. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/functions.py +0 -0
  110. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
  111. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
  112. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
  113. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
  114. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/results.py +0 -0
  115. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
  116. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
  117. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
  118. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
  119. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/consts.py +0 -0
  120. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/export.py +0 -0
  121. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/generators.py +0 -0
  122. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/helpers.py +0 -0
  123. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/export_data/strategies.py +0 -0
  124. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/__init__.py +0 -0
  125. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
  126. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/apps.py-tpl +0 -0
  127. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/caches.py-tpl +0 -0
  128. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/consts.py-tpl +0 -0
  129. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/enums.py-tpl +0 -0
  130. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/errors.py-tpl +0 -0
  131. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +0 -0
  132. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
  133. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +0 -0
  134. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
  135. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/results.py-tpl +0 -0
  136. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +0 -0
  137. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/strings.py-tpl +0 -0
  138. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +0 -0
  139. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/validators.py-tpl +0 -0
  140. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/__init__.py-tpl +0 -0
  141. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/apps.py-tpl +0 -0
  142. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +0 -0
  143. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/consts.py-tpl +0 -0
  144. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/enums.py-tpl +0 -0
  145. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/errors.py-tpl +0 -0
  146. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +0 -0
  147. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/helpers.py-tpl +0 -0
  148. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +0 -0
  149. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/presenters.py-tpl +0 -0
  150. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/results.py-tpl +0 -0
  151. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +0 -0
  152. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/strings.py-tpl +0 -0
  153. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/tests.py-tpl +0 -0
  154. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/function_templates/function_export_data_template/validators.py-tpl +0 -0
  155. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/helpers.py +0 -0
  156. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/__init__.py +0 -0
  157. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/__init__.py +0 -0
  158. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/check_upload_status.py +0 -0
  159. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/collect_latest_models_data.py +0 -0
  160. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
  161. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/datamart_status.py +0 -0
  162. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/datamart_upload.py +0 -0
  163. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
  164. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/commands/export_latest_entities_data.py +0 -0
  165. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/management/general.py +0 -0
  166. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/mapping.py +0 -0
  167. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  168. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  169. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
  170. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
  171. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
  172. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
  173. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
  174. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
  175. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/migrations/__init__.py +0 -0
  176. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/models.py +0 -0
  177. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/registry/__init__.py +0 -0
  178. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/registry/actions.py +0 -0
  179. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/signals.py +0 -0
  180. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/storages.py +0 -0
  181. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/uploader_log/__init__.py +0 -0
  182. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/uploader_log/actions.py +0 -0
  183. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/uploader_log/apps.py +0 -0
  184. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/uploader_log/enums.py +0 -0
  185. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/uploader_log/managers.py +0 -0
  186. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/uploader_log/ui.py +0 -0
  187. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration/utils.py +0 -0
  188. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/SOURCES.txt +0 -0
  189. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  190. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -0
  191. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/not-zip-safe +0 -0
  192. {edu-rdm-integration-3.0.4 → edu-rdm-integration-3.2.0}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -29,6 +29,26 @@
29
29
  ### Удалено
30
30
 
31
31
 
32
+ ## 3.2.0 - 2024-05-02
33
+ Периодические задачи RDMCheckUploadStatus, CheckSuspendedExportedStagePeriodicTask,
34
+ TransferLatestEntitiesDataPeriodicTask сделаны уникальными.
35
+
36
+ ### Изменено
37
+ - [EDUSCHL-21891](https://jira.bars.group/browse/EDUSCHL-21891)
38
+ MINOR Периодические задачи RDMCheckUploadStatus, CheckSuspendedExportedStagePeriodicTask,
39
+ TransferLatestEntitiesDataPeriodicTask сделаны уникальными. Во время действия блокировки не будет возможности
40
+ поставить новую подобную задачу.
41
+
42
+
43
+ ## 3.1.0 - 2024-04-23
44
+ Добавлена поддержка setuptools 69.*.
45
+ Поднята минимальная версия пакета pip 23.2.1
46
+
47
+ ### Изменено
48
+ - [EDUSCHL-21761](https://jira.bars.group/browse/EDUSCHL-21761)
49
+ MINOR Добавлена поддержка setuptools 69.*. Поднять минимальную версию pip до 23.2.1.
50
+
51
+
32
52
  ## 3.0.4 - 2024-04-17
33
53
  Возвращено проставление подэтапа выгрузки всем записям модели.
34
54
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 3.0.4
3
+ Version: 3.2.0
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -22,8 +22,8 @@ Classifier: Framework :: Django :: 3.1
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  Requires-Dist: packaging<24,>=21.3
25
- Requires-Dist: pip<24,>=20.1.1
26
- Requires-Dist: setuptools<69,>=47.3.1
25
+ Requires-Dist: pip<24,>=23.2.1
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
29
  Requires-Dist: Django<3.2,>=2.2
@@ -106,12 +106,14 @@ Requires-Dist: uploader-client<1,>=0.2.1
106
106
  ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
107
107
  ('rdm_transfer_task', 'MINUTE'): '0',
108
108
  ('rdm_transfer_task', 'HOUR'): '*/4',
109
- ('rdm_transfer_task', 'TRANSFER_TASK_DAY_OF_WEEK'): '*',
109
+ ('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
110
+ ('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS'): 21600,
110
111
  ('rdm_transfer_task', 'TIMEDELTA'): 3600,
111
112
  ('rdm_transfer_task', 'ENTITIES'): '',
112
113
  ('rdm_upload_status_task', 'MINUTE'): '*/30',
113
114
  ('rdm_upload_status_task', 'HOUR'): '*',
114
115
  ('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
116
+ ('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS'): 7200,
115
117
  ('uploader_client', 'URL'): 'http://localhost:8090',
116
118
  ('uploader_client', 'DATAMART_NAME'): '',
117
119
  ('uploader_client', 'REQUEST_RETRIES'): 10,
@@ -145,17 +147,20 @@ Requires-Dist: uploader-client<1,>=0.2.1
145
147
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
146
148
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
147
149
  RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
150
+ RDM_TRANSFER_TASK_EXPIRE_SECOND = conf.get('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
148
151
  RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA')
149
152
 
150
153
  # Настройка запуска периодической задачи статуса загрузки данных в витрину:
151
154
  RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
152
155
  RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
153
156
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')
157
+ RDM_UPLOAD_STATUS_TASK_EXPIRE_SECOND = conf.get('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
154
158
 
155
159
  # Настройка запуска периодической задачи поиска зависших этапов экспорта:
156
160
  RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
157
161
  RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
158
162
  RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
163
+ RDM_CHECK_SUSPEND_TASK_EXPIRE_SECOND = conf.get('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
159
164
  RDM_CHECK_SUSPEND_TASK_TIMEDELTA = conf.get_int('rdm_check_suspend_task', 'TIMEDELTA')
160
165
 
161
166
  # Загрузка данных в Региональную витрину данных (РВД)
@@ -192,10 +197,12 @@ Requires-Dist: uploader-client<1,>=0.2.1
192
197
  | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
193
198
  | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
194
199
  | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
200
+ | RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 21600 |
195
201
  | RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
196
202
  | RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
197
203
  | RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
198
204
  | RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
205
+ | RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 3600 |
199
206
  | RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
200
207
 
201
208
 
@@ -220,6 +227,7 @@ Requires-Dist: uploader-client<1,>=0.2.1
220
227
  MINUTE=*/2
221
228
  HOUR=*
222
229
  DAY_OF_WEEK=*
230
+ LOCK_EXPIRE_SECONDS=21600
223
231
  # Дельта между прошлым и текущим запуском, сек
224
232
  TIMEDELTA=120
225
233
  # Сущности, по которым должен производиться сбор и выгрузка данных. Перечисляются через запятую без пробелов.
@@ -230,12 +238,14 @@ Requires-Dist: uploader-client<1,>=0.2.1
230
238
  MINUTE=*/2
231
239
  HOUR=*
232
240
  DAY_OF_WEEK=*
241
+ LOCK_EXPIRE_SECONDS=7200
233
242
 
234
243
  # Настройка запуска периодической задачи поиска зависших этапов экспорта
235
244
  [rdm_check_suspend_task]
236
245
  MINUTE=*/10
237
246
  HOUR=*
238
247
  DAY_OF_WEEK=*
248
+ LOCK_EXPIRE_SECONDS=7200
239
249
  # Дельта для определения зависшего подэтапа, мин
240
250
  STAGE_TIMEOUT=120
241
251
 
@@ -294,6 +304,26 @@ Requires-Dist: uploader-client<1,>=0.2.1
294
304
  ### Удалено
295
305
 
296
306
 
307
+ ## 3.2.0 - 2024-05-02
308
+ Периодические задачи RDMCheckUploadStatus, CheckSuspendedExportedStagePeriodicTask,
309
+ TransferLatestEntitiesDataPeriodicTask сделаны уникальными.
310
+
311
+ ### Изменено
312
+ - [EDUSCHL-21891](https://jira.bars.group/browse/EDUSCHL-21891)
313
+ MINOR Периодические задачи RDMCheckUploadStatus, CheckSuspendedExportedStagePeriodicTask,
314
+ TransferLatestEntitiesDataPeriodicTask сделаны уникальными. Во время действия блокировки не будет возможности
315
+ поставить новую подобную задачу.
316
+
317
+
318
+ ## 3.1.0 - 2024-04-23
319
+ Добавлена поддержка setuptools 69.*.
320
+ Поднята минимальная версия пакета pip 23.2.1
321
+
322
+ ### Изменено
323
+ - [EDUSCHL-21761](https://jira.bars.group/browse/EDUSCHL-21761)
324
+ MINOR Добавлена поддержка setuptools 69.*. Поднять минимальную версию pip до 23.2.1.
325
+
326
+
297
327
  ## 3.0.4 - 2024-04-17
298
328
  Возвращено проставление подэтапа выгрузки всем записям модели.
299
329
 
@@ -70,12 +70,14 @@
70
70
  ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
71
71
  ('rdm_transfer_task', 'MINUTE'): '0',
72
72
  ('rdm_transfer_task', 'HOUR'): '*/4',
73
- ('rdm_transfer_task', 'TRANSFER_TASK_DAY_OF_WEEK'): '*',
73
+ ('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
74
+ ('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS'): 21600,
74
75
  ('rdm_transfer_task', 'TIMEDELTA'): 3600,
75
76
  ('rdm_transfer_task', 'ENTITIES'): '',
76
77
  ('rdm_upload_status_task', 'MINUTE'): '*/30',
77
78
  ('rdm_upload_status_task', 'HOUR'): '*',
78
79
  ('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
80
+ ('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS'): 7200,
79
81
  ('uploader_client', 'URL'): 'http://localhost:8090',
80
82
  ('uploader_client', 'DATAMART_NAME'): '',
81
83
  ('uploader_client', 'REQUEST_RETRIES'): 10,
@@ -109,17 +111,20 @@
109
111
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
110
112
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
111
113
  RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
114
+ RDM_TRANSFER_TASK_EXPIRE_SECOND = conf.get('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
112
115
  RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA')
113
116
 
114
117
  # Настройка запуска периодической задачи статуса загрузки данных в витрину:
115
118
  RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
116
119
  RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
117
120
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')
121
+ RDM_UPLOAD_STATUS_TASK_EXPIRE_SECOND = conf.get('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
118
122
 
119
123
  # Настройка запуска периодической задачи поиска зависших этапов экспорта:
120
124
  RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
121
125
  RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
122
126
  RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
127
+ RDM_CHECK_SUSPEND_TASK_EXPIRE_SECOND = conf.get('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
123
128
  RDM_CHECK_SUSPEND_TASK_TIMEDELTA = conf.get_int('rdm_check_suspend_task', 'TIMEDELTA')
124
129
 
125
130
  # Загрузка данных в Региональную витрину данных (РВД)
@@ -156,10 +161,12 @@
156
161
  | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
157
162
  | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
158
163
  | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
164
+ | RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 21600 |
159
165
  | RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
160
166
  | RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
161
167
  | RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
162
168
  | RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
169
+ | RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 3600 |
163
170
  | RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
164
171
 
165
172
 
@@ -184,6 +191,7 @@
184
191
  MINUTE=*/2
185
192
  HOUR=*
186
193
  DAY_OF_WEEK=*
194
+ LOCK_EXPIRE_SECONDS=21600
187
195
  # Дельта между прошлым и текущим запуском, сек
188
196
  TIMEDELTA=120
189
197
  # Сущности, по которым должен производиться сбор и выгрузка данных. Перечисляются через запятую без пробелов.
@@ -194,12 +202,14 @@
194
202
  MINUTE=*/2
195
203
  HOUR=*
196
204
  DAY_OF_WEEK=*
205
+ LOCK_EXPIRE_SECONDS=7200
197
206
 
198
207
  # Настройка запуска периодической задачи поиска зависших этапов экспорта
199
208
  [rdm_check_suspend_task]
200
209
  MINUTE=*/10
201
210
  HOUR=*
202
211
  DAY_OF_WEEK=*
212
+ LOCK_EXPIRE_SECONDS=7200
203
213
  # Дельта для определения зависшего подэтапа, мин
204
214
  STAGE_TIMEOUT=120
205
215
 
@@ -0,0 +1,8 @@
1
+ [build-system]
2
+ requires = [
3
+ "packaging>=21.3,<24",
4
+ "setuptools>=47.3.1,<70",
5
+ "wheel>=0.37.1,<0.42",
6
+ "pip>=23.2.1,<24"
7
+ ]
8
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,4 @@
1
+ packaging>=21.3,<24
2
+ pip>=23.2.1,<24
3
+ setuptools>=47.3.1,<70
4
+ wheel>=0.37.1,<0.42
@@ -17,7 +17,7 @@ from setuptools import (
17
17
 
18
18
  PROJECT = 'edu_rdm_integration'
19
19
 
20
- VERSION = '3.0.4'
20
+ VERSION = '3.2.0'
21
21
 
22
22
  current_dir_path = Path().resolve()
23
23
 
@@ -36,9 +36,11 @@ RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = True
36
36
  RDM_TRANSFER_TASK_MINUTE = '0'
37
37
  RDM_TRANSFER_TASK_HOUR = '*/4'
38
38
  RDM_TRANSFER_TASK_DAY_OF_WEEK = '*'
39
+ RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 6
39
40
  RDM_TRANSFER_TASK_TIMEDELTA = 3600
40
41
 
41
42
  # Настройка запуска периодической задачи статуса загрузки данных в витрину:
42
43
  RDM_UPLOAD_STATUS_TASK_MINUTE = '*/30'
43
44
  RDM_UPLOAD_STATUS_TASK_HOUR = '*'
44
45
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = '*'
46
+ RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 2
@@ -9,6 +9,9 @@ from typing import (
9
9
  )
10
10
 
11
11
  import celery
12
+ from celery.exceptions import (
13
+ Ignore,
14
+ )
12
15
  from celery.schedules import (
13
16
  crontab,
14
17
  )
@@ -26,6 +29,9 @@ from django.utils import (
26
29
  timezone,
27
30
  )
28
31
 
32
+ from educommon.async_task.locker import (
33
+ TaskLocker,
34
+ )
29
35
  from educommon.async_task.models import (
30
36
  AsyncTaskType,
31
37
  RunningTask,
@@ -93,12 +99,46 @@ if TYPE_CHECKING:
93
99
  )
94
100
 
95
101
 
96
- class RDMCheckUploadStatus(PeriodicAsyncTask):
102
+ class PeriodicTaskLocker(TaskLocker):
103
+ """Класс отвечающий за блокировку задач.
104
+
105
+ Переопределён для возможности игнорирования повторного запуска для уже
106
+ запущенных периодических задач.
107
+ """
108
+
109
+ def raise_if_locked(self, message: Optional[str] = None):
110
+ """Если блокировано, то вызывает исключение."""
111
+ if self.is_locked():
112
+ self.debug(f'Add failed. Task {self.task_name} currently locked ({self.params})')
113
+
114
+ raise Ignore()
115
+
116
+
117
+ class UniquePeriodicAsyncTask(PeriodicAsyncTask):
118
+ """Уникальные периодические задачи."""
119
+
120
+ abstract = True
121
+ lock_expire_seconds = 60 * 60
122
+
123
+ locker_class = PeriodicTaskLocker
124
+
125
+ @property
126
+ def locker_config(self) -> dict:
127
+ """Настройки для механизма блокировок. """
128
+ return {
129
+ 'lock_params': {'task_name': self.name},
130
+ 'lock_message': f'Task [{self.__name__}] is running',
131
+ 'lock_expire': self.lock_expire_seconds,
132
+ }
133
+
134
+
135
+ class RDMCheckUploadStatus(UniquePeriodicAsyncTask):
97
136
  """Периодическая задача для сбора статусов по загрузке файла в витрину."""
98
137
 
99
138
  queue = TASK_QUEUE_NAME
100
139
  routing_key = TASK_QUEUE_NAME
101
140
  description = 'Сбор статусов загрузки данных в витрину "Региональная витрина данных"'
141
+ lock_expire_seconds = settings.RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS
102
142
  task_type = AsyncTaskType.UNKNOWN
103
143
  run_every = crontab(
104
144
  minute=settings.RDM_UPLOAD_STATUS_TASK_MINUTE,
@@ -119,12 +159,13 @@ class RDMCheckUploadStatus(PeriodicAsyncTask):
119
159
  UploadStatusHelper(in_progress_uploads).run()
120
160
 
121
161
 
122
- class CheckSuspendedExportedStagePeriodicTask(PeriodicAsyncTask):
162
+ class CheckSuspendedExportedStagePeriodicTask(UniquePeriodicAsyncTask):
123
163
  """Периодическая задача поиска зависших этапов/подэтапов экспорта."""
124
164
 
125
165
  queue = TASK_QUEUE_NAME
126
166
  routing_key = TASK_QUEUE_NAME
127
167
  description = 'Поиск зависших этапов/подэтапов экспорта в "Региональная витрина данных"'
168
+ lock_expire_seconds = settings.RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS
128
169
  task_type = AsyncTaskType.SYSTEM
129
170
  run_every = crontab(
130
171
  minute=settings.RDM_CHECK_SUSPEND_TASK_MINUTE,
@@ -155,12 +196,13 @@ class CheckSuspendedExportedStagePeriodicTask(PeriodicAsyncTask):
155
196
  )
156
197
 
157
198
 
158
- class TransferLatestEntitiesDataPeriodicTask(PeriodicAsyncTask):
199
+ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
159
200
  """Периодическая задача сбора и выгрузки данных."""
160
201
 
161
202
  queue = TASK_QUEUE_NAME
162
203
  routing_key = TASK_QUEUE_NAME
163
204
  description = 'Периодическая задача сбора и экспорта данных РВД'
205
+ lock_expire_seconds = settings.RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS
164
206
  task_type = AsyncTaskType.UNKNOWN
165
207
  run_every = crontab(
166
208
  minute=settings.RDM_TRANSFER_TASK_MINUTE,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 3.0.4
3
+ Version: 3.2.0
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -22,8 +22,8 @@ Classifier: Framework :: Django :: 3.1
22
22
  Description-Content-Type: text/markdown
23
23
  License-File: LICENSE
24
24
  Requires-Dist: packaging<24,>=21.3
25
- Requires-Dist: pip<24,>=20.1.1
26
- Requires-Dist: setuptools<69,>=47.3.1
25
+ Requires-Dist: pip<24,>=23.2.1
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
29
  Requires-Dist: Django<3.2,>=2.2
@@ -106,12 +106,14 @@ Requires-Dist: uploader-client<1,>=0.2.1
106
106
  ('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
107
107
  ('rdm_transfer_task', 'MINUTE'): '0',
108
108
  ('rdm_transfer_task', 'HOUR'): '*/4',
109
- ('rdm_transfer_task', 'TRANSFER_TASK_DAY_OF_WEEK'): '*',
109
+ ('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
110
+ ('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS'): 21600,
110
111
  ('rdm_transfer_task', 'TIMEDELTA'): 3600,
111
112
  ('rdm_transfer_task', 'ENTITIES'): '',
112
113
  ('rdm_upload_status_task', 'MINUTE'): '*/30',
113
114
  ('rdm_upload_status_task', 'HOUR'): '*',
114
115
  ('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
116
+ ('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS'): 7200,
115
117
  ('uploader_client', 'URL'): 'http://localhost:8090',
116
118
  ('uploader_client', 'DATAMART_NAME'): '',
117
119
  ('uploader_client', 'REQUEST_RETRIES'): 10,
@@ -145,17 +147,20 @@ Requires-Dist: uploader-client<1,>=0.2.1
145
147
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
146
148
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
147
149
  RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
150
+ RDM_TRANSFER_TASK_EXPIRE_SECOND = conf.get('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
148
151
  RDM_TRANSFER_TASK_TIMEDELTA = conf.get_int('rdm_transfer_task', 'TIMEDELTA')
149
152
 
150
153
  # Настройка запуска периодической задачи статуса загрузки данных в витрину:
151
154
  RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
152
155
  RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
153
156
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')
157
+ RDM_UPLOAD_STATUS_TASK_EXPIRE_SECOND = conf.get('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
154
158
 
155
159
  # Настройка запуска периодической задачи поиска зависших этапов экспорта:
156
160
  RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
157
161
  RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
158
162
  RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
163
+ RDM_CHECK_SUSPEND_TASK_EXPIRE_SECOND = conf.get('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
159
164
  RDM_CHECK_SUSPEND_TASK_TIMEDELTA = conf.get_int('rdm_check_suspend_task', 'TIMEDELTA')
160
165
 
161
166
  # Загрузка данных в Региональную витрину данных (РВД)
@@ -192,10 +197,12 @@ Requires-Dist: uploader-client<1,>=0.2.1
192
197
  | RDM_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи выгрузки данных. Минута | '0' |
193
198
  | RDM_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи выгрузки данных. Час | '*/4' |
194
199
  | RDM_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи выгрузки данных. День недели | '*' |
200
+ | RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 21600 |
195
201
  | RDM_TRANSFER_TASK_TIMEDELTA | Дельта между предыдущим и следующим запуском периодической задачи в секундах | 3600 |
196
202
  | RDM_UPLOAD_STATUS_TASK_MINUTE | Настройка запуска периодической задачи статуса загрузки данных в витрину. Минута | '*/30' |
197
203
  | RDM_UPLOAD_STATUS_TASK_HOUR | Настройка запуска периодической задачи статуса загрузки данных в витрину. Час | '*' |
198
204
  | RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи статуса загрузки данных в витрину. День недели | '*' |
205
+ | RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 3600 |
199
206
  | RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
200
207
 
201
208
 
@@ -220,6 +227,7 @@ Requires-Dist: uploader-client<1,>=0.2.1
220
227
  MINUTE=*/2
221
228
  HOUR=*
222
229
  DAY_OF_WEEK=*
230
+ LOCK_EXPIRE_SECONDS=21600
223
231
  # Дельта между прошлым и текущим запуском, сек
224
232
  TIMEDELTA=120
225
233
  # Сущности, по которым должен производиться сбор и выгрузка данных. Перечисляются через запятую без пробелов.
@@ -230,12 +238,14 @@ Requires-Dist: uploader-client<1,>=0.2.1
230
238
  MINUTE=*/2
231
239
  HOUR=*
232
240
  DAY_OF_WEEK=*
241
+ LOCK_EXPIRE_SECONDS=7200
233
242
 
234
243
  # Настройка запуска периодической задачи поиска зависших этапов экспорта
235
244
  [rdm_check_suspend_task]
236
245
  MINUTE=*/10
237
246
  HOUR=*
238
247
  DAY_OF_WEEK=*
248
+ LOCK_EXPIRE_SECONDS=7200
239
249
  # Дельта для определения зависшего подэтапа, мин
240
250
  STAGE_TIMEOUT=120
241
251
 
@@ -294,6 +304,26 @@ Requires-Dist: uploader-client<1,>=0.2.1
294
304
  ### Удалено
295
305
 
296
306
 
307
+ ## 3.2.0 - 2024-05-02
308
+ Периодические задачи RDMCheckUploadStatus, CheckSuspendedExportedStagePeriodicTask,
309
+ TransferLatestEntitiesDataPeriodicTask сделаны уникальными.
310
+
311
+ ### Изменено
312
+ - [EDUSCHL-21891](https://jira.bars.group/browse/EDUSCHL-21891)
313
+ MINOR Периодические задачи RDMCheckUploadStatus, CheckSuspendedExportedStagePeriodicTask,
314
+ TransferLatestEntitiesDataPeriodicTask сделаны уникальными. Во время действия блокировки не будет возможности
315
+ поставить новую подобную задачу.
316
+
317
+
318
+ ## 3.1.0 - 2024-04-23
319
+ Добавлена поддержка setuptools 69.*.
320
+ Поднята минимальная версия пакета pip 23.2.1
321
+
322
+ ### Изменено
323
+ - [EDUSCHL-21761](https://jira.bars.group/browse/EDUSCHL-21761)
324
+ MINOR Добавлена поддержка setuptools 69.*. Поднять минимальную версию pip до 23.2.1.
325
+
326
+
297
327
  ## 3.0.4 - 2024-04-17
298
328
  Возвращено проставление подэтапа выгрузки всем записям модели.
299
329
 
@@ -1,6 +1,6 @@
1
1
  packaging<24,>=21.3
2
- pip<24,>=20.1.1
3
- setuptools<69,>=47.3.1
2
+ pip<24,>=23.2.1
3
+ setuptools<70,>=47.3.1
4
4
  wheel<0.42,>=0.37.1
5
5
  transliterate<2
6
6
  Django<3.2,>=2.2
@@ -1,8 +0,0 @@
1
- [build-system]
2
- requires = [
3
- "packaging>=21.3,<24",
4
- "setuptools>=47.3.1,<69",
5
- "wheel>=0.37.1,<0.42",
6
- "pip>=20.1.1"
7
- ]
8
- build-backend = "setuptools.build_meta"
@@ -1,4 +0,0 @@
1
- packaging>=21.3,<24
2
- pip>=20.1.1,<24
3
- setuptools>=47.3.1,<69
4
- wheel>=0.37.1,<0.42