--- id: cyclic version: "1.0.0" license: BSD license_treatment: permissive maintenance: abandoned --- # cyclic — Handle cyclic relations License: permissive · Maintenance: abandoned · Downloads: 127.7K/mo ## What it is and what it does Cyclic is a lightweight library for detecting cycles in directed graphs where relationships are compared by value. It provides a simple API to add edges between nodes and check whether a given node participates in any cyclic relationship. The package has no external dependencies, making it trivial to install. The library is designed for scenarios where you need to track parent-child or dependency relationships and verify that no circular chains exist. It stores relationships and can query whether adding a new edge would create a cycle. However, the package has been unmaintained since 2018 with no updates or bug fixes in over five years, so it should be considered stable but not actively developed. Use it for: - Validate that a new dependency relationship won't introduce a circular dependency in a package or module system. - Check for cycles in organizational hierarchies or permission delegation chains before committing a relationship. - Detect circular imports or module dependencies during static analysis of Python codebases. - Verify acyclic constraints in workflow or task scheduling systems before execution. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Detects and reports cyclic relationships in a directed graph by checking whether adding a new edge would create a cycle. Yes, if you need basic cycle detection in a small, self-contained graph and can tolerate no ongoing maintenance. The zero-dependency design and permissive license make it safe to embed. No, if you need active support, performance at scale, or assurance that edge cases are handled—consider a more actively maintained graph library instead. ## Install pip install cyclic uv add cyclic poetry add cyclic ## Installing cyclic Before you install: Installation is frictionless with no runtime dependencies, but the package has been abandoned since its single release on 2018-09-26 with no commits after 2020-05-27, so expect no maintenance or bug fixes. License in practice: BSD license is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects. Quickstart: pip install cyclic from cyclic import Cyclic cy = Cyclic() cy.add('B', 'A') cy.add('C', 'B') cy.add('A', 'C') print(cy.is_cyclic('C')) # True Verify before relying: - Whether the package correctly handles all edge cases in cycle detection (e.g., self-loops, disconnected components). - Performance characteristics with large graphs or high-frequency cycle checks. - Compatibility with modern Python versions beyond the unspecified support claim. ## Package facts - License: BSD (permissive) - Python support: unspecified - Install friction: low - Maintenance: abandoned - Downloads: 127.7K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags cyclic dependency detection, circular relation checker, graph cycle detection, cyclic relation handler, directed graph cycles, dependency cycle finder, circular reference detection, graph-algorithms, cycle-detection, unmaintained [View on SkillFed](https://skillfed.io/packages/cyclic) · [View on PyPI](https://pypi.org/project/cyclic/)