--- id: promise version: "2.3" license: MIT license_treatment: permissive maintenance: dormant --- # promise — Promises/A+ implementation for Python License: permissive · Maintenance: dormant · Downloads: 3.3M/mo ## What it is and what it does Promise is a Python implementation of the Promises/A+ specification, a standard for handling asynchronous operations through chainable callbacks. It lets you wrap async work in a Promise object, resolve or reject it with a value, and attach handlers via .then() and .catch() that execute when the promise settles. The library supports composing multiple promises (Promise.all, Promise.for_dict) and wrapping existing futures. The package has no runtime dependencies and works with Python 2.7 through 3.8 (and PyPy). It is designed to be a readable, performant alternative to raw callbacks for async patterns in Python, though modern Python now has native async/await syntax and asyncio, which may be preferable for new code. Use it for: - Wrapping callback-based async operations (e.g., I/O) in a chainable Promise interface for cleaner control flow - Composing multiple async tasks with Promise.all() to wait for all to complete before proceeding - Converting Python Futures into Promises for interoperability with promise-based libraries or frameworks - Building promise-based libraries or frameworks that need a standard async abstraction layer - Handling rejection and error propagation through .catch() in async workflows without explicit try/except nesting ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Implements Promises/A+ specification for Python, enabling asynchronous value resolution and rejection with chainable then/catch handlers. Yes-with-conditions. The package is stable (MIT, no known vulnerabilities, 367 GitHub stars) but dormant since 2019. Install only if you are maintaining legacy code that already uses promise or integrating with a framework that requires it. For new projects, use Python's native async/await and asyncio instead. ## Install pip install promise uv add promise poetry add promise ## Installing promise Before you install: High install friction due to source-only distribution (promise-2.3.tar.gz). Maintenance is dormant—last release was 2019-12-18 and last commit 2024-07-09, with no active development signals. License in practice: MIT license (permissive) places no restrictions on use, modification, or distribution. Safe for commercial and open-source projects. Quickstart: from promise import Promise promise = Promise(lambda resolve, reject: resolve('RESOLVED!')) result = promise.then(lambda value: print(value)) Verify before relying: - Whether promise.get() method exists and how it blocks/retrieves resolved values (shown in docs but not formally specified) - Python 3.9+ compatibility—classifiers list only up to 3.8; current support unclear - Whether this package is maintained or if a modern alternative is recommended for new projects ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: high - Maintenance: dormant - Downloads: 3.3M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags promises async pattern python, promises/a+ implementation, deferred value resolution, chainable async callbacks, promise then catch, future-like promises, concurrent value handling, async-pattern, legacy-maintained [View on SkillFed](https://skillfed.io/packages/promise) · [View on PyPI](https://pypi.org/project/promise/)