Isn’t the whole point of using a sentinel that nobody should be using it for anything outside of the specific use as a marker that it was created for?
I’m not sure I follow. The example function could be used like this:
Today = sentinel() def foo(date=Today): assert_arg_type("date", date, datetime.date) if date is Today: date = datetime.date.today() ...
It’s not itself using a specific sentinel, which is kind of the point of the example.
(I’m not sure how useful this concrete function is, it’s just an illustration what would be possible.)