Satella contains some expressions to help you with typing. You import them from satella.coding.typing. They are as follows:

  • NoneType - the type of None
  • ExceptionClassType - base type of exception class
  • Number - an amalgam of int and float
  • T, U, K, V - type vars to use
    • Note that K must be hashable
  • Iteratable - a generic iterator or an iterable of T
  • NoArgCallable - a callable with no arguments returning T
  • Appendable - an object which has the append method
  • Predicate - a callable that accepts a T and returns a bool
  • KVTuple - a tuple of (K, V)
  • Comparable - a class that allows comparison between it’s instances
  • ExceptionList - either a single exception type or a tuple of exception types.
    As used by except statement and some satella functions.

You may use these generics in your classes, eg.

def enumerate(v: Iteratable[int]) -> int: