edu-rdm-integration 3.11.2__py3-none-any.whl → 3.13.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 (60) hide show
  1. edu_rdm_integration/core/storages.py +11 -11
  2. edu_rdm_integration/pipelines/transfer/mixins.py +4 -4
  3. edu_rdm_integration/stages/collect_data/function_templates/function_collect_data_template/tests.py-tpl +4 -4
  4. edu_rdm_integration/stages/collect_data/functions/base/functions.py +3 -3
  5. edu_rdm_integration/stages/collect_data/functions/base/helpers.py +5 -5
  6. edu_rdm_integration/stages/collect_data/functions/base/managers.py +6 -6
  7. edu_rdm_integration/stages/collect_data/functions/base/mixins.py +6 -6
  8. edu_rdm_integration/stages/collect_data/functions/base/runners.py +3 -3
  9. edu_rdm_integration/stages/collect_data/functions/calculated/base/caches.py +5 -5
  10. edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +3 -3
  11. edu_rdm_integration/stages/collect_data/functions/calculated/base/presenters.py +3 -3
  12. edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +5 -5
  13. edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +5 -5
  14. edu_rdm_integration/stages/collect_data/functions/calculated/strategies.py +3 -3
  15. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/caches.py +5 -5
  16. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +3 -3
  17. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/presenters.py +3 -3
  18. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +5 -5
  19. edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +5 -5
  20. edu_rdm_integration/stages/collect_data/functions/non_calculated/strategies.py +3 -3
  21. edu_rdm_integration/stages/collect_data/models.py +3 -3
  22. edu_rdm_integration/stages/collect_data/operations.py +3 -3
  23. edu_rdm_integration/stages/collect_data/tests.py +10 -10
  24. edu_rdm_integration/stages/export_data/function_templates/function_export_data_template/runners.py-tpl +3 -3
  25. edu_rdm_integration/stages/export_data/functions/base/caches.py +5 -5
  26. edu_rdm_integration/stages/export_data/functions/base/consts.py +3 -0
  27. edu_rdm_integration/stages/export_data/functions/base/errors.py +3 -3
  28. edu_rdm_integration/stages/export_data/functions/base/functions.py +24 -10
  29. edu_rdm_integration/stages/export_data/functions/base/helpers.py +5 -5
  30. edu_rdm_integration/stages/export_data/functions/base/managers.py +3 -3
  31. edu_rdm_integration/stages/export_data/functions/base/presenters.py +3 -3
  32. edu_rdm_integration/stages/export_data/functions/base/results.py +5 -5
  33. edu_rdm_integration/stages/export_data/functions/base/runners.py +3 -3
  34. edu_rdm_integration/stages/export_data/functions/base/tests.py +161 -0
  35. edu_rdm_integration/stages/export_data/functions/base/validators.py +5 -5
  36. edu_rdm_integration/stages/export_data/models.py +4 -4
  37. edu_rdm_integration/stages/export_data/operations.py +4 -4
  38. edu_rdm_integration/stages/export_data/strategies.py +3 -3
  39. {edu_rdm_integration-3.11.2.dist-info → edu_rdm_integration-3.13.0.dist-info}/METADATA +3 -3
  40. {edu_rdm_integration-3.11.2.dist-info → edu_rdm_integration-3.13.0.dist-info}/RECORD +43 -60
  41. edu_rdm_integration/adapters/__init__.py +0 -1
  42. edu_rdm_integration/adapters/apps.py +0 -26
  43. edu_rdm_integration/adapters/caches.py +0 -56
  44. edu_rdm_integration/adapters/consts.py +0 -1
  45. edu_rdm_integration/adapters/enums.py +0 -1
  46. edu_rdm_integration/adapters/errors.py +0 -24
  47. edu_rdm_integration/adapters/functions.py +0 -99
  48. edu_rdm_integration/adapters/helpers.py +0 -63
  49. edu_rdm_integration/adapters/managers.py +0 -61
  50. edu_rdm_integration/adapters/presenters.py +0 -37
  51. edu_rdm_integration/adapters/receivers.py +0 -35
  52. edu_rdm_integration/adapters/results.py +0 -65
  53. edu_rdm_integration/adapters/runners.py +0 -140
  54. edu_rdm_integration/adapters/strategies.py +0 -166
  55. edu_rdm_integration/adapters/strings.py +0 -1
  56. edu_rdm_integration/adapters/tests.py +0 -1
  57. edu_rdm_integration/adapters/validators.py +0 -58
  58. {edu_rdm_integration-3.11.2.dist-info → edu_rdm_integration-3.13.0.dist-info}/WHEEL +0 -0
  59. {edu_rdm_integration-3.11.2.dist-info → edu_rdm_integration-3.13.0.dist-info}/licenses/LICENSE +0 -0
  60. {edu_rdm_integration-3.11.2.dist-info → edu_rdm_integration-3.13.0.dist-info}/top_level.txt +0 -0
