'''simple docstring'''

class 							lowercase_    :
    class 							lowercase_    :
        a_             =   """_prev""", """_data""", """_next"""







        def __init__(	self       ,     UpperCamelCase__       ,     UpperCamelCase__       ,     UpperCamelCase__				)				->       Tuple:





         """simple docstring"""

         UpperCAmelCase_				       =					link_p
         UpperCAmelCase_				       =					element
         UpperCAmelCase_				       =					link_n







        def   lowerCamelCase_    (	self				)				->       str:





         """simple docstring"""

         return (
             F""" Prev -> {self._prev is not None}, Next -> {self._next is not None}"""
         )







    def __init__(	self				)				->       str:





     """simple docstring"""

     UpperCAmelCase_				       =					self._Node(UpperCamelCase__       ,     UpperCamelCase__       ,     UpperCamelCase__				)
     UpperCAmelCase_				       =					self._Node(UpperCamelCase__       ,     UpperCamelCase__       ,     UpperCamelCase__				)
     UpperCAmelCase_				       =					self._trailer
     UpperCAmelCase_				       =					self._header
     UpperCAmelCase_				       =					0







    def __len__(	self				)				->       List[str]:





     """simple docstring"""

     return self._size







    def   lowerCamelCase_    (	self				)				->       Tuple:





     """simple docstring"""

     return self.__len__() == 0







    def   lowerCamelCase_    (	self       ,     UpperCamelCase__       ,     UpperCamelCase__       ,     UpperCamelCase__				)				->       Optional[int]:





     """simple docstring"""

     UpperCAmelCase_				       =					self._Node(UpperCamelCase__       ,     UpperCamelCase__       ,     UpperCamelCase__				)
     UpperCAmelCase_				       =					new_node
     UpperCAmelCase_				       =					new_node
     self._size += 1
     return self







    def   lowerCamelCase_    (	self       ,     UpperCamelCase__				)				->       Optional[int]:





     """simple docstring"""

     UpperCAmelCase_				       =					node._prev
     UpperCAmelCase_				       =					node._next

     UpperCAmelCase_				       =					successor
     UpperCAmelCase_				       =					predecessor
     self._size -= 1
     UpperCAmelCase_				       =					node._data
     UpperCAmelCase_				       =					UpperCAmelCase_				       =					UpperCAmelCase_				       =					None
     del node
     return temp


class 							lowercase_    (     _DoublyLinkedBase						):







    def   lowerCamelCase_    (	self				)				->       Tuple:





     """simple docstring"""

     if self.is_empty():
      raise Exception("List is empty"				)
     return self._header._next._data







    def   lowerCamelCase_    (	self				)				->       List[str]:





     """simple docstring"""

     if self.is_empty():
      raise Exception("List is empty"				)
     return self._trailer._prev._data







    def   lowerCamelCase_    (	self       ,     UpperCamelCase__				)				->       str:





     """simple docstring"""

     return self._insert(self._header       ,     UpperCamelCase__       ,     self._header._next				)







    def   lowerCamelCase_    (	self       ,     UpperCamelCase__				)				->       int:





     """simple docstring"""

     return self._insert(self._trailer._prev       ,     UpperCamelCase__       ,     self._trailer				)







    def   lowerCamelCase_    (	self				)				->       Union[str, Any]:





     """simple docstring"""

     if self.is_empty():
      raise IndexError("remove_first from empty list"				)
     return self._delete(self._header._next				)







    def   lowerCamelCase_    (	self				)				->       List[Any]:





     """simple docstring"""

     if self.is_empty():
      raise IndexError("remove_first from empty list"				)
     return self._delete(self._trailer._prev				)

'''simple docstring'''

from ..utils import DummyObject, requires_backends
class 							lowercase_    (     metaclass=_A						):
    a_             =   ["""torch""", """librosa"""]







    def __init__(	self       ,     *UpperCamelCase__       ,     **UpperCamelCase__				)				->       int:





     """simple docstring"""

     requires_backends(self       ,     ["torch", "librosa"]				)







    @classmethod
    def   lowerCamelCase_    (	cls       ,     *UpperCamelCase__       ,     **UpperCamelCase__				)				->       Union[str, Any]:





     """simple docstring"""

     requires_backends(cls       ,     ["torch", "librosa"]				)







    @classmethod
    def   lowerCamelCase_    (	cls       ,     *UpperCamelCase__       ,     **UpperCamelCase__				)				->       Dict:





     """simple docstring"""

     requires_backends(cls       ,     ["torch", "librosa"]				)


class 							lowercase_    (     metaclass=_A						):
    a_             =   ["""torch""", """librosa"""]







    def __init__(	self       ,     *UpperCamelCase__       ,     **UpperCamelCase__				)				->       str:





     """simple docstring"""

     requires_backends(self       ,     ["torch", "librosa"]				)







    @classmethod
    def   lowerCamelCase_    (	cls       ,     *UpperCamelCase__       ,     **UpperCamelCase__				)				->       Union[str, Any]:





     """simple docstring"""

     requires_backends(cls       ,     ["torch", "librosa"]				)







    @classmethod
    def   lowerCamelCase_    (	cls       ,     *UpperCamelCase__       ,     **UpperCamelCase__				)				->       int:





     """simple docstring"""

     requires_backends(cls       ,     ["torch", "librosa"]				)
