edu-rdm-integration 3.9.2__py3-none-any.whl → 3.10.1__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/collect_and_export_data/models.py +1 -67
  20. edu_rdm_integration/{consts.py → core/consts.py} +0 -11
  21. edu_rdm_integration/{enums.py → core/enums.py} +7 -54
  22. edu_rdm_integration/core/helpers.py +331 -0
  23. edu_rdm_integration/core/operations.py +71 -0
  24. edu_rdm_integration/core/redis_cache.py +20 -0
  25. edu_rdm_integration/{collect_and_export_data → core/registry}/actions.py +6 -12
  26. edu_rdm_integration/core/registry/apps.py +11 -0
  27. edu_rdm_integration/{collect_and_export_data → core/registry}/ui.py +1 -1
  28. edu_rdm_integration/{storages.py → core/storages.py} +8 -17
  29. edu_rdm_integration/{utils.py → core/utils.py} +29 -91
  30. edu_rdm_integration/migrations/0001_initial.py +294 -44
  31. edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +1 -3
  32. edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -1
  33. edu_rdm_integration/migrations/0004_uploaderclientlog.py +1 -2
  34. edu_rdm_integration/migrations/0005_auto_20231204_1224.py +16 -4
  35. edu_rdm_integration/migrations/0006_request_status_data.py +60 -58
  36. edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -1
  37. edu_rdm_integration/migrations/0009_auto_20240522_1619.py +1 -5
  38. edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -1
  39. edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +16 -3
  40. edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -1
  41. edu_rdm_integration/migrations/0013_set_attachment_size.py +8 -12
  42. edu_rdm_integration/migrations/0014_uploaddatacommand.py +33 -6
  43. edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +1 -5
  44. edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +2 -2
  45. edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +3 -2
  46. edu_rdm_integration/migrations/__init__.py +1 -0
  47. edu_rdm_integration/{registry → pipelines/transfer}/actions.py +13 -26
  48. edu_rdm_integration/pipelines/transfer/app_meta.py +18 -0
  49. edu_rdm_integration/pipelines/transfer/apps.py +19 -0
  50. edu_rdm_integration/pipelines/transfer/enums.py +34 -0
  51. edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +57 -0
  52. edu_rdm_integration/{base.py → pipelines/transfer/mixins.py} +29 -53
  53. edu_rdm_integration/pipelines/transfer/models.py +48 -0
  54. edu_rdm_integration/{tasks.py → pipelines/transfer/tasks.py} +51 -150
  55. edu_rdm_integration/{registry → pipelines/transfer}/ui.py +4 -10
  56. edu_rdm_integration/rdm_entities/apps.py +11 -0
  57. edu_rdm_integration/{entities.py → rdm_entities/entities.py} +67 -57
  58. edu_rdm_integration/rdm_entities/migrations/0001_initial.py +44 -0
  59. edu_rdm_integration/{enum_register → rdm_entities}/mixins.py +8 -59
  60. edu_rdm_integration/rdm_entities/models.py +63 -0
  61. edu_rdm_integration/rdm_entities/utils.py +33 -0
  62. edu_rdm_integration/rdm_models/apps.py +16 -0
  63. edu_rdm_integration/rdm_models/migrations/0001_initial.py +40 -0
  64. edu_rdm_integration/rdm_models/mixins.py +67 -0
  65. edu_rdm_integration/rdm_models/models.py +73 -0
  66. edu_rdm_integration/rdm_models/utils.py +23 -0
  67. edu_rdm_integration/stages/collect_data/apps.py +11 -0
  68. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/functions.py-tpl +2 -2
  69. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/managers.py-tpl +1 -1
  70. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/runners.py-tpl +1 -1
  71. edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/tests.py-tpl +2 -1
  72. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/caches.py +2 -2
  73. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/functions.py +15 -18
  74. edu_rdm_integration/stages/collect_data/functions/base/helpers.py +20 -0
  75. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/managers.py +20 -27
  76. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/mixins.py +38 -55
  77. edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/runners.py +2 -5
  78. edu_rdm_integration/stages/collect_data/functions/calculated/__init__.py +0 -0
  79. edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
  80. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/caches.py +3 -7
  81. edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +7 -0
  82. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/functions.py +8 -16
  83. edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +24 -0
  84. edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +19 -0
  85. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/presenters.py +1 -3
  86. edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +12 -0
  87. edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +28 -0
  88. edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +20 -0
  89. edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/strategies.py +32 -70
  90. edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
  91. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
  92. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/caches.py +13 -22
  93. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +7 -0
  94. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/functions.py +8 -16
  95. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +24 -0
  96. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +19 -0
  97. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/presenters.py +1 -3
  98. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +12 -0
  99. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +28 -0
  100. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +20 -0
  101. edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/strategies.py +32 -70
  102. edu_rdm_integration/{collect_data → stages/collect_data}/generators.py +9 -14
  103. edu_rdm_integration/stages/collect_data/helpers.py +154 -0
  104. edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
  105. edu_rdm_integration/stages/collect_data/management/base.py +100 -0
  106. edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
  107. edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_latest_models_data.py +5 -7
  108. edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_models_data.py +5 -7
  109. edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +187 -0
  110. edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +105 -0
  111. edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
  112. edu_rdm_integration/stages/collect_data/mixins.py +56 -0
  113. edu_rdm_integration/stages/collect_data/models.py +318 -0
  114. edu_rdm_integration/{collect_data/collect.py → stages/collect_data/operations.py} +30 -43
  115. edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
  116. edu_rdm_integration/{collect_data → stages/collect_data/registry}/actions.py +17 -20
  117. edu_rdm_integration/stages/collect_data/registry/apps.py +11 -0
  118. edu_rdm_integration/{collect_data → stages/collect_data/registry}/ui.py +8 -15
  119. edu_rdm_integration/{collect_data → stages/collect_data}/tests.py +2 -2
  120. edu_rdm_integration/stages/export_data/__init__.py +0 -0
  121. edu_rdm_integration/stages/export_data/apps.py +11 -0
  122. edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
  123. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/functions.py-tpl +2 -2
  124. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/managers.py-tpl +2 -2
  125. edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/runners.py-tpl +2 -2
  126. edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
  127. edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
  128. edu_rdm_integration/{export_data → stages/export_data/functions}/base/caches.py +3 -8
  129. edu_rdm_integration/stages/export_data/functions/base/errors.py +7 -0
  130. edu_rdm_integration/{export_data → stages/export_data/functions}/base/functions.py +28 -59
  131. edu_rdm_integration/{export_data → stages/export_data/functions}/base/helpers.py +7 -17
  132. edu_rdm_integration/{export_data → stages/export_data/functions}/base/managers.py +19 -28
  133. edu_rdm_integration/stages/export_data/functions/base/presenters.py +11 -0
  134. edu_rdm_integration/{export_data → stages/export_data/functions}/base/requests.py +13 -40
  135. edu_rdm_integration/stages/export_data/functions/base/results.py +12 -0
  136. edu_rdm_integration/{export_data → stages/export_data/functions}/base/runners.py +9 -21
  137. edu_rdm_integration/stages/export_data/functions/base/validators.py +20 -0
  138. edu_rdm_integration/{export_data → stages/export_data}/generators.py +7 -6
  139. edu_rdm_integration/stages/export_data/helpers.py +203 -0
  140. edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
  141. edu_rdm_integration/stages/export_data/management/base.py +101 -0
  142. edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
  143. edu_rdm_integration/{management → stages/export_data/management}/commands/export_entities_data.py +5 -7
  144. edu_rdm_integration/{management → stages/export_data/management}/commands/export_latest_entities_data.py +5 -7
  145. edu_rdm_integration/stages/export_data/migrations/0001_initial.py +324 -0
  146. edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
  147. edu_rdm_integration/stages/export_data/mixins.py +50 -0
  148. edu_rdm_integration/stages/export_data/models.py +362 -0
  149. edu_rdm_integration/{export_data/export.py → stages/export_data/operations.py} +13 -152
  150. edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
  151. edu_rdm_integration/{export_data → stages/export_data/registry}/actions.py +18 -18
  152. edu_rdm_integration/stages/export_data/registry/apps.py +11 -0
  153. edu_rdm_integration/{export_data → stages/export_data/registry}/ui.py +5 -7
  154. edu_rdm_integration/{export_data → stages/export_data}/strategies.py +30 -68
  155. edu_rdm_integration/stages/service/__init__.py +0 -0
  156. edu_rdm_integration/stages/service/apps.py +19 -0
  157. edu_rdm_integration/stages/service/tasks.py +63 -0
  158. edu_rdm_integration/stages/upload_data/__init__.py +0 -0
  159. edu_rdm_integration/stages/upload_data/apps.py +19 -0
  160. edu_rdm_integration/stages/upload_data/consts.py +10 -0
  161. edu_rdm_integration/{export_data → stages/upload_data}/dataclasses.py +1 -0
  162. edu_rdm_integration/stages/upload_data/enums.py +17 -0
  163. edu_rdm_integration/{export_data/export_manager.py → stages/upload_data/export_managers.py} +73 -68
  164. edu_rdm_integration/stages/upload_data/helpers.py +164 -0
  165. edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
  166. edu_rdm_integration/stages/upload_data/management/base.py +134 -0
  167. edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
  168. edu_rdm_integration/{management → stages/upload_data/management}/commands/async_fix_attachment_size.py +32 -54
  169. edu_rdm_integration/{management → stages/upload_data/management}/commands/check_upload_status.py +7 -6
  170. edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_status.py +3 -3
  171. edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_upload.py +4 -4
  172. edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +161 -0
  173. edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
  174. edu_rdm_integration/stages/upload_data/models.py +175 -0
  175. edu_rdm_integration/stages/upload_data/operations.py +156 -0
  176. edu_rdm_integration/{export_data/queue.py → stages/upload_data/queues.py} +10 -8
  177. edu_rdm_integration/stages/upload_data/tasks.py +103 -0
  178. edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
  179. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/actions.py +14 -16
  180. edu_rdm_integration/stages/upload_data/uploader_log/apps.py +11 -0
  181. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/managers.py +15 -30
  182. edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +31 -0
  183. edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
  184. edu_rdm_integration/stages/upload_data/uploader_log/models.py +86 -0
  185. edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/ui.py +8 -6
  186. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.1.dist-info}/METADATA +238 -238
  187. edu_rdm_integration-3.10.1.dist-info/RECORD +257 -0
  188. edu_rdm_integration/app_meta.py +0 -16
  189. edu_rdm_integration/app_settings.py +0 -77
  190. edu_rdm_integration/collect_and_export_data/utils.py +0 -224
  191. edu_rdm_integration/collect_data/base/helpers.py +0 -26
  192. edu_rdm_integration/collect_data/calculated/base/errors.py +0 -9
  193. edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -32
  194. edu_rdm_integration/collect_data/calculated/base/managers.py +0 -23
  195. edu_rdm_integration/collect_data/calculated/base/results.py +0 -16
  196. edu_rdm_integration/collect_data/calculated/base/runners.py +0 -36
  197. edu_rdm_integration/collect_data/calculated/base/validators.py +0 -28
  198. edu_rdm_integration/collect_data/helpers.py +0 -92
  199. edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -9
  200. edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -32
  201. edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -23
  202. edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -16
  203. edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -36
  204. edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -28
  205. edu_rdm_integration/enum_register/register.py +0 -79
  206. edu_rdm_integration/export_data/base/errors.py +0 -9
  207. edu_rdm_integration/export_data/base/presenters.py +0 -13
  208. edu_rdm_integration/export_data/base/results.py +0 -16
  209. edu_rdm_integration/export_data/base/validators.py +0 -28
  210. edu_rdm_integration/export_data/helpers.py +0 -92
  211. edu_rdm_integration/helpers.py +0 -412
  212. edu_rdm_integration/management/general.py +0 -327
  213. edu_rdm_integration/models.py +0 -982
  214. edu_rdm_integration/redis_cache.py +0 -51
  215. edu_rdm_integration/uploader_log/apps.py +0 -10
  216. edu_rdm_integration-3.9.2.dist-info/RECORD +0 -198
  217. /edu_rdm_integration/{collect_data → core}/__init__.py +0 -0
  218. /edu_rdm_integration/{mapping.py → core/mapping.py} +0 -0
  219. /edu_rdm_integration/{collect_data/base → core/registry}/__init__.py +0 -0
  220. /edu_rdm_integration/{templates → core/registry/templates}/ui-js/start-task.js +0 -0
  221. /edu_rdm_integration/{signals.py → core/signals.py} +0 -0
  222. /edu_rdm_integration/{typing.py → core/typing.py} +0 -0
  223. /edu_rdm_integration/{collect_data/calculated → pipelines}/__init__.py +0 -0
  224. /edu_rdm_integration/{collect_data/calculated/base → pipelines/transfer}/__init__.py +0 -0
  225. /edu_rdm_integration/{collect_data/non_calculated → pipelines/transfer/migrations}/__init__.py +0 -0
  226. /edu_rdm_integration/{templates → pipelines/transfer/templates}/ui-js/transferred-entity-list.js +0 -0
  227. /edu_rdm_integration/{collect_data/non_calculated/base → rdm_entities}/__init__.py +0 -0
  228. /edu_rdm_integration/{enum_register → rdm_entities/migrations}/__init__.py +0 -0
  229. /edu_rdm_integration/{export_data → rdm_models}/__init__.py +0 -0
  230. /edu_rdm_integration/{export_data/base → rdm_models/migrations}/__init__.py +0 -0
  231. /edu_rdm_integration/{function_templates → stages}/__init__.py +0 -0
  232. /edu_rdm_integration/{management → stages/collect_data}/__init__.py +0 -0
  233. /edu_rdm_integration/{collect_data/const.py → stages/collect_data/consts.py} +0 -0
  234. /edu_rdm_integration/{management/commands → stages/collect_data/function_templates}/__init__.py +0 -0
  235. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/__init__.py-tpl +0 -0
  236. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/apps.py-tpl +0 -0
  237. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/caches.py-tpl +0 -0
  238. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/consts.py-tpl +0 -0
  239. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/enums.py-tpl +0 -0
  240. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/errors.py-tpl +0 -0
  241. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/helpers.py-tpl +0 -0
  242. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/presenters.py-tpl +0 -0
  243. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/results.py-tpl +0 -0
  244. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/strings.py-tpl +0 -0
  245. /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/validators.py-tpl +0 -0
  246. /edu_rdm_integration/{registry → stages/collect_data/functions}/__init__.py +0 -0
  247. /edu_rdm_integration/{uploader_log → stages/collect_data/functions/base}/__init__.py +0 -0
  248. /edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/consts.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.1.dist-info}/WHEEL +0 -0
  278. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.1.dist-info}/licenses/LICENSE +0 -0
  279. {edu_rdm_integration-3.9.2.dist-info → edu_rdm_integration-3.10.1.dist-info}/top_level.txt +0 -0
