--- id: nulltype version: "2.3.1" license: Apache License 2.0 license_treatment: permissive maintenance: abandoned --- # nulltype — Null values and sentinels like (but not) None, False & True License: permissive · Maintenance: abandoned · Downloads: 3.2M/mo ## What it is and what it does nulltype lets you create custom null-like sentinel values—instances of NullType or NonNullType—that behave like empty containers (falsy, iterable, indexable) but carry semantic meaning distinct from None. Instead of overloading None to mean "not present," "undefined," "prohibited," or "end of data," you can define separate sentinels like Empty, Nothing, or Passthrough, each with a clear purpose. The main use case is simplifying nested data access patterns common in REST API responses, XML trees, and other deeply nested structures. Instead of writing guard clauses at each level, you can chain .get() calls with a Nothing sentinel as the fallback, and the sentinel will safely absorb further operations (attribute access, iteration, indexing, calls) without raising exceptions. The package is pure Python with no dependencies, tested against Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6, and 3.7, and distributed under Apache License 2.0. Use it for: - Parsing REST API responses where nested keys may be absent, replacing repeated if-checks with chainable .get() calls using Nothing as a default. - Traversing XML or JSON parse trees where intermediate nodes might not exist, using a single sentinel to represent all missing branches. - Creating domain-specific sentinel values (e.g., Prohibited, Undefined, Passthrough) to distinguish different kinds of emptiness in business logic. - Replacing ad-hoc sentinel classes or magic values with named, printable NullType instances for clarity. - Implementing the null object pattern in Python without overloading None or False, making code intent explicit. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Defines custom null and sentinel values that behave like empty containers or designated markers, distinct from Python's built-in None, False, and True. Yes, if you are working with nested data structures (APIs, XML, JSON) and want cleaner, more readable code for handling missing values. No, if you require active maintenance—the package is abandoned as of 2018-06-03. For new projects, verify compatibility with your Python version and consider whether a modern alternative better fits your codebase. ## Install pip install nulltype uv add nulltype poetry add nulltype ## Installing nulltype Before you install: Low friction: pure Python wheel with no runtime dependencies. Maintenance status is abandoned (last release 2018-06-03, 2994 days ago), so no active bug fixes or Python version updates should be expected. License in practice: Apache License 2.0 (permissive): you may use, modify, and distribute this package freely in commercial and private projects, provided you include a copy of the license and state any changes made. Quickstart: pip install nulltype from nulltype import Empty, Nothing results = {"threads": None} for thread in results.get("threads", Nothing): print(thread) Verify before relying: - Whether the package remains compatible with Python versions released after 2018 despite no recent maintenance. - Real-world adoption rate and whether it is still actively used in production codebases. ## Package facts - License: Apache License 2.0 (permissive) - Python support: unspecified - Install friction: low - Maintenance: abandoned - Downloads: 3.2M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags null sentinel values, custom none alternative, empty object pattern, placeholder values python, multiton singleton pattern, falsy sentinel, null type implementation, sentinel-values, null-object-pattern, data-parsing [View on SkillFed](https://skillfed.io/packages/nulltype) · [View on PyPI](https://pypi.org/project/nulltype/)