edu-rdm-integration 3.9.2__py3-none-any.whl → 3.10.0__py3-none-any.whl

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 (279) hide show
  1. edu_rdm_integration/__init__.py +0 -1
  2. edu_rdm_integration/adapters/apps.py +15 -2
  3. edu_rdm_integration/adapters/caches.py +25 -12
  4. edu_rdm_integration/adapters/errors.py +13 -2
  5. edu_rdm_integration/adapters/functions.py +53 -14
  6. edu_rdm_integration/adapters/helpers.py +34 -8
  7. edu_rdm_integration/adapters/managers.py +41 -5
  8. edu_rdm_integration/adapters/presenters.py +26 -2
  9. edu_rdm_integration/adapters/receivers.py +16 -2
  10. edu_rdm_integration/adapters/results.py +50 -4
  11. edu_rdm_integration/adapters/runners.py +79 -20
  12. edu_rdm_integration/adapters/strategies.py +56 -54
  13. edu_rdm_integration/adapters/validators.py +43 -4
  14. edu_rdm_integration/apps.py +3 -23
  15. edu_rdm_integration/collect_and_export_data/__init__.py +1 -1
  16. edu_rdm_integration/collect_and_export_data/apps.py +1 -0
  17. edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +107 -17
  18. edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +4 -2
  19. edu_rdm_integration/{consts.py → core/consts.py} +0 -11
  20. edu_rdm_integration/{enums.py → core/enums.py} +7 -54
  21. edu_rdm_integration/core/helpers.py +331 -0
  22. edu_rdm_integration/core/operations.py +71 -0
  23. edu_rdm_integration/core/redis_cache.py +20 -0
  24. edu_rdm_integration/{collect_and_export_data → core/registry}/actions.py +6 -12
  25. edu_rdm_integration/core/registry/apps.py +11 -0
  26. edu_rdm_integration/{collect_and_export_data → core/registry}/ui.py +1 -1
  27. edu_rdm_integration/{storages.py → core/storages.py} +8 -17
  28. edu_rdm_integration/{utils.py → core/utils.py} +29 -91
  29. edu_rdm_integration/migrations/0001_initial.py +294 -44
  30. edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +1 -3
  31. edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -1
  32. edu_rdm_integration/migrations/0004_uploaderclientlog.py +1 -2
  33. edu_rdm_integration/migrations/0005_auto_20231204_1224.py +16 -4
  34. edu_rdm_integration/migrations/0006_request_status_data.py +60 -58
  35. edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -1
  36. edu_rdm_integration/migrations/0009_auto_20240522_1619.py +1 -5
  37. edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -1
  38. edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +16 -3
  39. edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -1
  40. edu_rdm_integration/migrations/0013_set_attachment_size.py +8 -12
  41. edu_rdm_integration/migrations/0014_uploaddatacommand.py +33 -6
  42. edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +1 -5
  43. edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +2 -2
  44. edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +3 -2
  45. edu_rdm_integration/migrations/__init__.py +1 -0
  46. edu_rdm_integration/{registry → pipelines/transfer}/actions.py +13 -26
  47. edu_rdm_integration/pipelines/transfer/app_meta.py +18 -0
  48. edu_rdm_integration/pipelines/transfer/apps.py +19 -0
  49. edu_rdm_integration/pipelines/transfer/enums.py +34 -0
  50. edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +57 -0
  51. edu_rdm_integration/{base.py → pipelines/transfer/mixins.py} +29 -53
  52. edu_rdm_integration/pipelines/transfer/models.py +48 -0
  53. edu_rdm_integration/{tasks.py → pipelines/transfer/tasks.py} +51 -150
  54. edu_rdm_integration/{registry → pipelines/transfer}/ui.py +4 -10
  55. edu_rdm_integration/rdm_entities/apps.py +11 -0
  56. edu_rdm_integration/{entities.py → rdm_entities/entities.py} +67 -57
  57. edu_rdm_integration/rdm_entities/migrations/0001_initial.py +44 -0
  58. edu_rdm_integration/{enum_register → rdm_entities}/mixins.py +8 -59
  59. edu_rdm_integration/rdm_entities/models.py +63 -0
  60. edu_rdm_integration/rdm_entities/utils.py +33 -0
  61. edu_rdm_integration/rdm_models/apps.py +16 -0
  62. edu_rdm_integration/rdm_models/migrations/0001_initial.py +40 -0
  63. edu_rdm_integration/rdm_models/mixins.py +67 -0
  64. edu_rdm_integration/rdm_models/models.py +73 -0
  65. edu_rdm_integration/rdm_models/utils.py +23 -0
  66. edu_rdm_integration/stages/collect_data/apps.py +11 -0
  67. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/functions.py-tpl +2 -2
  68. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/managers.py-tpl +1 -1
  69. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/runners.py-tpl +1 -1
  70. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/tests.py-tpl +2 -1
  71. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/caches.py +2 -2
  72. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/functions.py +15 -18
  73. edu_rdm_integration/stages/collect_data/functions/base/helpers.py +20 -0
  74. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/managers.py +20 -27
  75. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/mixins.py +38 -55
  76. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/runners.py +2 -5
  77. edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
  78. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/caches.py +3 -7
  79. edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +7 -0
  80. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/functions.py +8 -16
  81. edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +24 -0
  82. edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +19 -0
  83. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/presenters.py +1 -3
  84. edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +12 -0
  85. edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +28 -0
  86. edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +20 -0
  87. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/strategies.py +32 -70
  88. edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
  89. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
  90. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/caches.py +13 -22
  91. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +7 -0
  92. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/functions.py +8 -16
  93. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +24 -0
  94. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +19 -0
  95. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/presenters.py +1 -3
  96. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +12 -0
  97. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +28 -0
  98. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +20 -0
  99. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/strategies.py +32 -70
  100. edu_rdm_integration/{collect_data → stages/collect_data}/generators.py +9 -14
  101. edu_rdm_integration/stages/collect_data/helpers.py +154 -0
  102. edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
  103. edu_rdm_integration/stages/collect_data/management/base.py +100 -0
  104. edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
  105. edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_latest_models_data.py +5 -7
  106. edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_models_data.py +5 -7
  107. edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +187 -0
  108. edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +105 -0
  109. edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
  110. edu_rdm_integration/stages/collect_data/mixins.py +56 -0
  111. edu_rdm_integration/stages/collect_data/models.py +318 -0
  112. edu_rdm_integration/{collect_data/collect.py → stages/collect_data/operations.py} +30 -43
  113. edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
  114. edu_rdm_integration/{collect_data → stages/collect_data/registry}/actions.py +17 -20
  115. edu_rdm_integration/stages/collect_data/registry/apps.py +11 -0
  116. edu_rdm_integration/{collect_data → stages/collect_data/registry}/ui.py +8 -15
  117. edu_rdm_integration/{collect_data → stages/collect_data}/tests.py +2 -2
  118. edu_rdm_integration/stages/export_data/__init__.py +0 -0
  119. edu_rdm_integration/stages/export_data/apps.py +11 -0
  120. edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
  121. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/functions.py-tpl +2 -2
  122. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/managers.py-tpl +2 -2
  123. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/runners.py-tpl +2 -2
  124. edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
  125. edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
  126. edu_rdm_integration/{export_data → stages/export_data/functions}/base/caches.py +3 -8
  127. edu_rdm_integration/stages/export_data/functions/base/errors.py +7 -0
  128. edu_rdm_integration/{export_data → stages/export_data/functions}/base/functions.py +28 -59
  129. edu_rdm_integration/{export_data → stages/export_data/functions}/base/helpers.py +7 -17
  130. edu_rdm_integration/{export_data → stages/export_data/functions}/base/managers.py +19 -28
  131. edu_rdm_integration/stages/export_data/functions/base/presenters.py +11 -0
  132. edu_rdm_integration/{export_data → stages/export_data/functions}/base/requests.py +13 -40
  133. edu_rdm_integration/stages/export_data/functions/base/results.py +12 -0
  134. edu_rdm_integration/{export_data → stages/export_data/functions}/base/runners.py +9 -21
  135. edu_rdm_integration/stages/export_data/functions/base/validators.py +20 -0
  136. edu_rdm_integration/{export_data → stages/export_data}/generators.py +7 -6
  137. edu_rdm_integration/stages/export_data/helpers.py +203 -0
  138. edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
  139. edu_rdm_integration/stages/export_data/management/base.py +101 -0
  140. edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
  141. edu_rdm_integration/{management → stages/export_data/management}/commands/export_entities_data.py +5 -7
  142. edu_rdm_integration/{management → stages/export_data/management}/commands/export_latest_entities_data.py +5 -7
  143. edu_rdm_integration/stages/export_data/migrations/0001_initial.py +324 -0
  144. edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
  145. edu_rdm_integration/stages/export_data/mixins.py +50 -0
  146. edu_rdm_integration/stages/export_data/models.py +362 -0
  147. edu_rdm_integration/{export_data/export.py → stages/export_data/operations.py} +13 -152
  148. edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
  149. edu_rdm_integration/{export_data → stages/export_data/registry}/actions.py +18 -18
  150. edu_rdm_integration/stages/export_data/registry/apps.py +11 -0
  151. edu_rdm_integration/{export_data → stages/export_data/registry}/ui.py +5 -7
  152. edu_rdm_integration/{export_data → stages/export_data}/strategies.py +30 -68
  153. edu_rdm_integration/stages/service/__init__.py +0 -0
  154. edu_rdm_integration/stages/service/apps.py +19 -0
  155. edu_rdm_integration/stages/service/tasks.py +63 -0
  156. edu_rdm_integration/stages/upload_data/__init__.py +0 -0
  157. edu_rdm_integration/stages/upload_data/apps.py +19 -0
  158. edu_rdm_integration/stages/upload_data/consts.py +10 -0
  159. edu_rdm_integration/{export_data → stages/upload_data}/dataclasses.py +1 -0
  160. edu_rdm_integration/stages/upload_data/enums.py +17 -0
  161. edu_rdm_integration/{export_data/export_manager.py → stages/upload_data/export_managers.py} +73 -68
  162. edu_rdm_integration/stages/upload_data/helpers.py +164 -0
  163. edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
  164. edu_rdm_integration/stages/upload_data/management/base.py +134 -0
  165. edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
  166. edu_rdm_integration/{management → stages/upload_data/management}/commands/async_fix_attachment_size.py +32 -54
  167. edu_rdm_integration/{management → stages/upload_data/management}/commands/check_upload_status.py +7 -6
  168. edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_status.py +3 -3
  169. edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_upload.py +4 -4
  170. edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +161 -0
  171. edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
  172. edu_rdm_integration/stages/upload_data/models.py +175 -0
  173. edu_rdm_integration/stages/upload_data/operations.py +156 -0
  174. edu_rdm_integration/{export_data/queue.py → stages/upload_data/queues.py} +10 -8
  175. edu_rdm_integration/stages/upload_data/tasks.py +103 -0
  176. edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
  177. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/actions.py +14 -16
  178. edu_rdm_integration/stages/upload_data/uploader_log/apps.py +11 -0
  179. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/managers.py +15 -30
  180. edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +31 -0
  181. edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
  182. edu_rdm_integration/stages/upload_data/uploader_log/models.py +86 -0
  183. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/ui.py +8 -6
  184. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/METADATA +238 -238
  185. edu_rdm_integration-3.10.0.dist-info/RECORD +255 -0
  186. edu_rdm_integration/app_meta.py +0 -16
  187. edu_rdm_integration/app_settings.py +0 -77
  188. edu_rdm_integration/collect_and_export_data/models.py +0 -67
  189. edu_rdm_integration/collect_and_export_data/utils.py +0 -224
  190. edu_rdm_integration/collect_data/base/helpers.py +0 -26
  191. edu_rdm_integration/collect_data/calculated/base/errors.py +0 -9
  192. edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -32
  193. edu_rdm_integration/collect_data/calculated/base/managers.py +0 -23
  194. edu_rdm_integration/collect_data/calculated/base/results.py +0 -16
  195. edu_rdm_integration/collect_data/calculated/base/runners.py +0 -36
  196. edu_rdm_integration/collect_data/calculated/base/validators.py +0 -28
  197. edu_rdm_integration/collect_data/helpers.py +0 -92
  198. edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -9
  199. edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -32
  200. edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -23
  201. edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -16
  202. edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -36
  203. edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -28
  204. edu_rdm_integration/enum_register/register.py +0 -79
  205. edu_rdm_integration/export_data/base/errors.py +0 -9
  206. edu_rdm_integration/export_data/base/presenters.py +0 -13
  207. edu_rdm_integration/export_data/base/results.py +0 -16
  208. edu_rdm_integration/export_data/base/validators.py +0 -28
  209. edu_rdm_integration/export_data/helpers.py +0 -92
  210. edu_rdm_integration/helpers.py +0 -412
  211. edu_rdm_integration/management/general.py +0 -327
  212. edu_rdm_integration/models.py +0 -982
  213. edu_rdm_integration/redis_cache.py +0 -51
  214. edu_rdm_integration/uploader_log/apps.py +0 -10
  215. edu_rdm_integration-3.9.2.dist-info/RECORD +0 -198
  216. /edu_rdm_integration/{collect_and_export_data/migrations → core}/__init__.py +0 -0
  217. /edu_rdm_integration/{mapping.py → core/mapping.py} +0 -0
  218. /edu_rdm_integration/{collect_data → core/registry}/__init__.py +0 -0
  219. /edu_rdm_integration/{templates → core/registry/templates}/ui-js/start-task.js +0 -0
  220. /edu_rdm_integration/{signals.py → core/signals.py} +0 -0
  221. /edu_rdm_integration/{typing.py → core/typing.py} +0 -0
  222. /edu_rdm_integration/{collect_data/base → pipelines}/__init__.py +0 -0
  223. /edu_rdm_integration/{collect_data/calculated → pipelines/transfer}/__init__.py +0 -0
  224. /edu_rdm_integration/{collect_data/calculated/base → pipelines/transfer/migrations}/__init__.py +0 -0
  225. /edu_rdm_integration/{templates → pipelines/transfer/templates}/ui-js/transferred-entity-list.js +0 -0
  226. /edu_rdm_integration/{collect_data/non_calculated → rdm_entities}/__init__.py +0 -0
  227. /edu_rdm_integration/{collect_data/non_calculated/base → rdm_entities/migrations}/__init__.py +0 -0
  228. /edu_rdm_integration/{enum_register → rdm_models}/__init__.py +0 -0
  229. /edu_rdm_integration/{export_data → rdm_models/migrations}/__init__.py +0 -0
  230. /edu_rdm_integration/{export_data/base → stages}/__init__.py +0 -0
  231. /edu_rdm_integration/{function_templates → stages/collect_data}/__init__.py +0 -0
  232. /edu_rdm_integration/{collect_data/const.py → stages/collect_data/consts.py} +0 -0
  233. /edu_rdm_integration/{management → stages/collect_data/function_templates}/__init__.py +0 -0
  234. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/__init__.py-tpl +0 -0
  235. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/apps.py-tpl +0 -0
  236. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/caches.py-tpl +0 -0
  237. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/consts.py-tpl +0 -0
  238. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/enums.py-tpl +0 -0
  239. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/errors.py-tpl +0 -0
  240. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/helpers.py-tpl +0 -0
  241. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/presenters.py-tpl +0 -0
  242. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/results.py-tpl +0 -0
  243. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/strings.py-tpl +0 -0
  244. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/validators.py-tpl +0 -0
  245. /edu_rdm_integration/{management/commands → stages/collect_data/functions}/__init__.py +0 -0
  246. /edu_rdm_integration/{registry → stages/collect_data/functions/base}/__init__.py +0 -0
  247. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/consts.py +0 -0
  248. /edu_rdm_integration/{uploader_log → stages/collect_data/functions/calculated}/__init__.py +0 -0
  249. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/consts.py +0 -0
  250. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/enums.py +0 -0
  251. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/strings.py +0 -0
  252. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/tests.py +0 -0
  253. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/consts.py +0 -0
  254. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/enums.py +0 -0
  255. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/strings.py +0 -0
  256. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/tests.py +0 -0
  257. /edu_rdm_integration/{export_data → stages/export_data}/consts.py +0 -0
  258. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/__init__.py-tpl +0 -0
  259. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/apps.py-tpl +0 -0
  260. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/caches.py-tpl +0 -0
  261. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/consts.py-tpl +0 -0
  262. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/enums.py-tpl +0 -0
  263. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/errors.py-tpl +0 -0
  264. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/helpers.py-tpl +0 -0
  265. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/presenters.py-tpl +0 -0
  266. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/results.py-tpl +0 -0
  267. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/strings.py-tpl +0 -0
  268. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/tests.py-tpl +0 -0
  269. /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/validators.py-tpl +0 -0
  270. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/consts.py +0 -0
  271. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/enums.py +0 -0
  272. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/strings.py +0 -0
  273. /edu_rdm_integration/{export_data → stages/export_data/functions}/base/tests.py +0 -0
  274. /edu_rdm_integration/{templates → stages/export_data/registry/templates}/ui-js/stage_for_export.js +0 -0
  275. /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/enums.py +0 -0
  276. /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/templates/ui-js/object-grid-buttons.js +0 -0
  277. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/WHEEL +0 -0
  278. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/licenses/LICENSE +0 -0
  279. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.0.dist-info}/top_level.txt +0 -0