@@ -33,25 +33,27 @@ from m3_db_utils.models import (
33
33
  ModelEnumValue,
34
34
  )
35
35
 
36
- from edu_rdm_integration.base import (
36
+ from edu_rdm_integration.core.consts import (
37
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
38
+ )
39
+ from edu_rdm_integration.core.operations import (
37
40
  BaseOperationData,
38
41
  )
39
- from edu_rdm_integration.consts import (
40
- REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
42
+ from edu_rdm_integration.core.signals import (
43
+ manager_created,
41
44
  )
42
- from edu_rdm_integration.helpers import (
43
- get_collecting_managers_max_period_ended_dates,
45
+ from edu_rdm_integration.core.storages import (
46
+ RegionalDataMartEntityStorage,
44
47
  )
45
- from edu_rdm_integration.models import (
46
- CollectingDataStageStatus,
47
- CollectingExportedDataStage,
48
+ from edu_rdm_integration.rdm_models.models import (
48
49
  RegionalDataMartModelEnum,
49
50
  )
50
- from edu_rdm_integration.signals import (
51
- manager_created,
51
+ from edu_rdm_integration.stages.collect_data.helpers import (
52
+ get_collecting_managers_max_period_ended_dates,
52
53
  )
53
- from edu_rdm_integration.storages import (
54
- RegionalDataMartEntityStorage,
54
+ from edu_rdm_integration.stages.collect_data.models import (
55
+ CollectingDataStageStatus,
56
+ CollectingExportedDataStage,
55
57
  )
56
58
 
57
59
 
@@ -60,7 +62,7 @@ if TYPE_CHECKING:
60
62
  AuditLog,
61
63
  )
62
64
 
63
- from edu_rdm_integration.collect_data.generators import (
65
+ from edu_rdm_integration.stages.collect_data.generators import (
64
66
  BaseEduLogGenerator,
65
67
  )
66
68
 
@@ -79,9 +81,7 @@ class BaseCollectModelsData(BaseOperationData):
79
81
 
80
82
  # Если модели не указаны, берется значение по умолчанию - все модели:
81
83
  models = models if models else RegionalDataMartModelEnum.get_enum_data().keys()
82
- self.models: list[ModelEnumValue] = [
83
- RegionalDataMartModelEnum.get_model_enum_value(model) for model in models
84
- ]
84
+ self.models: list[ModelEnumValue] = [RegionalDataMartModelEnum.get_model_enum_value(model) for model in models]
85
85
 
86
86
  self.logs_period_started_at = logs_period_started_at
87
87
  self.logs_period_ended_at = logs_period_ended_at
@@ -94,9 +94,7 @@ class BaseCollectModelsData(BaseOperationData):
94
94
 
95
95
  @property
96
96
  def _log_file_path(self) -> str:
97
- """
98
- Путь до лог файла.
99
- """
97
+ """Путь до лог файла."""
100
98
  return os.path.join(settings.MEDIA_ROOT, settings.RDM_COLLECT_LOG_DIR, f'{self.command_id}.log')
101
99
 
102
100
  def _has_stage_created_or_in_progress(self, manager_id: str, model: str) -> bool:
@@ -107,9 +105,7 @@ class BaseCollectModelsData(BaseOperationData):
107
105
  return False
108
106
 
109
107
  def _find_collecting_models_data_managers(self):
110
- """
111
- Поиск менеджеров Функций, которые должны быть запущены для сбора данных моделей РВД.
112
- """
108
+ """Поиск менеджеров Функций, которые должны быть запущены для сбора данных моделей РВД."""
113
109
  logger.info('collecting models data managers..')
114
110
 
115
111
  entity_storage = RegionalDataMartEntityStorage()
@@ -130,9 +126,7 @@ class BaseCollectModelsData(BaseOperationData):
130
126
  logger.info('collecting models data managers finished')
131
127
 
132
128
  def _collect_models_data(self, *args, logs: Optional[dict[str, list['AuditLog']]] = None, **kwargs):
133
- """
134
- Запуск Функций по формированию данных моделей РВД из логов.
135
- """
129
+ """Запуск Функций по формированию данных моделей РВД из логов."""
136
130
  logger.info('collect models data..')
137
131
 
138
132
  kwargs['logs_period_started_at'] = self.logs_period_started_at
@@ -153,9 +147,7 @@ class BaseCollectModelsData(BaseOperationData):
153
147
  logger.info('collecting models data finished.')
154
148
 
155
149
  def _collect(self):
156
- """
157
- Собирает данные моделей РВД.
158
- """
150
+ """Собирает данные моделей РВД."""
159
151
  logger.info(f'start collecting data of models - {", ".join([model.key for model in self.models])}..')
160
152
 
161
153
  self._find_collecting_models_data_managers()
@@ -164,9 +156,7 @@ class BaseCollectModelsData(BaseOperationData):
164
156
  logger.info('collecting data of models is finished.')
165
157
 
166
158
  def collect(self):
167
- """
168
- Запускает сбор данных.
169
- """
159
+ """Запускает сбор данных."""
170
160
  try:
171
161
  self._collect()
172
162
  except Exception as err:
@@ -224,9 +214,7 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
224
214
  return [(temp_logs, self.logs_period_started_at, self.logs_period_ended_at)]
225
215
 
226
216
  def _collect(self):
227
- """
228
- Собирает данные моделей РВД.
229
- """
217
+ """Собирает данные моделей РВД."""
230
218
  logger.info(f'start collecting data of models - {", ".join([model.key for model in self.models])}..')
231
219
  self._find_collecting_models_data_managers()
232
220
 
@@ -242,11 +230,9 @@ class BaseCollectModelsDataByGeneratingLogs(BaseCollectModelsData):
242
230
 
243
231
 
244
232
  class BaseCollectLatestModelsData(BaseCollectModelsData):
245
- """
246
- Сбор данных моделей РВД на основе логов за период с последней сборки до указанной даты.
247
- """
233
+ """Сбор данных моделей РВД на основе логов за период с последней сборки до указанной даты."""
248
234
 
249
- def __init__(self, *args, use_times_limit: bool = False, **kwargs):
235
+ def __init__(self, *args, use_times_limit: bool = False, **kwargs):
250
236
  super().__init__(*args, **kwargs)
251
237
 
252
238
  # Если этот параметр не указан - то высчитываем временные рамки по менеджеру, не учитывая переданные
@@ -266,9 +252,7 @@ class BaseCollectLatestModelsData(BaseCollectModelsData):
266
252
  return stage_created_or_in_progress
267
253
 
268
254
  def _collect_models_data(self, *args, logs: Optional[dict[str, list['AuditLog']]] = None, **kwargs) -> None:
269
- """
270
- Запуск Функций по формированию данных из логов для дальнейшей выгрузки.
271
- """
255
+ """Запуск Функций по формированию данных из логов для дальнейшей выгрузки."""
272
256
  logger.info('collect models data..')
273
257
 
274
258
  managers_last_period_ended_at = get_collecting_managers_max_period_ended_dates(
@@ -279,8 +263,11 @@ class BaseCollectLatestModelsData(BaseCollectModelsData):
279
263
  model_logs = logs.get(model_key) if logs else None
280
264
  manager_last_period_ended_at = managers_last_period_ended_at.get(manager_class.uuid)
281
265
 
282
- kwargs['logs_period_started_at'] = self.logs_period_started_at if self.use_times_limit else (
283
- manager_last_period_ended_at or get_today_min_datetime())
266
+ kwargs['logs_period_started_at'] = (
267
+ self.logs_period_started_at
268
+ if self.use_times_limit
269
+ else (manager_last_period_ended_at or get_today_min_datetime())
270
+ )
284
271
  kwargs['logs_period_ended_at'] = self.logs_period_ended_at if self.use_times_limit else timezone.now()
285
272
 
286
273
  manager = manager_class(*args, logs=model_logs, **kwargs)
@@ -30,31 +30,31 @@ from educommon.utils.ui import (
30
30
  DatetimeFilterCreator,
31
31
  )
32
32
 
33
- from edu_rdm_integration.collect_and_export_data.actions import (
33
+ from edu_rdm_integration.core.enums import (
34
+ CommandType,
35
+ )
36
+ from edu_rdm_integration.core.helpers import (
37
+ make_download_link,
38
+ )
39
+ from edu_rdm_integration.core.registry.actions import (
34
40
  BaseCommandProgressPack,
35
41
  BaseStartTaskAction,
36
42
  )
37
- from edu_rdm_integration.collect_and_export_data.models import (
38
- EduRdmCollectDataCommandProgress,
43
+ from edu_rdm_integration.rdm_models.models import (
44
+ RegionalDataMartModelEnum,
39
45
  )
40
- from edu_rdm_integration.collect_data.generators import (
46
+ from edu_rdm_integration.stages.collect_data.generators import (
41
47
  FirstCollectModelsDataCommandsGenerator,
42
48
  )
43
- from edu_rdm_integration.collect_data.ui import (
44
- CreateCollectCommandWindow,
45
- DetailCollectCommandWindow,
46
- )
47
- from edu_rdm_integration.enums import (
48
- CommandType,
49
- )
50
- from edu_rdm_integration.helpers import (
51
- make_download_link,
52
- )
53
- from edu_rdm_integration.models import (
49
+ from edu_rdm_integration.stages.collect_data.models import (
54
50
  CollectingDataStageStatus,
55
51
  CollectingDataSubStageStatus,
56
52
  CollectingExportedDataSubStage,
57
- RegionalDataMartModelEnum,
53
+ EduRdmCollectDataCommandProgress,
54
+ )
55
+ from edu_rdm_integration.stages.collect_data.registry.ui import (
56
+ CreateCollectCommandWindow,
57
+ DetailCollectCommandWindow,
58
58
  )
59
59
 
60
60
 
@@ -173,7 +173,6 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
173
173
 
174
174
  def get_list_window_params(self, params, request, context):
175
175
  """Получает параметры окна списка."""
176
-
177
176
  params = super().get_list_window_params(params, request, context)
178
177
 
179
178
  params['start_task_url'] = self.start_task_action.get_absolute_url()
@@ -183,7 +182,6 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
183
182
 
184
183
  def declare_context(self, action):
185
184
  """Объявление контекста."""
186
-
187
185
  context = super().declare_context(action)
188
186
 
189
187
  if action is self.save_action:
@@ -231,8 +229,7 @@ class BaseCollectingDataProgressPack(BaseCommandProgressPack):
231
229
 
232
230
  @atomic
233
231
  def save_row(self, obj, create_new, request, context, *args, **kwargs):
234
- """
235
- Сохраняет объект.
232
+ """Сохраняет объект.
236
233
 
237
234
  Переопределено, т.к. на основе полученных параметров от клиента,
238
235
  необходимо сформировать команды на сбор и их сохранить в модели.
@@ -0,0 +1,11 @@
1
+ from django.apps import (
2
+ AppConfig,
3
+ )
4
+
5
+
6
+ class RDMCollectDataRegistryAppConfig(AppConfig):
7
+ """Приложение для организации сбора данных моделей РВД из интерфейса."""
8
+
9
+ name = 'edu_rdm_integration.stages.collect_data.registry'
10
+ label = 'edu_rdm_integration_collect_data_registry'
11
+ verbose_name = 'Сбор данных моделей РВД из интерфейса'
@@ -14,9 +14,6 @@ from m3_ext.ui.fields.simple import (
14
14
  from m3_ext.ui.misc import (
15
15
  ExtDataStore,
16
16
  )
17
- from objectpack.ui import (
18
- allow_blank,
19
- )
20
17
 
21
18
  from educommon.objectpack.ui import (
22
19
  BaseEditWindow,
@@ -25,18 +22,18 @@ from educommon.utils.date import (
25
22
  DatesSplitter,
26
23
  )
27
24
 
28
- from edu_rdm_integration.collect_and_export_data.ui import (
29
- BaseCreateCommandWindow,
30
- )
31
- from edu_rdm_integration.collect_data.const import (
32
- ALL_UNITS_IN_COMMAND,
33
- )
34
- from edu_rdm_integration.consts import (
25
+ from edu_rdm_integration.core.consts import (
35
26
  BATCH_SIZE,
36
27
  )
37
- from edu_rdm_integration.models import (
28
+ from edu_rdm_integration.core.registry.ui import (
29
+ BaseCreateCommandWindow,
30
+ )
31
+ from edu_rdm_integration.rdm_models.models import (
38
32
  RegionalDataMartModelEnum,
39
33
  )
34
+ from edu_rdm_integration.stages.collect_data.consts import (
35
+ ALL_UNITS_IN_COMMAND,
36
+ )
40
37
 
41
38
 
42
39
  class CreateCollectCommandWindow(BaseCreateCommandWindow):
@@ -44,7 +41,6 @@ class CreateCollectCommandWindow(BaseCreateCommandWindow):
44
41
 
45
42
  def _init_components(self):
46
43
  """Инициализация компонентов."""
47
-
48
44
  super()._init_components()
49
45
 
50
46
  model = ExtComboBox(
@@ -163,7 +159,6 @@ class DetailCollectCommandWindow(BaseEditWindow):
163
159
 
164
160
  def set_params(self, params: Dict[str, Any]) -> None:
165
161
  """Устанавливает параметры окна."""
166
-
167
162
  super().set_params(params)
168
163
 
169
164
  self.height = 'auto'
@@ -171,7 +166,6 @@ class DetailCollectCommandWindow(BaseEditWindow):
171
166
 
172
167
  def _init_components(self) -> None:
173
168
  """Инициализирует компоненты окна."""
174
-
175
169
  super()._init_components()
176
170
 
177
171
  self.model_field = ExtStringField(
@@ -227,7 +221,6 @@ class DetailCollectCommandWindow(BaseEditWindow):
227
221
 
228
222
  def _do_layout(self) -> None:
229
223
  """Располагает компоненты окна."""
230
-
231
224
  super()._do_layout()
232
225
 
233
226
  self.form.items.extend(
@@ -38,10 +38,10 @@ from function_tools.models import (
38
38
  EntityType,
39
39
  )
40
40
 
41
- from edu_rdm_integration.consts import (
41
+ from edu_rdm_integration.core.consts import (
42
42
  REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
43
43
  )
44
- from edu_rdm_integration.models import (
44
+ from edu_rdm_integration.stages.collect_data.models import (
45
45
  CollectingExportedDataStage,
46
46
  CollectingExportedDataSubStage,
47
47
  )
File without changes
@@ -0,0 +1,11 @@
1
+ from django.apps import (
2
+ AppConfig,
3
+ )
4
+
5
+
6
+ class RDMExportDataStageAppConfig(AppConfig):
7
+ """Приложение для организации этапа выгрузки собранных данных в файлы."""
8
+
9
+ name = 'edu_rdm_integration.stages.export_data'
10
+ label = 'edu_rdm_integration_export_data_stage'
11
+ verbose_name = 'Этап выгрузки данных в файлы'
@@ -3,10 +3,10 @@ from typing import (
3
3
  Optional,
4
4
  )
5
5
 
6
- from edu_rdm_integration.consts import (
6
+ from edu_rdm_integration.core.consts import (
7
7
  REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
8
8
  )
9
- from edu_rdm_integration.models import (
9
+ from edu_rdm_integration.rdm_entities.models import (
10
10
  RegionalDataMartEntityEnum,
11
11
  )
12
12
 
@@ -4,10 +4,10 @@ from typing import (
4
4
  Optional,
5
5
  )
6
6
 
7
- from edu_rdm_integration.consts import (
7
+ from edu_rdm_integration.core.consts import (
8
8
  REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
9
9
  )
10
- from edu_rdm_integration.models import (
10
+ from edu_rdm_integration.rdm_models.models import (
11
11
  RegionalDataMartModelEnum,
12
12
  )
13
13
 
@@ -13,10 +13,10 @@ from function_tools.general import (
13
13
  RunnableObject,
14
14
  )
15
15
 
16
- from edu_rdm_integration.consts import (
16
+ from edu_rdm_integration.core.consts import (
17
17
  REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
18
18
  )
19
- from edu_rdm_integration.models import (
19
+ from edu_rdm_integration.rdm_models.models import (
20
20
  RegionalDataMartModelEnum,
21
21
  )
22
22
 
@@ -9,19 +9,14 @@ from edu_rdm_integration.adapters.caches import (
9
9
 
10
10
 
11
11
  class BaseExportDataRunnerCacheStorage(WebEduRunnerCacheStorage):
12
- """
13
- Базовый кеш помощников ранеров функций выгрузки данных для интеграции с "Региональная витрина данных".
14
- """
12
+ """Базовый кеш помощников ранеров функций выгрузки данных для интеграции с "Региональная витрина данных"."""
15
13
 
16
14
 
17
15
  class BaseExportDataFunctionCacheStorage(WebEduFunctionCacheStorage):
18
- """
19
- Базовый кеш помощников функций выгрузки данных для интеграции с "Региональная витрина данных".
20
- """
16
+ """Базовый кеш помощников функций выгрузки данных для интеграции с "Региональная витрина данных"."""
21
17
 
22
18
  def _prepare_entity_instances(self, model_ids, *args, **kwargs) -> list[BaseEntity]:
23
- """
24
- Формирование списка объектов сущностей для дальнейшей выгрузки.
19
+ """Формирование списка объектов сущностей для дальнейшей выгрузки.
25
20
 
26
21
  Необходимо переопределить логику формирования объектов у потомков.
27
22
  """
@@ -0,0 +1,7 @@
1
+ from edu_rdm_integration.adapters.errors import (
2
+ WebEduError,
3
+ )
4
+
5
+
6
+ class BaseExportDataError(WebEduError):
7
+ """Базовая ошибка функций выгрузки данных для интеграции с "Региональная витрина данных"."""
@@ -28,31 +28,31 @@ from educommon.integration_entities.mixins import (
28
28
  from edu_rdm_integration.adapters.functions import (
29
29
  WebEduLazySavingPredefinedQueueGlobalHelperFunction,
30
30
  )
31
- from edu_rdm_integration.consts import (
31
+ from edu_rdm_integration.core.consts import (
32
32
  LOGS_DELIMITER,
33
33
  )
34
- from edu_rdm_integration.export_data.base.helpers import (
34
+ from edu_rdm_integration.stages.export_data.consts import (
35
+ DELIMITER,
36
+ )
37
+ from edu_rdm_integration.stages.export_data.functions.base.helpers import (
35
38
  BaseExportDataFunctionHelper,
36
39
  )
37
- from edu_rdm_integration.export_data.base.results import (
40
+ from edu_rdm_integration.stages.export_data.functions.base.results import (
38
41
  BaseExportDataFunctionResult,
39
42
  )
40
- from edu_rdm_integration.export_data.base.validators import (
43
+ from edu_rdm_integration.stages.export_data.functions.base.validators import (
41
44
  BaseExportDataFunctionValidator,
42
45
  )
43
- from edu_rdm_integration.export_data.consts import (
44
- DELIMITER,
46
+ from edu_rdm_integration.stages.export_data.helpers import (
47
+ get_exporting_data_stage_attachment_path,
45
48
  )
46
- from edu_rdm_integration.models import (
49
+ from edu_rdm_integration.stages.export_data.models import (
47
50
  ExportingDataStage,
48
51
  ExportingDataSubStage,
49
52
  ExportingDataSubStageAttachment,
50
53
  ExportingDataSubStageEntity,
51
54
  ExportingDataSubStageStatus,
52
55
  )
53
- from edu_rdm_integration.utils import (
54
- get_exporting_data_stage_attachment_path,
55
- )
56
56
 
57
57
 
58
58
  class BaseExportDataFunction(
@@ -60,9 +60,7 @@ class BaseExportDataFunction(
60
60
  WebEduLazySavingPredefinedQueueGlobalHelperFunction,
61
61
  metaclass=ABCMeta,
62
62
  ):
63
- """
64
- Базовый класс функций выгрузки данных для интеграции с "Региональная витрина данных".
65
- """
63
+ """Базовый класс функций выгрузки данных для интеграции с "Региональная витрина данных"."""
66
64
 
67
65
  def __init__(self, *args, stage: ExportingDataStage, model_ids: list[Union[int, str]], **kwargs):
68
66
  super().__init__(*args, entities=self.entities, model_ids=model_ids, **kwargs)
@@ -72,8 +70,7 @@ class BaseExportDataFunction(
72
70
  function_id=self.uuid,
73
71
  )
74
72
  ExportingDataSubStageEntity.objects.create(
75
- exporting_data_sub_stage=self._sub_stage,
76
- entity_id=self.first_entity.key
73
+ exporting_data_sub_stage=self._sub_stage, entity_id=self.first_entity.key
77
74
  )
78
75
  # Проставление подэтапа выгрузки
79
76
  self.entities[0].main_model_enum.model.objects.filter(pk__in=model_ids).update(
@@ -95,36 +92,26 @@ class BaseExportDataFunction(
95
92
  self.has_data = False
96
93
 
97
94
  def _prepare_helper_class(self) -> type[BaseExportDataFunctionHelper]:
98
- """
99
- Возвращает класс помощника функции.
100
- """
95
+ """Возвращает класс помощника функции."""
101
96
  return BaseExportDataFunctionHelper
102
97
 
103
98
  def _prepare_validator_class(self) -> type[BaseExportDataFunctionValidator]:
104
- """
105
- Возвращает класс валидатора функции.
106
- """
99
+ """Возвращает класс валидатора функции."""
107
100
  return BaseExportDataFunctionValidator
108
101
 
109
102
  def _prepare_result_class(self) -> type[BaseExportDataFunctionResult]:
110
- """
111
- Возвращает класс результата функции.
112
- """
103
+ """Возвращает класс результата функции."""
113
104
  return BaseExportDataFunctionResult
114
105
 
115
106
  def _before_prepare(self, *args, **kwargs):
116
- """
117
- Выполнение действий функций системы.
118
- """
107
+ """Выполнение действий функций системы."""
119
108
  self._sub_stage.status_id = ExportingDataSubStageStatus.IN_PROGRESS.key
120
109
  self._sub_stage.save()
121
110
 
122
111
  logger.info(f'{LOGS_DELIMITER * 3}change status {repr(self._sub_stage)}')
123
112
 
124
113
  def _prepare_record(self, entity_instance) -> list[str]:
125
- """
126
- Формирование списка строковых значений полей.
127
- """
114
+ """Формирование списка строковых значений полей."""
128
115
  ordered_fields = self.first_entity.entity.get_ordered_fields()
129
116
  primary_key_fields = set(self.first_entity.entity.get_primary_key_fields())
130
117
  foreign_key_fields = set(self.first_entity.entity.get_foreign_key_fields())
@@ -145,9 +132,7 @@ class BaseExportDataFunction(
145
132
  return field_values
146
133
 
147
134
  def _prepare_data(self):
148
- """
149
- Преобразование собранных данных в удобный для выгрузки вид.
150
- """
135
+ """Преобразование собранных данных в удобный для выгрузки вид."""
151
136
  logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} prepare data..')
152
137
 
153
138
  for entity_instance in self.helper.cache.entity_instances:
@@ -169,29 +154,18 @@ class BaseExportDataFunction(
169
154
  )
170
155
 
171
156
  def _prepare_files(self):
172
- """
173
- Формирование файлов для дальнейшей выгрузки.
174
- """
157
+ """Формирование файлов для дальнейшей выгрузки."""
175
158
  logger.info(f'{LOGS_DELIMITER * 3}{self.__class__.__name__} prepare files..')
176
159
  has_record = False
177
160
 
178
161
  for operation in EntityLogOperation.values.keys():
179
-
180
162
  records = self._data[operation]
181
163
  if records:
182
- title_record = (
183
- f'{DELIMITER}'.join([
184
- field.lower()
185
- for field in self.first_entity.entity.get_ordered_fields()
186
- ])
164
+ title_record = f'{DELIMITER}'.join(
165
+ [field.lower() for field in self.first_entity.entity.get_ordered_fields()]
187
166
  )
188
167
 
189
- joined_records = (
190
- '\n'.join([
191
- title_record,
192
- *[f'{DELIMITER}'.join(record) for record in records]]
193
- )
194
- )
168
+ joined_records = '\n'.join([title_record, *[f'{DELIMITER}'.join(record) for record in records]])
195
169
 
196
170
  sub_stage_attachment = ExportingDataSubStageAttachment(
197
171
  exporting_data_sub_stage=self._sub_stage,
@@ -212,9 +186,7 @@ class BaseExportDataFunction(
212
186
  self.has_data = has_record
213
187
 
214
188
  def _prepare(self, *args, **kwargs):
215
- """
216
- Выполнение действий функции.
217
- """
189
+ """Выполнение действий функции."""
218
190
  if self.result.has_not_errors:
219
191
  if self.helper.cache.entity_instances:
220
192
  self._prepare_data()
@@ -223,9 +195,7 @@ class BaseExportDataFunction(
223
195
  logger.info(f'{LOGS_DELIMITER * 3} no data for preparing.')
224
196
 
225
197
  def before_run(self, *args, **kwargs):
226
- """
227
- Действия перед запуском.
228
- """
198
+ """Действия перед запуском."""
229
199
  super().before_run(*args, **kwargs)
230
200
 
231
201
  logger.info(
@@ -233,19 +203,18 @@ class BaseExportDataFunction(
233
203
  delimiter=LOGS_DELIMITER * 2,
234
204
  force_run='force ' if kwargs.get('is_force_run', False) else '',
235
205
  runner_name=self.__class__.__name__,
236
- log_chunks=f' with logs chunk {self._chunk_index}' if self._chunk_index else ''
206
+ log_chunks=f' with logs chunk {self._chunk_index}' if self._chunk_index else '',
237
207
  )
238
208
  )
239
209
 
240
210
  def run(self, *args, **kwargs):
241
- """
242
- Выполнение действий функции с дальнейшим сохранением объектов в базу при отсутствии ошибок.
243
- """
211
+ """Выполнение действий функции с дальнейшим сохранением объектов в базу при отсутствии ошибок."""
244
212
  super().run(*args, **kwargs)
245
213
 
246
214
  if self.result.has_not_errors:
247
215
  self._sub_stage.status_id = (
248
- ExportingDataSubStageStatus.FINISHED.key if not self.has_data
216
+ ExportingDataSubStageStatus.FINISHED.key
217
+ if not self.has_data
249
218
  else ExportingDataSubStageStatus.READY_FOR_EXPORT.key
250
219
  )
251
220
  else: