edu-rdm-integration 0.6.10__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/CHANGELOG.md +24 -0
  2. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/PKG-INFO +26 -2
  3. edu-rdm-integration-0.7.0/requirements/dependencies/internal_packages.txt +4 -0
  4. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/dependencies/internal_sources.txt +2 -2
  5. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/setup.py +1 -1
  6. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/base/managers.py +68 -9
  7. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/collect.py +1 -1
  8. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/tests.py +1 -1
  9. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +44 -21
  10. {edu-rdm-integration-0.6.10/src/edu_rdm_integration/function_templates/function_export_data_template → edu-rdm-integration-0.7.0/src/edu_rdm_integration/function_templates/function_collect_data_template}/helpers.py-tpl +1 -3
  11. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +9 -2
  12. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +10 -2
  13. edu-rdm-integration-0.7.0/src/edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +31 -0
  14. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/validators.py-tpl +0 -8
  15. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +13 -11
  16. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +29 -19
  17. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +25 -5
  18. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +22 -4
  19. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/validators.py-tpl +0 -8
  20. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/PKG-INFO +26 -2
  21. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/requires.txt +1 -1
  22. edu-rdm-integration-0.6.10/requirements/dependencies/internal_packages.txt +0 -4
  23. edu-rdm-integration-0.6.10/src/edu_rdm_integration/function_templates/function_export_data_template/tests.py-tpl +0 -1
  24. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/CONDUCT.md +0 -0
  25. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/LICENSE +0 -0
  26. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/MANIFEST.in +0 -0
  27. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/README.md +0 -0
  28. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/pyproject.toml +0 -0
  29. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/dependencies/development_packages.txt +0 -0
  30. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/dependencies/external_packages.txt +0 -0
  31. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/dependencies/production_packages.txt +0 -0
  32. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/dependencies/system_packages.txt +0 -0
  33. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/dependencies/testing_packages.txt +0 -0
  34. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/development.txt +0 -0
  35. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/production.txt +0 -0
  36. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/requirements/stage.txt +0 -0
  37. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/setup.cfg +0 -0
  38. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/__init__.py +0 -0
  39. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/__init__.py +0 -0
  40. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/apps.py +0 -0
  41. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/caches.py +0 -0
  42. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/consts.py +0 -0
  43. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/enums.py +0 -0
  44. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/errors.py +0 -0
  45. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/functions.py +0 -0
  46. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/helpers.py +0 -0
  47. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/managers.py +0 -0
  48. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/presenters.py +0 -0
  49. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/receivers.py +0 -0
  50. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/results.py +0 -0
  51. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/runners.py +0 -0
  52. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/strategies.py +0 -0
  53. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/strings.py +0 -0
  54. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/tests.py +0 -0
  55. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/adapters/validators.py +0 -0
  56. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/app_settings.py +0 -0
  57. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/apps.py +0 -0
  58. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
  59. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
  60. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
  61. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
  62. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
  63. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
  64. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
  65. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
  66. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
  67. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
  68. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
  69. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
  70. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
  71. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
  72. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
  73. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
  74. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
  75. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
  76. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
  77. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
  78. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
  79. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/calculated/strategies.py +0 -0
  80. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/generators.py +0 -0
  81. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
  82. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
  83. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
  84. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
  85. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
  86. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
  87. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
  88. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
  89. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
  90. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
  91. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
  92. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
  93. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
  94. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
  95. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
  96. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
  97. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +0 -0
  98. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/consts.py +0 -0
  99. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/entities.py +0 -0
  100. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/enum_register/__init__.py +0 -0
  101. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/enum_register/mixins.py +0 -0
  102. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/enum_register/register.py +0 -0
  103. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/enums.py +0 -0
  104. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/__init__.py +0 -0
  105. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
  106. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
  107. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
  108. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
  109. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
  110. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/functions.py +0 -0
  111. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
  112. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
  113. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
  114. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
  115. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/results.py +0 -0
  116. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
  117. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
  118. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
  119. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
  120. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/consts.py +0 -0
  121. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/export.py +0 -0
  122. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/generators.py +0 -0
  123. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/helpers.py +0 -0
  124. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/export_data/strategies.py +0 -0
  125. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/__init__.py +0 -0
  126. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
  127. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/apps.py-tpl +0 -0
  128. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/caches.py-tpl +0 -0
  129. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/consts.py-tpl +0 -0
  130. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/enums.py-tpl +0 -0
  131. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/errors.py-tpl +0 -0
  132. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
  133. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/results.py-tpl +0 -0
  134. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/strings.py-tpl +0 -0
  135. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/__init__.py-tpl +0 -0
  136. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/apps.py-tpl +0 -0
  137. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/consts.py-tpl +0 -0
  138. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/enums.py-tpl +0 -0
  139. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/errors.py-tpl +0 -0
  140. {edu-rdm-integration-0.6.10/src/edu_rdm_integration/function_templates/function_collect_data_template → edu-rdm-integration-0.7.0/src/edu_rdm_integration/function_templates/function_export_data_template}/helpers.py-tpl +0 -0
  141. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/presenters.py-tpl +0 -0
  142. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/results.py-tpl +0 -0
  143. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/function_templates/function_export_data_template/strings.py-tpl +0 -0
  144. {edu-rdm-integration-0.6.10/src/edu_rdm_integration/function_templates/function_collect_data_template → edu-rdm-integration-0.7.0/src/edu_rdm_integration/function_templates/function_export_data_template}/tests.py-tpl +0 -0
  145. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/__init__.py +0 -0
  146. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/commands/__init__.py +0 -0
  147. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
  148. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/commands/datamart_status.py +0 -0
  149. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/commands/datamart_upload.py +0 -0
  150. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
  151. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/management/general.py +0 -0
  152. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/mapping.py +0 -0
  153. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
  154. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
  155. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
  156. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/migrations/__init__.py +0 -0
  157. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/models.py +0 -0
  158. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/signals.py +0 -0
  159. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/storages.py +0 -0
  160. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration/utils.py +0 -0
  161. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/SOURCES.txt +0 -0
  162. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
  163. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -0
  164. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/not-zip-safe +0 -0
  165. {edu-rdm-integration-0.6.10 → edu-rdm-integration-0.7.0}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -29,6 +29,30 @@
