--- id: wirerope version: "1.0.0" license: BSD 2-Clause License license_treatment: permissive maintenance: aging --- # wirerope — 'Turn functions and methods into fully controllable objects' License: permissive · Maintenance: aging · Downloads: 11.2M/mo ## What it is and what it does wirerope provides a framework for wrapping Python callables (functions, methods, classmethods, staticmethods) with custom behavior by binding Wire objects to them. The core idea is that instead of writing a simple decorator, you define a Wire subclass—which acts like a decorator function body—and attach it to a callable via WireRope. Each function or bound method gets its own Wire instance, automatically detecting whether it's a free function, instance method, classmethod, or property and binding accordingly. The package depends on six, inspect2, and singledispatch for compatibility and introspection. It's designed for cases where you need fine-grained control over callable behavior—for example, wrapping methods with instance-specific state or creating complex decorator patterns. The library is stable (no known vulnerabilities) and supports Python 3.4 through 3.13, though it dropped Python 2 support in version 1.0. Use it for: - Implement method-specific caching or memoization where the cache state is bound to each instance or class. - Create decorator-like wrappers that need to maintain state or behave differently for instance methods vs. classmethods. - Build frameworks that wrap callable objects with custom pre/post-call hooks or logging tied to their owner. - Develop tools that need to intercept and modify function or method behavior in a structured, reusable way. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Wraps Python callables (functions and methods) with custom behavior by binding user-defined Wire objects to them, enabling decorator-like control over how functions and methods are invoked. Yes, if you need structured callable wrapping with instance-aware binding. The low install friction, permissive license, and lack of vulnerabilities make it safe to adopt. However, the aging maintenance status (575 days since release) and small community (8 GitHub stars) suggest it's a specialized tool—install it when your use case genuinely requires Wire-based decoration rather than standard decorators or functools. ## Install pip install wirerope uv add wirerope poetry add wirerope ## Installing wirerope Before you install: Low install friction with a pure-Python wheel. Maintenance is aging—last release was 575 days ago and the repository shows a commit from 2026-01-26, but the package remains active and unarchivedwith no known vulnerabilities. License in practice: BSD 2-Clause License is permissive, allowing commercial and private use with minimal restrictions—you may use and modify the package freely as long as you retain the license notice. Quickstart: pip install wirerope from wirerope import WireRope, Wire class MyWire(Wire): def __call__(self, *args, **kwargs): # Custom behavior before/after call return self.func(*args, **kwargs) @WireRope(MyWire) def my_function(): pass Verify before relying: - Whether the aging maintenance status (575 days since last release) signals planned dormancy or stable maturity for this specialized use case. - Real-world adoption patterns beyond the referenced methodtools library—how widely used is wirerope in production codebases. ## Package facts - License: BSD 2-Clause License (permissive) - Python support: unspecified - Install friction: low - Maintenance: aging - Downloads: 11.2M/month (top 5,000 on PyPI) - Known vulnerabilities: none known ## Tags callable wrapper with custom behavior, method decoration framework, function interception and control, decorator-like method binding, callable object transformation, method wrapping library, function behavior customization, callable-wrapping, decorator-framework, method-binding [View on SkillFed](https://skillfed.io/packages/wirerope) · [View on PyPI](https://pypi.org/project/wirerope/)