--- id: visitor version: "0.1.3" license: MIT license_treatment: permissive maintenance: abandoned --- # visitor — A tiny pythonic visitor implementation. License: permissive · Maintenance: abandoned · Downloads: 444.2K/mo ## What it is and what it does visitor is a minimal library implementing the visitor design pattern for Python. It provides a base Visitor class that uses dynamic method dispatch to route calls to type-specific visit methods—for example, visit_str for strings, visit_int for integers. You subclass Visitor and define visit_* methods for each type you want to handle; calling visitor.visit(node) automatically dispatches to the appropriate handler based on the node's type. The library is intentionally tiny and the author explicitly suggests copy-pasting the source into your project rather than adding a dependency. It has no runtime dependencies and supports both Python 2 and 3, but has been abandoned since 2016 with no maintenance or updates. Use it for: - Implement custom JSON encoders or formatters that traverse nested data structures by type - Build AST walkers or code analysis tools that need type-based dispatch on syntax nodes - Create domain-specific language interpreters that process typed expression trees - Write tree traversal algorithms where behavior depends on the node type encountered ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Provides a base Visitor class to implement the visitor design pattern in Python, dispatching method calls based on node type through dynamic method lookup. No. The package is abandoned and unmaintained since 2016-05-18. The author's own documentation suggests copy-pasting the source instead of taking a dependency. High install friction combined with zero maintenance signal and no security updates makes this a poor choice—either inline the pattern or use a maintained alternative. ## Install pip install visitor uv add visitor poetry add visitor ## Installing visitor Before you install: High install friction with no runtime dependencies. Package is abandoned as of 2016-05-18 with no updates since its last commit on 2016-05-19. Supports both Python 2 and 3 but receives no maintenance. License in practice: MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it safe to adopt from a licensing standpoint. Quickstart: from visitor import Visitor class MyVisitor(Visitor): def visit_str(self, node): return node.upper() def visit_int(self, node): return node * 2 visitor = MyVisitor() print(visitor.visit("hello")) # dispatches to visit_str Verify before relying: - Whether the package works reliably with modern Python versions despite no maintenance since 2016 - Whether high install friction is due to build requirements or packaging issues - Real-world adoption rate and whether the 444237 monthly downloads reflect active use or legacy dependencies ## Package facts - License: MIT (permissive) - Python support: unspecified - Install friction: high - Maintenance: abandoned - Downloads: 444.2K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags visitor pattern python, double dispatch implementation, tree traversal pattern, node visitor base class, dynamic method dispatch, design pattern implementation, type-based method routing, design-pattern, abandoned [View on SkillFed](https://skillfed.io/packages/visitor) · [View on PyPI](https://pypi.org/project/visitor/)