@@ -5,37 +5,37 @@ from typing import (
5
5
  from edu_rdm_integration.adapters.strategies import (
6
6
  WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrategy,
7
7
  )
8
- from edu_rdm_integration.consts import (
8
+ from edu_rdm_integration.core.consts import (
9
9
  REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
10
10
  )
11
- from edu_rdm_integration.export_data.base.caches import (
11
+ from edu_rdm_integration.stages.export_data.functions.base.caches import (
12
12
  BaseExportDataFunctionCacheStorage,
13
13
  BaseExportDataRunnerCacheStorage,
14
14
  )
15
- from edu_rdm_integration.export_data.base.errors import (
15
+ from edu_rdm_integration.stages.export_data.functions.base.errors import (
16
16
  BaseExportDataError,
17
17
  )
18
- from edu_rdm_integration.export_data.base.functions import (
18
+ from edu_rdm_integration.stages.export_data.functions.base.functions import (
19
19
  BaseExportDataFunction,
20
20
  )
21
- from edu_rdm_integration.export_data.base.helpers import (
21
+ from edu_rdm_integration.stages.export_data.functions.base.helpers import (
22
22
  BaseExportDataFunctionHelper,
23
23
  BaseExportDataRunnerHelper,
24
24
  )
25
- from edu_rdm_integration.export_data.base.managers import (
25
+ from edu_rdm_integration.stages.export_data.functions.base.managers import (
26
26
  BaseExportDataRunnerManager,
27
27
  )
28
- from edu_rdm_integration.export_data.base.presenters import (
28
+ from edu_rdm_integration.stages.export_data.functions.base.presenters import (
29
29
  BaseExportDataResultPresenter,
30
30
  )
31
- from edu_rdm_integration.export_data.base.results import (
31
+ from edu_rdm_integration.stages.export_data.functions.base.results import (
32
32
  BaseExportDataFunctionResult,
33
33
  BaseExportDataRunnerResult,
34
34
  )
35
- from edu_rdm_integration.export_data.base.runners import (
35
+ from edu_rdm_integration.stages.export_data.functions.base.runners import (
36
36
  BaseExportDataRunner,
37
37
  )
38
- from edu_rdm_integration.export_data.base.validators import (
38
+ from edu_rdm_integration.stages.export_data.functions.base.validators import (
39
39
  BaseExportDataFunctionValidator,
40
40
  BaseExportDataRunnerValidator,
41
41
  )
@@ -44,8 +44,7 @@ from edu_rdm_integration.export_data.base.validators import (
44
44
  class ExportDataFunctionImplementationStrategy(
45
45
  WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrategy,
46
46
  ):
47
- """
48
- Стратегия создания функций выгрузки данных.
47
+ """Стратегия создания функций выгрузки данных.
49
48
 
50
49
  Стратегия создания функции с отложенным сохранением и предустановленной очередью объектов на сохранение функций
51
50
  выгрузки данных для выгрузки в "Региональная витрина данных".
@@ -53,8 +52,7 @@ class ExportDataFunctionImplementationStrategy(
53
52
 
54
53
  @classmethod
55
54
  def _prepare_uuid(cls):
56
- """
57
- Получение UUID класса. Используется при регистрации сущности в базе данных.
55
+ """Получение UUID класса. Используется при регистрации сущности в базе данных.
58
56
 
59
57
  Если ничего не возвращает, то регистрация в БД не будет произведена.
60
58
  """
@@ -62,30 +60,22 @@ class ExportDataFunctionImplementationStrategy(
62
60
 
63
61
  @classmethod
64
62
  def _prepare_verbose_name(cls) -> str:
65
- """
66
- Полное наименование для дальнейшей регистрации и отображения пользователю.
67
- """
63
+ """Полное наименование для дальнейшей регистрации и отображения пользователю."""
68
64
  return 'Стратегия создания функций выгрузки данных'
69
65
 
70
66
  @classmethod
71
67
  def _prepare_tags(cls) -> list[str]:
72
- """
73
- Список тегов, по которым сущность можно будет осуществлять поиск.
74
- """
68
+ """Список тегов, по которым сущность можно будет осуществлять поиск."""
75
69
  return [REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA]
76
70
 
77
71
  @classmethod
78
72
  def _prepare_key(cls) -> str:
79
- """
80
- Возвращает уникальный идентификатор стратегии создания функции.
81
- """
73
+ """Возвращает уникальный идентификатор стратегии создания функции."""
82
74
  return 'REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA'
83
75
 
84
76
  @classmethod
85
77
  def _prepare_title(cls) -> str:
86
- """
87
- Возвращает название стратегии создания функции.
88
- """
78
+ """Возвращает название стратегии создания функции."""
89
79
  return (
90
80
  'Стратегия создания функции с отложенным сохранением и предустановленной очередью объектов на сохранение '
91
81
  'функций выгрузки данных в "Региональная витрина данных". Сохранение производится после удачной работы '
@@ -94,85 +84,57 @@ class ExportDataFunctionImplementationStrategy(
94
84
 
95
85
  @classmethod
96
86
  def _prepare_function_template_name(cls) -> Optional[str]:
97
- """
98
- Формирование названия шаблона создания функции.
99
- """
87
+ """Формирование названия шаблона создания функции."""
100
88
  return 'function_export_data_template'
101
89
 
102
90
  def _prepare_manager_class(self):
103
- """
104
- Устанавливает класс менеджера.
105
- """
91
+ """Устанавливает класс менеджера."""
106
92
  self._manager_class = BaseExportDataRunnerManager
107
93
 
108
94
  def _prepare_runner_class(self):
109
- """
110
- Устанавливает класс ранера.
111
- """
95
+ """Устанавливает класс ранера."""
112
96
  self._runner_class = BaseExportDataRunner
113
97
 
114
98
  def _prepare_function_class(self):
115
- """
116
- Устанавливает класс Функции.
117
- """
99
+ """Устанавливает класс Функции."""
118
100
  self._function_class = BaseExportDataFunction
119
101
 
120
102
  def _prepare_runner_helper_class(self):
121
- """
122
- Устанавливает класс помощника ранера.
123
- """
103
+ """Устанавливает класс помощника ранера."""
124
104
  self._runner_helper_class = BaseExportDataRunnerHelper
125
105
 
126
106
  def _prepare_function_helper_class(self):
127
- """
128
- Устанавливает класс помощника функции.
129
- """
107
+ """Устанавливает класс помощника функции."""
130
108
  self._function_helper_class = BaseExportDataFunctionHelper
131
109
 
132
110
  def _prepare_runner_validator_class(self):
133
- """
134
- Устанавливает класс валидатора ранера.
135
- """
111
+ """Устанавливает класс валидатора ранера."""
136
112
  self._runner_validator_class = BaseExportDataRunnerValidator
137
113
 
138
114
  def _prepare_function_validator_class(self):
139
- """
140
- Устанавливает класс валидатора Функции.
141
- """
115
+ """Устанавливает класс валидатора Функции."""
142
116
  self._function_validator_class = BaseExportDataFunctionValidator
143
117
 
144
118
  def _prepare_runner_cache_storage_class(self):
145
- """
146
- Устанавливает класс хранилища кешей ранера.
147
- """
119
+ """Устанавливает класс хранилища кешей ранера."""
148
120
  self._runner_cache_storage_class = BaseExportDataRunnerCacheStorage
149
121
 
150
122
  def _prepare_function_cache_storage_class(self):
151
- """
152
- Устанавливает класс хранилища кешей Функции.
153
- """
123
+ """Устанавливает класс хранилища кешей Функции."""
154
124
  self._function_cache_storage_class = BaseExportDataFunctionCacheStorage
155
125
 
156
126
  def _prepare_error_class(self):
157
- """
158
- Устанавливает класс ошибки.
159
- """
127
+ """Устанавливает класс ошибки."""
160
128
  self._error_class = BaseExportDataError
161
129
 
162
130
  def _prepare_runner_result_class(self):
163
- """
164
- Устанавливает класс результата.
165
- """
131
+ """Устанавливает класс результата."""
166
132
  self._runner_result_class = BaseExportDataRunnerResult
167
133
 
168
134
  def _prepare_function_result_class(self):
169
- """
170
- Устанавливает класс результата.
171
- """
135
+ """Устанавливает класс результата."""
172
136
  self._function_result_class = BaseExportDataFunctionResult
173
137
 
174
138
  def _prepare_result_presenter_class(self):
175
- """
176
- Устанавливает класс презентера результата.
177
- """
139
+ """Устанавливает класс презентера результата."""
178
140
  self._result_presenter_class = BaseExportDataResultPresenter
File without changes
@@ -0,0 +1,19 @@
1
+ from django.apps import (
2
+ AppConfig,
3
+ )
4
+
5
+
6
+ class RDMServiceStageAppConfig(AppConfig):
7
+ """Приложение для организации этапа сервисного обслуживания интеграции с РВД."""
8
+
9
+ name = 'edu_rdm_integration.stages.service'
10
+ label = 'edu_rdm_integration_service_stage'
11
+ verbose_name = 'Этап сервисного обслуживания'
12
+
13
+ def ready(self):
14
+ """Готовность приложения."""
15
+ if self.name == 'edu_rdm_integration.stages.service':
16
+ # ruff: noqa: F401
17
+ from . import (
18
+ tasks,
19
+ )
@@ -0,0 +1,63 @@
1
+ import celery
2
+ from celery.schedules import (
3
+ crontab,
4
+ )
5
+ from django.conf import (
6
+ settings,
7
+ )
8
+
9
+ from educommon.async_task.models import (
10
+ AsyncTaskType,
11
+ )
12
+ from educommon.async_task.tasks import (
13
+ UniquePeriodicAsyncTask,
14
+ )
15
+
16
+ from edu_rdm_integration.core.consts import (
17
+ TASK_QUEUE_NAME,
18
+ )
19
+ from edu_rdm_integration.stages.collect_data.helpers import (
20
+ set_failed_status_suspended_collecting_data_stages,
21
+ )
22
+ from edu_rdm_integration.stages.export_data.helpers import (
23
+ set_failed_status_suspended_exporting_data_stages,
24
+ )
25
+
26
+
27
+ class CheckSuspendedExportedStagePeriodicTask(UniquePeriodicAsyncTask):
28
+ """Периодическая задача поиска зависших этапов/подэтапов экспорта."""
29
+
30
+ queue = TASK_QUEUE_NAME
31
+ routing_key = TASK_QUEUE_NAME
32
+ description = 'Поиск зависших этапов/подэтапов экспорта в "Региональная витрина данных"'
33
+ lock_expire_seconds = settings.RDM_CHECK_SUSPEND_TASK_LOCK_EXPIRE_SECONDS
34
+ task_type = AsyncTaskType.SYSTEM
35
+ run_every = crontab(
36
+ minute=settings.RDM_CHECK_SUSPEND_TASK_MINUTE,
37
+ hour=settings.RDM_CHECK_SUSPEND_TASK_HOUR,
38
+ day_of_week=settings.RDM_CHECK_SUSPEND_TASK_DAY_OF_WEEK,
39
+ )
40
+
41
+ def process(self, *args, **kwargs):
42
+ """Выполнение задачи."""
43
+ super().process(*args, **kwargs)
44
+
45
+ change_status_collecting_result = set_failed_status_suspended_collecting_data_stages()
46
+ change_status_exporting_result = set_failed_status_suspended_exporting_data_stages()
47
+
48
+ task_result = {
49
+ 'Прервано сборок': (
50
+ f'Этапов {change_status_collecting_result["change_stage_count"]}'
51
+ f' и подэтапов {change_status_collecting_result["change_sub_stage_count"]}'
52
+ ),
53
+ 'Прервано выгрузок': (
54
+ f'Этапов {change_status_exporting_result["change_stage_count"]}'
55
+ f' и подэтапов {change_status_exporting_result["change_sub_stage_count"]}'
56
+ ),
57
+ }
58
+
59
+ self.set_progress(values=task_result)
60
+
61
+
62
+ celery_app = celery.app.app_or_default()
63
+ celery_app.register_task(CheckSuspendedExportedStagePeriodicTask)
File without changes
@@ -0,0 +1,19 @@
1
+ from django.apps import (
2
+ AppConfig,
3
+ )
4
+
5
+
6
+ class RDMUploadDataStageAppConfig(AppConfig):
7
+ """Приложение для организации этапа выгрузки файлов в РВД."""
8
+
9
+ name = 'edu_rdm_integration.stages.upload_data'
10
+ label = 'edu_rdm_integration_upload_data_stage'
11
+ verbose_name = 'Этап выгрузки файлов в РВД'
12
+
13
+ def ready(self):
14
+ """Готовность приложения."""
15
+ if self.name == 'edu_rdm_integration.stages.upload_data':
16
+ # ruff: noqa: F401
17
+ from . import (
18
+ tasks,
19
+ )
@@ -0,0 +1,10 @@
1
+ from edu_rdm_integration.stages.upload_data.models import (
2
+ DataMartRequestStatus,
3
+ )
4
+
5
+
6
+ FAILED_STATUSES = {
7
+ DataMartRequestStatus.FAILED_PROCESSING,
8
+ DataMartRequestStatus.REQUEST_ID_NOT_FOUND,
9
+ DataMartRequestStatus.FLC_ERROR,
10
+ }
@@ -5,6 +5,7 @@ from typing import (
5
5
 
6
6
  class UploadFile(NamedTuple):
7
7
  """Структура файла подэтапа для очереди отправки."""
8
+
8
9
  attachment_id: int
9
10
  attachment_name: str
10
11
  attachment_size: int
@@ -0,0 +1,17 @@
1
+ from m3.db import (
2
+ BaseEnumerate,
3
+ )
4
+
5
+
6
+ class FileUploadStatusEnum(BaseEnumerate):
7
+ """Действие по отслеживаемым данным."""
8
+
9
+ IN_PROGRESS = 1
10
+ FINISHED = 2
11
+ ERROR = 3
12
+
13
+ values = {
14
+ IN_PROGRESS: 'В процессе загрузки в витрину',
15
+ FINISHED: 'Загрузка в витрину закончена',
16
+ ERROR: 'Ошибка загрузки в витрину',
17
+ }
@@ -3,8 +3,6 @@ from pathlib import (
3
3
  )
4
4
  from typing import (
5
5
  TYPE_CHECKING,
6
- Any,
7
- Iterable,
8
6
  Optional,
9
7
  )
10
8
 
@@ -22,51 +20,63 @@ from django.db.transaction import (
22
20
  from uploader_client.adapters import (
23
21
  adapter,
24
22
  )
23
+ from web_edu.plugins.gis_ruo.enums import (
24
+ OPERATIONS_METHODS_MAP,
25
+ )
25
26
 
26
27
  from educommon import (
27
28
  logger,
28
29
  )
29
30
 
30
- from edu_rdm_integration.consts import (
31
+ from edu_rdm_integration.core.consts import (
31
32
  LOGS_DELIMITER,
32
33
  )
33
- from edu_rdm_integration.enums import (
34
- FileUploadStatusEnum,
34
+ from edu_rdm_integration.core.redis_cache import (
35
+ AbstractCache,
35
36
  )
36
- from edu_rdm_integration.export_data.base.consts import (
37
- OPERATIONS_METHODS_MAP,
37
+ from edu_rdm_integration.stages.export_data.consts import (
38
+ ATTACHMENTS_LIMIT,
39
+ TOTAL_ATTACHMENTS_SIZE_KEY,
40
+ )
41
+ from edu_rdm_integration.stages.export_data.functions.base.consts import (
38
42
  OPERATIONS_URLS_MAP,
39
43
  )
40
- from edu_rdm_integration.export_data.base.requests import (
44
+ from edu_rdm_integration.stages.export_data.functions.base.requests import (
41
45
  RegionalDataMartEntityRequest,
42
46
  )
43
- from edu_rdm_integration.export_data.consts import (
44
- ATTACHMENTS_LIMIT,
45
- TOTAL_ATTACHMENTS_SIZE_KEY,
47
+ from edu_rdm_integration.stages.export_data.models import (
48
+ ExportingDataSubStage,
49
+ ExportingDataSubStageAttachment,
50
+ ExportingDataSubStageStatus,
46
51
  )
47
- from edu_rdm_integration.export_data.dataclasses import (
52
+ from edu_rdm_integration.stages.upload_data.consts import (
53
+ FAILED_STATUSES,
54
+ )
55
+ from edu_rdm_integration.stages.upload_data.dataclasses import (
48
56
  UploadFile,
49
57
  )
50
- from edu_rdm_integration.export_data.queue import (
51
- Queue,
58
+ from edu_rdm_integration.stages.upload_data.enums import (
59
+ FileUploadStatusEnum,
52
60
  )
53
- from edu_rdm_integration.helpers import (
54
- FAILED_STATUSES,
61
+ from edu_rdm_integration.stages.upload_data.helpers import (
55
62
  UploadStatusHelper,
56
63
  )
57
- from edu_rdm_integration.models import (
64
+ from edu_rdm_integration.stages.upload_data.models import (
58
65
  DataMartRequestStatus,
59
- ExportingDataSubStage,
60
- ExportingDataSubStageAttachment,
61
- ExportingDataSubStageStatus,
62
66
  ExportingDataSubStageUploaderClientLog,
63
67
  UploadStatusRequestLog,
64
68
  )
65
- from edu_rdm_integration.redis_cache import (
66
- AbstractCache,
69
+ from edu_rdm_integration.stages.upload_data.queues import (
70
+ Queue,
67
71
  )
68
72
 
69
73
 
74
+ if TYPE_CHECKING:
75
+ from uploader_client.models import (
76
+ Entry,
77
+ )
78
+
79
+
70
80
  class ExportQueueSender:
71
81
  """Класс отправки данных в очередь РВД."""
72
82
 
@@ -86,9 +96,9 @@ class ExportQueueSender:
86
96
  sended_attachment_ids = ExportingDataSubStageUploaderClientLog.objects.filter(
87
97
  file_upload_status=FileUploadStatusEnum.IN_PROGRESS
88
98
  ).values_list('attachment_id', flat=True)
89
- file_size = ExportingDataSubStageAttachment.objects.filter(
90
- id__in=sended_attachment_ids
91
- ).aggregate(Sum('attachment_size'))['attachment_size__sum']
99
+ file_size = ExportingDataSubStageAttachment.objects.filter(id__in=sended_attachment_ids).aggregate(
100
+ Sum('attachment_size')
101
+ )['attachment_size__sum']
92
102
 
93
103
  return file_size or 0
94
104
 
@@ -98,25 +108,30 @@ class ExportQueueSender:
98
108
 
99
109
  def get_sub_stages_attachments_to_export(self):
100
110
  """Выборка готовых к экспорту подэтапов."""
101
- sub_stage_ids = ExportingDataSubStage.objects.filter(
102
- self._make_stage_filter()
103
- ).order_by('started_at').values_list('id', flat=True)[:self.limit]
104
-
105
- return ExportingDataSubStage.objects.filter(
106
- id__in=sub_stage_ids
107
- ).annotate(
108
- attachment_id=F('exportingdatasubstageattachment__id'),
109
- attachment_name=F('exportingdatasubstageattachment__attachment'),
110
- attachment_size=F('exportingdatasubstageattachment__attachment_size'),
111
- operation=F('exportingdatasubstageattachment__operation'),
112
- entity=F('exportingdatasubstageentity__entity_id')
113
- ).order_by('id', 'operation').values(
114
- 'id',
115
- 'attachment_id',
116
- 'attachment_name',
117
- 'attachment_size',
118
- 'operation',
119
- 'entity',
111
+ sub_stage_ids = (
112
+ ExportingDataSubStage.objects.filter(self._make_stage_filter())
113
+ .order_by('started_at')
114
+ .values_list('id', flat=True)[: self.limit]
115
+ )
116
+
117
+ return (
118
+ ExportingDataSubStage.objects.filter(id__in=sub_stage_ids)
119
+ .annotate(
120
+ attachment_id=F('exportingdatasubstageattachment__id'),
121
+ attachment_name=F('exportingdatasubstageattachment__attachment'),
122
+ attachment_size=F('exportingdatasubstageattachment__attachment_size'),
123
+ operation=F('exportingdatasubstageattachment__operation'),
124
+ entity=F('exportingdatasubstageentity__entity_id'),
125
+ )
126
+ .order_by('id', 'operation')
127
+ .values(
128
+ 'id',
129
+ 'attachment_id',
130
+ 'attachment_name',
131
+ 'attachment_size',
132
+ 'operation',
133
+ 'entity',
134
+ )
120
135
  )
121
136
 
122
137
  def set_sub_stage_to_cache(self, sub_stage_id: int, entity_name: str, attachments: list[UploadFile]) -> bool:
@@ -129,14 +144,10 @@ class ExportQueueSender:
129
144
  self.queue_total_file_size += sub_stage_total_size
130
145
  # Обновим размер файлов в кеш
131
146
  self.cache.set(
132
- TOTAL_ATTACHMENTS_SIZE_KEY,
133
- self.queue_total_file_size,
134
- timeout=settings.RDM_REDIS_CACHE_TIMEOUT_SECONDS
147
+ TOTAL_ATTACHMENTS_SIZE_KEY, self.queue_total_file_size, timeout=settings.RDM_REDIS_CACHE_TIMEOUT_SECONDS
135
148
  )
136
149
 
137
- logger.info(
138
- f'{LOGS_DELIMITER * 2}ExportedDataSubStage {sub_stage_id} {entity_name} added to the queue'
139
- )
150
+ logger.info(f'{LOGS_DELIMITER * 2}ExportedDataSubStage {sub_stage_id} {entity_name} added to the queue')
140
151
 
141
152
  return True
142
153
 
@@ -162,12 +173,14 @@ class ExportQueueSender:
162
173
  prev_sub_stage = stage_attachment['id']
163
174
 
164
175
  if stage_attachment['attachment_size']:
165
- stage_files.append(UploadFile(
166
- stage_attachment['attachment_id'],
167
- stage_attachment['attachment_name'],
168
- stage_attachment['attachment_size'],
169
- stage_attachment['operation']
170
- ))
176
+ stage_files.append(
177
+ UploadFile(
178
+ stage_attachment['attachment_id'],
179
+ stage_attachment['attachment_name'],
180
+ stage_attachment['attachment_size'],
181
+ stage_attachment['operation'],
182
+ )
183
+ )
171
184
  entity = stage_attachment['entity']
172
185
 
173
186
  # Обновляем общий объем очереди и закидываем последний элемент
@@ -176,14 +189,10 @@ class ExportQueueSender:
176
189
  else:
177
190
  # Сохраняем объем отправленных файлов в кеш
178
191
  self.cache.set(
179
- TOTAL_ATTACHMENTS_SIZE_KEY,
180
- self.queue_total_file_size,
181
- timeout=settings.RDM_REDIS_CACHE_TIMEOUT_SECONDS
192
+ TOTAL_ATTACHMENTS_SIZE_KEY, self.queue_total_file_size, timeout=settings.RDM_REDIS_CACHE_TIMEOUT_SECONDS
182
193
  )
183
194
  self.queue_is_full = True
184
- logger.warning(
185
- f'Total exported file size: {self.queue_total_file_size} - queue is full!!!'
186
- )
195
+ logger.warning(f'Total exported file size: {self.queue_total_file_size} - queue is full!!!')
187
196
 
188
197
 
189
198
  class WorkerSender:
@@ -303,9 +312,7 @@ class WorkerSender:
303
312
  errors.append(result.error)
304
313
  status = ExportingDataSubStageStatus.FAILED.key
305
314
  else:
306
- logger.info(
307
- f'Response with {result.response.status_code} code and content {result.response.text}'
308
- )
315
+ logger.info(f'Response with {result.response.status_code} code and content {result.response.text}')
309
316
  self.entities.add(entity_key)
310
317
 
311
318
  # Сохраняем информацию об отправке файлов и убираем подэтап с файлами из очереди
@@ -316,9 +323,7 @@ class WorkerSender:
316
323
  sub_stage.save()
317
324
 
318
325
  self.queue.delete_from_queue(sub_stage_id=sub_stage_id, entity_name=entity_key)
319
- logger.info(
320
- f'{LOGS_DELIMITER * 3}ExportedDataSubStage {sub_stage_id} {entity_key} sended from the queue'
321
- )
326
+ logger.info(f'{LOGS_DELIMITER * 3}ExportedDataSubStage {sub_stage_id} {entity_key} sent from the queue')
322
327
 
323
328
  def run(self):
324
329
  """Запуск воркера отправки."""