wraps
Meaningful and safe wrapping types.
Decision gist · record as of 2026-08-14
Yes, if you are building a codebase that benefits from explicit error and absence handling and you are comfortable with functional programming patterns. The low install friction and permissive MIT license make adoption straightforward. However, note that the project is dormant (last release 719 days ago) and the README examples are incomplete, so verify that the current API meets your needs before committing to a dependency.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.8 or above.
- Low install friction with a pure-Python wheel.
- Depends on attrs, funcs, named, typing-aliases, and typing-extensions—all lightweight utilities.
License · maintenance · safety
permissive license (permissive) — MIT License permits free use, modification, and distribution with minimal restrictions. Suitable for both open-source and commercial projects.
last release 2024-08-25 (719 days) · last repo commit 2024-08-25 · 4 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 80,833 downloads/mo, #14,266 on PyPI
Alternatives
Verify before relying
pip install wraps
from wraps import Option, Result
# Option wraps an optional value
value: Option[int] = Option.some(value)
result = value.map(lambda x: x)
# Result wraps success or failure
outcome: Result[int, str] = Result.ok(value)- Whether the package is actively maintained or seeking new maintainers given the 719-day gap since last release.
- Concrete examples of Option, Result, Either, and Future usage beyond the README's TODO placeholder.
- Performance characteristics or design trade-offs compared to similar functional typing libraries.
- Specific API surface and method signatures for each wrapper type.
What it is and what it does
wraps provides a collection of type-safe wrapper types inspired by functional programming—Option, Result, Either, and Future—that encode absence, failure, and deferred computation directly in the type system. Instead of using None or raising exceptions, you wrap values and compose operations safely, making error paths explicit and testable.
The library is built on top of attrs, funcs, named, typing-aliases, and typing-extensions to deliver typed, composable wrappers for modern Python. It targets developers familiar with functional patterns who want to bring that safety and clarity to Python codebases.
Use it for
- Replace None checks with Option types to make absence explicit in function signatures.
- Encode success or failure outcomes as Result types to propagate errors through operation chains.
- Use Either to represent computations that can fail in two distinct ways with different error information.
- Chain transformations on wrapped values using combinators for functional composition.
- Write type-safe APIs where callers see at a glance whether a function returns a value or a fallible result.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you are building a codebase that benefits from explicit error and absence handling and you are comfortable with functional programming patterns.
The low install friction and permissive MIT license make adoption straightforward. However, note that the project is dormant (last release 719 days ago) and the README examples are incomplete, so verify that the current API meets your needs before committing to a dependency.
Install
wraps on PyPI
Before you install
Low install friction with a pure-Python wheel. Depends on attrs, funcs, named, typing-aliases, and typing-extensions—all lightweight utilities. Last release was 719 days ago; repository is not archived but shows dormant maintenance activity.
Requires Python 3.8 or above.
License in practice
MIT License permits free use, modification, and distribution with minimal restrictions. Suitable for both open-source and commercial projects.
Quickstart
pip install wraps
from wraps import Option, Result
# Option wraps an optional value
value: Option[int] = Option.some(value)
result = value.map(lambda x: x)
# Result wraps success or failure
outcome: Result[int, str] = Result.ok(value)
Verify before relying
- Whether the package is actively maintained or seeking new maintainers given the 719-day gap since last release.
- Concrete examples of Option, Result, Either, and Future usage beyond the README's TODO placeholder.
- Performance characteristics or design trade-offs compared to similar functional typing libraries.
- Specific API surface and method signatures for each wrapper type.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesattrsfuncsnamedtyping-aliasestyping-extensions |
| Maintenance | Dormant 719 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 80,833 / month, #14,266 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: UtilitiesTyping :: Typed |
Evidence: wraps-0.15.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “option type python”
- wrapsProvides type-safe wrapper types for representing values that may be…
- msgspec-clickGenerates Click command-line options automatically from msgspec type…
- click-datetimeAdds datetime type support to Click, allowing CLI developers to parse…
Give your agent the search over MCP, or paste the wish link into any chat.
More Utilities packages
Converts domain names between Unicode and ASCII-compatible encoding (Punycode) according to IDNA 2008 and Unicode Technical Standard 46, with security validation and broader script coverage than the standard library.
Install it if you work with internationalized domain names, need to validate domains, or use HTTP clients that depend on it transitively.
Detects and normalizes text encoding from unknown or ambiguous sources, supporting all IANA character sets that Python's core library provides codecs for, with the ability to register custom codecs.
Setuptools is a Python build backend and package management tool that handles building, distributing, and installing Python packages, including support for C/C++ extension modules.
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
Pygments is a syntax highlighter that colorizes source code and text in over 500 languages and formats, outputting to HTML, LaTeX, RTF, SVG, images, or ANSI terminal sequences.
Install it if you need to display or transform source code.
Six provides utility functions to write Python code that runs on both Python 2.7 and Python 3.3+, smoothing over language differences between the two versions.
See also tightwrap · oslash · returns · Expression · mixed-methods · maybe-else · promise · named · solus · nr-stream