


'''simple docstring'''





import warnings
from functools import wraps
from typing import Callable






def  __lowerCAmelCase					(SCREAMING_SNAKE_CASE      )->						Callable:




      """simple docstring"""

      @wraps(SCREAMING_SNAKE_CASE      )
      def _inner_fn(*SCREAMING_SNAKE_CASE      ,      **SCREAMING_SNAKE_CASE      ):
            warnings.warn(
                (f'''\'{fn.__name__}\' is experimental and might be subject to breaking changes in the future.''')      ,      SCREAMING_SNAKE_CASE      ,      )
            return fn(*SCREAMING_SNAKE_CASE      ,      **SCREAMING_SNAKE_CASE      )

      return _inner_fn



from ...utils import is_note_seq_available, is_transformers_available, is_torch_available
from ...utils import OptionalDependencyNotAvailable


try:
   if not (is_transformers_available() and is_torch_available()):
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   from ...utils.dummy_torch_and_transformers_objects import *  # noqa F403
else:
   from .notes_encoder import SpectrogramNotesEncoder
   from .continous_encoder import SpectrogramContEncoder
   from .pipeline_spectrogram_diffusion import (
       SpectrogramContEncoder,
       SpectrogramDiffusionPipeline,
       TaFilmDecoder,
   )

try:
   if not (is_transformers_available() and is_torch_available() and is_note_seq_available()):
      raise OptionalDependencyNotAvailable()
except OptionalDependencyNotAvailable:
   from ...utils.dummy_transformers_and_torch_and_note_seq_objects import *  # noqa F403
else:
   from .midi_utils import MidiProcessor