edu-rdm-integration 3.4.9__py3-none-any.whl → 3.5.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 (67) hide show
  1. edu_rdm_integration/adapters/functions.py +3 -6
  2. edu_rdm_integration/adapters/helpers.py +2 -5
  3. edu_rdm_integration/adapters/managers.py +1 -4
  4. edu_rdm_integration/adapters/runners.py +9 -13
  5. edu_rdm_integration/apps.py +1 -1
  6. edu_rdm_integration/collect_data/base/caches.py +5 -7
  7. edu_rdm_integration/collect_data/base/helpers.py +1 -5
  8. edu_rdm_integration/collect_data/base/managers.py +4 -7
  9. edu_rdm_integration/collect_data/base/mixins.py +5 -8
  10. edu_rdm_integration/collect_data/calculated/base/functions.py +3 -6
  11. edu_rdm_integration/collect_data/calculated/base/helpers.py +2 -6
  12. edu_rdm_integration/collect_data/calculated/base/managers.py +1 -4
  13. edu_rdm_integration/collect_data/calculated/base/runners.py +3 -7
  14. edu_rdm_integration/collect_data/calculated/strategies.py +1 -2
  15. edu_rdm_integration/collect_data/collect.py +6 -10
  16. edu_rdm_integration/collect_data/generators.py +4 -6
  17. edu_rdm_integration/collect_data/helpers.py +1 -4
  18. edu_rdm_integration/collect_data/non_calculated/base/caches.py +2 -4
  19. edu_rdm_integration/collect_data/non_calculated/base/functions.py +3 -6
  20. edu_rdm_integration/collect_data/non_calculated/base/helpers.py +2 -6
  21. edu_rdm_integration/collect_data/non_calculated/base/managers.py +1 -4
  22. edu_rdm_integration/collect_data/non_calculated/base/runners.py +3 -7
  23. edu_rdm_integration/collect_data/non_calculated/strategies.py +1 -2
  24. edu_rdm_integration/collect_data/tests.py +3 -5
  25. edu_rdm_integration/entities.py +21 -22
  26. edu_rdm_integration/enum_register/mixins.py +7 -10
  27. edu_rdm_integration/enum_register/register.py +1 -2
  28. edu_rdm_integration/export_data/base/caches.py +1 -5
  29. edu_rdm_integration/export_data/base/functions.py +5 -7
  30. edu_rdm_integration/export_data/base/helpers.py +9 -13
  31. edu_rdm_integration/export_data/base/managers.py +3 -6
  32. edu_rdm_integration/export_data/base/runners.py +3 -7
  33. edu_rdm_integration/export_data/export.py +5 -9
  34. edu_rdm_integration/export_data/export_manger.py +1 -2
  35. edu_rdm_integration/export_data/generators.py +2 -3
  36. edu_rdm_integration/export_data/helpers.py +1 -4
  37. edu_rdm_integration/export_data/queue.py +3 -6
  38. edu_rdm_integration/export_data/strategies.py +1 -2
  39. edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +8 -9
  40. edu_rdm_integration/function_templates/function_collect_data_template/helpers.py-tpl +4 -6
  41. edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +2 -4
  42. edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +5 -7
  43. edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +1 -6
  44. edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +1 -2
  45. edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +5 -7
  46. edu_rdm_integration/function_templates/function_export_data_template/helpers.py-tpl +2 -6
  47. edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +3 -6
  48. edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +5 -7
  49. edu_rdm_integration/helpers.py +8 -11
  50. edu_rdm_integration/management/commands/async_fix_attachment_size.py +3 -7
  51. edu_rdm_integration/management/commands/check_upload_status.py +4 -4
  52. edu_rdm_integration/mapping.py +2 -7
  53. edu_rdm_integration/migrations/0013_set_attachment_size.py +4 -3
  54. edu_rdm_integration/models.py +3 -5
  55. edu_rdm_integration/redis_cache.py +1 -2
  56. edu_rdm_integration/registry/ui.py +5 -3
  57. edu_rdm_integration/storages.py +9 -15
  58. edu_rdm_integration/tasks.py +5 -7
  59. edu_rdm_integration/typing.py +1 -1
  60. edu_rdm_integration/uploader_log/actions.py +1 -1
  61. edu_rdm_integration/utils.py +6 -14
  62. {edu_rdm_integration-3.4.9.dist-info → edu_rdm_integration-3.5.1.dist-info}/METADATA +184 -58
  63. {edu_rdm_integration-3.4.9.dist-info → edu_rdm_integration-3.5.1.dist-info}/RECORD +67 -67
  64. {edu_rdm_integration-3.4.9.dist-info → edu_rdm_integration-3.5.1.dist-info}/LICENSE +0 -0
  65. {edu_rdm_integration-3.4.9.dist-info → edu_rdm_integration-3.5.1.dist-info}/WHEEL +0 -0
  66. {edu_rdm_integration-3.4.9.dist-info → edu_rdm_integration-3.5.1.dist-info}/namespace_packages.txt +0 -0
  67. {edu_rdm_integration-3.4.9.dist-info → edu_rdm_integration-3.5.1.dist-info}/top_level.txt +0 -0
