


import unittest

from transformers import load_tool

from .test_tools_common import ToolTesterMixin


lowerCamelCase		      = '\nHugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf originally as a company that developed a chatbot app targeted at teenagers.[2] After open-sourcing the model behind the chatbot, the company pivoted to focus on being a platform for machine learning.\n\nIn March 2021, Hugging Face raised $40 million in a Series B funding round.[3]\n\nOn April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model.[4] In 2022, the workshop concluded with the announcement of BLOOM, a multilingual large language model with 176 billion parameters.[5]\n'




class A						(     unittest.TestCase					,							UpperCamelCase_  ):






      def  lowerCamelCase (      self		:  Union[str, Any]				)      ->		List[Any]:
             """simple docstring"""




             _lowerCamelCase :	Any						=load_tool('summarization'				)
             self.tool.setup()
             _lowerCamelCase :	Dict						=load_tool('summarization'    ,     remote=lowercase_				)






      def  lowerCamelCase (      self		:  Any				)      ->		Any:
             """simple docstring"""




             _lowerCamelCase :	Tuple						=self.tool(lowercase_				)
             self.assertEqual(
                 lowercase_    ,     'Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM.'    ,     )






      def  lowerCamelCase (      self		:  Dict				)      ->		str:
             """simple docstring"""




             _lowerCamelCase :	Optional[Any]						=self.remote_tool(lowercase_				)
             self.assertEqual(
                 lowercase_    ,     'Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM.'    ,     )






      def  lowerCamelCase (      self		:  Any				)      ->		Tuple:
             """simple docstring"""




             _lowerCamelCase :	List[str]						=self.tool(text=lowercase_				)
             self.assertEqual(
                 lowercase_    ,     'Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM.'    ,     )






      def  lowerCamelCase (      self		:  List[Any]				)      ->		Union[str, Any]:
             """simple docstring"""




             _lowerCamelCase :	str						=self.remote_tool(text=lowercase_				)
             self.assertEqual(
                 lowercase_    ,     'Hugging Face was founded in 2016 by French entrepreneurs Clément Delangue, Julien Chaumond, and Thomas Wolf. In March 2021, Hugging Face raised $40 million in a Series B funding round. On April 28, 2021, the company launched the BigScience Research Workshop in collaboration with several other research groups to release an open large language model. In 2022, the workshop concluded with the announcement of BLOOM.'    ,     )






import warnings
from contextlib import contextmanager

from ...processing_utils import ProcessorMixin




class A						(     UpperCamelCase_  ):
      UpperCamelCase__							:						Optional[Any]   ='AutoFeatureExtractor'
      UpperCamelCase__							:						List[str]   ='Speech2Text2Tokenizer'






      def __init__(      self		:  str    ,     lowercase_		:  Dict    ,     lowercase_		:  Optional[int]				)      ->		str:
             """simple docstring"""




             super().__init__(lowercase_    ,     lowercase_				)
             _lowerCamelCase :	Optional[Any]						=self.feature_extractor
             _lowerCamelCase :	Tuple						=False






      def __call__(      self		:  Tuple    ,     *lowercase_		:  str    ,     **lowercase_		:  List[Any]				)      ->		List[str]:
             """simple docstring"""




             if self._in_target_context_manager:
                    return self.current_processor(*lowercase_    ,     **lowercase_				)

             if "raw_speech" in kwargs:
                    warnings.warn('Using `raw_speech` as a keyword argument is deprecated. Use `audio` instead.'				)
                    _lowerCamelCase :	List[str]						=kwargs.pop('raw_speech'				)
             else:
                    _lowerCamelCase :	str						=kwargs.pop('audio'    ,     lowercase_				)
             _lowerCamelCase :	Optional[Any]						=kwargs.pop('sampling_rate'    ,     lowercase_				)
             _lowerCamelCase :	List[str]						=kwargs.pop('text'    ,     lowercase_				)
             if len(lowercase_				) > 0:
                    _lowerCamelCase :	Dict						=args[0]
                    _lowerCamelCase :	Optional[Any]						=args[1:]

             if audio is None and text is None:
                    raise ValueError('You need to specify either an `audio` or `text` input to process.'				)

             if audio is not None:
                    _lowerCamelCase :	List[Any]						=self.feature_extractor(lowercase_    ,     *lowercase_    ,     sampling_rate=lowercase_    ,     **lowercase_				)
             if text is not None:
                    _lowerCamelCase :	Tuple						=self.tokenizer(lowercase_    ,     **lowercase_				)

             if text is None:
                    return inputs
             elif audio is None:
                    return encodings
             else:
                    _lowerCamelCase :	Dict						=encodings['input_ids']
                    return inputs






      def  lowerCamelCase (      self		:  str    ,     *lowercase_		:  List[Any]    ,     **lowercase_		:  Any				)      ->		Union[str, Any]:
             """simple docstring"""




             return self.tokenizer.batch_decode(*lowercase_    ,     **lowercase_				)






      def  lowerCamelCase (      self		:  Optional[int]    ,     *lowercase_		:  Dict    ,     **lowercase_		:  Optional[int]				)      ->		str:
             """simple docstring"""




             return self.tokenizer.decode(*lowercase_    ,     **lowercase_				)






      @contextmanager
      def  lowerCamelCase (      self		:  Optional[Any]				)      ->		Tuple:
             """simple docstring"""




             warnings.warn(
                 '`as_target_processor` is deprecated and will be removed in v5 of Transformers. You can process your '
                 'labels by using the argument `text` of the regular `__call__` method (either in the same call as '
                 'your audio inputs, or in a separate call.'				)
             _lowerCamelCase :	Optional[Any]						=True
             _lowerCamelCase :	List[Any]						=self.tokenizer
             yield
             _lowerCamelCase :	Optional[int]						=self.feature_extractor
             _lowerCamelCase :	List[str]						=False


