edu-rdm-integration 3.10.3__tar.gz → 3.11.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.

Potentially problematic release.


This version of edu-rdm-integration might be problematic. Click here for more details.

Files changed (275) hide show
  1. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/CHANGELOG.md +36 -0
  2. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/PKG-INFO +6 -5
  3. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/README.md +3 -3
  4. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/pyproject.toml +2 -1
  5. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/apps.py +3 -3
  6. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/caches.py +4 -4
  7. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/errors.py +2 -2
  8. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/functions.py +9 -9
  9. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/helpers.py +7 -7
  10. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/receivers.py +3 -3
  11. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/runners.py +13 -13
  12. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/strategies.py +7 -7
  13. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/validators.py +6 -6
  14. edu_rdm_integration-3.11.0/src/edu_rdm_integration/collect_and_export_data/migrations/0003_auto_20250704_0725.py +37 -0
  15. edu_rdm_integration-3.11.0/src/edu_rdm_integration/collect_and_export_data/models.py +1 -0
  16. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/helpers.py +6 -4
  17. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/registry/apps.py +1 -1
  18. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/utils.py +3 -3
  19. edu_rdm_integration-3.11.0/src/edu_rdm_integration/migrations/0018_auto_20250704_0725.py +154 -0
  20. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/actions.py +2 -2
  21. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/mixins.py +2 -2
  22. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/models.py +2 -2
  23. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/tasks.py +8 -8
  24. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/entities.py +6 -6
  25. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/migrations/0001_initial.py +1 -1
  26. edu_rdm_integration-3.11.0/src/edu_rdm_integration/rdm_entities/migrations/0002_rename_regionaldatamartentityenum_rdmentityenum.py +20 -0
  27. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/mixins.py +2 -2
  28. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/models.py +1 -1
  29. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/migrations/0001_initial.py +1 -1
  30. edu_rdm_integration-3.11.0/src/edu_rdm_integration/rdm_models/migrations/0002_rename_regionaldatamartmodelenum_rdmmodelenum.py +19 -0
  31. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/mixins.py +2 -2
  32. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/models.py +7 -7
  33. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/functions.py-tpl +2 -2
  34. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/functions.py +9 -9
  35. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/managers.py +6 -6
  36. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/mixins.py +14 -16
  37. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/generators.py +3 -3
  38. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/helpers.py +18 -18
  39. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/management/base.py +2 -4
  40. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +1 -1
  41. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +1 -0
  42. edu_rdm_integration-3.11.0/src/edu_rdm_integration/stages/collect_data/migrations/0003_auto_20250704_0810.py +35 -0
  43. edu_rdm_integration-3.11.0/src/edu_rdm_integration/stages/collect_data/migrations/0004_auto_20250704_0825.py +40 -0
  44. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/mixins.py +4 -4
  45. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/models.py +35 -64
  46. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/operations.py +7 -7
  47. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/registry/actions.py +10 -10
  48. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/registry/apps.py +1 -1
  49. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/registry/ui.py +2 -4
  50. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/tests.py +5 -5
  51. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/functions.py-tpl +2 -2
  52. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/functions.py +13 -13
  53. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/managers.py +10 -10
  54. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/generators.py +3 -5
  55. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/helpers.py +19 -19
  56. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/management/base.py +2 -4
  57. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/migrations/0001_initial.py +1 -0
  58. edu_rdm_integration-3.11.0/src/edu_rdm_integration/stages/export_data/migrations/0002_auto_20250704_0810.py +47 -0
  59. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/mixins.py +5 -5
  60. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/models.py +39 -52
  61. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/operations.py +8 -10
  62. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/registry/actions.py +18 -18
  63. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/registry/apps.py +1 -1
  64. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/registry/ui.py +2 -4
  65. edu_rdm_integration-3.11.0/src/edu_rdm_integration/stages/upload_data/consts.py +10 -0
  66. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/export_managers.py +23 -23
  67. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/helpers.py +10 -10
  68. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/commands/async_fix_attachment_size.py +2 -2
  69. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/commands/check_upload_status.py +2 -2
  70. edu_rdm_integration-3.11.0/src/edu_rdm_integration/stages/upload_data/migrations/0002_auto_20250704_0810.py +28 -0
  71. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/models.py +9 -9
  72. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/tasks.py +2 -2
  73. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration.egg-info/PKG-INFO +6 -5
  74. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration.egg-info/SOURCES.txt +8 -0
  75. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration.egg-info/requires.txt +1 -1
  76. edu_rdm_integration-3.10.3/src/edu_rdm_integration/collect_and_export_data/models.py +0 -1
  77. edu_rdm_integration-3.10.3/src/edu_rdm_integration/stages/upload_data/consts.py +0 -10
  78. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/CONDUCT.md +0 -0
  79. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/LICENSE +0 -0
  80. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/MANIFEST.in +0 -0
  81. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/setup.cfg +0 -0
  82. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/__init__.py +0 -0
  83. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/__init__.py +0 -0
  84. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/consts.py +0 -0
  85. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/enums.py +0 -0
  86. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/managers.py +0 -0
  87. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/presenters.py +0 -0
  88. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/results.py +0 -0
  89. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/strings.py +0 -0
  90. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/adapters/tests.py +0 -0
  91. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/apps.py +0 -0
  92. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
  93. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
  94. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
  95. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +0 -0
  96. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
  97. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/__init__.py +0 -0
  98. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/consts.py +0 -0
  99. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/enums.py +0 -0
  100. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/mapping.py +0 -0
  101. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/operations.py +0 -0
  102. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/redis_cache.py +0 -0
  103. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/registry/__init__.py +0 -0
  104. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/registry/actions.py +0 -0
  105. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/registry/templates/ui-js/start-task.js +0 -0
  106. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/registry/ui.py +0 -0
  107. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/signals.py +0 -0
  108. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/storages.py +0 -0
  109. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/core/typing.py +0 -0
  110. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  111. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  112. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
  113. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
  114. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
  115. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
  116. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
  117. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
  118. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +0 -0
  119. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -0
  120. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +0 -0
  121. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -0
  122. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +0 -0
  123. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0014_uploaddatacommand.py +0 -0
  124. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +0 -0
  125. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +0 -0
  126. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +0 -0
  127. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/migrations/__init__.py +0 -0
  128. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/__init__.py +0 -0
  129. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/__init__.py +0 -0
  130. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/app_meta.py +0 -0
  131. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/apps.py +0 -0
  132. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/enums.py +0 -0
  133. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +0 -0
  134. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/migrations/__init__.py +0 -0
  135. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/templates/ui-js/transferred-entity-list.js +0 -0
  136. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/pipelines/transfer/ui.py +0 -0
  137. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/__init__.py +0 -0
  138. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/apps.py +0 -0
  139. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/migrations/__init__.py +0 -0
  140. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_entities/utils.py +0 -0
  141. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/__init__.py +0 -0
  142. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/apps.py +0 -0
  143. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/migrations/__init__.py +0 -0
  144. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/rdm_models/utils.py +0 -0
  145. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/__init__.py +0 -0
  146. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/__init__.py +0 -0
  147. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/apps.py +0 -0
  148. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/consts.py +0 -0
  149. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/__init__.py +0 -0
  150. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
  151. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/apps.py-tpl +0 -0
  152. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/caches.py-tpl +0 -0
  153. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/consts.py-tpl +0 -0
  154. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/enums.py-tpl +0 -0
  155. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/errors.py-tpl +0 -0
  156. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
  157. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/managers.py-tpl +0 -0
  158. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
  159. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/results.py-tpl +0 -0
  160. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/runners.py-tpl +0 -0
  161. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/strings.py-tpl +0 -0
  162. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/tests.py-tpl +0 -0
  163. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/validators.py-tpl +0 -0
  164. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/__init__.py +0 -0
  165. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/__init__.py +0 -0
  166. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/caches.py +0 -0
  167. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/consts.py +0 -0
  168. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/helpers.py +0 -0
  169. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/base/runners.py +0 -0
  170. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/__init__.py +0 -0
  171. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
  172. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/caches.py +0 -0
  173. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/consts.py +0 -0
  174. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/enums.py +0 -0
  175. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +0 -0
  176. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/functions.py +0 -0
  177. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +0 -0
  178. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +0 -0
  179. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/presenters.py +0 -0
  180. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +0 -0
  181. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +0 -0
  182. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/strings.py +0 -0
  183. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/tests.py +0 -0
  184. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +0 -0
  185. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/calculated/strategies.py +0 -0
  186. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
  187. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
  188. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/caches.py +0 -0
  189. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/consts.py +0 -0
  190. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/enums.py +0 -0
  191. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +0 -0
  192. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/functions.py +0 -0
  193. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +0 -0
  194. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +0 -0
  195. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/presenters.py +0 -0
  196. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +0 -0
  197. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +0 -0
  198. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/strings.py +0 -0
  199. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/tests.py +0 -0
  200. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +0 -0
  201. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/functions/non_calculated/strategies.py +0 -0
  202. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
  203. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
  204. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/management/commands/collect_latest_models_data.py +0 -0
  205. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/management/commands/collect_models_data.py +0 -0
  206. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
  207. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
  208. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/__init__.py +0 -0
  209. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/apps.py +0 -0
  210. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/consts.py +0 -0
  211. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
  212. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/__init__.py-tpl +0 -0
  213. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/apps.py-tpl +0 -0
  214. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/caches.py-tpl +0 -0
  215. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/consts.py-tpl +0 -0
  216. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/enums.py-tpl +0 -0
  217. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/errors.py-tpl +0 -0
  218. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/helpers.py-tpl +0 -0
  219. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/managers.py-tpl +0 -0
  220. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/presenters.py-tpl +0 -0
  221. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/results.py-tpl +0 -0
  222. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/runners.py-tpl +0 -0
  223. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/strings.py-tpl +0 -0
  224. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/tests.py-tpl +0 -0
  225. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/validators.py-tpl +0 -0
  226. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
  227. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
  228. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/caches.py +0 -0
  229. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/consts.py +0 -0
  230. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/enums.py +0 -0
  231. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/errors.py +0 -0
  232. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/helpers.py +0 -0
  233. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/presenters.py +0 -0
  234. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/requests.py +0 -0
  235. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/results.py +0 -0
  236. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/runners.py +0 -0
  237. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/strings.py +0 -0
  238. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/tests.py +0 -0
  239. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/functions/base/validators.py +0 -0
  240. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
  241. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
  242. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/management/commands/export_entities_data.py +0 -0
  243. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/management/commands/export_latest_entities_data.py +0 -0
  244. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
  245. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
  246. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/registry/templates/ui-js/stage_for_export.js +0 -0
  247. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/export_data/strategies.py +0 -0
  248. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/service/__init__.py +0 -0
  249. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/service/apps.py +0 -0
  250. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/service/tasks.py +0 -0
  251. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/__init__.py +0 -0
  252. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/apps.py +0 -0
  253. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/dataclasses.py +0 -0
  254. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/enums.py +0 -0
  255. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
  256. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/base.py +0 -0
  257. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
  258. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/commands/datamart_status.py +0 -0
  259. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/management/commands/datamart_upload.py +0 -0
  260. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +0 -0
  261. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
  262. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/operations.py +0 -0
  263. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/queues.py +0 -0
  264. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
  265. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/actions.py +0 -0
  266. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/apps.py +0 -0
  267. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/enums.py +0 -0
  268. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/managers.py +0 -0
  269. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +0 -0
  270. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
  271. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/models.py +0 -0
  272. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
  273. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration/stages/upload_data/uploader_log/ui.py +0 -0
  274. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  275. {edu_rdm_integration-3.10.3 → edu_rdm_integration-3.11.0}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -29,6 +29,42 @@
