edu-rdm-integration 3.9.1__py3-none-any.whl → 3.10.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- edu_rdm_integration/__init__.py +0 -1
- edu_rdm_integration/adapters/apps.py +15 -2
- edu_rdm_integration/adapters/caches.py +25 -12
- edu_rdm_integration/adapters/errors.py +13 -2
- edu_rdm_integration/adapters/functions.py +53 -14
- edu_rdm_integration/adapters/helpers.py +34 -8
- edu_rdm_integration/adapters/managers.py +41 -5
- edu_rdm_integration/adapters/presenters.py +26 -2
- edu_rdm_integration/adapters/receivers.py +16 -2
- edu_rdm_integration/adapters/results.py +50 -4
- edu_rdm_integration/adapters/runners.py +79 -20
- edu_rdm_integration/adapters/strategies.py +56 -54
- edu_rdm_integration/adapters/validators.py +43 -4
- edu_rdm_integration/apps.py +3 -23
- edu_rdm_integration/collect_and_export_data/__init__.py +1 -1
- edu_rdm_integration/collect_and_export_data/apps.py +1 -0
- edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +107 -17
- edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +4 -2
- edu_rdm_integration/{consts.py → core/consts.py} +0 -11
- edu_rdm_integration/{enums.py → core/enums.py} +7 -54
- edu_rdm_integration/core/helpers.py +331 -0
- edu_rdm_integration/core/operations.py +71 -0
- edu_rdm_integration/core/redis_cache.py +20 -0
- edu_rdm_integration/{collect_and_export_data → core/registry}/actions.py +6 -12
- edu_rdm_integration/core/registry/apps.py +11 -0
- edu_rdm_integration/{collect_and_export_data → core/registry}/ui.py +1 -1
- edu_rdm_integration/{storages.py → core/storages.py} +8 -17
- edu_rdm_integration/{utils.py → core/utils.py} +29 -91
- edu_rdm_integration/migrations/0001_initial.py +294 -44
- edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +1 -3
- edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -1
- edu_rdm_integration/migrations/0004_uploaderclientlog.py +1 -2
- edu_rdm_integration/migrations/0005_auto_20231204_1224.py +16 -4
- edu_rdm_integration/migrations/0006_request_status_data.py +60 -58
- edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -1
- edu_rdm_integration/migrations/0009_auto_20240522_1619.py +1 -5
- edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -1
- edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +16 -3
- edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -1
- edu_rdm_integration/migrations/0013_set_attachment_size.py +8 -12
- edu_rdm_integration/migrations/0014_uploaddatacommand.py +33 -6
- edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +1 -5
- edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +2 -2
- edu_rdm_integration/migrations/0017_delete_uploaddatacommand.py +3 -2
- edu_rdm_integration/migrations/__init__.py +1 -0
- edu_rdm_integration/{registry → pipelines/transfer}/actions.py +13 -26
- edu_rdm_integration/pipelines/transfer/app_meta.py +18 -0
- edu_rdm_integration/pipelines/transfer/apps.py +19 -0
- edu_rdm_integration/pipelines/transfer/enums.py +34 -0
- edu_rdm_integration/pipelines/transfer/migrations/0001_initial.py +57 -0
- edu_rdm_integration/{base.py → pipelines/transfer/mixins.py} +29 -53
- edu_rdm_integration/pipelines/transfer/models.py +48 -0
- edu_rdm_integration/{tasks.py → pipelines/transfer/tasks.py} +51 -150
- edu_rdm_integration/{registry → pipelines/transfer}/ui.py +4 -10
- edu_rdm_integration/rdm_entities/apps.py +11 -0
- edu_rdm_integration/{entities.py → rdm_entities/entities.py} +67 -57
- edu_rdm_integration/rdm_entities/migrations/0001_initial.py +44 -0
- edu_rdm_integration/{enum_register → rdm_entities}/mixins.py +8 -59
- edu_rdm_integration/rdm_entities/models.py +63 -0
- edu_rdm_integration/rdm_entities/utils.py +33 -0
- edu_rdm_integration/rdm_models/apps.py +16 -0
- edu_rdm_integration/rdm_models/migrations/0001_initial.py +40 -0
- edu_rdm_integration/rdm_models/mixins.py +67 -0
- edu_rdm_integration/rdm_models/models.py +73 -0
- edu_rdm_integration/rdm_models/utils.py +23 -0
- edu_rdm_integration/stages/collect_data/apps.py +11 -0
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/functions.py-tpl +2 -2
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/managers.py-tpl +1 -1
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/runners.py-tpl +1 -1
- edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/tests.py-tpl +2 -1
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/caches.py +2 -2
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/functions.py +15 -18
- edu_rdm_integration/stages/collect_data/functions/base/helpers.py +20 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/managers.py +20 -27
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/mixins.py +38 -55
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/runners.py +2 -5
- edu_rdm_integration/stages/collect_data/functions/calculated/base/__init__.py +0 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/caches.py +3 -7
- edu_rdm_integration/stages/collect_data/functions/calculated/base/errors.py +7 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/functions.py +8 -16
- edu_rdm_integration/stages/collect_data/functions/calculated/base/helpers.py +24 -0
- edu_rdm_integration/stages/collect_data/functions/calculated/base/managers.py +19 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/presenters.py +1 -3
- edu_rdm_integration/stages/collect_data/functions/calculated/base/results.py +12 -0
- edu_rdm_integration/stages/collect_data/functions/calculated/base/runners.py +28 -0
- edu_rdm_integration/stages/collect_data/functions/calculated/base/validators.py +20 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/strategies.py +32 -70
- edu_rdm_integration/stages/collect_data/functions/non_calculated/__init__.py +0 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/__init__.py +0 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/caches.py +13 -22
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/errors.py +7 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/functions.py +8 -16
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/helpers.py +24 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/managers.py +19 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/presenters.py +1 -3
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/results.py +12 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/runners.py +28 -0
- edu_rdm_integration/stages/collect_data/functions/non_calculated/base/validators.py +20 -0
- edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/strategies.py +32 -70
- edu_rdm_integration/{collect_data → stages/collect_data}/generators.py +9 -14
- edu_rdm_integration/stages/collect_data/helpers.py +154 -0
- edu_rdm_integration/stages/collect_data/management/__init__.py +0 -0
- edu_rdm_integration/stages/collect_data/management/base.py +100 -0
- edu_rdm_integration/stages/collect_data/management/commands/__init__.py +0 -0
- edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_latest_models_data.py +5 -7
- edu_rdm_integration/{management → stages/collect_data/management}/commands/collect_models_data.py +5 -7
- edu_rdm_integration/stages/collect_data/migrations/0001_initial.py +187 -0
- edu_rdm_integration/stages/collect_data/migrations/0002_edurdmcollectdatacommandprogress.py +105 -0
- edu_rdm_integration/stages/collect_data/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/collect_data/mixins.py +56 -0
- edu_rdm_integration/stages/collect_data/models.py +318 -0
- edu_rdm_integration/{collect_data/collect.py → stages/collect_data/operations.py} +30 -43
- edu_rdm_integration/stages/collect_data/registry/__init__.py +0 -0
- edu_rdm_integration/{collect_data → stages/collect_data/registry}/actions.py +17 -20
- edu_rdm_integration/stages/collect_data/registry/apps.py +11 -0
- edu_rdm_integration/{collect_data → stages/collect_data/registry}/ui.py +8 -15
- edu_rdm_integration/{collect_data → stages/collect_data}/tests.py +2 -2
- edu_rdm_integration/stages/export_data/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/apps.py +11 -0
- edu_rdm_integration/stages/export_data/function_templates/__init__.py +0 -0
- edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/functions.py-tpl +2 -2
- edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/managers.py-tpl +2 -2
- edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/runners.py-tpl +2 -2
- edu_rdm_integration/stages/export_data/functions/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/functions/base/__init__.py +0 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/caches.py +3 -8
- edu_rdm_integration/stages/export_data/functions/base/errors.py +7 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/functions.py +28 -59
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/helpers.py +7 -17
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/managers.py +19 -28
- edu_rdm_integration/stages/export_data/functions/base/presenters.py +11 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/requests.py +13 -40
- edu_rdm_integration/stages/export_data/functions/base/results.py +12 -0
- edu_rdm_integration/{export_data → stages/export_data/functions}/base/runners.py +9 -21
- edu_rdm_integration/stages/export_data/functions/base/validators.py +20 -0
- edu_rdm_integration/{export_data → stages/export_data}/generators.py +7 -6
- edu_rdm_integration/stages/export_data/helpers.py +203 -0
- edu_rdm_integration/stages/export_data/management/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/management/base.py +101 -0
- edu_rdm_integration/stages/export_data/management/commands/__init__.py +0 -0
- edu_rdm_integration/{management → stages/export_data/management}/commands/export_entities_data.py +5 -7
- edu_rdm_integration/{management → stages/export_data/management}/commands/export_latest_entities_data.py +5 -7
- edu_rdm_integration/stages/export_data/migrations/0001_initial.py +324 -0
- edu_rdm_integration/stages/export_data/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/export_data/mixins.py +50 -0
- edu_rdm_integration/stages/export_data/models.py +362 -0
- edu_rdm_integration/{export_data/export.py → stages/export_data/operations.py} +30 -192
- edu_rdm_integration/stages/export_data/registry/__init__.py +0 -0
- edu_rdm_integration/{export_data → stages/export_data/registry}/actions.py +18 -18
- edu_rdm_integration/stages/export_data/registry/apps.py +11 -0
- edu_rdm_integration/{export_data → stages/export_data/registry}/ui.py +5 -7
- edu_rdm_integration/{export_data → stages/export_data}/strategies.py +30 -68
- edu_rdm_integration/stages/service/__init__.py +0 -0
- edu_rdm_integration/stages/service/apps.py +19 -0
- edu_rdm_integration/stages/service/tasks.py +63 -0
- edu_rdm_integration/stages/upload_data/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/apps.py +19 -0
- edu_rdm_integration/stages/upload_data/consts.py +10 -0
- edu_rdm_integration/{export_data → stages/upload_data}/dataclasses.py +1 -0
- edu_rdm_integration/stages/upload_data/enums.py +17 -0
- edu_rdm_integration/{export_data/export_manager.py → stages/upload_data/export_managers.py} +73 -68
- edu_rdm_integration/stages/upload_data/helpers.py +164 -0
- edu_rdm_integration/stages/upload_data/management/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/management/base.py +134 -0
- edu_rdm_integration/stages/upload_data/management/commands/__init__.py +0 -0
- edu_rdm_integration/{management → stages/upload_data/management}/commands/async_fix_attachment_size.py +32 -54
- edu_rdm_integration/{management → stages/upload_data/management}/commands/check_upload_status.py +7 -6
- edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_status.py +3 -3
- edu_rdm_integration/{management → stages/upload_data/management}/commands/datamart_upload.py +4 -4
- edu_rdm_integration/stages/upload_data/migrations/0001_initial.py +161 -0
- edu_rdm_integration/stages/upload_data/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/models.py +175 -0
- edu_rdm_integration/stages/upload_data/operations.py +156 -0
- edu_rdm_integration/{export_data/queue.py → stages/upload_data/queues.py} +10 -8
- edu_rdm_integration/stages/upload_data/tasks.py +103 -0
- edu_rdm_integration/stages/upload_data/uploader_log/__init__.py +0 -0
- edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/actions.py +14 -16
- edu_rdm_integration/stages/upload_data/uploader_log/apps.py +11 -0
- edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/managers.py +15 -30
- edu_rdm_integration/stages/upload_data/uploader_log/migrations/0001_initial.py +31 -0
- edu_rdm_integration/stages/upload_data/uploader_log/migrations/__init__.py +0 -0
- edu_rdm_integration/stages/upload_data/uploader_log/models.py +86 -0
- edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/ui.py +8 -6
- {edu_rdm_integration-3.9.1.dist-info → edu_rdm_integration-3.10.0.dist-info}/METADATA +238 -238
- edu_rdm_integration-3.10.0.dist-info/RECORD +255 -0
- edu_rdm_integration/app_meta.py +0 -16
- edu_rdm_integration/app_settings.py +0 -77
- edu_rdm_integration/collect_and_export_data/models.py +0 -67
- edu_rdm_integration/collect_and_export_data/utils.py +0 -224
- edu_rdm_integration/collect_data/base/helpers.py +0 -26
- edu_rdm_integration/collect_data/calculated/base/errors.py +0 -9
- edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -32
- edu_rdm_integration/collect_data/calculated/base/managers.py +0 -23
- edu_rdm_integration/collect_data/calculated/base/results.py +0 -16
- edu_rdm_integration/collect_data/calculated/base/runners.py +0 -36
- edu_rdm_integration/collect_data/calculated/base/validators.py +0 -28
- edu_rdm_integration/collect_data/helpers.py +0 -92
- edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -9
- edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -32
- edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -23
- edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -16
- edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -36
- edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -28
- edu_rdm_integration/enum_register/register.py +0 -79
- edu_rdm_integration/export_data/base/errors.py +0 -9
- edu_rdm_integration/export_data/base/presenters.py +0 -13
- edu_rdm_integration/export_data/base/results.py +0 -16
- edu_rdm_integration/export_data/base/validators.py +0 -28
- edu_rdm_integration/export_data/helpers.py +0 -92
- edu_rdm_integration/helpers.py +0 -412
- edu_rdm_integration/management/general.py +0 -327
- edu_rdm_integration/models.py +0 -982
- edu_rdm_integration/redis_cache.py +0 -51
- edu_rdm_integration/uploader_log/apps.py +0 -10
- edu_rdm_integration-3.9.1.dist-info/RECORD +0 -198
- /edu_rdm_integration/{collect_and_export_data/migrations → core}/__init__.py +0 -0
- /edu_rdm_integration/{mapping.py → core/mapping.py} +0 -0
- /edu_rdm_integration/{collect_data → core/registry}/__init__.py +0 -0
- /edu_rdm_integration/{templates → core/registry/templates}/ui-js/start-task.js +0 -0
- /edu_rdm_integration/{signals.py → core/signals.py} +0 -0
- /edu_rdm_integration/{typing.py → core/typing.py} +0 -0
- /edu_rdm_integration/{collect_data/base → pipelines}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/calculated → pipelines/transfer}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/calculated/base → pipelines/transfer/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{templates → pipelines/transfer/templates}/ui-js/transferred-entity-list.js +0 -0
- /edu_rdm_integration/{collect_data/non_calculated → rdm_entities}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/non_calculated/base → rdm_entities/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{enum_register → rdm_models}/__init__.py +0 -0
- /edu_rdm_integration/{export_data → rdm_models/migrations}/__init__.py +0 -0
- /edu_rdm_integration/{export_data/base → stages}/__init__.py +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data/const.py → stages/collect_data/consts.py} +0 -0
- /edu_rdm_integration/{management → stages/collect_data/function_templates}/__init__.py +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/__init__.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/apps.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/caches.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/consts.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/enums.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/errors.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/helpers.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/presenters.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/results.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/strings.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/collect_data/function_templates}/function_collect_data_template/validators.py-tpl +0 -0
- /edu_rdm_integration/{management/commands → stages/collect_data/functions}/__init__.py +0 -0
- /edu_rdm_integration/{registry → stages/collect_data/functions/base}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/base/consts.py +0 -0
- /edu_rdm_integration/{uploader_log → stages/collect_data/functions/calculated}/__init__.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/consts.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/enums.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/strings.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/calculated/base/tests.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/consts.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/enums.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/strings.py +0 -0
- /edu_rdm_integration/{collect_data → stages/collect_data/functions}/non_calculated/base/tests.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data}/consts.py +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/__init__.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/apps.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/caches.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/consts.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/enums.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/errors.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/helpers.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/presenters.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/results.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/strings.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/tests.py-tpl +0 -0
- /edu_rdm_integration/{function_templates → stages/export_data/function_templates}/function_export_data_template/validators.py-tpl +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/consts.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/enums.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/strings.py +0 -0
- /edu_rdm_integration/{export_data → stages/export_data/functions}/base/tests.py +0 -0
- /edu_rdm_integration/{templates → stages/export_data/registry/templates}/ui-js/stage_for_export.js +0 -0
- /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/enums.py +0 -0
- /edu_rdm_integration/{uploader_log → stages/upload_data/uploader_log}/templates/ui-js/object-grid-buttons.js +0 -0
- {edu_rdm_integration-3.9.1.dist-info → edu_rdm_integration-3.10.0.dist-info}/WHEEL +0 -0
- {edu_rdm_integration-3.9.1.dist-info → edu_rdm_integration-3.10.0.dist-info}/licenses/LICENSE +0 -0
- {edu_rdm_integration-3.9.1.dist-info → edu_rdm_integration-3.10.0.dist-info}/top_level.txt +0 -0
edu_rdm_integration/__init__.py
CHANGED
@@ -1 +0,0 @@
|
|
1
|
-
default_app_config = 'edu_rdm_integration.apps.EduRDMIntegrationConfig'
|
@@ -4,8 +4,21 @@ from django.apps import (
|
|
4
4
|
|
5
5
|
|
6
6
|
class WebEduFunctionToolsConfig(AppConfig):
|
7
|
-
"""
|
8
|
-
|
7
|
+
"""Конфигурация приложения для интеграции с function_tools.
|
8
|
+
|
9
|
+
Определяет основные параметры Django-приложения, которое
|
10
|
+
обеспечивает работу с библиотекой function_tools в контексте
|
11
|
+
продуктов Образования.
|
12
|
+
|
13
|
+
Attributes:
|
14
|
+
name (str): Полное имя приложения в системе Django
|
15
|
+
verbose_name (str): Человекочитаемое название приложения
|
16
|
+
label (str): Уникальная метка приложения для Django
|
17
|
+
|
18
|
+
Note:
|
19
|
+
Приложение автоматически регистрируется в Django при старте
|
20
|
+
и обеспечивает всю необходимую инфраструктуру для работы
|
21
|
+
с function_tools.
|
9
22
|
"""
|
10
23
|
|
11
24
|
name = 'edu_rdm_integration.adapters.function_tools'
|
@@ -11,14 +11,22 @@ from function_tools.caches import (
|
|
11
11
|
|
12
12
|
|
13
13
|
class WebEduEntityCache(EntityCache, metaclass=ABCMeta):
|
14
|
-
"""
|
15
|
-
|
14
|
+
"""Базовый класс кэша для сущностей продуктов Образования.
|
15
|
+
|
16
|
+
Предоставляет механизм кэширования отдельных сущностей системы.
|
17
|
+
Используется для:
|
18
|
+
- Хранения часто запрашиваемых объектов
|
19
|
+
- Снижения нагрузки на базу данных
|
20
|
+
- Ускорения доступа к данным
|
21
|
+
|
22
|
+
Note:
|
23
|
+
Конкретные реализации должны определить специфику кэширования
|
24
|
+
для каждого типа сущности.
|
16
25
|
"""
|
17
26
|
|
18
27
|
|
19
28
|
class WebEduPeriodicalEntityCache(PeriodicalEntityCache, metaclass=ABCMeta):
|
20
|
-
"""
|
21
|
-
Базовый класс периодического кеша продуктов Образования.
|
29
|
+
"""Базовый класс периодического кеша продуктов Образования.
|
22
30
|
|
23
31
|
Кеш создается для определенной модели с указанием двух дат, на которые
|
24
32
|
должны быть собраны кеши актуальных объектов модели.
|
@@ -26,18 +34,23 @@ class WebEduPeriodicalEntityCache(PeriodicalEntityCache, metaclass=ABCMeta):
|
|
26
34
|
|
27
35
|
|
28
36
|
class WebEduRunnerCacheStorage(CacheStorage, metaclass=ABCMeta):
|
29
|
-
"""
|
30
|
-
Базовый класс кешей помощников ранеров функций продуктов Образования.
|
31
|
-
"""
|
37
|
+
"""Базовый класс кешей помощников ранеров функций продуктов Образования."""
|
32
38
|
|
33
39
|
|
34
40
|
class WebEduFunctionCacheStorage(CacheStorage, metaclass=ABCMeta):
|
35
|
-
"""
|
36
|
-
Базовый класс кешей функций продуктов Образования.
|
37
|
-
"""
|
41
|
+
"""Базовый класс кешей функций продуктов Образования."""
|
38
42
|
|
39
43
|
|
40
44
|
class WebEduFunctionPatchedGlobalCacheStorage(PatchedGlobalCacheStorage, metaclass=ABCMeta):
|
41
|
-
"""
|
42
|
-
|
45
|
+
"""Базовый класс глобального хранилища кэша с поддержкой патчинга.
|
46
|
+
|
47
|
+
Расширяет стандартное хранилище кэша, добавляя возможность
|
48
|
+
модификации данных через механизм патчинга. Это позволяет:
|
49
|
+
- Обновлять кэшированные данные без полной перезагрузки
|
50
|
+
- Синхронизировать кэш между разными компонентами
|
51
|
+
- Эффективно управлять общими данными
|
52
|
+
|
53
|
+
Note:
|
54
|
+
Патчинг должен использоваться с осторожностью, чтобы избежать
|
55
|
+
несогласованности данных между разными частями системы.
|
43
56
|
"""
|
@@ -8,6 +8,17 @@ from function_tools.errors import (
|
|
8
8
|
|
9
9
|
|
10
10
|
class WebEduError(BaseError, metaclass=ABCMeta):
|
11
|
-
"""
|
12
|
-
|
11
|
+
"""Базовый класс для ошибок в системе интеграции с продуктами Образования.
|
12
|
+
|
13
|
+
Предоставляет основную функциональность для обработки ошибок:
|
14
|
+
- Форматирование сообщений об ошибках
|
15
|
+
- Сохранение контекста возникновения ошибки
|
16
|
+
- Классификация типов ошибок
|
17
|
+
- Механизм обработки вложенных ошибок
|
18
|
+
|
19
|
+
Note:
|
20
|
+
При создании конкретных типов ошибок рекомендуется:
|
21
|
+
- Определять специфичные коды ошибок
|
22
|
+
- Предоставлять информативные сообщения
|
23
|
+
- Включать контекстную информацию в details
|
13
24
|
"""
|
@@ -1,3 +1,11 @@
|
|
1
|
+
"""Базовые классы функций для интеграции с продуктами Образования.
|
2
|
+
|
3
|
+
Этот модуль содержит базовые классы функций, которые используются для создания
|
4
|
+
конкретных реализаций функций обработки данных в системе. Модуль предоставляет
|
5
|
+
различные варианты базовых классов с разными стратегиями сохранения данных
|
6
|
+
и управления очередями объектов.
|
7
|
+
"""
|
8
|
+
|
1
9
|
from abc import (
|
2
10
|
ABCMeta,
|
3
11
|
)
|
@@ -20,32 +28,55 @@ from edu_rdm_integration.adapters.validators import (
|
|
20
28
|
|
21
29
|
|
22
30
|
class WebEduFunction(BaseFunction, metaclass=ABCMeta):
|
23
|
-
"""
|
24
|
-
|
31
|
+
"""Базовый класс для создания функций продуктов Образования.
|
32
|
+
|
33
|
+
Предоставляет основной интерфейс для создания функций обработки данных.
|
34
|
+
Наследуется от BaseFunction и добавляет специфичную для продуктов
|
35
|
+
Образования функциональность.
|
36
|
+
|
37
|
+
Note:
|
38
|
+
Этот класс является абстрактным и должен быть расширен конкретными
|
39
|
+
реализациями функций.
|
25
40
|
"""
|
26
41
|
|
27
42
|
|
28
43
|
class WebEduLazySavingPredefinedQueueFunction(LazySavingPredefinedQueueFunction, metaclass=ABCMeta):
|
29
|
-
"""
|
30
|
-
|
31
|
-
|
44
|
+
"""Базовый класс для создания функций с отложенным сохранением.
|
45
|
+
|
46
|
+
Реализует паттерн отложенного сохранения (lazy saving) с предустановленной
|
47
|
+
очередью объектов. Это позволяет:
|
48
|
+
- Накапливать объекты для сохранения в течение выполнения функции
|
49
|
+
- Сохранять все объекты атомарно после успешного выполнения всех операций
|
50
|
+
- Откатывать все изменения в случае ошибки
|
51
|
+
- Оптимизировать производительность за счет пакетного сохранения
|
52
|
+
|
53
|
+
Attributes:
|
54
|
+
helper (WebEduFunctionHelper): Помощник функции для вспомогательных операций
|
55
|
+
validator (WebEduFunctionValidator): Валидатор для проверки данных
|
56
|
+
result (WebEduFunctionResult): Объект для хранения результатов работы
|
32
57
|
"""
|
33
58
|
|
34
59
|
def _prepare_helper_class(self) -> type[WebEduFunctionHelper]:
|
35
|
-
"""
|
36
|
-
|
60
|
+
"""Возвращает класс помощника функции.
|
61
|
+
|
62
|
+
Returns:
|
63
|
+
type[WebEduFunctionHelper]: Класс помощника для работы с данными
|
37
64
|
"""
|
38
65
|
return WebEduFunctionHelper
|
39
66
|
|
40
67
|
def _prepare_validator_class(self) -> type[WebEduFunctionValidator]:
|
41
|
-
"""
|
42
|
-
|
68
|
+
"""Возвращает класс валидатора функции.
|
69
|
+
|
70
|
+
Returns:
|
71
|
+
type[WebEduFunctionValidator]: Класс для валидации входных данных
|
43
72
|
"""
|
44
73
|
return WebEduFunctionValidator
|
45
74
|
|
46
75
|
def _prepare_result_class(self) -> type[WebEduFunctionResult]:
|
47
|
-
"""
|
48
|
-
|
76
|
+
"""Возвращает класс результата функции.
|
77
|
+
|
78
|
+
Returns:
|
79
|
+
type[WebEduFunctionResult]: Класс для хранения результатов выполнения
|
49
80
|
"""
|
50
81
|
return WebEduFunctionResult
|
51
82
|
|
@@ -54,7 +85,15 @@ class WebEduLazySavingPredefinedQueueGlobalHelperFunction(
|
|
54
85
|
LazySavingPredefinedQueueGlobalHelperFunction,
|
55
86
|
metaclass=ABCMeta,
|
56
87
|
):
|
88
|
+
"""Базовый класс для создания функций с глобальным помощником.
|
89
|
+
|
90
|
+
Расширяет функциональность WebEduLazySavingPredefinedQueueFunction,
|
91
|
+
добавляя поддержку глобального помощника. Это позволяет:
|
92
|
+
- Использовать общие вспомогательные методы между разными функциями
|
93
|
+
- Кэшировать часто используемые данные на уровне всего приложения
|
94
|
+
- Оптимизировать использование ресурсов при массовой обработке данных
|
95
|
+
|
96
|
+
Note:
|
97
|
+
Глобальный помощник должен быть потокобезопасным, так как может
|
98
|
+
использоваться одновременно несколькими функциями.
|
57
99
|
"""
|
58
|
-
Базовый класс для создания функций с отложенным сохранением,
|
59
|
-
предустановленной очередью на сохранение и глобальным помощником продуктов Образования.
|
60
|
-
"""
|
@@ -14,24 +14,50 @@ from edu_rdm_integration.adapters.caches import (
|
|
14
14
|
|
15
15
|
|
16
16
|
class WebEduRunnerHelper(BaseRunnerHelper, metaclass=ABCMeta):
|
17
|
-
"""
|
18
|
-
|
17
|
+
"""Базовый класс помощников для исполнителей функций.
|
18
|
+
|
19
|
+
Предоставляет вспомогательную функциональность для исполнителей,
|
20
|
+
включая:
|
21
|
+
- Кэширование данных исполнителя
|
22
|
+
- Общие утилиты для работы с функциями
|
23
|
+
- Доступ к разделяемым ресурсам
|
24
|
+
|
25
|
+
Attributes:
|
26
|
+
cache (WebEduRunnerCacheStorage): Хранилище кэша для исполнителя
|
19
27
|
"""
|
20
28
|
|
21
29
|
def _prepare_cache_class(self) -> type[WebEduRunnerCacheStorage]:
|
22
|
-
"""
|
23
|
-
|
30
|
+
"""Возвращает класс хранилища кэша для исполнителя.
|
31
|
+
|
32
|
+
Returns:
|
33
|
+
type[WebEduRunnerCacheStorage]: Класс для кэширования данных
|
34
|
+
исполнителя
|
24
35
|
"""
|
25
36
|
return WebEduRunnerCacheStorage
|
26
37
|
|
27
38
|
|
28
39
|
class WebEduFunctionHelper(BaseFunctionHelper, metaclass=ABCMeta):
|
29
|
-
"""
|
30
|
-
|
40
|
+
"""Базовый класс помощников для функций обработки данных.
|
41
|
+
|
42
|
+
Предоставляет вспомогательную функциональность для функций,
|
43
|
+
включая:
|
44
|
+
- Кэширование данных функции
|
45
|
+
- Общие утилиты для обработки данных
|
46
|
+
- Доступ к разделяемым ресурсам
|
47
|
+
|
48
|
+
Note:
|
49
|
+
Каждая конкретная функция может расширить этот класс,
|
50
|
+
добавив специфичные для неё вспомогательные методы.
|
51
|
+
|
52
|
+
Attributes:
|
53
|
+
cache (WebEduFunctionCacheStorage): Хранилище кэша для функции
|
31
54
|
"""
|
32
55
|
|
33
56
|
def _prepare_cache_class(self) -> type[WebEduFunctionCacheStorage]:
|
34
|
-
"""
|
35
|
-
|
57
|
+
"""Возвращает класс хранилища кэша для функции.
|
58
|
+
|
59
|
+
Returns:
|
60
|
+
type[WebEduFunctionCacheStorage]: Класс для кэширования данных
|
61
|
+
функции
|
36
62
|
"""
|
37
63
|
return WebEduFunctionCacheStorage
|
@@ -12,14 +12,50 @@ from edu_rdm_integration.adapters.runners import (
|
|
12
12
|
|
13
13
|
|
14
14
|
class WebEduRunnerManager(RunnerManager, metaclass=ABCMeta):
|
15
|
-
"""
|
16
|
-
|
15
|
+
"""Базовый класс менеджеров исполнителей функций продуктов Образования.
|
16
|
+
|
17
|
+
Предоставляет базовую функциональность для управления исполнителями
|
18
|
+
(runners) функций в контексте образовательных продуктов. Наследует
|
19
|
+
возможности RunnerManager и адаптирует их для специфики образовательной
|
20
|
+
системы.
|
21
|
+
|
22
|
+
Основные возможности:
|
23
|
+
- Создание и инициализация исполнителей функций
|
24
|
+
- Управление жизненным циклом исполнителей
|
25
|
+
- Конфигурация исполнителей для образовательных задач
|
26
|
+
- Интеграция с системой образовательных продуктов
|
27
|
+
|
28
|
+
Note:
|
29
|
+
- Является абстрактным классом
|
30
|
+
- Требует реализации в конкретных менеджерах
|
31
|
+
- Использует WebEduRunner как базовый класс исполнителей
|
32
|
+
- Интегрируется с другими компонентами системы образования
|
33
|
+
- Обеспечивает единообразное управление исполнителями
|
34
|
+
|
35
|
+
See Also:
|
36
|
+
- RunnerManager: базовый класс для управления исполнителями
|
37
|
+
- WebEduRunner: базовый класс исполнителей
|
38
|
+
- WebEduRunnerCacheStorage: хранилище кеша для исполнителей
|
17
39
|
"""
|
18
40
|
|
19
41
|
@classmethod
|
20
42
|
def _prepare_runner_class(cls) -> type[WebEduRunner]:
|
21
|
-
"""
|
22
|
-
|
43
|
+
"""Возвращает класс исполнителя для образовательных функций.
|
44
|
+
|
45
|
+
Определяет WebEduRunner как базовый класс для всех исполнителей
|
46
|
+
в системе образовательных продуктов. Этот метод вызывается при
|
47
|
+
создании новых исполнителей.
|
48
|
+
|
49
|
+
Returns:
|
50
|
+
type[WebEduRunner]: Класс исполнителя WebEduRunner
|
51
|
+
|
52
|
+
Note:
|
53
|
+
- Метод является частью инициализации исполнителей
|
54
|
+
- Переопределяет метод базового класса RunnerManager
|
55
|
+
- Гарантирует использование правильного типа исполнителя
|
56
|
+
- Может быть переопределен в наследниках для специфических исполнителей
|
57
|
+
|
58
|
+
See Also:
|
59
|
+
- WebEduRunner: базовый класс исполнителей
|
23
60
|
"""
|
24
61
|
return WebEduRunner
|
25
|
-
|
@@ -8,6 +8,30 @@ from function_tools.presenters import (
|
|
8
8
|
|
9
9
|
|
10
10
|
class WebEduResultPresenter(ResultPresenter, metaclass=ABCMeta):
|
11
|
-
"""
|
12
|
-
|
11
|
+
"""Базовый класс презентеров результатов работы функций продуктов Образования.
|
12
|
+
|
13
|
+
Предоставляет базовую функциональность для форматирования и представления
|
14
|
+
результатов выполнения функций в контексте образовательных продуктов.
|
15
|
+
Наследует возможности ResultPresenter и адаптирует их для специфики
|
16
|
+
образовательной системы.
|
17
|
+
|
18
|
+
Основные возможности:
|
19
|
+
- Форматирование результатов выполнения функций
|
20
|
+
- Адаптация данных для различных потребителей
|
21
|
+
- Поддержка различных форматов вывода
|
22
|
+
- Интеграция с системой отчетности
|
23
|
+
|
24
|
+
Note:
|
25
|
+
- Является абстрактным классом
|
26
|
+
- Требует реализации в конкретных презентерах
|
27
|
+
- Поддерживает различные форматы представления данных
|
28
|
+
- Учитывает специфику образовательных данных
|
29
|
+
- Интегрируется с другими компонентами системы
|
30
|
+
- Обеспечивает единообразное представление результатов
|
31
|
+
|
32
|
+
|
33
|
+
See Also:
|
34
|
+
- ResultPresenter: базовый класс для презентеров результатов
|
35
|
+
- WebEduRunner: исполнитель функций образовательных продуктов
|
36
|
+
- WebEduRunnerManager: менеджер исполнителей функций
|
13
37
|
"""
|
@@ -4,8 +4,22 @@ from sys import (
|
|
4
4
|
|
5
5
|
|
6
6
|
def m3_edu_function_tools_after_migrate_receiver(sender, **kwargs):
|
7
|
-
"""
|
8
|
-
|
7
|
+
"""Обработчик сигнала, выполняющийся после применения миграций.
|
8
|
+
|
9
|
+
Автоматически регистрирует сущности в системе после успешного
|
10
|
+
выполнения миграций базы данных. Это обеспечивает:
|
11
|
+
- Синхронизацию моделей с системой регистрации
|
12
|
+
- Корректную инициализацию новых сущностей
|
13
|
+
- Обновление существующих регистраций
|
14
|
+
|
15
|
+
Args:
|
16
|
+
sender: Отправитель сигнала (обычно приложение Django)
|
17
|
+
**kwargs: Дополнительные параметры сигнала
|
18
|
+
|
19
|
+
Note:
|
20
|
+
В случае возникновения ошибок при регистрации, они будут
|
21
|
+
перехвачены и залогированы, но не будут прерывать процесс
|
22
|
+
миграции.
|
9
23
|
"""
|
10
24
|
from function_tools.management.commands.register_entities import (
|
11
25
|
EntityRegistrar,
|
@@ -8,12 +8,58 @@ from function_tools.results import (
|
|
8
8
|
|
9
9
|
|
10
10
|
class WebEduRunnerResult(BaseRunnableResult, metaclass=ABCMeta):
|
11
|
-
"""
|
12
|
-
|
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: результаты функций образовательных продуктов
|
13
35
|
"""
|
14
36
|
|
15
37
|
|
16
38
|
class WebEduFunctionResult(BaseRunnableResult, metaclass=ABCMeta):
|
17
|
-
"""
|
18
|
-
|
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: презентер результатов
|
19
65
|
"""
|
@@ -1,3 +1,13 @@
|
|
1
|
+
"""Исполнители (runners) для функций интеграции с продуктами Образования.
|
2
|
+
|
3
|
+
Этот модуль содержит классы исполнителей, которые отвечают за запуск и управление
|
4
|
+
выполнением функций обработки данных. Исполнители обеспечивают:
|
5
|
+
- Подготовку и валидацию входных данных
|
6
|
+
- Управление жизненным циклом функций
|
7
|
+
- Логирование процесса выполнения
|
8
|
+
- Обработку результатов и ошибок
|
9
|
+
"""
|
10
|
+
|
1
11
|
from abc import (
|
2
12
|
ABCMeta,
|
3
13
|
)
|
@@ -19,37 +29,64 @@ from edu_rdm_integration.adapters.results import (
|
|
19
29
|
from edu_rdm_integration.adapters.validators import (
|
20
30
|
WebEduRunnerValidator,
|
21
31
|
)
|
22
|
-
from edu_rdm_integration.consts import (
|
32
|
+
from edu_rdm_integration.core.consts import (
|
23
33
|
LOGS_DELIMITER,
|
24
34
|
)
|
25
35
|
|
26
36
|
|
27
37
|
class WebEduRunner(BaseRunner, metaclass=ABCMeta):
|
28
|
-
"""
|
29
|
-
|
38
|
+
"""Базовый класс исполнителей функций продуктов Образования.
|
39
|
+
|
40
|
+
Предоставляет основную функциональность для запуска и управления
|
41
|
+
выполнением функций обработки данных. Включает:
|
42
|
+
- Подготовку и валидацию входных параметров
|
43
|
+
- Логирование процесса выполнения
|
44
|
+
- Обработку результатов и ошибок
|
45
|
+
- Управление очередью выполнения
|
46
|
+
|
47
|
+
Attributes:
|
48
|
+
helper (WebEduRunnerHelper): Помощник для вспомогательных операций
|
49
|
+
validator (WebEduRunnerValidator): Валидатор входных данных
|
50
|
+
result (WebEduRunnerResult): Объект для хранения результатов
|
30
51
|
"""
|
31
52
|
|
32
53
|
def _prepare_helper_class(self) -> type[WebEduRunnerHelper]:
|
33
|
-
"""
|
34
|
-
|
54
|
+
"""Возвращает класс помощника исполнителя.
|
55
|
+
|
56
|
+
Returns:
|
57
|
+
type[WebEduRunnerHelper]: Класс помощника для вспомогательных операций
|
58
|
+
при выполнении функций
|
35
59
|
"""
|
36
60
|
return WebEduRunnerHelper
|
37
61
|
|
38
62
|
def _prepare_validator_class(self) -> type[WebEduRunnerValidator]:
|
39
|
-
"""
|
40
|
-
|
63
|
+
"""Возвращает класс валидатора исполнителя.
|
64
|
+
|
65
|
+
Returns:
|
66
|
+
type[WebEduRunnerValidator]: Класс для валидации входных параметров
|
67
|
+
и проверки состояния исполнителя
|
41
68
|
"""
|
42
69
|
return WebEduRunnerValidator
|
43
70
|
|
44
71
|
def _prepare_result_class(self) -> type[WebEduRunnerResult]:
|
45
|
-
"""
|
46
|
-
|
72
|
+
"""Возвращает класс результата исполнителя.
|
73
|
+
|
74
|
+
Returns:
|
75
|
+
type[WebEduRunnerResult]: Класс для хранения результатов выполнения
|
76
|
+
функций и возможных ошибок
|
47
77
|
"""
|
48
78
|
return WebEduRunnerResult
|
49
79
|
|
50
80
|
def _prepare_runnable_before_enqueue(self, runnable, *args, **kwargs):
|
51
|
-
"""
|
52
|
-
|
81
|
+
"""Подготовка запускаемого объекта перед добавлением в очередь.
|
82
|
+
|
83
|
+
Выполняет базовую подготовку объекта и добавляет логирование
|
84
|
+
для отслеживания процесса выполнения.
|
85
|
+
|
86
|
+
Args:
|
87
|
+
runnable: Объект для выполнения
|
88
|
+
*args: Дополнительные позиционные аргументы
|
89
|
+
**kwargs: Дополнительные именованные аргументы
|
53
90
|
"""
|
54
91
|
super()._prepare_runnable_before_enqueue(runnable, *args, **kwargs)
|
55
92
|
|
@@ -57,25 +94,47 @@ class WebEduRunner(BaseRunner, metaclass=ABCMeta):
|
|
57
94
|
|
58
95
|
|
59
96
|
class WebEduGlobalHelperRunner(GlobalHelperRunner, metaclass=ABCMeta):
|
60
|
-
"""
|
61
|
-
|
62
|
-
|
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): Объект для хранения результатов
|
63
113
|
"""
|
64
114
|
|
65
115
|
def _prepare_helper_class(self) -> type[WebEduRunnerHelper]:
|
66
|
-
"""
|
67
|
-
|
116
|
+
"""Возвращает класс глобального помощника.
|
117
|
+
|
118
|
+
Returns:
|
119
|
+
type[WebEduRunnerHelper]: Класс помощника, который будет использоваться
|
120
|
+
всеми исполнителями
|
68
121
|
"""
|
69
122
|
return WebEduRunnerHelper
|
70
123
|
|
71
124
|
def _prepare_validator_class(self) -> type[WebEduRunnerValidator]:
|
72
|
-
"""
|
73
|
-
|
125
|
+
"""Возвращает класс валидатора исполнителя.
|
126
|
+
|
127
|
+
Returns:
|
128
|
+
type[WebEduRunnerValidator]: Класс для валидации входных параметров
|
129
|
+
и проверки состояния исполнителя
|
74
130
|
"""
|
75
131
|
return WebEduRunnerValidator
|
76
132
|
|
77
133
|
def _prepare_result_class(self) -> type[WebEduRunnerResult]:
|
78
|
-
"""
|
79
|
-
|
134
|
+
"""Возвращает класс результата исполнителя.
|
135
|
+
|
136
|
+
Returns:
|
137
|
+
type[WebEduRunnerResult]: Класс для хранения результатов выполнения
|
138
|
+
функций и возможных ошибок
|
80
139
|
"""
|
81
140
|
return WebEduRunnerResult
|