@@ -1,12 +1,6 @@
1
1
  from collections import (
2
2
  defaultdict,
3
3
  )
4
- from typing import (
5
- Dict,
6
- List,
7
- Set,
8
- Type,
9
- )
10
4
 
11
5
  from function_tools.models import (
12
6
  EntityType,
@@ -38,8 +32,8 @@ class RegionalDataMartEntityStorage(EntityStorage):
38
32
 
39
33
  def _collect_runner_regional_data_mart_integration_entities(
40
34
  self,
41
- runner_class: Type[BaseRunner],
42
- runner_regional_data_mart_integration_entities: List[str],
35
+ runner_class: type[BaseRunner],
36
+ runner_regional_data_mart_integration_entities: list[str],
43
37
  ):
44
38
  """
45
39
  Собирает и возвращает список сущностей.
@@ -61,14 +55,14 @@ class RegionalDataMartEntityStorage(EntityStorage):
61
55
  def prepare_entities_map(
62
56
  self,
63
57
  entity_type: ModelEnumValue,
64
- tags: Set[str],
58
+ tags: set[str],
65
59
  *args,
66
60
  **kwargs,
67
- ) -> Dict[str, Type[object]]:
61
+ ) -> dict[str, type[object]]:
68
62
  """
69
63
  Формирование карты соответствия сущности интеграции с "Региональная витрина данных" и сущности function_tools.
70
64
  """
71
- rdm_integration_function_tools_entities_map: Dict[str, Type[object]] = {}
65
+ rdm_integration_function_tools_entities_map: dict[str, type[object]] = {}
72
66
 
73
67
  registered_function_tools_entities_classes = [
74
68
  entity['class']
@@ -94,7 +88,7 @@ class RegionalDataMartEntityStorage(EntityStorage):
94
88
 
95
89
  return rdm_integration_function_tools_entities_map
96
90
 
97
- def prepare_entities_manager_map(self, tags: Set[str]) -> Dict[str, Type[object]]:
91
+ def prepare_entities_manager_map(self, tags: set[str]) -> dict[str, type[object]]:
98
92
  """
99
93
  Формирование карты соответствия сущности интеграции с "Региональная витрина данных" и менеджера Функции.
100
94
 
@@ -105,7 +99,7 @@ class RegionalDataMartEntityStorage(EntityStorage):
105
99
  tags=tags,
106
100
  )
107
101
 
108
- def prepare_manager_entities_map(self, tags: Set[str]) -> Dict[Type[object], List[str]]:
102
+ def prepare_manager_entities_map(self, tags: set[str]) -> dict[type[object], list[str]]:
109
103
  """
110
104
  Формирование карты соответствия менеджера Функции и сущности интеграции с "Региональная витрина данных".
111
105
 
@@ -119,7 +113,7 @@ class RegionalDataMartEntityStorage(EntityStorage):
119
113
 
120
114
  return _manager_entities_map
121
115
 
122
- def prepare_entities_functions_map(self, tags: Set[str]) -> Dict[str, Type[object]]:
116
+ def prepare_entities_functions_map(self, tags: set[str]) -> dict[str, type[object]]:
123
117
  """
124
118
  Формирование карты соответствия сущности интеграции с "Региональная витрина данных" и функции.
125
119
 
@@ -130,7 +124,7 @@ class RegionalDataMartEntityStorage(EntityStorage):
130
124
  tags=tags,
131
125
  )
132
126
 
