sentinel-value
is a Python package, that helps to create Sentinel Values -
special singleton objects, akin to None
, NotImplemented
and Ellipsis
.
It implements the sentinel()
function (described by PEP 661),
and for advanced cases it also provides the SentinelValue()
class (not a part of PEP 661).
Usage example:
from sentinel_value import sentinel
MISSING = sentinel("MISSING")
def get_something(default=MISSING):
...
if default is not MISSING:
return default
...
Or, the same thing, but using the SentinelValue
class
(slightly more verbose, but allows to have nice type annotations):
from typing import Union
from sentinel_value import SentinelValue
class Missing(SentinelValue):
pass
MISSING = Missing(__name__, "MISSING")
def get_something(default: Union[str, Missing] = MISSING):
...
if default is not MISSING:
return default
...
- Read the Docs: https://sentinel-value.readthedocs.io
- GitHub repository: https://github.com/vdmit11/sentinel-value
- Python package: https://pypi.org/project/sentinel-value/