





'''simple docstring'''







import math

def    __UpperCamelCase	(	a    : int     ) ->int:

 if not isinstance(a					,   a     ):
  snake_case				=			f"""Input value of [number={number}] must be an integer"""
  raise TypeError(a     )

 if number < 1:
  snake_case				=			f"""Input value of [number={number}] must be > 0"""
  raise ValueError(a     )
 elif number == 1:
  return 3
 elif number == 2:
  return 5
 else:
  snake_case				=			int(math.log(number // 3					,   2     )     ) + 2

  snake_case				=			[3, 5]
  snake_case				=			2
  snake_case				=			3
  for block in range(1					,   a     ):
   for _ in range(a     ):
    proth_list.append(2 ** (block + 1) + proth_list[proth_index - 1]     )
    proth_index += 1
   increment *= 2

 return proth_list[number - 1]


if __name__ == "__main__":
   import doctest

   doctest.testmod()

   for number in range(11):
      _lowercase       						=			0
      try:
         _lowercase       						=			proth(number)
      except ValueError:
         print(f'ValueError: there is no {number}th Proth number')
         continue

      print(f'The {number}th Proth number: {value}')








'''simple docstring'''







from ...processing_utils import ProcessorMixin
class 			_lowercase						(       __a					):
     _UpperCAmelCase										=					'''WhisperFeatureExtractor'''
     _UpperCAmelCase										=					'''WhisperTokenizer'''







     def __init__( self    ,   A__    ,   A__    ) ->	Optional[Any]:
      super().__init__(A__    ,   A__    )
      snake_case				=			self.feature_extractor
      snake_case				=			False







     def     UpperCamelCase			( self    ,   A__=None    ,   A__=None    ,   A__=True    ) ->	Union[str, Any]:
      return self.tokenizer.get_decoder_prompt_ids(task=A__    ,   language=A__    ,   no_timestamps=A__    )







     def __call__( self    ,   *A__    ,   **A__    ) ->	Dict:
      # For backward compatibility
      if self._in_target_context_manager:
       return self.current_processor(*A__    ,   **A__    )

      snake_case				=			kwargs.pop('''audio'''    ,   A__    )
      snake_case				=			kwargs.pop('''sampling_rate'''    ,   A__    )
      snake_case				=			kwargs.pop('''text'''    ,   A__    )
      if len(A__    ) > 0:
       snake_case				=			args[0]
       snake_case				=			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:
       snake_case				=			self.feature_extractor(A__    ,   *A__    ,   sampling_rate=A__    ,   **A__    )
      if text is not None:
       snake_case				=			self.tokenizer(A__    ,   **A__    )

      if text is None:
       return inputs

      elif audio is None:
       return encodings
      else:
       snake_case				=			encodings['''input_ids''']
       return inputs







     def     UpperCamelCase			( self    ,   *A__    ,   **A__    ) ->	Optional[Any]:
      return self.tokenizer.batch_decode(*A__    ,   **A__    )







     def     UpperCamelCase			( self    ,   *A__    ,   **A__    ) ->	str:
      return self.tokenizer.decode(*A__    ,   **A__    )







     def     UpperCamelCase			( self    ,   A__    ,   A__="np"    ) ->	Optional[Any]:
      return self.tokenizer.get_prompt_ids(A__    ,   return_tensors=A__    )