@@ -1,65 +0,0 @@
1
- from abc import (
2
- ABCMeta,
3
- )
4
-
5
- from function_tools.results import (
6
- BaseRunnableResult,
7
- )
8
-
9
-
10
- class WebEduRunnerResult(BaseRunnableResult, metaclass=ABCMeta):
11
- """Базовый класс результатов работы исполнителей функций продуктов Образования.
12
-
13
- Предоставляет базовую структуру для представления результатов выполнения
14
- исполнителей (runners) в контексте образовательных продуктов. Наследует
15
- функциональность BaseRunnableResult и адаптирует её для специфики
16
- образовательной системы.
17
-
18
- Основные возможности:
19
- - Хранение результатов выполнения исполнителей
20
- - Доступ к данным результата и метаданным
21
- - Поддержка цепочки обработки результатов
22
- - Интеграция с системой логирования
23
-
24
- Note:
25
- - Является абстрактным классом
26
- - Требует реализации в конкретных классах результатов
27
- - Поддерживает стандартные операции с результатами
28
- - Интегрируется с системой обработки ошибок
29
- - Обеспечивает единообразную обработку результатов
30
-
31
- See Also:
32
- - BaseRunnableResult: базовый класс для результатов исполнителей
33
- - WebEduRunner: исполнитель функций образовательных продуктов
34
- - WebEduFunctionResult: результаты функций образовательных продуктов
35
- """
36
-
37
-
38
- class WebEduFunctionResult(BaseRunnableResult, metaclass=ABCMeta):
39
- """Базовый класс результатов функций продуктов Образования.
40
-
41
- Предоставляет базовую структуру для представления результатов выполнения
42
- функций в контексте образовательных продуктов. Наследует функциональность
43
- BaseRunnableResult и адаптирует её для специфики бизнес-функций
44
- образовательной системы.
45
-
46
- Основные возможности:
47
- - Хранение результатов выполнения функций
48
- - Структурированное представление данных
49
- - Поддержка метаданных и контекста выполнения
50
- - Валидация результатов бизнес-функций
51
- - Интеграция с системой отчетности
52
-
53
- Note:
54
- - Является абстрактным классом
55
- - Требует реализации в конкретных классах результатов
56
- - Поддерживает различные типы данных результатов
57
- - Учитывает бизнес-правила образовательной системы
58
- - Интегрируется с системой аудита
59
- - Обеспечивает прослеживаемость выполнения функций
60
-
61
- See Also:
62
- - BaseRunnableResult: базовый класс для результатов
63
- - WebEduRunnerResult: результаты исполнителей
64
- - WebEduResultPresenter: презентер результатов
65
- """
@@ -1,140 +0,0 @@
1
- """Исполнители (runners) для функций интеграции с продуктами Образования.
2
-
3
- Этот модуль содержит классы исполнителей, которые отвечают за запуск и управление
4
- выполнением функций обработки данных. Исполнители обеспечивают:
5
- - Подготовку и валидацию входных данных
6
- - Управление жизненным циклом функций
7
- - Логирование процесса выполнения
8
- - Обработку результатов и ошибок
9
- """
10
-
11
- from abc import (
12
- ABCMeta,
13
- )
14
-
15
- from educommon import (
16
- logger,
17
- )
18
- from function_tools.runners import (
19
- BaseRunner,
20
- GlobalHelperRunner,
21
- )
22
-
23
- from edu_rdm_integration.adapters.helpers import (
24
- WebEduRunnerHelper,
25
- )
26
- from edu_rdm_integration.adapters.results import (
27
- WebEduRunnerResult,
28
- )
29
- from edu_rdm_integration.adapters.validators import (
30
- WebEduRunnerValidator,
31
- )
32
- from edu_rdm_integration.core.consts import (
33
- LOGS_DELIMITER,
34
- )
35
-
36
-
37
- class WebEduRunner(BaseRunner, metaclass=ABCMeta):
38
- """Базовый класс исполнителей функций продуктов Образования.
39
-
40
- Предоставляет основную функциональность для запуска и управления
41
- выполнением функций обработки данных. Включает:
42
- - Подготовку и валидацию входных параметров
43
- - Логирование процесса выполнения
44
- - Обработку результатов и ошибок
45
- - Управление очередью выполнения
46
-
47
- Attributes:
48
- helper (WebEduRunnerHelper): Помощник для вспомогательных операций
49
- validator (WebEduRunnerValidator): Валидатор входных данных
50
- result (WebEduRunnerResult): Объект для хранения результатов
51
- """
52
-
53
- def _prepare_helper_class(self) -> type[WebEduRunnerHelper]:
54
- """Возвращает класс помощника исполнителя.
55
-
56
- Returns:
57
- type[WebEduRunnerHelper]: Класс помощника для вспомогательных операций
58
- при выполнении функций
59
- """
60
- return WebEduRunnerHelper
61
-
62
- def _prepare_validator_class(self) -> type[WebEduRunnerValidator]:
63
- """Возвращает класс валидатора исполнителя.
64
-
65
- Returns:
66
- type[WebEduRunnerValidator]: Класс для валидации входных параметров
67
- и проверки состояния исполнителя
68
- """
69
- return WebEduRunnerValidator
70
-
71
- def _prepare_result_class(self) -> type[WebEduRunnerResult]:
72
- """Возвращает класс результата исполнителя.
73
-
74
- Returns:
75
- type[WebEduRunnerResult]: Класс для хранения результатов выполнения
76
- функций и возможных ошибок
77
- """
78
- return WebEduRunnerResult
79
-
80
- def _prepare_runnable_before_enqueue(self, runnable, *args, **kwargs):
81
- """Подготовка запускаемого объекта перед добавлением в очередь.
82
-
83
- Выполняет базовую подготовку объекта и добавляет логирование
84
- для отслеживания процесса выполнения.
85
-
86
- Args:
87
- runnable: Объект для выполнения
88
- *args: Дополнительные позиционные аргументы
89
- **kwargs: Дополнительные именованные аргументы
90
- """
91
- super()._prepare_runnable_before_enqueue(runnable, *args, **kwargs)
92
-
93
- logger.info(f'{LOGS_DELIMITER * 2}enqueue {runnable.__class__.__name__}..')
94
-
95
-
96
- class WebEduGlobalHelperRunner(GlobalHelperRunner, metaclass=ABCMeta):
97
- """Базовый класс исполнителей с глобальным помощником.
98
-
99
- Расширяет функциональность WebEduRunner, добавляя поддержку
100
- глобального помощника. Это позволяет:
101
- - Использовать общие вспомогательные методы между разными исполнителями
102
- - Кэшировать часто используемые данные
103
- - Оптимизировать использование ресурсов
104
-
105
- Note:
106
- Глобальный помощник должен быть потокобезопасным, так как может
107
- использоваться одновременно несколькими исполнителями.
108
-
109
- Attributes:
110
- helper (WebEduRunnerHelper): Глобальный помощник для всех исполнителей
111
- validator (WebEduRunnerValidator): Валидатор входных данных
112
- result (WebEduRunnerResult): Объект для хранения результатов
113
- """
114
-
115
- def _prepare_helper_class(self) -> type[WebEduRunnerHelper]:
116
- """Возвращает класс глобального помощника.
117
-
118
- Returns:
119
- type[WebEduRunnerHelper]: Класс помощника, который будет использоваться
120
- всеми исполнителями
121
- """
122
- return WebEduRunnerHelper
123
-
124
- def _prepare_validator_class(self) -> type[WebEduRunnerValidator]:
125
- """Возвращает класс валидатора исполнителя.
126
-
127
- Returns:
128
- type[WebEduRunnerValidator]: Класс для валидации входных параметров
129
- и проверки состояния исполнителя
130
- """
131
- return WebEduRunnerValidator
132
-
133
- def _prepare_result_class(self) -> type[WebEduRunnerResult]:
134
- """Возвращает класс результата исполнителя.
135
-
136
- Returns:
137
- type[WebEduRunnerResult]: Класс для хранения результатов выполнения
138
- функций и возможных ошибок
139
- """
140
- return WebEduRunnerResult
@@ -1,166 +0,0 @@
1
- """Стратегии реализации функций для интеграции с продуктами Образования.
2
-
3
- Этот модуль содержит классы стратегий, определяющие способы реализации функций
4
- для работы с продуктами Образования. Стратегии определяют конфигурацию классов
5
- для различных компонентов системы: менеджеров, исполнителей, валидаторов и т.д.
6
- """
7
-
8
- from abc import (
9
- ABCMeta,
10
- )
11
- from typing import (
12
- Optional,
13
- )
14
-
15
- from function_tools.strategies import (
16
- FunctionImplementationStrategy,
17
- )
18
-
19
- from edu_rdm_integration.adapters.caches import (
20
- WebEduFunctionCacheStorage,
21
- WebEduRunnerCacheStorage,
22
- )
23
- from edu_rdm_integration.adapters.errors import (
24
- WebEduError,
25
- )
26
- from edu_rdm_integration.adapters.functions import (
27
- WebEduFunction,
28
- WebEduLazySavingPredefinedQueueFunction,
29
- )
30
- from edu_rdm_integration.adapters.helpers import (
31
- WebEduFunctionHelper,
32
- WebEduRunnerHelper,
33
- )
34
- from edu_rdm_integration.adapters.managers import (
35
- WebEduRunnerManager,
36
- )
37
- from edu_rdm_integration.adapters.presenters import (
38
- WebEduResultPresenter,
39
- )
40
- from edu_rdm_integration.adapters.results import (
41
- WebEduFunctionResult,
42
- WebEduRunnerResult,
43
- )
44
- from edu_rdm_integration.adapters.runners import (
45
- WebEduRunner,
46
- )
47
- from edu_rdm_integration.adapters.validators import (
48
- WebEduFunctionValidator,
49
- WebEduRunnerValidator,
50
- )
51
-
52
-
53
- class WebEduFunctionImplementationStrategy(FunctionImplementationStrategy, metaclass=ABCMeta):
54
- """Базовая стратегия реализации функций для продуктов Образования.
55
-
56
- Определяет основную конфигурацию классов для всех компонентов системы:
57
- - Менеджеры для управления выполнением функций
58
- - Исполнители (runners) для запуска функций
59
- - Помощники (helpers) для вспомогательных операций
60
- - Валидаторы для проверки данных
61
- - Кэши для хранения промежуточных результатов
62
- - Обработчики ошибок и результатов
63
-
64
- Все методы в этом классе отвечают за установку конкретных реализаций
65
- различных компонентов системы.
66
- """
67
-
68
- def _prepare_manager_class(self):
69
- """Устанавливает класс менеджера для управления выполнением функций."""
70
- self._manager_class = WebEduRunnerManager
71
-
72
- def _prepare_runner_class(self):
73
- """Устанавливает класс исполнителя для запуска функций."""
74
- self._runner_class = WebEduRunner
75
-
76
- def _prepare_function_class(self):
77
- """Устанавливает базовый класс функции для обработки данных."""
78
- self._function_class = WebEduFunction
79
-
80
- def _prepare_runner_helper_class(self):
81
- """Устанавливает класс помощника для исполнителя функций."""
82
- self._runner_helper_class = WebEduRunnerHelper
83
-
84
- def _prepare_function_helper_class(self):
85
- """Устанавливает класс помощника для функций обработки данных."""
86
- self._function_helper_class = WebEduFunctionHelper
87
-
88
- def _prepare_runner_validator_class(self):
89
- """Устанавливает класс валидатора для проверки параметров исполнителя."""
90
- self._runner_validator_class = WebEduRunnerValidator
91
-
92
- def _prepare_function_validator_class(self):
93
- """Устанавливает класс валидатора для проверки данных функции."""
94
- self._function_validator_class = WebEduFunctionValidator
95
-
96
- def _prepare_runner_cache_storage_class(self):
97
- """Устанавливает класс хранилища кэша для исполнителя."""
98
- self._runner_cache_storage_class = WebEduRunnerCacheStorage
99
-
100
- def _prepare_function_cache_storage_class(self):
101
- """Устанавливает класс хранилища кэша для функции."""
102
- self._function_cache_storage_class = WebEduFunctionCacheStorage
103
-
104
- def _prepare_error_class(self):
105
- """Устанавливает класс для обработки ошибок."""
106
- self._error_class = WebEduError
107
-
108
- def _prepare_runner_result_class(self):
109
- """Устанавливает класс для хранения результатов работы исполнителя."""
110
- self._runner_result_class = WebEduRunnerResult
111
-
112
- def _prepare_function_result_class(self):
113
- """Устанавливает класс для хранения результатов работы функции."""
114
- self._function_result_class = WebEduFunctionResult
115
-
116
- def _prepare_result_presenter_class(self):
117
- """Устанавливает класс для представления результатов."""
118
- self._result_presenter_class = WebEduResultPresenter
119
-
120
-
121
- class WebEduSyncBaseRunnerLazySavingPredefinedQueueFunctionImplementationStrategy(
122
- WebEduFunctionImplementationStrategy, metaclass=ABCMeta
123
- ):
124
- """Стратегия создания функции с отложенным сохранением и предустановленной очередью.
125
-
126
- Расширяет базовую стратегию, добавляя специфическую логику для:
127
- - Отложенного сохранения данных (lazy saving)
128
- - Работы с предустановленной очередью объектов
129
- - Синхронного выполнения операций
130
-
131
- Сохранение данных производится только после успешного выполнения всех операций
132
- функции, что обеспечивает целостность данных и атомарность операций.
133
- """
134
-
135
- def _prepare_key(self) -> str:
136
- """Возвращает уникальный идентификатор стратегии.
137
-
138
- Returns:
139
- str: Ключ для идентификации стратегии в системе
140
- """
141
- return 'WEB_EDU_SYNC_LAZY_SAVING_FUNCTION'
142
-
143
- def _prepare_title(self) -> str:
144
- """Возвращает название стратегии.
145
-
146
- Returns:
147
- str: Человекочитаемое описание стратегии
148
- """
149
- return (
150
- 'Стратегия создания функции с отложенным сохранением и предустановленной очередью объектов на сохранение '
151
- 'продуктов Образования. Сохранение производится после удачной работы функции'
152
- )
153
-
154
- @classmethod
155
- def _prepare_function_template_name(cls) -> Optional[str]:
156
- """Формирование названия шаблона создания функции.
157
-
158
- Returns:
159
- Optional[str]: Имя шаблона для создания функции или None,
160
- если шаблон не требуется
161
- """
162
- return 'function_sync_template'
163
-
164
- def _prepare_function_class(self):
165
- """Устанавливает класс функции с поддержкой отложенного сохранения."""
166
- self._function_class = WebEduLazySavingPredefinedQueueFunction
@@ -1 +0,0 @@
1
- # В этом модуле должны располагаться все сообщения пользователю, сообщения для формирования логов
@@ -1 +0,0 @@
1
- # Реализуйте свои unit-тесты здесь
@@ -1,58 +0,0 @@
1
- """Классы для валидации данных в системе интеграции.
2
-
3
- Этот модуль содержит базовые классы валидаторов, которые обеспечивают
4
- проверку корректности данных на разных уровнях системы:
5
- - Валидация входных параметров функций
6
- - Проверка состояния исполнителей
7
- - Валидация результатов обработки
8
- - Проверка бизнес-правил
9
- """
10
-
11
- from abc import (
12
- ABCMeta,
13
- )
14
-
15
- from function_tools.validators import (
16
- BaseValidator,
17
- )
18
-
19
-
20
- class WebEduRunnerValidator(BaseValidator, metaclass=ABCMeta):
21
- """Базовый класс для валидации исполнителей функций.
22
-
23
- Предоставляет механизмы проверки:
24
- - Корректности конфигурации исполнителя
25
- - Доступности необходимых ресурсов
26
- - Состояния исполнителя перед запуском
27
- - Валидности результатов выполнения
28
-
29
- Note:
30
- Конкретные реализации должны определить специфичные
31
- правила валидации для каждого типа исполнителя.
32
-
33
- Attributes:
34
- errors (list): Список обнаруженных ошибок
35
- warnings (list): Список предупреждений
36
- """
37
-
38
-
39
- class WebEduFunctionValidator(BaseValidator, metaclass=ABCMeta):
40
- """Базовый класс для валидации функций обработки данных.
41
-
42
- Предоставляет механизмы проверки:
43
- - Входных параметров функции
44
- - Формата данных
45
- - Бизнес-правил
46
- - Результатов обработки
47
-
48
- Note:
49
- При реализации валидаторов для конкретных функций следует:
50
- - Определить специфичные правила проверки
51
- - Добавить проверку бизнес-ограничений
52
- - Реализовать валидацию форматов данных
53
-
54
- Attributes:
55
- errors (list): Список обнаруженных ошибок
56
- warnings (list): Список предупреждений
57
- context (dict): Контекст валидации
58
- """