Generics And Base Classes
ArbitraryModel
class ArbitraryModel(BaseModel)
Empty Pydantic model with a config that allows arbitrary types.
Stack
class Stack(List[T])
empty
def empty() -> bool
Tests if this stack is empty.
peek
def peek() -> Optional[T]
Looks at the object at the top (last/most recently added) of this stack without removing it from the stack.
pop
def pop() -> Optional[T]
Removes the object at the top of this stack and returns that object as the value of this function.
push
def push(item: T) -> None
Pushes an item onto the top of this stack.
Proxy of List.append
search
def search(x: T) -> Optional[int]
Returns the 0-based position of the last item whose value is equal to x on this stack.
We deviate from the typical 1-based position used by Stack classes (i.e. Java) because most python users (and developers in general) are accustomed to 0-based indexing.
at
def at(index: int, default: Optional[T] = None) -> Optional[T]
Returns the item located at the index.
If the index does not exist in the stack (Overflow or Underflow), None is returned instead.
copy
def copy() -> "Stack[T]"
Returns a copy of the current Stack.
first
@property
def first() -> Optional[T]
Returns the first item of the stack without removing it.
Same as Stack.bottom.
last
@property
def last() -> Optional[T]
Returns the last item of the stack without removing it.
Same as Stack.top.
bottom
@property
def bottom() -> Optional[T]
Returns the item on the bottom of the stack without removing it.
Same as Stack.first.
top
@property
def top() -> Optional[T]
Returns the item on the top of the stack without removing it.
Same as Stack.last.
length
@property
def length() -> int
Returns the number of items in the Stack.