29
29
  ### Удалено
30
30
 
31
31
 
32
+ ## [0.7.0] - 2023-12-02
33
+
34
+ Добавлено формирование логов для последующего скачивания.
35
+ Доработаны шаблоны реализации Функций сбора и выгрузки данных.
36
+ Написана документация для реализации функционала новой Сущности.
37
+ Добавлено получение моделей на основе данных plugins_info при работе метода _get_loggable_models.
38
+
39
+ ### Добавлено
40
+
41
+ - [EDUSCHL-20072](https://jira.bars.group/browse/EDUSCHL-20072)
42
+ MINOR - Реестр сбора и выгрузки. Логи
43
+
44
+ - [EDUSCHL-20954](https://jira.bars.group/browse/EDUSCHL-20954)
45
+ PATCH Добавлена документация для реализации функционала новой Сущности.
46
+
47
+ ### Изменено
48
+
49
+ - [EDUSCHL-20954](https://jira.bars.group/browse/EDUSCHL-20954)
50
+ PATCH Произведена доработка шаблонов Функций сбора и выгрузки данных.
51
+
52
+ - [EDUSCHL-19576](https://jira.bars.group/browse/EDUSCHL-19576)
53
+ PATCH - Добавлено получение моделей на основе данных plugins_info при работе метода _get_loggable_models.
54
+
55
+
32
56
  ## [0.6.10] - 2023-11-30
33
57
 
34
58
  При добавлении префикса RDM_EXPORT_ENTITY_ID_PREFIX в классе BaseExportDataFunctionHelper
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: edu-rdm-integration
3
- Version: 0.6.10
3
+ Version: 0.7.0
4
4
  Summary: Интеграция с Региональной витриной данных
5
5
  Home-page:
6
6
  Download-URL:
@@ -29,7 +29,7 @@ Requires-Dist: wheel<0.42,>=0.37.1
29
29
  Requires-Dist: transliterate<2
30
30
  Requires-Dist: Django<2.3,>=1.11
31
31
  Requires-Dist: educommon<4,>=3.0.0
32
- Requires-Dist: function-tools<1,>=0.5.0
32
+ Requires-Dist: function-tools<1,>=0.8.0
33
33
  Requires-Dist: m3-db-utils<1,>=0.3.8
34
34
  Requires-Dist: uploader-client<1,>=0.2.1
35
35
 
@@ -290,6 +290,30 @@ Requires-Dist: uploader-client<1,>=0.2.1
290
290
  ### Удалено
291
291
 
292
292
 
293
+ ## [0.7.0] - 2023-12-02
294
+
295
+ Добавлено формирование логов для последующего скачивания.
296
+ Доработаны шаблоны реализации Функций сбора и выгрузки данных.
297
+ Написана документация для реализации функционала новой Сущности.
298
+ Добавлено получение моделей на основе данных plugins_info при работе метода _get_loggable_models.
299
+
300
+ ### Добавлено
301
+
302
+ - [EDUSCHL-20072](https://jira.bars.group/browse/EDUSCHL-20072)
303
+ MINOR - Реестр сбора и выгрузки. Логи
304
+
305
+ - [EDUSCHL-20954](https://jira.bars.group/browse/EDUSCHL-20954)
306
+ PATCH Добавлена документация для реализации функционала новой Сущности.
307
+
308
+ ### Изменено
309
+
310
+ - [EDUSCHL-20954](https://jira.bars.group/browse/EDUSCHL-20954)
311
+ PATCH Произведена доработка шаблонов Функций сбора и выгрузки данных.
312
+
313
+ - [EDUSCHL-19576](https://jira.bars.group/browse/EDUSCHL-19576)
314
+ PATCH - Добавлено получение моделей на основе данных plugins_info при работе метода _get_loggable_models.
315
+
316
+
293
317
  ## [0.6.10] - 2023-11-30
294
318
 
295
319
  При добавлении префикса RDM_EXPORT_ENTITY_ID_PREFIX в классе BaseExportDataFunctionHelper
@@ -0,0 +1,4 @@
1
+ educommon>=3.0.0,<4
2
+ function-tools>=0.8.0,<1
3
+ m3-db-utils>=0.3.8,<1
4
+ uploader-client>=0.2.1,<1
@@ -1,4 +1,4 @@
1
1
  -e git+ssh://git@stash.bars-open.ru:7999/edubase/educommon.git@release/3.0#egg=educommon
2
- -e git+ssh://git@stash.bars-open.ru:7999/m3/function-tools.git@release/0.5#egg=function_tools
2
+ -e git+ssh://git@stash.bars-open.ru:7999/m3/function-tools.git@release/0.8#egg=function_tools
3
3
  -e git+ssh://git@stash.bars-open.ru:7999/m3/m3_db_utils.git@release/0.3#egg=m3_db_utils
4
- -e git+ssh://git@stash.bars-open.ru:7999/eduschl/uploader-client.git@release/0.1#egg=uploader-client
4
+ -e git+ssh://git@stash.bars-open.ru:7999/eduschl/uploader-client.git@release/0.2#egg=uploader-client
@@ -17,7 +17,7 @@ from setuptools import (
17
17
 
18
18
  PROJECT = 'edu_rdm_integration'
19
19
 
20
- VERSION = '0.6.10'
20
+ VERSION = '0.7.0'
21
21
 
22
22
  current_dir_path = Path().resolve()
23
23
 
@@ -1,13 +1,23 @@
1
+ import logging
2
+ import os
1
3
  from abc import (
2
4
  ABCMeta,
3
5
  )
4
6
  from datetime import (
5
7
  datetime,
6
8
  )
9
+ from django.apps import (
10
+ apps,
11
+ )
7
12
  from typing import (
8
13
  TYPE_CHECKING,
9
14
  List,
10
15
  Type,
16
+ Set,
17
+ )
18
+
19
+ from django.conf import (
20
+ settings,
11
21
  )
12
22
 
13
23
  from educommon import (
@@ -61,21 +71,46 @@ class BaseCollectingDataRunnerManager(WebEduRunnerManager, metaclass=ABCMeta):
61
71
  self._logs = logs
62
72
 
63
73
  self._logs_period_started_at = logs_period_started_at
64
-
65
- logger.info(f'{LOGS_DELIMITER}logs period started at {self._logs_period_started_at.strftime(DATETIME_FORMAT)}')
66
-
67
74
  self._logs_period_ended_at = logs_period_ended_at
68
-
69
- logger.info(f'{LOGS_DELIMITER}log period ended at {self._logs_period_ended_at.strftime(DATETIME_FORMAT)}')
70
-
71
75
  self._stage = CollectingExportedDataStage.objects.create(
72
76
  manager_id=self.uuid,
73
77
  logs_period_started_at=logs_period_started_at,
74
78
  logs_period_ended_at=logs_period_ended_at,
75
79
  )
76
80
 
81
+ self._command_id = kwargs.get('command_id')
82
+ self._file_handler = None
83
+
84
+ self._add_file_handler()
85
+
86
+ logger.info(f'{LOGS_DELIMITER}logs period started at {self._logs_period_started_at.strftime(DATETIME_FORMAT)}')
87
+ logger.info(f'{LOGS_DELIMITER}log period ended at {self._logs_period_ended_at.strftime(DATETIME_FORMAT)}')
77
88
  logger.info(f'{LOGS_DELIMITER}created {repr(self._stage)}')
78
89
 
90
+ def _add_file_handler(self) -> None:
91
+ """
92
+ Добавляет обработчик логов.
93
+ """
94
+ if self._command_id:
95
+ self._file_handler = logging.FileHandler(
96
+ os.path.join(
97
+ settings.MEDIA_ROOT,
98
+ settings.RDM_COLLECT_LOG_DIR,
99
+ f'{self._stage.id}.log',
100
+ ),
101
+ )
102
+ logging.getLogger('info_logger').addHandler(self._file_handler)
103
+ logging.getLogger('exception_logger').addHandler(self._file_handler)
104
+
105
+ def _remove_file_handler(self) -> None:
106
+ """
107
+ Удаляет обработчик логов.
108
+ """
109
+ if self._command_id:
110
+ logging.getLogger('info_logger').removeHandler(self._file_handler)
111
+ logging.getLogger('exception_logger').removeHandler(self._file_handler)
112
+ self._file_handler.close()
113
+
79
114
  def _collect_runner_regional_data_mart_integration_entities(
80
115
  self,
81
116
  runner_class: Type[BaseRunner],
@@ -98,11 +133,11 @@ class BaseCollectingDataRunnerManager(WebEduRunnerManager, metaclass=ABCMeta):
98
133
 
99
134
  runner_regional_data_mart_integration_entities.extend(entities)
100
135
 
101
- def _get_loggable_models(self) -> List['Model']:
136
+ def _get_loggable_models(self) -> Set['Model']:
102
137
  """
103
138
  Возвращает перечень моделей по которым собираются логи.
104
139
  """
105
- loggable_models = []
140
+ loggable_models = set()
106
141
  regional_data_mart_integration_entities = []
107
142
 
108
143
  self._collect_runner_regional_data_mart_integration_entities(
@@ -110,7 +145,19 @@ class BaseCollectingDataRunnerManager(WebEduRunnerManager, metaclass=ABCMeta):
110
145
  regional_data_mart_integration_entities,
111
146
  )
112
147
  for entity in regional_data_mart_integration_entities:
113
- loggable_models.extend(entity.loggable_models)
148
+ loggable_models.update(entity.loggable_models)
149
+ # TODO: EDUSCHL-20938 Произвести рефакторинг plugins_info.
150
+ if hasattr(entity, 'plugins_info'):
151
+ for app_name, app_content in entity.plugins_info.items():
152
+ if not apps.is_installed(app_name):
153
+ continue
154
+
155
+ app_label, model_name = app_content.split('.')
156
+ try:
157
+ model = apps.get_model(app_label=app_label, model_name=model_name)
158
+ loggable_models.add(model)
159
+ except (ValueError, LookupError):
160
+ continue
114
161
 
115
162
  return loggable_models
116
163
 
@@ -177,3 +224,15 @@ class BaseCollectingDataRunnerManager(WebEduRunnerManager, metaclass=ABCMeta):
177
224
  self._stage.save()
178
225
 
179
226
  logger.info(f'{LOGS_DELIMITER}change status {repr(self._stage)}')
227
+
228
+ def run(self, *args, **kwargs):
229
+ """
230
+ Запускает менеджер ранера.
231
+ """
232
+ try:
233
+ super().run(*args, **kwargs)
234
+ except Exception as err:
235
+ logger.exception(err)
236
+ raise
237
+ finally:
238
+ self._remove_file_handler()
@@ -138,7 +138,7 @@ class BaseCollectModelsData:
138
138
 
139
139
  for model_key, manager_class in self._collecting_data_managers.items():
140
140
  model_logs = logs.get(model_key) if logs else None
141
- manager = manager_class(*args, logs=model_logs, **kwargs)
141
+ manager = manager_class(*args, logs=model_logs, command_id=self.command_id, **kwargs)
142
142
 
143
143
  if self.command_id:
144
144
  # Подается сигнал, что менеджер создан:
@@ -127,7 +127,7 @@ class BaseCollectingFunctionTestCase(TestCase):
127
127
  operation=operation,
128
128
  )
129
129
 
130
- def create_sub_stage(self, *class_names: Tuple[str, str]) -> CollectingExportedDataSubStage:
130
+ def create_sub_stage(self, *class_names: str) -> CollectingExportedDataSubStage:
131
131
  """Создает подэтап сбора данных."""
132
132
  function_tools_entities = dict(
133
133
  Entity.objects.filter(
@@ -1,4 +1,6 @@
1
1
  from typing import (
2
+ TYPE_CHECKING,
3
+ Any,
2
4
  Dict,
3
5
  List,
4
6
  Optional,
@@ -12,6 +14,13 @@ from educommon.integration_entities.helpers import (
12
14
  EntitySaver,
13
15
  )
14
16
 
17
+ from edu_rdm_integration.consts import (
18
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
19
+ )
20
+ from edu_rdm_integration.models import (
21
+ RegionalDataMartModelEnum,
22
+ )
23
+
15
24
  from {{ strategy.function_class_module }} import (
16
25
  {{ strategy.function_class_name }},
17
26
  )
@@ -27,6 +36,12 @@ from {{ function_python_path }}.validators import (
27
36
  )
28
37
 
29
38
 
39
+ if TYPE_CHECKING:
40
+ from m3_db_utils.models import (
41
+ ModelEnumValue,
42
+ )
43
+
44
+
30
45
  class {{ camel_case_function_name }}Function({{ strategy.function_class_name }}):
31
46
  """Функция "{{ function_verbose_name }}"."""
32
47
 
@@ -37,20 +52,15 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
37
52
  ):
38
53
  super().__init__(*args, **kwargs)
39
54
 
40
- # Ключ результата работы функции, используется в презентере
41
- # self.result.key =
42
- # Сообщение об успешном выполнении функции
43
- # self.result.message =
44
-
45
55
  self._to_save_entities = {
46
56
  EntityLogOperation.CREATE: {},
47
57
  EntityLogOperation.UPDATE: {},
48
58
  }
49
59
 
50
60
  self._preparing_functions_map = {
51
- EntityLogOperation.CREATE: self._prepare_entity_for_create,
52
- EntityLogOperation.UPDATE: self._prepare_entity_for_update,
53
- EntityLogOperation.DELETE: self._prepare_entity_for_delete,
61
+ EntityLogOperation.CREATE: self._prepare_model_instances_for_create,
62
+ EntityLogOperation.UPDATE: self._prepare_model_instances_for_update,
63
+ EntityLogOperation.DELETE: self._prepare_model_instances_for_delete,
54
64
  }
55
65
 
56
66
  @classmethod
@@ -59,7 +69,7 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
59
69
 
60
70
  Если ничего не возвращает, то регистрация в БД не будет произведена.
61
71
  """
62
- return
72
+ return '{{ strategy.function_uuid }}'
63
73
 
64
74
  @classmethod
65
75
  def _prepare_verbose_name(cls) -> str:
@@ -69,9 +79,21 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
69
79
  @classmethod
70
80
  def _prepare_tags(cls) -> List[str]:
71
81
  """Список тегов, по которым сущность можно будет осуществлять поиск."""
72
- tags = []
82
+ tags = [
83
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
84
+ ]
85
+
73
86
  return tags
74
87
 
88
+ @classmethod
89
+ def _prepare_entities(cls) -> List['ModelEnumValue']:
90
+ """Формирование списка ключей модели-перечисления моделей РВД."""
91
+ rdm_models = [
92
+ RegionalDataMartModelEnum.,
93
+ ]
94
+
95
+ return rdm_models
96
+
75
97
  def _prepare_helper_class(self) -> Type[{{ camel_case_function_name }}FunctionHelper]:
76
98
  """Возвращает класс помощника функции."""
77
99
  return {{ camel_case_function_name }}FunctionHelper
@@ -84,23 +106,24 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
84
106
  """Возвращает класс результата функции."""
85
107
  return {{ camel_case_function_name }}FunctionResult
86
108
 
87
- def _prepare_entity_for_create(self, class_id: int, **kwargs) -> None:
88
- """Подготовка объектов модели для создания."""
109
+ def _prepare_model_instances_for_create(self, class_id: int, **kwargs) -> None:
110
+ """Подготовка объектов модели РВД для создания."""
89
111
  raise NotImplementedError
90
112
 
91
- def _prepare_entity_for_update(self, class_id: int, log_changes: Dict[str, any], **kwargs) -> None:
92
- """Подготовка объектов модели для обновления."""
113
+ def _prepare_model_instances_for_update(self, class_id: int, log_changes: Dict[str, Any], **kwargs) -> None:
114
+ """Подготовка объектов модели РВД для обновления."""
93
115
  raise NotImplementedError
94
116
 
95
- def _prepare_entity_for_delete(self, class_id: int, **kwargs) -> None:
96
- """Подготовка объектов модели для удаления."""
117
+ def _prepare_model_instances_for_delete(self, class_id: int, **kwargs) -> None:
118
+ """Подготовка объектов модели РВД для удаления."""
97
119
  raise NotImplementedError
98
120
 
99
- def _prepare_entity_instances(self):
100
- """Подготовка объектов сущности для сохранения.
121
+ def _prepare_model_instances(self):
122
+ """Подготовка объектов модели РВД для сохранения.
101
123
 
102
124
  Производится обработка логов и на их основе выбирается подходящий метод для дальнейшей обработки.
103
125
  """
126
+ # !!! Удалить после реализации !!!
104
127
  # for some_id, log_changes in <some logs>:
105
128
  # for log_change in log_changes:
106
129
  # func = self._preparing_functions_map[log_change.operation]
@@ -109,12 +132,12 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
109
132
 
110
133
  def _prepare(self, *args, **kwargs):
111
134
  """Выполнение действий функций системы."""
112
- save_entities = EntitySaver(
135
+ save_model_instances = EntitySaver(
113
136
  to_save_entities=self._to_save_entities,
114
137
  model=self.first_entity.model,
115
138
  )
116
139
 
117
- self._prepare_entity_instances()
140
+ self._prepare_model_instances()
118
141
 
119
142
  if self.result.has_not_errors:
120
- self.do_on_save(save_entities)
143
+ self.do_on_save(save_model_instances)
@@ -27,7 +27,5 @@ class {{ camel_case_function_name }}FunctionHelper({{ strategy.function_helper_c
27
27
  """Помощник функции "{{ function_verbose_name }}"."""
28
28
 
29
29
  def _prepare_cache_class(self) -> Type[{{ camel_case_function_name }}FunctionCacheStorage]:
30
- """
31
- Возвращает класс кеша помощника функции.
32
- """
30
+ """Возвращает класс кеша помощника функции."""
33
31
  return {{ camel_case_function_name }}FunctionCacheStorage
@@ -4,6 +4,10 @@ from typing import (
4
4
  Type,
5
5
  )
6
6
 
7
+ from edu_rdm_integration.consts import (
8
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
9
+ )
10
+
7
11
  from {{ strategy.manager_class_module }} import (
8
12
  {{ strategy.manager_class_name }},
9
13
  )
@@ -22,7 +26,7 @@ class {{ camel_case_function_name }}RunnerManager({{ strategy.manager_class_name
22
26
 
23
27
  Если ничего не возвращает, то регистрация в БД не будет произведена.
24
28
  """
25
- return
29
+ return '{{ strategy.manager_uuid }}'
26
30
 
27
31
  @classmethod
28
32
  def _prepare_verbose_name(cls) -> str:
@@ -32,7 +36,10 @@ class {{ camel_case_function_name }}RunnerManager({{ strategy.manager_class_name
32
36
  @classmethod
33
37
  def _prepare_tags(cls) -> List[str]:
34
38
  """Список тегов, по которым сущность можно будет осуществлять поиск."""
35
- tags = []
39
+ tags = [
40
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
41
+ ]
42
+
36
43
  return tags
37
44
 
38
45
  @classmethod
@@ -8,6 +8,10 @@ from function_tools.general import (
8
8
  RunnableObject,
9
9
  )
10
10
 
11
+ from edu_rdm_integration.consts import (
12
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
13
+ )
14
+
11
15
  from {{ strategy.runner_class_module }} import (
12
16
  {{ strategy.runner_class_name }},
13
17
  )
@@ -35,7 +39,7 @@ class {{ camel_case_function_name }}Runner({{ strategy.runner_class_name }}):
35
39
 
36
40
  Если ничего не возвращает, то регистрация в БД не будет произведена.
37
41
  """
38
- return
42
+ return '{{ strategy.runner_uuid }}'
39
43
 
40
44
  @classmethod
41
45
  def _prepare_verbose_name(cls) -> str:
@@ -45,7 +49,11 @@ class {{ camel_case_function_name }}Runner({{ strategy.runner_class_name }}):
45
49
  @classmethod
46
50
  def _prepare_tags(cls) -> List[str]:
47
51
  """Список тегов, по которым сущность можно будет осуществлять поиск."""
48
- return []
52
+ tags = [
53
+ REGIONAL_DATA_MART_INTEGRATION_COLLECTING_DATA,
54
+ ]
55
+
56
+ return tags
49
57
 
50
58
  @classmethod
51
59
  def _prepare_runnable_classes(cls) -> Optional[List[Type[RunnableObject]]]:
@@ -0,0 +1,31 @@
1
+ from typing import (
2
+ TYPE_CHECKING,
3
+ Type,
4
+ )
5
+
6
+ from edu_rdm_integration.collect_data.tests import (
7
+ BaseCollectingFunctionTestCase,
8
+ )
9
+
10
+ from {{ function_python_path }}.managers import (
11
+ {{ camel_case_function_name }}RunnerManager,
12
+ )
13
+
14
+
15
+ if TYPE_CHECKING:
16
+ from function_tools.managers import (
17
+ RunnerManager,
18
+ )
19
+
20
+
21
+ class Base{{ camel_case_function_name }}TestCase(BaseCollectingFunctionTestCase):
22
+ """Базовый класс тестирования Функции "{{ function_verbose_name }}"."""
23
+
24
+ @property
25
+ def manager(self) -> Type['RunnerManager']:
26
+ """Менеджер раннера Функции сбора."""
27
+ return {{ camel_case_function_name }}RunnerManager
28
+
29
+ def setUp(self) -> None:
30
+ """Подготавливает фикстуры."""
31
+ super().setUp()
@@ -9,14 +9,6 @@ from {{ strategy.runner_validator_class_module }} import (
9
9
  class {{ camel_case_function_name }}RunnerValidator({{ strategy.runner_validator_class_name }}):
10
10
  """Валидатор ранера функции "{{ function_verbose_name }}"."""
11
11
 
12
- def validate(self, runnable):
13
- """Выполнение валидации."""
14
- super().validate(runnable=runnable)
15
-
16
12
 
17
13
  class {{ camel_case_function_name }}FunctionValidator({{ strategy.function_validator_class_name }}):
18
14
  """Валидатор функции "{{ function_verbose_name }}"."""
19
-
20
- def validate(self, runnable):
21
- """Выполнение валидации."""
22
- super().validate(runnable=runnable)
@@ -1,3 +1,8 @@
1
+ from typing import (
2
+ TYPE_CHECKING,
3
+ List,
4
+ )
5
+
1
6
  from {{ strategy.function_cache_storage_class_module }} import (
2
7
  {{ strategy.function_cache_storage_class_name }},
3
8
  )
@@ -6,24 +11,21 @@ from {{ strategy.runner_cache_storage_class_module }} import (
6
11
  )
7
12
 
8
13
 
9
- class {{ camel_case_function_name }}RunnerCacheStorage({{ strategy.runner_cache_storage_class_name }}):
10
- """Кеш помощника ранера функции "{{ function_verbose_name }}"."""
14
+ if TYPE_CHECKING:
15
+ from educommon.integration_entities.entities import (
16
+ BaseEntity,
17
+ )
11
18
 
12
- def __init__(self, *args, **kwargs):
13
- """Инициализация хранилища кешей ранера."""
14
19
 
15
- super().__init__(*args, **kwargs)
16
-
17
- def _prepare(self, *args, **kwargs):
18
- """Наполнение кешей данными."""
19
- super()._prepare(*args, **kwargs)
20
+ class {{ camel_case_function_name }}RunnerCacheStorage({{ strategy.runner_cache_storage_class_name }}):
21
+ """Кеш помощника ранера функции "{{ function_verbose_name }}"."""
20
22
 
21
23
 
22
24
  class {{ camel_case_function_name }}FunctionCacheStorage({{ strategy.function_cache_storage_class_name }}):
23
25
  """Кеш помощника функции "{{ function_verbose_name }}"."""
24
26
 
25
- def _prepare_entity_instances(self, model_ids, *args, **kwargs) -> List[BaseEntity]:
26
- """Подготовка данных для экспорта."""
27
+ def _prepare_entity_instances(self, model_ids, *args, **kwargs) -> List['BaseEntity']:
28
+ """Подготовка данных для экспорта в виде экземпляров сущности."""
27
29
  instances = []
28
30
 
29
31
  return instances
@@ -1,9 +1,17 @@
1
1
  from typing import (
2
+ TYPE_CHECKING,
2
3
  List,
3
4
  Optional,
4
5
  Type,
5
6
  )
6
7
 
8
+ from edu_rdm_integration.consts import (
9
+ REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
10
+ )
11
+ from edu_rdm_integration.models import (
12
+ RegionalDataMartEntityEnum,
13
+ )
14
+
7
15
  from {{ strategy.function_class_module }} import (
8
16
  {{ strategy.function_class_name }},
9
17
  )
@@ -19,20 +27,14 @@ from {{ function_python_path }}.validators import (
19
27
  )
20
28
 
21
29
 
22
- class {{ camel_case_function_name }}Function({{ strategy.function_class_name }}):
23
- """Функция "{{ function_verbose_name }}"."""
30
+ if TYPE_CHECKING:
31
+ from m3_db_utils.models import (
32
+ ModelEnumValue,
33
+ )
24
34
 
25
- def __init__(
26
- self,
27
- *args,
28
- **kwargs,
29
- ):
30
- super().__init__(*args, **kwargs)
31
35
 
32
- # Ключ результата работы функции, используется в презентере
33
- # self.result.key =
34
- # Сообщение об успешном выполнении функции
35
- # self.result.message =
36
+ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }}):
37
+ """Функция "{{ function_verbose_name }}"."""
36
38
 
37
39
  @classmethod
38
40
  def _prepare_uuid(cls) -> Optional[str]:
@@ -40,17 +42,30 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
40
42
 
41
43
  Если ничего не возвращает, то регистрация в БД не будет произведена.
42
44
  """
43
- return
45
+ return '{{ strategy.function_uuid }}'
44
46
 
45
47
  @classmethod
46
48
  def _prepare_verbose_name(cls) -> str:
47
49
  """Полное наименование для дальнейшей регистрации и отображения пользователю."""
48
50
  return 'Функция "{{ function_verbose_name }}"'
49
51
 
52
+ @classmethod
53
+ def _prepare_entities(cls) -> List['ModelEnumValue']:
54
+ """Формирование списка ключей модели-перечисления сущностей."""
55
+ entities = [
56
+ RegionalDataMartEntityEnum.,
57
+ ]
58
+
59
+ return entities
60
+
50
61
  @classmethod
51
62
  def _prepare_tags(cls) -> List[str]:
52
63
  """Список тегов, по которым сущность можно будет осуществлять поиск."""
53
- return []
64
+ tags = [
65
+ REGIONAL_DATA_MART_INTEGRATION_EXPORTING_DATA,
66
+ ]
67
+
68
+ return tags
54
69
 
55
70
  def _prepare_helper_class(self) -> Type[{{ camel_case_function_name }}FunctionHelper]:
56
71
  """Возвращает класс помощника функции."""
@@ -63,8 +78,3 @@ class {{ camel_case_function_name }}Function({{ strategy.function_class_name }})
63
78
  def _prepare_result_class(self) -> Type[{{ camel_case_function_name }}FunctionResult]:
64
79
  """Возвращает класс результата функции."""
65
80
  return {{ camel_case_function_name }}FunctionResult
66
-
67
- def _prepare(self, *args, **kwargs):
68
- """Выполнение действий функции."""
69
- if self.result.has_not_errors:
70
- pass