Brett, is there a reason you don't want to use `None` as a sentinel?
Can’t speak for Brett’s specific case, but I’ve more than once had cases where None could be a valid user-provided value for an argument, and thus a function-specific sentinel was needed. This pattern used to be pretty simple with `MISSING = object()`; typing makes it more complicated.
Carl