29
29
  ### Удалено
30
30
 
31
31
 
32
+ ## [3.11.0] - 2025-07-03
33
+
34
+ Добавлена поддержка django 4.0. Произведено переименование моделей, исправлены проблемы с миграциями.
35
+
36
+ Для корректной работы, необходимо удалить из истории миграций следующие записи перед раскаткой миграций
37
+ ```
38
+ delete from django_migrations
39
+ where app = 'edu_rdm_integration_transfer_pipeline'
40
+ or app = 'edu_rdm_integration_entities'
41
+ or app = 'edu_rdm_integration_models'
42
+ or app = 'edu_rdm_integration_collect_data_stage'
43
+ or app = 'edu_rdm_integration_export_data_stage'
44
+ or app = 'edu_rdm_integration_upload_data_stage';
45
+ ```
46
+ Миграции указанных приложений изменяют только состояние представления БД, без изменений в самой БД.
47
+
48
+ ### Добавлено
49
+
50
+ - [EDUKNDG-14483](https://jira.bars.group/browse/EDUKNDG-14483)
51
+ MINOR Поднять версию Django до 4.0.10
52
+
53
+ - [EDUDEVOPS-88](https://jira.bars.group/browse/EDUDEVOPS-88)
54
+ PATCH Переименованы модели.
55
+
56
+
57
+ ## [3.10.4] - 2025-07-01
58
+
59
+ Исправление получения значений настроек RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS,
60
+ RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS, RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS в README.md.
61
+
62
+ ### Исправлено
63
+
64
+ - [EDUDEVOPS-88](https://jira.bars.group/browse/EDUDEVOPS-88)
65
+ PATCH Исправлено получение значения настроек в README.md.
66
+
67
+
32
68
  ## [3.10.3] - 2025-07-01
33
69
 
34
70
  Заменен битый импорт, внесены правки в README.md.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: edu-rdm-integration
3
- Version: 3.10.3
3
+ Version: 3.11.0
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Author-email: BARS Group <education_dev@bars.group>
6
6
  Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/edu-rdm-integration/browse
@@ -15,13 +15,14 @@ Classifier: Framework :: Django :: 2.2
15
15
  Classifier: Framework :: Django :: 3.0
16
16
  Classifier: Framework :: Django :: 3.1
17
17
  Classifier: Framework :: Django :: 3.2
18
+ Classifier: Framework :: Django :: 4.0
18
19
  Classifier: Intended Audience :: Developers
19
20
  Classifier: Environment :: Web Environment
20
21
  Requires-Python: >=3.9
21
22
  Description-Content-Type: text/markdown
22
23
  License-File: LICENSE
23
24
  Requires-Dist: transliterate<2
24
- Requires-Dist: Django<3.3,>=3.1
25
+ Requires-Dist: Django<5.0,>=3.1
25
26
  Requires-Dist: celery<5.3,>=4.4.7
26
27
  Requires-Dist: asyncpg==0.23.0
27
28
  Requires-Dist: educommon<4,>=3.11.0
@@ -226,7 +227,7 @@ INSTALLED_APPS = (
226
227
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
227
228
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
228
229
  RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
229
- RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
230
+ RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
230
231
 
231
232
  # Настройка запуска периодической задачи выгрузки данных - быстрая очередь:
232
233
  RDM_FAST_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task_fast', 'MINUTE')
@@ -244,7 +245,7 @@ INSTALLED_APPS = (
244
245
  RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
245
246
  RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
246
247
  RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
247
- RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS = conf.get('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
248
+ RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
248
249
  RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT = conf.get_int('rdm_check_suspend_task', 'STAGE_TIMEOUT')
249
250
 
250
251
  # Настройка запуска периодической задачи отправки файлов с данными РВД
@@ -259,7 +260,7 @@ INSTALLED_APPS = (
259
260
  RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
260
261
  RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
261
262
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')
262
- RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = conf.get('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
263
+ RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
263
264
 
264
265
  # Настройка очереди Redis для формирования файлов РВД.
265
266
  RDM_REDIS_HOST = conf.get('rdm_redis', 'REDIS_HOST')
@@ -182,7 +182,7 @@ INSTALLED_APPS = (
182
182
  RDM_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task', 'MINUTE')
183
183
  RDM_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task', 'HOUR')
184
184
  RDM_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task', 'DAY_OF_WEEK')
185
- RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
185
+ RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS')
186
186
 
187
187
  # Настройка запуска периодической задачи выгрузки данных - быстрая очередь:
188
188
  RDM_FAST_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task_fast', 'MINUTE')
@@ -200,7 +200,7 @@ INSTALLED_APPS = (
200
200
  RDM_CHECK_SUSPEND_TASK_MINUTE = conf.get('rdm_check_suspend_task', 'MINUTE')
201
201
  RDM_CHECK_SUSPEND_TASK_HOUR = conf.get('rdm_check_suspend_task', 'HOUR')
202
202
  RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK = conf.get('rdm_check_suspend_task', 'DAY_OF_WEEK')
203
- RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS = conf.get('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
203
+ RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_check_suspend_task', 'LOCK_EXPIRE_SECONDS')
204
204
  RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT = conf.get_int('rdm_check_suspend_task', 'STAGE_TIMEOUT')
205
205
 
206
206
  # Настройка запуска периодической задачи отправки файлов с данными РВД
@@ -215,7 +215,7 @@ INSTALLED_APPS = (
215
215
  RDM_UPLOAD_STATUS_TASK_MINUTE = conf.get('rdm_upload_status_task', 'MINUTE')
216
216
  RDM_UPLOAD_STATUS_TASK_HOUR = conf.get('rdm_upload_status_task', 'HOUR')
217
217
  RDM_UPLOAD_STATUS_TASK_DAY_OF_WEEK = conf.get('rdm_upload_status_task', 'DAY_OF_WEEK')
218
- RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = conf.get('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
218
+ RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS')
219
219
 
220
220
  # Настройка очереди Redis для формирования файлов РВД.
221
221
  RDM_REDIS_HOST = conf.get('rdm_redis', 'REDIS_HOST')
@@ -19,7 +19,7 @@ readme = 'README.md'
19
19
  requires-python = '>=3.9'
20
20
  dependencies = [
21
21
  'transliterate<2',
22
- 'Django>=3.1,<3.3',
22
+ 'Django>=3.1,<5.0',
23
23
  'celery>=4.4.7,<5.3',
24
24
  'asyncpg==0.23.0',
25
25
  'educommon>=3.11.0,<4',
@@ -39,6 +39,7 @@ classifiers=[
39
39
  'Framework :: Django :: 3.0',
40
40
  'Framework :: Django :: 3.1',
41
41
  'Framework :: Django :: 3.2',
42
+ 'Framework :: Django :: 4.0',
42
43
  'Intended Audience :: Developers',
43
44
  'Environment :: Web Environment',
44
45
  ]
@@ -5,16 +5,16 @@ from django.apps import (
5
5
 
6
6
  class WebEduFunctionToolsConfig(AppConfig):
7
7
  """Конфигурация приложения для интеграции с function_tools.
8
-
8
+
9
9
  Определяет основные параметры Django-приложения, которое
10
10
  обеспечивает работу с библиотекой function_tools в контексте
11
11
  продуктов Образования.
12
-
12
+
13
13
  Attributes:
14
14
  name (str): Полное имя приложения в системе Django
15
15
  verbose_name (str): Человекочитаемое название приложения
16
16
  label (str): Уникальная метка приложения для Django
17
-
17
+
18
18
  Note:
19
19
  Приложение автоматически регистрируется в Django при старте
20
20
  и обеспечивает всю необходимую инфраструктуру для работы
@@ -12,13 +12,13 @@ from function_tools.caches import (
12
12
 
13
13
  class WebEduEntityCache(EntityCache, metaclass=ABCMeta):
14
14
  """Базовый класс кэша для сущностей продуктов Образования.
15
-
15
+
16
16
  Предоставляет механизм кэширования отдельных сущностей системы.
17
17
  Используется для:
18
18
  - Хранения часто запрашиваемых объектов
19
19
  - Снижения нагрузки на базу данных
20
20
  - Ускорения доступа к данным
21
-
21
+
22
22
  Note:
23
23
  Конкретные реализации должны определить специфику кэширования
24
24
  для каждого типа сущности.
@@ -43,13 +43,13 @@ class WebEduFunctionCacheStorage(CacheStorage, metaclass=ABCMeta):
43
43
 
44
44
  class WebEduFunctionPatchedGlobalCacheStorage(PatchedGlobalCacheStorage, metaclass=ABCMeta):
45
45
  """Базовый класс глобального хранилища кэша с поддержкой патчинга.
46
-
46
+
47
47
  Расширяет стандартное хранилище кэша, добавляя возможность
48
48
  модификации данных через механизм патчинга. Это позволяет:
49
49
  - Обновлять кэшированные данные без полной перезагрузки
50
50
  - Синхронизировать кэш между разными компонентами
51
51
  - Эффективно управлять общими данными
52
-
52
+
53
53
  Note:
54
54
  Патчинг должен использоваться с осторожностью, чтобы избежать
55
55
  несогласованности данных между разными частями системы.
@@ -9,13 +9,13 @@ from function_tools.errors import (
9
9
 
10
10
  class WebEduError(BaseError, metaclass=ABCMeta):
11
11
  """Базовый класс для ошибок в системе интеграции с продуктами Образования.
12
-
12
+
13
13
  Предоставляет основную функциональность для обработки ошибок:
14
14
  - Форматирование сообщений об ошибках
15
15
  - Сохранение контекста возникновения ошибки
16
16
  - Классификация типов ошибок
17
17
  - Механизм обработки вложенных ошибок
18
-
18
+
19
19
  Note:
20
20
  При создании конкретных типов ошибок рекомендуется:
21
21
  - Определять специфичные коды ошибок
@@ -29,11 +29,11 @@ from edu_rdm_integration.adapters.validators import (
29
29
 
30
30
  class WebEduFunction(BaseFunction, metaclass=ABCMeta):
31
31
  """Базовый класс для создания функций продуктов Образования.
32
-
32
+
33
33
  Предоставляет основной интерфейс для создания функций обработки данных.
34
34
  Наследуется от BaseFunction и добавляет специфичную для продуктов
35
35
  Образования функциональность.
36
-
36
+
37
37
  Note:
38
38
  Этот класс является абстрактным и должен быть расширен конкретными
39
39
  реализациями функций.
@@ -42,14 +42,14 @@ class WebEduFunction(BaseFunction, metaclass=ABCMeta):
42
42
 
43
43
  class WebEduLazySavingPredefinedQueueFunction(LazySavingPredefinedQueueFunction, metaclass=ABCMeta):
44
44
  """Базовый класс для создания функций с отложенным сохранением.
45
-
45
+
46
46
  Реализует паттерн отложенного сохранения (lazy saving) с предустановленной
47
47
  очередью объектов. Это позволяет:
48
48
  - Накапливать объекты для сохранения в течение выполнения функции
49
49
  - Сохранять все объекты атомарно после успешного выполнения всех операций
50
50
  - Откатывать все изменения в случае ошибки
51
51
  - Оптимизировать производительность за счет пакетного сохранения
52
-
52
+
53
53
  Attributes:
54
54
  helper (WebEduFunctionHelper): Помощник функции для вспомогательных операций
55
55
  validator (WebEduFunctionValidator): Валидатор для проверки данных
@@ -58,7 +58,7 @@ class WebEduLazySavingPredefinedQueueFunction(LazySavingPredefinedQueueFunction,
58
58
 
59
59
  def _prepare_helper_class(self) -> type[WebEduFunctionHelper]:
60
60
  """Возвращает класс помощника функции.
61
-
61
+
62
62
  Returns:
63
63
  type[WebEduFunctionHelper]: Класс помощника для работы с данными
64
64
  """
@@ -66,7 +66,7 @@ class WebEduLazySavingPredefinedQueueFunction(LazySavingPredefinedQueueFunction,
66
66
 
67
67
  def _prepare_validator_class(self) -> type[WebEduFunctionValidator]:
68
68
  """Возвращает класс валидатора функции.
69
-
69
+
70
70
  Returns:
71
71
  type[WebEduFunctionValidator]: Класс для валидации входных данных
72
72
  """
@@ -74,7 +74,7 @@ class WebEduLazySavingPredefinedQueueFunction(LazySavingPredefinedQueueFunction,
74
74
 
75
75
  def _prepare_result_class(self) -> type[WebEduFunctionResult]:
76
76
  """Возвращает класс результата функции.
77
-
77
+
78
78
  Returns:
79
79
  type[WebEduFunctionResult]: Класс для хранения результатов выполнения
80
80
  """
@@ -86,13 +86,13 @@ class WebEduLazySavingPredefinedQueueGlobalHelperFunction(
86
86
  metaclass=ABCMeta,
87
87
  ):
88
88
  """Базовый класс для создания функций с глобальным помощником.
89
-
89
+
90
90
  Расширяет функциональность WebEduLazySavingPredefinedQueueFunction,
91
91
  добавляя поддержку глобального помощника. Это позволяет:
92
92
  - Использовать общие вспомогательные методы между разными функциями
93
93
  - Кэшировать часто используемые данные на уровне всего приложения
94
94
  - Оптимизировать использование ресурсов при массовой обработке данных
95
-
95
+
96
96
  Note:
97
97
  Глобальный помощник должен быть потокобезопасным, так как может
98
98
  использоваться одновременно несколькими функциями.
@@ -15,20 +15,20 @@ from edu_rdm_integration.adapters.caches import (
15
15
 
16
16
  class WebEduRunnerHelper(BaseRunnerHelper, metaclass=ABCMeta):
17
17
  """Базовый класс помощников для исполнителей функций.
18
-
18
+
19
19
  Предоставляет вспомогательную функциональность для исполнителей,
20
20
  включая:
21
21
  - Кэширование данных исполнителя
22
22
  - Общие утилиты для работы с функциями
23
23
  - Доступ к разделяемым ресурсам
24
-
24
+
25
25
  Attributes:
26
26
  cache (WebEduRunnerCacheStorage): Хранилище кэша для исполнителя
27
27
  """
28
28
 
29
29
  def _prepare_cache_class(self) -> type[WebEduRunnerCacheStorage]:
30
30
  """Возвращает класс хранилища кэша для исполнителя.
31
-
31
+
32
32
  Returns:
33
33
  type[WebEduRunnerCacheStorage]: Класс для кэширования данных
34
34
  исполнителя
@@ -38,24 +38,24 @@ class WebEduRunnerHelper(BaseRunnerHelper, metaclass=ABCMeta):
38
38
 
39
39
  class WebEduFunctionHelper(BaseFunctionHelper, metaclass=ABCMeta):
40
40
  """Базовый класс помощников для функций обработки данных.
41
-
41
+
42
42
  Предоставляет вспомогательную функциональность для функций,
43
43
  включая:
44
44
  - Кэширование данных функции
45
45
  - Общие утилиты для обработки данных
46
46
  - Доступ к разделяемым ресурсам
47
-
47
+
48
48
  Note:
49
49
  Каждая конкретная функция может расширить этот класс,
50
50
  добавив специфичные для неё вспомогательные методы.
51
-
51
+
52
52
  Attributes:
53
53
  cache (WebEduFunctionCacheStorage): Хранилище кэша для функции
54
54
  """
55
55
 
56
56
  def _prepare_cache_class(self) -> type[WebEduFunctionCacheStorage]:
57
57
  """Возвращает класс хранилища кэша для функции.
58
-
58
+
59
59
  Returns:
60
60
  type[WebEduFunctionCacheStorage]: Класс для кэширования данных
61
61
  функции
@@ -5,17 +5,17 @@ from sys import (
5
5
 
6
6
  def m3_edu_function_tools_after_migrate_receiver(sender, **kwargs):
7
7
  """Обработчик сигнала, выполняющийся после применения миграций.
8
-
8
+
9
9
  Автоматически регистрирует сущности в системе после успешного
10
10
  выполнения миграций базы данных. Это обеспечивает:
11
11
  - Синхронизацию моделей с системой регистрации
12
12
  - Корректную инициализацию новых сущностей
13
13
  - Обновление существующих регистраций
14
-
14
+
15
15
  Args:
16
16
  sender: Отправитель сигнала (обычно приложение Django)
17
17
  **kwargs: Дополнительные параметры сигнала
18
-
18
+
19
19
  Note:
20
20
  В случае возникновения ошибок при регистрации, они будут
21
21
  перехвачены и залогированы, но не будут прерывать процесс
@@ -36,14 +36,14 @@ from edu_rdm_integration.core.consts import (
36
36
 
37
37
  class WebEduRunner(BaseRunner, metaclass=ABCMeta):
38
38
  """Базовый класс исполнителей функций продуктов Образования.
39
-
39
+
40
40
  Предоставляет основную функциональность для запуска и управления
41
41
  выполнением функций обработки данных. Включает:
42
42
  - Подготовку и валидацию входных параметров
43
43
  - Логирование процесса выполнения
44
44
  - Обработку результатов и ошибок
45
45
  - Управление очередью выполнения
46
-
46
+
47
47
  Attributes:
48
48
  helper (WebEduRunnerHelper): Помощник для вспомогательных операций
49
49
  validator (WebEduRunnerValidator): Валидатор входных данных
@@ -52,7 +52,7 @@ class WebEduRunner(BaseRunner, metaclass=ABCMeta):
52
52
 
53
53
  def _prepare_helper_class(self) -> type[WebEduRunnerHelper]:
54
54
  """Возвращает класс помощника исполнителя.
55
-
55
+
56
56
  Returns:
57
57
  type[WebEduRunnerHelper]: Класс помощника для вспомогательных операций
58
58
  при выполнении функций
@@ -61,7 +61,7 @@ class WebEduRunner(BaseRunner, metaclass=ABCMeta):
61
61
 
62
62
  def _prepare_validator_class(self) -> type[WebEduRunnerValidator]:
63
63
  """Возвращает класс валидатора исполнителя.
64
-
64
+
65
65
  Returns:
66
66
  type[WebEduRunnerValidator]: Класс для валидации входных параметров
67
67
  и проверки состояния исполнителя
@@ -70,7 +70,7 @@ class WebEduRunner(BaseRunner, metaclass=ABCMeta):
70
70
 
71
71
  def _prepare_result_class(self) -> type[WebEduRunnerResult]:
72
72
  """Возвращает класс результата исполнителя.
73
-
73
+
74
74
  Returns:
75
75
  type[WebEduRunnerResult]: Класс для хранения результатов выполнения
76
76
  функций и возможных ошибок
@@ -79,10 +79,10 @@ class WebEduRunner(BaseRunner, metaclass=ABCMeta):
79
79
 
80
80
  def _prepare_runnable_before_enqueue(self, runnable, *args, **kwargs):
81
81
  """Подготовка запускаемого объекта перед добавлением в очередь.
82
-
82
+
83
83
  Выполняет базовую подготовку объекта и добавляет логирование
84
84
  для отслеживания процесса выполнения.
85
-
85
+
86
86
  Args:
87
87
  runnable: Объект для выполнения
88
88
  *args: Дополнительные позиционные аргументы
@@ -95,17 +95,17 @@ class WebEduRunner(BaseRunner, metaclass=ABCMeta):
95
95
 
96
96
  class WebEduGlobalHelperRunner(GlobalHelperRunner, metaclass=ABCMeta):
97
97
  """Базовый класс исполнителей с глобальным помощником.
98
-
98
+
99
99
  Расширяет функциональность WebEduRunner, добавляя поддержку
100
100
  глобального помощника. Это позволяет:
101
101
  - Использовать общие вспомогательные методы между разными исполнителями
102
102
  - Кэшировать часто используемые данные
103
103
  - Оптимизировать использование ресурсов
104
-
104
+
105
105
  Note:
106
106
  Глобальный помощник должен быть потокобезопасным, так как может
107
107
  использоваться одновременно несколькими исполнителями.
108
-
108
+
109
109
  Attributes:
110
110
  helper (WebEduRunnerHelper): Глобальный помощник для всех исполнителей
111
111
  validator (WebEduRunnerValidator): Валидатор входных данных
@@ -114,7 +114,7 @@ class WebEduGlobalHelperRunner(GlobalHelperRunner, metaclass=ABCMeta):
114
114
 
115
115
  def _prepare_helper_class(self) -> type[WebEduRunnerHelper]:
116
116
  """Возвращает класс глобального помощника.
117
-
117
+
118
118
  Returns:
119
119
  type[WebEduRunnerHelper]: Класс помощника, который будет использоваться
120
120
  всеми исполнителями
@@ -123,7 +123,7 @@ class WebEduGlobalHelperRunner(GlobalHelperRunner, metaclass=ABCMeta):
123
123
 
124
124
  def _prepare_validator_class(self) -> type[WebEduRunnerValidator]:
125
125
  """Возвращает класс валидатора исполнителя.
126
-
126
+
127
127
  Returns:
128
128
  type[WebEduRunnerValidator]: Класс для валидации входных параметров
129
129
  и проверки состояния исполнителя
@@ -132,7 +132,7 @@ class WebEduGlobalHelperRunner(GlobalHelperRunner, metaclass=ABCMeta):
132
132
 
133
133
  def _prepare_result_class(self) -> type[WebEduRunnerResult]:
134
134
  """Возвращает класс результата исполнителя.
135
-
135
+
136
136
  Returns:
137
137
  type[WebEduRunnerResult]: Класс для хранения результатов выполнения
138
138
  функций и возможных ошибок
@@ -52,7 +52,7 @@ from edu_rdm_integration.adapters.validators import (
52
52
 
53
53
  class WebEduFunctionImplementationStrategy(FunctionImplementationStrategy, metaclass=ABCMeta):
54
54
  """Базовая стратегия реализации функций для продуктов Образования.
55
-
55
+
56
56
  Определяет основную конфигурацию классов для всех компонентов системы:
57
57
  - Менеджеры для управления выполнением функций
58
58
  - Исполнители (runners) для запуска функций
@@ -60,7 +60,7 @@ class WebEduFunctionImplementationStrategy(FunctionImplementationStrategy, metac
60
60
  - Валидаторы для проверки данных
61
61
  - Кэши для хранения промежуточных результатов
62
62
  - Обработчики ошибок и результатов
63
-
63
+
64
64
  Все методы в этом классе отвечают за установку конкретных реализаций
65
65
  различных компонентов системы.
66
66
  """
@@ -122,19 +122,19 @@ class WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrateg
122
122
  WebEduFunctionImplementationStrategy, metaclass=ABCMeta
123
123
  ):
124
124
  """Стратегия создания функции с отложенным сохранением и предустановленной очередью.
125
-
125
+
126
126
  Расширяет базовую стратегию, добавляя специфическую логику для:
127
127
  - Отложенного сохранения данных (lazy saving)
128
128
  - Работы с предустановленной очередью объектов
129
129
  - Синхронного выполнения операций
130
-
130
+
131
131
  Сохранение данных производится только после успешного выполнения всех операций
132
132
  функции, что обеспечивает целостность данных и атомарность операций.
133
133
  """
134
134
 
135
135
  def _prepare_key(self) -> str:
136
136
  """Возвращает уникальный идентификатор стратегии.
137
-
137
+
138
138
  Returns:
139
139
  str: Ключ для идентификации стратегии в системе
140
140
  """
@@ -142,7 +142,7 @@ class WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrateg
142
142
 
143
143
  def _prepare_title(self) -> str:
144
144
  """Возвращает название стратегии.
145
-
145
+
146
146
  Returns:
147
147
  str: Человекочитаемое описание стратегии
148
148
  """
@@ -154,7 +154,7 @@ class WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrateg
154
154
  @classmethod
155
155
  def _prepare_function_template_name(cls) -> Optional[str]:
156
156
  """Формирование названия шаблона создания функции.
157
-
157
+
158
158
  Returns:
159
159
  Optional[str]: Имя шаблона для создания функции или None,
160
160
  если шаблон не требуется
@@ -19,17 +19,17 @@ from function_tools.validators import (
19
19
 
20
20
  class WebEduRunnerValidator(BaseValidator, metaclass=ABCMeta):
21
21
  """Базовый класс для валидации исполнителей функций.
22
-
22
+
23
23
  Предоставляет механизмы проверки:
24
24
  - Корректности конфигурации исполнителя
25
25
  - Доступности необходимых ресурсов
26
26
  - Состояния исполнителя перед запуском
27
27
  - Валидности результатов выполнения
28
-
28
+
29
29
  Note:
30
30
  Конкретные реализации должны определить специфичные
31
31
  правила валидации для каждого типа исполнителя.
32
-
32
+
33
33
  Attributes:
34
34
  errors (list): Список обнаруженных ошибок
35
35
  warnings (list): Список предупреждений
@@ -38,19 +38,19 @@ class WebEduRunnerValidator(BaseValidator, metaclass=ABCMeta):
38
38
 
39
39
  class WebEduFunctionValidator(BaseValidator, metaclass=ABCMeta):
40
40
  """Базовый класс для валидации функций обработки данных.
41
-
41
+
42
42
  Предоставляет механизмы проверки:
43
43
  - Входных параметров функции
44
44
  - Формата данных
45
45
  - Бизнес-правил
46
46
  - Результатов обработки
47
-
47
+
48
48
  Note:
49
49
  При реализации валидаторов для конкретных функций следует:
50
50
  - Определить специфичные правила проверки
51
51
  - Добавить проверку бизнес-ограничений
52
52
  - Реализовать валидацию форматов данных
53
-
53
+
54
54
  Attributes:
55
55
  errors (list): Список обнаруженных ошибок
56
56
  warnings (list): Список предупреждений
@@ -0,0 +1,37 @@
1
+ # Generated by Django 3.2.24 on 2025-07-04 07:25
2
+
3
+ from django.db import (
4
+ migrations,
5
+ )
6
+
7
+
8
+ class Migration(migrations.Migration):
9
+ dependencies = [
10
+ ('rdm_collect_and_export_data', '0002_auto_20250204_1413'),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.SeparateDatabaseAndState(
15
+ state_operations=[
16
+ migrations.RemoveField(
17
+ model_name='edurdmexportdatacommandprogress',
18
+ name='entity',
19
+ ),
20
+ migrations.RemoveField(
21
+ model_name='edurdmexportdatacommandprogress',
22
+ name='stage',
23
+ ),
24
+ migrations.RemoveField(
25
+ model_name='edurdmexportdatacommandprogress',
26
+ name='task',
27
+ ),
28
+ migrations.DeleteModel(
29
+ name='EduRdmCollectDataCommandProgress',
30
+ ),
31
+ migrations.DeleteModel(
32
+ name='EduRdmExportDataCommandProgress',
33
+ ),
34
+ ],
35
+ database_operations=[],
36
+ ),
37
+ ]
@@ -0,0 +1 @@
1
+ # Оставлено для совместимости
@@ -40,10 +40,10 @@ from edu_rdm_integration.pipelines.transfer.enums import (
40
40
  EntityLevelQueueTypeEnum,
41
41
  )
42
42
  from edu_rdm_integration.stages.collect_data.models import (
43
- EduRdmCollectDataCommandProgress,
43
+ RDMCollectingDataCommandProgress,
44
44
  )
45
45
  from edu_rdm_integration.stages.export_data.models import (
46
- AbstractExportDataCommandProgress,
46
+ RDMExportingDataCommandProgress,
47
47
  )
48
48
 
49
49
 
@@ -72,7 +72,7 @@ class BaseTaskProgressUpdater(ABC):
72
72
  Необходимо задать в дочернем классе.
73
73
  """
74
74
 
75
- def set_async_task(self, commands_to_update: Dict[EduRdmCollectDataCommandProgress, str]) -> None:
75
+ def set_async_task(self, commands_to_update: Dict[RDMCollectingDataCommandProgress, str]) -> None:
76
76
  """Устанавливает ссылку на асинхронную задачу."""
77
77
  for command, task_uuid in commands_to_update.items():
78
78
  command.task_id = task_uuid
@@ -282,7 +282,9 @@ class Graph:
282
282
  return path
283
283
 
284
284
 
285
- def save_command_log_link(command: AbstractExportDataCommandProgress, log_dir: str) -> None:
285
+ def save_command_log_link(
286
+ command: Union[RDMCollectingDataCommandProgress, RDMExportingDataCommandProgress], log_dir: str
287
+ ) -> None:
286
288
  """Сохраняет ссылку на лог команды."""
287
289
  log_file = os.path.join(settings.MEDIA_ROOT, log_dir, f'{command.id}.log')
288
290
  if os.path.exists(log_file):
@@ -8,4 +8,4 @@ class RDMCoreRegistryAppConfig(AppConfig):
8
8
 
9
9
  name = 'edu_rdm_integration.core.registry'
10
10
  label = 'edu_rdm_integration_core_registry'
11
- verbose_name = 'Базовая часть реестров РВД'
11
+ verbose_name = 'Базовая часть реестров РВД'