niltype: Singleton for Missing Values

1.0.2 · active · verified Fri Apr 17

A small Python library that provides a singleton `Nil` object. This object is designed to represent missing or unset values in scenarios where `None` is a valid and meaningful data value, thus avoiding ambiguity. Currently at version 1.0.2, it's a stable, single-purpose library with infrequent updates.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates how to import and use the `Nil` singleton to distinguish between a truly missing value (represented by `Nil`) and an intentional `None` value in a function's return, especially useful for API responses or configuration.

from niltype import Nil

def get_user_setting(user_id: int, setting_name: str):
    """Simulates fetching a user setting where Nil means 'not found'."""
    if user_id == 1:
        if setting_name == "theme":
            return "dark"
        elif setting_name == "timeout":
            return None # None is a valid timeout (e.g., no timeout)
    return Nil # Setting does not exist for this user

# Example usage:
setting = get_user_setting(1, "theme")
print(f"Theme setting: {setting} (is Nil: {setting is Nil})")

setting = get_user_setting(1, "timeout")
print(f"Timeout setting: {setting} (is Nil: {setting is Nil})")

setting = get_user_setting(2, "language")
print(f"Language setting: {setting} (is Nil: {setting is Nil})")

if setting is Nil:
    print("\nSetting 'language' for user 2 is missing.")
elif setting is None:
    print("\nSetting 'timeout' is explicitly set to None (no timeout).")
else:
    print(f"\nSetting is {setting}.")

view raw JSON →