edu-rdm-integration 3.5.8__tar.gz → 3.6.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.
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/CHANGELOG.md +38 -0
- edu_rdm_integration-3.6.0/MANIFEST.in +9 -0
- {edu-rdm-integration-3.5.8/src/edu_rdm_integration.egg-info → edu_rdm_integration-3.6.0}/PKG-INFO +125 -9
- edu-rdm-integration-3.5.8/PKG-INFO → edu_rdm_integration-3.6.0/README.md +87 -15
- edu_rdm_integration-3.6.0/pyproject.toml +133 -0
- edu_rdm_integration-3.6.0/setup.cfg +4 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/app_settings.py +13 -0
- edu_rdm_integration-3.6.0/src/edu_rdm_integration/base.py +147 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/consts.py +2 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/enums.py +31 -0
- edu_rdm_integration-3.6.0/src/edu_rdm_integration/migrations/0016_transferredentity_queue_level.py +22 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/models.py +6 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/registry/actions.py +23 -4
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/registry/ui.py +44 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/tasks.py +105 -113
- edu-rdm-integration-3.5.8/README.md → edu_rdm_integration-3.6.0/src/edu_rdm_integration.egg-info/PKG-INFO +131 -2
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration.egg-info/SOURCES.txt +2 -14
- edu_rdm_integration-3.6.0/src/edu_rdm_integration.egg-info/requires.txt +22 -0
- edu-rdm-integration-3.5.8/MANIFEST.in +0 -10
- edu-rdm-integration-3.5.8/pyproject.toml +0 -19
- edu-rdm-integration-3.5.8/requirements/dependencies/development_packages.txt +0 -5
- edu-rdm-integration-3.5.8/requirements/dependencies/external_packages.txt +0 -4
- edu-rdm-integration-3.5.8/requirements/dependencies/internal_packages.txt +0 -5
- edu-rdm-integration-3.5.8/requirements/dependencies/internal_sources.txt +0 -4
- edu-rdm-integration-3.5.8/requirements/dependencies/production_packages.txt +0 -2
- edu-rdm-integration-3.5.8/requirements/dependencies/system_packages.txt +0 -4
- edu-rdm-integration-3.5.8/requirements/dependencies/testing_packages.txt +0 -0
- edu-rdm-integration-3.5.8/requirements/development.txt +0 -5
- edu-rdm-integration-3.5.8/requirements/production.txt +0 -2
- edu-rdm-integration-3.5.8/requirements/stage.txt +0 -5
- edu-rdm-integration-3.5.8/setup.cfg +0 -36
- edu-rdm-integration-3.5.8/setup.py +0 -110
- edu-rdm-integration-3.5.8/src/edu_rdm_integration/base.py +0 -41
- edu-rdm-integration-3.5.8/src/edu_rdm_integration.egg-info/namespace_packages.txt +0 -1
- edu-rdm-integration-3.5.8/src/edu_rdm_integration.egg-info/not-zip-safe +0 -1
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/CONDUCT.md +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/LICENSE +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/apps.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/caches.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/consts.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/enums.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/errors.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/functions.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/managers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/presenters.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/receivers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/results.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/runners.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/strategies.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/strings.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/tests.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/adapters/validators.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/app_meta.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/apps.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/apps.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0001_initial.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/migrations/0002_auto_20250204_1413.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/migrations/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/models.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_and_export_data/utils.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/caches.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/functions.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/managers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/mixins.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/base/runners.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/caches.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/consts.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/enums.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/errors.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/functions.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/managers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/presenters.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/results.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/runners.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/strings.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/tests.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/base/validators.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/calculated/strategies.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/collect.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/generators.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/caches.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/consts.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/enums.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/errors.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/functions.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/managers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/presenters.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/results.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/runners.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/strings.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/tests.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/base/validators.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/non_calculated/strategies.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/collect_data/tests.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/entities.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/enum_register/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/enum_register/mixins.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/enum_register/register.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/caches.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/consts.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/enums.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/errors.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/functions.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/managers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/presenters.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/requests.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/results.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/runners.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/strings.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/tests.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/base/validators.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/consts.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/dataclasses.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/export.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/export_manager.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/generators.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/queue.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/export_data/strategies.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/__init__.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/apps.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/caches.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/consts.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/enums.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/errors.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/functions.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/helpers.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/managers.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/presenters.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/results.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/runners.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/strings.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/tests.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_collect_data_template/validators.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/__init__.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/apps.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/caches.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/consts.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/enums.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/errors.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/functions.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/helpers.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/managers.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/presenters.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/results.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/runners.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/strings.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/tests.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/function_templates/function_export_data_template/validators.py-tpl +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/helpers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/async_fix_attachment_size.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/check_upload_status.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/collect_latest_models_data.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/collect_models_data.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/datamart_status.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/datamart_upload.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/export_entities_data.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/commands/export_latest_entities_data.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/management/general.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/mapping.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0001_initial.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0002_init_data_uploadstatus.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0003_create_index_file_upload_status.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0004_uploaderclientlog.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0005_auto_20231204_1224.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0006_request_status_data.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0007_delete_upload_status.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0008_transferredentity.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0009_auto_20240522_1619.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0010_transferredentity_export_enabled.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0011_exportingdatasubstageentity.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0012_exportingdatasubstageattachment_attachment_size.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0013_set_attachment_size.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0014_uploaddatacommand.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/0015_set_exporting_sub_stage_status.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/migrations/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/redis_cache.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/registry/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/signals.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/storages.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/templates/ui-js/transferred-entity-list.js +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/typing.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/__init__.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/actions.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/apps.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/enums.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/managers.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/templates/ui-js/object-grid-buttons.js +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/uploader_log/ui.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/utils.py +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration.egg-info/dependency_links.txt +0 -0
- {edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration.egg-info/top_level.txt +0 -0
@@ -28,6 +28,44 @@
|
|
28
28
|
|
29
29
|
### Удалено
|
30
30
|
|
31
|
+
## [3.6.0] - 2025-04-19
|
32
|
+
|
33
|
+
Вводится две новые очереди и соответсвущие этим очередям периодические задачи
|
34
|
+
сбора и выгрузки данных. Очередь для сущности указывается в реестре "Сущности для сбора и экспорта данных"
|
35
|
+
- по умолчанию все сущности относятся к основной очереди.
|
36
|
+
Итого - нужно настроить три очереди для работы.
|
37
|
+
|
38
|
+
- "Быстрая" очередь - RDM_FAST - для сущностей, по которым данные должны отдаваться каждые 5/10/15 минут по требованиям
|
39
|
+
витрины. Периодическая задача - TransferLatestEntitiesDataFastPeriodicTask.
|
40
|
+
- Основная очередь (та которая была до версии 3.6) - RDM- ля всех сущностей по умолчанию.
|
41
|
+
Периодическая задача - TransferLatestEntitiesDataFastPeriodicTask.
|
42
|
+
- "Долгая" очередь - RDM_LONG - для сущностей по которым идет долгий сбор, например для расчетных сущностей.
|
43
|
+
Периодическая задача - TransferLatestEntitiesDataLongPeriodicTask.
|
44
|
+
|
45
|
+
### Добавлено
|
46
|
+
|
47
|
+
- [EDUSCHL-23348](https://jira.bars.group/browse/EDUSCHL-23348)
|
48
|
+
MINOR Добавлено две дополнительные очереди для сбора и выгрузки данных РВД и соответствующие периодические
|
49
|
+
задачи TransferLatestEntitiesDataFastPeriodicTask и TransferLatestEntitiesDataLongPeriodicTask. Доработан реестр
|
50
|
+
Сущности для сбора и экспорта данных - добавлено окно редактирования для возможности выбора очереди.
|
51
|
+
|
52
|
+
|
53
|
+
## [3.5.10] - 2025-03-24
|
54
|
+
|
55
|
+
### Изменено
|
56
|
+
|
57
|
+
- [EDUDEVOPS-66](https://jira.bars.group/browse/EDUDEVOPS-66)
|
58
|
+
PATCH Переход на pyproject.toml.
|
59
|
+
|
60
|
+
|
61
|
+
## [3.5.9] - 2025-03-14
|
62
|
+
|
63
|
+
### Изменено
|
64
|
+
|
65
|
+
- [EDUDEVOPS-66](https://jira.bars.group/browse/EDUDEVOPS-66)
|
66
|
+
PATCH Исправление сборки.
|
67
|
+
|
68
|
+
|
31
69
|
## [3.5.8] - 2025-03-13
|
32
70
|
|
33
71
|
### Изменено
|
{edu-rdm-integration-3.5.8/src/edu_rdm_integration.egg-info → edu_rdm_integration-3.6.0}/PKG-INFO
RENAMED
@@ -1,15 +1,46 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.4
|
2
2
|
Name: edu-rdm-integration
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.6.0
|
4
4
|
Summary: Интеграция с Региональной витриной данных
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
Author-email: BARS Group <education_dev@bars.group>
|
6
|
+
Project-URL: Homepage, https://stash.bars-open.ru/projects/EDUBASE/repos/edu_rdm_integration/browse
|
7
|
+
Project-URL: Repository, https://stash.bars-open.ru/scm/edubase/edu_rdm_integration.git
|
8
|
+
Classifier: Development Status :: 5 - Production/Stable
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
10
|
+
Classifier: Programming Language :: Python :: 3.9
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
14
|
+
Classifier: Framework :: Django :: 2.2
|
15
|
+
Classifier: Framework :: Django :: 3.0
|
16
|
+
Classifier: Framework :: Django :: 3.1
|
17
|
+
Classifier: Framework :: Django :: 3.2
|
18
|
+
Classifier: Intended Audience :: Developers
|
19
|
+
Classifier: Environment :: Web Environment
|
10
20
|
Requires-Python: >=3.9
|
11
21
|
Description-Content-Type: text/markdown
|
12
22
|
License-File: LICENSE
|
23
|
+
Requires-Dist: transliterate<2
|
24
|
+
Requires-Dist: Django<3.3,>=3.1
|
25
|
+
Requires-Dist: celery<5.3,>=4.4.7
|
26
|
+
Requires-Dist: asyncpg==0.23.0
|
27
|
+
Requires-Dist: educommon<4,>=3.11.0
|
28
|
+
Requires-Dist: function-tools<1,>=0.9.0
|
29
|
+
Requires-Dist: m3-db-utils<1,>=0.3.10
|
30
|
+
Requires-Dist: m3-django-compat<2,>=1.10.2
|
31
|
+
Requires-Dist: uploader-client<1,>=0.2.3
|
32
|
+
Provides-Extra: dev
|
33
|
+
Requires-Dist: isort==5.12.0; extra == "dev"
|
34
|
+
Requires-Dist: ruff==0.6.9; extra == "dev"
|
35
|
+
Requires-Dist: flake8<7,>=4.0.1; extra == "dev"
|
36
|
+
Requires-Dist: pytest<8,>=3.2.5; extra == "dev"
|
37
|
+
Requires-Dist: pytest-cov<5; extra == "dev"
|
38
|
+
Provides-Extra: docs
|
39
|
+
Requires-Dist: sphinx<7.5,>=7; extra == "docs"
|
40
|
+
Requires-Dist: sphinx-autodoc-typehints<2.5,>=2; extra == "docs"
|
41
|
+
Requires-Dist: myst-parser<3.2,>=3; extra == "docs"
|
42
|
+
Requires-Dist: sphinx_design<0.7,>=0.6; extra == "docs"
|
43
|
+
Dynamic: license-file
|
13
44
|
|
14
45
|
# Проект "Интеграция с Региональной витриной данных (РВД)"
|
15
46
|
|
@@ -47,6 +78,19 @@ License-File: LICENSE
|
|
47
78
|
|
48
79
|
Стоит обратить внимание, что сущности РВД могут содержать в себе данные из нескольких моделей РВД.
|
49
80
|
|
81
|
+
Очереди для периодических задач сборки и выгрузки данных
|
82
|
+
: Важно учитывать, что с версии пакета 3.6 вводится две новые очереди и соответсвущие этим очередям периодические задачи
|
83
|
+
сбора и выгрузки данных. Очередь для сущности указывается в реестре "Сущности для сбора и экспорта данных" - по умолчанию все
|
84
|
+
сущности относятся к основной очереди.
|
85
|
+
Итого - нужно настроить три очереди для работы.
|
86
|
+
|
87
|
+
- "Быстрая" очередь - RDM_FAST - для сущностей, по которым данные должны отдаваться каждые 5/10/15 минут по требованиям
|
88
|
+
витрины. Периодическая задача - TransferLatestEntitiesDataFastPeriodicTask.
|
89
|
+
- Основная очередь (та которая была до версии 3.6) - RDM- ля всех сущностей по умолчанию.
|
90
|
+
Периодическая задача - TransferLatestEntitiesDataFastPeriodicTask.
|
91
|
+
- "Долгая" очередь - RDM_LONG - для сущностей по которым идет долгий сбор, например для расчетных сущностей.
|
92
|
+
Периодическая задача - TransferLatestEntitiesDataLongPeriodicTask.
|
93
|
+
|
50
94
|
## Требования к окружению
|
51
95
|
|
52
96
|
Для работы требуется Python >=3.9. Так же в зависимостях есть внутренние пакеты:
|
@@ -98,6 +142,39 @@ License-File: LICENSE
|
|
98
142
|
('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
|
99
143
|
})
|
100
144
|
```
|
145
|
+
С версии пакета 3.6 добавляются новые настройки для двух периодических задач разных очередей сбора и выгрузки данных
|
146
|
+
```
|
147
|
+
PROJECT_DEFAULT_CONFIG.update({
|
148
|
+
# Настройки РВД
|
149
|
+
('rdm_general', 'EXPORT_ENTITY_ID_PREFIX'): '', # Дефолтное значение нужно изменить на специфическое системе
|
150
|
+
('rdm_general', 'COLLECT_CHUNK_SIZE'): 500,
|
151
|
+
('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
|
152
|
+
('rdm_transfer_task', 'MINUTE'): '0',
|
153
|
+
('rdm_transfer_task', 'HOUR'): '*/4',
|
154
|
+
('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
|
155
|
+
('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS'): 21600,
|
156
|
+
('rdm_transfer_task', 'TIMEDELTA'): 3600,
|
157
|
+
('rdm_transfer_task', 'ENTITIES'): '',
|
158
|
+
('rdm_transfer_task_fast', 'MINUTE'): '*/5',
|
159
|
+
('rdm_transfer_task_fast', 'HOUR'): '*',
|
160
|
+
('rdm_transfer_task_fast', 'DAY_OF_WEEK'): '*',
|
161
|
+
('rdm_transfer_task_fast', 'LOCK_EXPIRE_SECONDS'): 1800,
|
162
|
+
('rdm_transfer_task_long', 'MINUTE'): '0',
|
163
|
+
('rdm_transfer_task_long', 'HOUR'): '*/6',
|
164
|
+
('rdm_transfer_task_long', 'DAY_OF_WEEK'): '*',
|
165
|
+
('rdm_transfer_task_long', 'LOCK_EXPIRE_SECONDS'): 28800,
|
166
|
+
('rdm_upload_status_task', 'MINUTE'): '*/30',
|
167
|
+
('rdm_upload_status_task', 'HOUR'): '*',
|
168
|
+
('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
|
169
|
+
('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS'): 7200,
|
170
|
+
('uploader_client', 'URL'): 'http://localhost:8090',
|
171
|
+
('uploader_client', 'DATAMART_NAME'): '',
|
172
|
+
('uploader_client', 'REQUEST_RETRIES'): 10,
|
173
|
+
('uploader_client', 'REQUEST_TIMEOUT'): 10,
|
174
|
+
('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
|
175
|
+
})
|
176
|
+
|
177
|
+
```
|
101
178
|
- Получение значений настроек из конфигурационного файла в settings.py:
|
102
179
|
|
103
180
|
```
|
@@ -156,7 +233,21 @@ License-File: LICENSE
|
|
156
233
|
RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = conf.get_bool('uploader_client', 'ENABLE_REQUEST_EMULATION')
|
157
234
|
|
158
235
|
```
|
159
|
-
|
236
|
+
С версии пакета 3.6 добавляются настройки для двух новых периодических задач
|
237
|
+
```
|
238
|
+
# Настройка запуска периодической задачи выгрузки данных - быстрая очередь:
|
239
|
+
RDM_FAST_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task_fast', 'MINUTE')
|
240
|
+
RDM_FAST_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task_fast', 'HOUR')
|
241
|
+
RDM_FAST_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task_fast', 'DAY_OF_WEEK')
|
242
|
+
RDM_FAST_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_transfer_task_fast', 'LOCK_EXPIRE_SECONDS')
|
243
|
+
|
244
|
+
# Настройка запуска периодической задачи выгрузки данных - долгая очередь расчетных моделей:
|
245
|
+
RDM_LONG_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task_long', 'MINUTE')
|
246
|
+
RDM_LONG_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task_long', 'HOUR')
|
247
|
+
RDM_LONG_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task_long', 'DAY_OF_WEEK')
|
248
|
+
RDM_LONG_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_transfer_task_long', 'LOCK_EXPIRE_SECONDS')
|
249
|
+
|
250
|
+
```
|
160
251
|
Перечень настроек в settings.py указан в таблице ниже.
|
161
252
|
|
162
253
|
| Название настройки в settings | Описание | Значение по умолчанию |
|
@@ -180,7 +271,18 @@ License-File: LICENSE
|
|
180
271
|
| RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 3600 |
|
181
272
|
| RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
|
182
273
|
|
183
|
-
|
274
|
+
С версии пакета 3.6 добавляются новые настройки
|
275
|
+
|
276
|
+
| Название настройки в settings | Описание | Значение по умолчанию |
|
277
|
+
|--------------------------------------------|----------------------------------------------------------------------------------------|-----------------------|
|
278
|
+
| RDM_FAST_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи (быстрая очередь) выгрузки данных. Минута | '*/5' |
|
279
|
+
| RDM_FAST_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи (быстрая очередь) выгрузки данных. Час | '*' |
|
280
|
+
| RDM_FAST_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи (быстрая очередь) выгрузки данных. День недели | '*' |
|
281
|
+
| RDM_FAST_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 1800 |
|
282
|
+
| RDM_LONG_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи (долгая очередь) выгрузки данных. Минута | 0 |
|
283
|
+
| RDM_LONG_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи (долгая очередь) выгрузки данных. Час | '*/6' |
|
284
|
+
| RDM_LONG_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи (долгая очередь) выгрузки данных. День недели | '*' |
|
285
|
+
| RDM_LONG_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 28800 |
|
184
286
|
|
185
287
|
- В дефолтный конфиг проекта необходимо добавить:
|
186
288
|
|
@@ -236,7 +338,21 @@ License-File: LICENSE
|
|
236
338
|
# Включить эмуляцию отправки запросов
|
237
339
|
ENABLE_REQUEST_EMULATION = True
|
238
340
|
```
|
341
|
+
- С версии 3.6 в деволтный конфиг также нужно добавить два дополнительных раздела
|
342
|
+
```
|
343
|
+
|
344
|
+
[rdm_transfer_task_fast]
|
345
|
+
MINUTE=*/2
|
346
|
+
HOUR=*
|
347
|
+
DAY_OF_WEEK=*
|
348
|
+
LOCK_EXPIRE_SECONDS = 1800
|
239
349
|
|
350
|
+
[rdm_transfer_task_long]
|
351
|
+
MINUTE=*/15
|
352
|
+
HOUR=*
|
353
|
+
DAY_OF_WEEK=*
|
354
|
+
LOCK_EXPIRE_SECONDS = 21600
|
355
|
+
```
|
240
356
|
На основе дефолтного конфига произвести конфигурирование приложений.
|
241
357
|
|
242
358
|
## Сборка и распространение
|
@@ -1,16 +1,3 @@
|
|
1
|
-
Metadata-Version: 2.1
|
2
|
-
Name: edu-rdm-integration
|
3
|
-
Version: 3.5.8
|
4
|
-
Summary: Интеграция с Региональной витриной данных
|
5
|
-
Home-page:
|
6
|
-
Download-URL:
|
7
|
-
Author: BARS Group
|
8
|
-
Author-email: bars@bars.group
|
9
|
-
Platform: Any
|
10
|
-
Requires-Python: >=3.9
|
11
|
-
Description-Content-Type: text/markdown
|
12
|
-
License-File: LICENSE
|
13
|
-
|
14
1
|
# Проект "Интеграция с Региональной витриной данных (РВД)"
|
15
2
|
|
16
3
|
Для интеграции с Региональной витриной данных был выделен отдельный пакет для использования его компонентов в различных
|
@@ -47,6 +34,19 @@ License-File: LICENSE
|
|
47
34
|
|
48
35
|
Стоит обратить внимание, что сущности РВД могут содержать в себе данные из нескольких моделей РВД.
|
49
36
|
|
37
|
+
Очереди для периодических задач сборки и выгрузки данных
|
38
|
+
: Важно учитывать, что с версии пакета 3.6 вводится две новые очереди и соответсвущие этим очередям периодические задачи
|
39
|
+
сбора и выгрузки данных. Очередь для сущности указывается в реестре "Сущности для сбора и экспорта данных" - по умолчанию все
|
40
|
+
сущности относятся к основной очереди.
|
41
|
+
Итого - нужно настроить три очереди для работы.
|
42
|
+
|
43
|
+
- "Быстрая" очередь - RDM_FAST - для сущностей, по которым данные должны отдаваться каждые 5/10/15 минут по требованиям
|
44
|
+
витрины. Периодическая задача - TransferLatestEntitiesDataFastPeriodicTask.
|
45
|
+
- Основная очередь (та которая была до версии 3.6) - RDM- ля всех сущностей по умолчанию.
|
46
|
+
Периодическая задача - TransferLatestEntitiesDataFastPeriodicTask.
|
47
|
+
- "Долгая" очередь - RDM_LONG - для сущностей по которым идет долгий сбор, например для расчетных сущностей.
|
48
|
+
Периодическая задача - TransferLatestEntitiesDataLongPeriodicTask.
|
49
|
+
|
50
50
|
## Требования к окружению
|
51
51
|
|
52
52
|
Для работы требуется Python >=3.9. Так же в зависимостях есть внутренние пакеты:
|
@@ -98,6 +98,39 @@ License-File: LICENSE
|
|
98
98
|
('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
|
99
99
|
})
|
100
100
|
```
|
101
|
+
С версии пакета 3.6 добавляются новые настройки для двух периодических задач разных очередей сбора и выгрузки данных
|
102
|
+
```
|
103
|
+
PROJECT_DEFAULT_CONFIG.update({
|
104
|
+
# Настройки РВД
|
105
|
+
('rdm_general', 'EXPORT_ENTITY_ID_PREFIX'): '', # Дефолтное значение нужно изменить на специфическое системе
|
106
|
+
('rdm_general', 'COLLECT_CHUNK_SIZE'): 500,
|
107
|
+
('rdm_general', 'EXPORT_CHUNK_SIZE'): 500,
|
108
|
+
('rdm_transfer_task', 'MINUTE'): '0',
|
109
|
+
('rdm_transfer_task', 'HOUR'): '*/4',
|
110
|
+
('rdm_transfer_task', 'DAY_OF_WEEK'): '*',
|
111
|
+
('rdm_transfer_task', 'LOCK_EXPIRE_SECONDS'): 21600,
|
112
|
+
('rdm_transfer_task', 'TIMEDELTA'): 3600,
|
113
|
+
('rdm_transfer_task', 'ENTITIES'): '',
|
114
|
+
('rdm_transfer_task_fast', 'MINUTE'): '*/5',
|
115
|
+
('rdm_transfer_task_fast', 'HOUR'): '*',
|
116
|
+
('rdm_transfer_task_fast', 'DAY_OF_WEEK'): '*',
|
117
|
+
('rdm_transfer_task_fast', 'LOCK_EXPIRE_SECONDS'): 1800,
|
118
|
+
('rdm_transfer_task_long', 'MINUTE'): '0',
|
119
|
+
('rdm_transfer_task_long', 'HOUR'): '*/6',
|
120
|
+
('rdm_transfer_task_long', 'DAY_OF_WEEK'): '*',
|
121
|
+
('rdm_transfer_task_long', 'LOCK_EXPIRE_SECONDS'): 28800,
|
122
|
+
('rdm_upload_status_task', 'MINUTE'): '*/30',
|
123
|
+
('rdm_upload_status_task', 'HOUR'): '*',
|
124
|
+
('rdm_upload_status_task', 'DAY_OF_WEEK'): '*',
|
125
|
+
('rdm_upload_status_task', 'LOCK_EXPIRE_SECONDS'): 7200,
|
126
|
+
('uploader_client', 'URL'): 'http://localhost:8090',
|
127
|
+
('uploader_client', 'DATAMART_NAME'): '',
|
128
|
+
('uploader_client', 'REQUEST_RETRIES'): 10,
|
129
|
+
('uploader_client', 'REQUEST_TIMEOUT'): 10,
|
130
|
+
('uploader_client', 'ENABLE_REQUEST_EMULATION'): False,
|
131
|
+
})
|
132
|
+
|
133
|
+
```
|
101
134
|
- Получение значений настроек из конфигурационного файла в settings.py:
|
102
135
|
|
103
136
|
```
|
@@ -156,7 +189,21 @@ License-File: LICENSE
|
|
156
189
|
RDM_UPLOADER_CLIENT_ENABLE_REQUEST_EMULATION = conf.get_bool('uploader_client', 'ENABLE_REQUEST_EMULATION')
|
157
190
|
|
158
191
|
```
|
159
|
-
|
192
|
+
С версии пакета 3.6 добавляются настройки для двух новых периодических задач
|
193
|
+
```
|
194
|
+
# Настройка запуска периодической задачи выгрузки данных - быстрая очередь:
|
195
|
+
RDM_FAST_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task_fast', 'MINUTE')
|
196
|
+
RDM_FAST_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task_fast', 'HOUR')
|
197
|
+
RDM_FAST_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task_fast', 'DAY_OF_WEEK')
|
198
|
+
RDM_FAST_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_transfer_task_fast', 'LOCK_EXPIRE_SECONDS')
|
199
|
+
|
200
|
+
# Настройка запуска периодической задачи выгрузки данных - долгая очередь расчетных моделей:
|
201
|
+
RDM_LONG_TRANSFER_TASK_MINUTE = conf.get('rdm_transfer_task_long', 'MINUTE')
|
202
|
+
RDM_LONG_TRANSFER_TASK_HOUR = conf.get('rdm_transfer_task_long', 'HOUR')
|
203
|
+
RDM_LONG_TRANSFER_TASK_DAY_OF_WEEK = conf.get('rdm_transfer_task_long', 'DAY_OF_WEEK')
|
204
|
+
RDM_LONG_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = conf.get_int('rdm_transfer_task_long', 'LOCK_EXPIRE_SECONDS')
|
205
|
+
|
206
|
+
```
|
160
207
|
Перечень настроек в settings.py указан в таблице ниже.
|
161
208
|
|
162
209
|
| Название настройки в settings | Описание | Значение по умолчанию |
|
@@ -180,7 +227,18 @@ License-File: LICENSE
|
|
180
227
|
| RDM_UPLOAD_STATUS_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 3600 |
|
181
228
|
| RDM_CHECK_SUSPEND_TASK_STAGE_TIMEOUT | Дельта для определения зависшего подэтапа. Минута | 120 |
|
182
229
|
|
183
|
-
|
230
|
+
С версии пакета 3.6 добавляются новые настройки
|
231
|
+
|
232
|
+
| Название настройки в settings | Описание | Значение по умолчанию |
|
233
|
+
|--------------------------------------------|----------------------------------------------------------------------------------------|-----------------------|
|
234
|
+
| RDM_FAST_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи (быстрая очередь) выгрузки данных. Минута | '*/5' |
|
235
|
+
| RDM_FAST_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи (быстрая очередь) выгрузки данных. Час | '*' |
|
236
|
+
| RDM_FAST_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи (быстрая очередь) выгрузки данных. День недели | '*' |
|
237
|
+
| RDM_FAST_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 1800 |
|
238
|
+
| RDM_LONG_TRANSFER_TASK_MINUTE | Настройка запуска периодической задачи (долгая очередь) выгрузки данных. Минута | 0 |
|
239
|
+
| RDM_LONG_TRANSFER_TASK_HOUR | Настройка запуска периодической задачи (долгая очередь) выгрузки данных. Час | '*/6' |
|
240
|
+
| RDM_LONG_TRANSFER_TASK_DAY_OF_WEEK | Настройка запуска периодической задачи (долгая очередь) выгрузки данных. День недели | '*' |
|
241
|
+
| RDM_LONG_TRANSFER_TASK_LOCK_EXPIRE_SECONDS | Время по истечении которого, блокировка может быть снята (в секунадх) | 28800 |
|
184
242
|
|
185
243
|
- В дефолтный конфиг проекта необходимо добавить:
|
186
244
|
|
@@ -236,7 +294,21 @@ License-File: LICENSE
|
|
236
294
|
# Включить эмуляцию отправки запросов
|
237
295
|
ENABLE_REQUEST_EMULATION = True
|
238
296
|
```
|
297
|
+
- С версии 3.6 в деволтный конфиг также нужно добавить два дополнительных раздела
|
298
|
+
```
|
299
|
+
|
300
|
+
[rdm_transfer_task_fast]
|
301
|
+
MINUTE=*/2
|
302
|
+
HOUR=*
|
303
|
+
DAY_OF_WEEK=*
|
304
|
+
LOCK_EXPIRE_SECONDS = 1800
|
239
305
|
|
306
|
+
[rdm_transfer_task_long]
|
307
|
+
MINUTE=*/15
|
308
|
+
HOUR=*
|
309
|
+
DAY_OF_WEEK=*
|
310
|
+
LOCK_EXPIRE_SECONDS = 21600
|
311
|
+
```
|
240
312
|
На основе дефолтного конфига произвести конфигурирование приложений.
|
241
313
|
|
242
314
|
## Сборка и распространение
|
@@ -0,0 +1,133 @@
|
|
1
|
+
[build-system]
|
2
|
+
requires = [
|
3
|
+
'packaging>=24,<25',
|
4
|
+
'wheel>=0.45,<0.46',
|
5
|
+
'setuptools>=77,<78',
|
6
|
+
'setuptools-git-versioning>=2,<3',
|
7
|
+
]
|
8
|
+
|
9
|
+
build-backend = 'setuptools.build_meta'
|
10
|
+
|
11
|
+
[project]
|
12
|
+
name = 'edu-rdm-integration'
|
13
|
+
description = 'Интеграция с Региональной витриной данных'
|
14
|
+
license-files = ['LICENSE']
|
15
|
+
authors = [
|
16
|
+
{name = 'BARS Group', email = 'education_dev@bars.group'},
|
17
|
+
]
|
18
|
+
readme = 'README.md'
|
19
|
+
requires-python = '>=3.9'
|
20
|
+
dependencies = [
|
21
|
+
'transliterate<2',
|
22
|
+
'Django>=3.1,<3.3',
|
23
|
+
'celery>=4.4.7,<5.3',
|
24
|
+
'asyncpg==0.23.0',
|
25
|
+
'educommon>=3.11.0,<4',
|
26
|
+
'function-tools>=0.9.0,<1',
|
27
|
+
'm3-db-utils>=0.3.10,<1',
|
28
|
+
'm3-django-compat>=1.10.2,<2',
|
29
|
+
'uploader-client>=0.2.3,<1',
|
30
|
+
]
|
31
|
+
classifiers=[
|
32
|
+
'Development Status :: 5 - Production/Stable',
|
33
|
+
'Programming Language :: Python :: 3',
|
34
|
+
'Programming Language :: Python :: 3.9',
|
35
|
+
'Programming Language :: Python :: 3.10',
|
36
|
+
'Programming Language :: Python :: 3.11',
|
37
|
+
'Programming Language :: Python :: 3.12',
|
38
|
+
'Framework :: Django :: 2.2',
|
39
|
+
'Framework :: Django :: 3.0',
|
40
|
+
'Framework :: Django :: 3.1',
|
41
|
+
'Framework :: Django :: 3.2',
|
42
|
+
'Intended Audience :: Developers',
|
43
|
+
'Environment :: Web Environment',
|
44
|
+
]
|
45
|
+
dynamic = ['version']
|
46
|
+
|
47
|
+
[project.urls]
|
48
|
+
Homepage = 'https://stash.bars-open.ru/projects/EDUBASE/repos/edu_rdm_integration/browse'
|
49
|
+
Repository = 'https://stash.bars-open.ru/scm/edubase/edu_rdm_integration.git'
|
50
|
+
|
51
|
+
[project.optional-dependencies]
|
52
|
+
dev = [
|
53
|
+
'isort==5.12.0',
|
54
|
+
'ruff==0.6.9',
|
55
|
+
'flake8>=4.0.1,<7',
|
56
|
+
'pytest>=3.2.5,<8',
|
57
|
+
'pytest-cov<5',
|
58
|
+
]
|
59
|
+
docs = [
|
60
|
+
'sphinx>=7,<7.5',
|
61
|
+
'sphinx-autodoc-typehints>=2,<2.5',
|
62
|
+
'myst-parser>=3,<3.2',
|
63
|
+
'sphinx_design>=0.6,<0.7',
|
64
|
+
]
|
65
|
+
|
66
|
+
[tool.setuptools.packages.find]
|
67
|
+
where = ['src']
|
68
|
+
|
69
|
+
[tool.setuptools.package-data]
|
70
|
+
edu_rdm_integration = ['*.py-tpl', '*.js']
|
71
|
+
|
72
|
+
[tool.setuptools.exclude-package-data]
|
73
|
+
edu_rdm_integration = ['tests', 'tests.*']
|
74
|
+
|
75
|
+
[tool.setuptools-git-versioning]
|
76
|
+
enabled = true
|
77
|
+
|
78
|
+
[tool.ruff]
|
79
|
+
line-length = 120
|
80
|
+
indent-width = 4
|
81
|
+
|
82
|
+
target-version = 'py312'
|
83
|
+
|
84
|
+
[tool.ruff.format]
|
85
|
+
quote-style = 'single'
|
86
|
+
indent-style = 'space'
|
87
|
+
docstring-code-format = true
|
88
|
+
|
89
|
+
[tool.flake8]
|
90
|
+
max-line-length = 120
|
91
|
+
ignore = [
|
92
|
+
# Missing docstring in public module
|
93
|
+
'D100',
|
94
|
+
# Missing docstring in public package
|
95
|
+
'D104',
|
96
|
+
# Missing docstring in public nested class
|
97
|
+
'D106',
|
98
|
+
# Missing docstring in __init__
|
99
|
+
'D107',
|
100
|
+
# One-line docstring should fit on one line with quotes
|
101
|
+
'D200',
|
102
|
+
# Line break before binary operator
|
103
|
+
'W503',
|
104
|
+
# use of assert detected (useless with pytest)
|
105
|
+
'S101',
|
106
|
+
]
|
107
|
+
per-file-ignores = [
|
108
|
+
# variable '...' in class scope should not be mixedCase
|
109
|
+
# В SOAP моделях могут использоваться имена с различным написанием
|
110
|
+
'wsmodel.py:N815',
|
111
|
+
# function name '...' should be lowercase
|
112
|
+
# SOAP методы могут именоваться разными способами
|
113
|
+
'wsapi.py:N802,N815',
|
114
|
+
]
|
115
|
+
exclude = [
|
116
|
+
'venv',
|
117
|
+
]
|
118
|
+
max-complexity = 10
|
119
|
+
|
120
|
+
[tool.pylint]
|
121
|
+
score = 'no'
|
122
|
+
msg-template = '{path}:{line} {msg} ({symbol})'
|
123
|
+
disable = 'all'
|
124
|
+
enable = [
|
125
|
+
'import-error',
|
126
|
+
'no-name-in-module',
|
127
|
+
'undefined-variable',
|
128
|
+
'undefined-all-variable',
|
129
|
+
]
|
130
|
+
|
131
|
+
extension-pkg-whitelist = [
|
132
|
+
'lxml',
|
133
|
+
]
|
{edu-rdm-integration-3.5.8 → edu_rdm_integration-3.6.0}/src/edu_rdm_integration/app_settings.py
RENAMED
@@ -41,6 +41,19 @@ RDM_TRANSFER_TASK_HOUR = '*/4'
|
|
41
41
|
RDM_TRANSFER_TASK_DAY_OF_WEEK = '*'
|
42
42
|
RDM_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 6
|
43
43
|
|
44
|
+
# Настройка запуска периодической задачи выгрузки данных - очередь быстрого уровня
|
45
|
+
RDM_FAST_TRANSFER_TASK_MINUTE = '*/5'
|
46
|
+
RDM_FAST_TRANSFER_TASK_HOUR = '*'
|
47
|
+
RDM_FAST_TRANSFER_TASK_DAY_OF_WEEK = '*'
|
48
|
+
RDM_FAST_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = 60 * 30
|
49
|
+
|
50
|
+
# Настройка запуска периодической задачи выгрузки данных - очередь медленного уровня
|
51
|
+
RDM_LONG_TRANSFER_TASK_MINUTE = '0'
|
52
|
+
RDM_LONG_TRANSFER_TASK_HOUR = '*/6'
|
53
|
+
RDM_LONG_TRANSFER_TASK_DAY_OF_WEEK = '*'
|
54
|
+
RDM_LONG_TRANSFER_TASK_LOCK_EXPIRE_SECONDS = 60 * 60 * 6
|
55
|
+
|
56
|
+
|
44
57
|
# Настройка запуска периодической задачи статуса загрузки данных в витрину:
|
45
58
|
RDM_UPLOAD_STATUS_TASK_MINUTE = '*/30'
|
46
59
|
RDM_UPLOAD_STATUS_TASK_HOUR = '*'
|