


'''simple docstring'''




class 					a			:
 '''simple docstring'''




 def __init__(    self		,      lowerCamelCase_      )      ->    Any:
    _a					:  int						=  n
    _a					:  Tuple						=  [None] * self.n
    _a					:  Optional[Any]						=  0  # index of the first element
    _a					:  int						=  0
    _a					:  Optional[Any]						=  0




 def __len__(    self      )      ->    int:
    return self.size




 def   __UpperCamelCase   (    self      )      ->    bool:
    return self.size == 0




 def   __UpperCamelCase   (    self      )      ->    List[str]:
    return False if self.is_empty() else self.array[self.front]




 def   __UpperCamelCase   (    self		,      lowerCamelCase_      )      ->    Union[str, Any]:
    if self.size >= self.n:
       raise Exception('QUEUE IS FULL'      )

    _a					:  Dict						=  data
    _a					:  Optional[int]						=  (self.rear + 1) % self.n
    self.size += 1
    return self




 def   __UpperCamelCase   (    self      )      ->    Dict:
    if self.size == 0:
       raise Exception('UNDERFLOW'      )

    _a					:  List[str]						=  self.array[self.front]
    _a					:  Tuple						=  None
    _a					:  Any						=  (self.front + 1) % self.n
    self.size -= 1
    return temp






'''simple docstring'''




from ..utils import DummyObject, requires_backends







class 					a			(				metaclass=snake_case__  ):
 '''simple docstring'''




 __lowerCAmelCase						: Union[str, Any]							  =		["""note_seq"""]




 def __init__(    self		,      *lowerCamelCase_		,      **lowerCamelCase_      )      ->    int:
    requires_backends(self		,      ['note_seq']      )




 @classmethod
 def   __UpperCamelCase   (    cls		,      *lowerCamelCase_		,      **lowerCamelCase_      )      ->    Union[str, Any]:
    requires_backends(cls		,      ['note_seq']      )




 @classmethod
 def   __UpperCamelCase   (    cls		,      *lowerCamelCase_		,      **lowerCamelCase_      )      ->    List[str]:
    requires_backends(cls		,      ['note_seq']      )