133
- def prepare_exporting_collecting_functions_map(self) -> Dict[str, str]:
127
+ def prepare_exporting_collecting_functions_map(self) -> dict[str, str]:
134
128
  """
135
129
  Возвращает карту соответствия функций выгрузки и сбора данных.
136
130
 
@@ -3,9 +3,7 @@ from collections import (
3
3
  )
4
4
  from typing import (
5
5
  TYPE_CHECKING,
6
- Dict,
7
6
  Optional,
8
- Type,
9
7
  )
10
8
 
11
9
  import celery
@@ -174,11 +172,11 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
174
172
  def __init__(self) -> None:
175
173
  super().__init__()
176
174
 
177
- self._collecting_data_managers: Dict[str, Type['RunnerManager']] = {}
178
- self._collecting_data_manager_to_logs_period_end: Dict[str, 'datetime'] = {}
175
+ self._collecting_data_managers: dict[str, type['RunnerManager']] = {}
176
+ self._collecting_data_manager_to_logs_period_end: dict[str, 'datetime'] = {}
179
177
 
180
- self._exporting_data_managers: Dict[str, Type['RunnerManager']] = {}
181
- self._exporting_data_manager_to_period_end: Dict[str, 'datetime'] = {}
178
+ self._exporting_data_managers: dict[str, type['RunnerManager']] = {}
179
+ self._exporting_data_manager_to_period_end: dict[str, 'datetime'] = {}
182
180
 
183
181
  self._transferred_entities = []
184
182
  self._entites_models_map = defaultdict(list)
@@ -242,7 +240,7 @@ class TransferLatestEntitiesDataPeriodicTask(UniquePeriodicAsyncTask):
242
240
  # Собираем словарь по сущностям с моделями для сборки
243
241
  for entity, _ in self._transferred_entities:
244
242
  self._entites_models_map[entity.key].extend(
245
- (model_enum for model_enum in (entity.main_model_enum, *entity.additional_model_enums)
243
+ (model_enum for model_enum in (*entity.additional_model_enums, entity.main_model_enum)
246
244
  if model_enum.order_number != DEFAULT_ORDER_NUMBER)
247
245
  )
248
246
 
@@ -12,7 +12,7 @@ from django.db.models import (
12
12
 
13
13
  # Тип, обозначающий любую модель. При указании в качестве type annotation
14
14
  # можно указать, что аргументом может быть любая модель или тип модели (через
15
- # Type[MODEL_TYPE_VAR]), а сама функция возвращает инстанс этой
15
+ # type[MODEL_TYPE_VAR]), а сама функция возвращает инстанс этой
16
16
  # конкретной модели
17
17
  MODEL_TYPE_VAR = TypeVar('MODEL_TYPE_VAR', bound=Model)
18
18
 
@@ -41,8 +41,8 @@ from edu_rdm_integration.models import (
41
41
  UploaderClientLog,
42
42
  )
43
43
  from edu_rdm_integration.uploader_log.ui import (
44
- UploaderLogListWindow,
45
44
  UploaderLogInfoWindow,
45
+ UploaderLogListWindow,
46
46
  )
47
47
 
48
48
 
@@ -8,12 +8,7 @@ from datetime import (
8
8
  from typing import (
9
9
  TYPE_CHECKING,
10
10
  Any,
11
- Dict,
12
- List,
13
11
  Optional,
14
- Set,
15
- Type,
16
- TypeVar,
17
12
  Union,
18
13
  )
19
14
 
@@ -33,9 +28,6 @@ from django.db.models.functions import (
33
28
  Cast,
34
29
  Now,
35
30
  )
36
- from educommon.integration_entities.enums import (
37
- EntityLogOperation,
38
- )
39
31
 
40
32
  from edu_rdm_integration.apps import (
41
33
  EduRDMIntegrationConfig,
@@ -91,8 +83,8 @@ def get_exporting_data_stage_attachment_path(instance, filename):
91
83
 
92
84
  def update_fields(
93
85
  entity: 'BaseEntityModel',
94
- field_values: Dict[str, Any],
95
- mapping: Dict[str, str]
86
+ field_values: dict[str, Any],
87
+ mapping: dict[str, str]
96
88
  ) -> None:
97
89
  """Обновление значений полей сущности по измененным полям модели.
98
90
 
@@ -108,7 +100,7 @@ def update_fields(
108
100
  def set_entity_field_by_model_object(
109
101
  entity: 'BaseEntityModel',
110
102
  model_object: Union['Model', 'NamedTuple'],
111
- mapping: Dict[str, str]
103
+ mapping: dict[str, str]
112
104
  ) -> None:
113
105
  """Обновление значений полей сущности по измененным полям модели.
114
106
 
@@ -127,7 +119,7 @@ def get_isoformat_timezone():
127
119
  return datetime.now().astimezone().isoformat()[-6:]
128
120
 
129
121
 
130
- def split_by_academic_years(start_date: datetime, end_date: datetime) -> List[tuple]:
122
+ def split_by_academic_years(start_date: datetime, end_date: datetime) -> list[tuple]:
131
123
  """Разбивает исходный интервал из команды по учебным годам."""
132
124
  academic_year_end_date = datetime(
133
125
  start_date.year, ACADEMIC_YEAR['end_month'], ACADEMIC_YEAR['end_day'],
@@ -176,7 +168,7 @@ def split_by_academic_years(start_date: datetime, end_date: datetime) -> List[tu
176
168
  return intervals
177
169
 
178
170
 
179
- def split_interval_by_delta(start_date: datetime, end_date: datetime, days_delta: int) -> List[tuple]:
171
+ def split_interval_by_delta(start_date: datetime, end_date: datetime, days_delta: int) -> list[tuple]:
180
172
  """Разбивает учебный год на интервалы по дельте."""
181
173
  subinterval_end = start_date + timedelta(days=days_delta)
182
174
 
@@ -242,7 +234,7 @@ def build_related_model_graph(
242
234
  graph: 'Graph',
243
235
  current_model: 'Model',
244
236
  find_model: 'Model',
245
- ignored_model_fields: Optional[Dict[str, Set[str]]] = None,
237
+ ignored_model_fields: Optional[dict[str, set[str]]] = None,
246
238
  ) -> 'Graph':
247
239
  """Построение графа связей от модели до модели.
248
240