Source code for nv_ingest_client.primitives.tasks.audio_extraction

# SPDX-FileCopyrightText: Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES.
# All rights reserved.
# SPDX-License-Identifier: Apache-2.0


# pylint: disable=too-few-public-methods
# pylint: disable=too-many-arguments

import logging
from typing import Dict
from typing import Optional

from nv_ingest_api.internal.schemas.meta.ingest_job_schema import IngestTaskAudioExtraction

from .task_base import Task

logger = logging.getLogger(__name__)


[docs] class AudioExtractionTask(Task): def __init__( self, auth_token: str = None, grpc_endpoint: str = None, http_endpoint: str = None, infer_protocol: str = None, function_id: Optional[str] = None, use_ssl: bool = None, ssl_cert: str = None, segment_audio: bool = None, ) -> None: super().__init__() # Use the API schema for validation validated_data = IngestTaskAudioExtraction( auth_token=auth_token, grpc_endpoint=grpc_endpoint, http_endpoint=http_endpoint, infer_protocol=infer_protocol, function_id=function_id, use_ssl=use_ssl, ssl_cert=ssl_cert, segment_audio=segment_audio, ) self._auth_token = validated_data.auth_token self._grpc_endpoint = validated_data.grpc_endpoint self._http_endpoint = validated_data.http_endpoint self._infer_protocol = validated_data.infer_protocol self._function_id = validated_data.function_id self._use_ssl = validated_data.use_ssl self._ssl_cert = validated_data.ssl_cert self._segment_audio = validated_data.segment_audio def __str__(self) -> str: """ Returns a string with the object's config and run time state """ info = "" info += "Audio Extraction Task:\n" if self._auth_token: info += " auth_token: [redacted]\n" if self._grpc_endpoint: info += f" grpc_endpoint: {self._grpc_endpoint}\n" if self._http_endpoint: info += f" http_endpoint: {self._http_endpoint}\n" if self._infer_protocol: info += f" infer_protocol: {self._infer_protocol}\n" if self._function_id: info += " function_id: [redacted]\n" if self._use_ssl: info += f" use_ssl: {self._use_ssl}\n" if self._ssl_cert: info += " ssl_cert: [redacted]\n" if self._segment_audio: info += f" segment_audio: {self._segment_audio}\n" return info
[docs] def to_dict(self) -> Dict: """ Convert to a dict for submission to redis """ task_properties = {} if self._auth_token: task_properties["auth_token"] = self._auth_token if self._grpc_endpoint: task_properties["grpc_endpoint"] = self._grpc_endpoint if self._http_endpoint: task_properties["http_endpoint"] = self._http_endpoint if self._infer_protocol: task_properties["infer_protocol"] = self._infer_protocol if self._function_id: task_properties["function_id"] = self._function_id if self._use_ssl: task_properties["use_ssl"] = self._use_ssl if self._ssl_cert: task_properties["ssl_cert"] = self._ssl_cert if self._segment_audio: task_properties["segment_audio"] = self._segment_audio return {"type": "audio_data_extract", "task_properties": task_properties}