/sentinel-value

Sentinel Values - unique global singleton objects, akin to None, NotImplemented and Ellipsis.

Primary LanguagePythonMIT LicenseMIT

sentinel-value

Python package version Tests Status Documentation Status

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
    ...

Links