diff --git a/label_studio/core/settings/base.py b/label_studio/core/settings/base.py index a376bff98c63..62009e5e2dbb 100644 --- a/label_studio/core/settings/base.py +++ b/label_studio/core/settings/base.py @@ -632,6 +632,7 @@ CREATE_ORGANIZATION = 'organizations.functions.create_organization' SAVE_USER = 'users.functions.save_user' POST_PROCESS_REIMPORT = 'core.utils.common.empty' +POST_PROCESS_IMPORT = 'core.utils.common.empty' USER_SERIALIZER = 'users.serializers.BaseUserSerializer' WHOAMI_USER_SERIALIZER = 'users.serializers.BaseWhoAmIUserSerializer' USER_SERIALIZER_UPDATE = 'users.serializers.BaseUserSerializerUpdate' diff --git a/label_studio/data_import/functions.py b/label_studio/data_import/functions.py index 69158c8826eb..258dc92adc63 100644 --- a/label_studio/data_import/functions.py +++ b/label_studio/data_import/functions.py @@ -22,6 +22,8 @@ logger = logging.getLogger(__name__) +post_process_import = load_func(settings.POST_PROCESS_IMPORT) + def async_import_background( import_id, user_id, recalculate_stats_func: Optional[Callable[..., None]] = None, **kwargs @@ -130,6 +132,7 @@ def async_import_background( logger.info('Tasks bulk_update finished (async import)') summary.update_data_columns(tasks) + # TODO: summary.update_created_annotations_and_labels except Exception as e: # Handle any other unexpected errors during task creation @@ -138,6 +141,8 @@ def async_import_background( project_import.status = ProjectImport.Status.FAILED project_import.save(update_fields=['error', 'status']) return + + post_process_import(project_import) else: # Do nothing - just output file upload ids for further use task_count = len(tasks) @@ -531,6 +536,8 @@ def _async_import_background_streaming(project_import, user): ) logger.info('Tasks bulk_update finished (async streaming import)') + post_process_import(project_import) + duration = time.time() - start project_import.task_count = total_task_count or 0