cyclic
Handle cyclic relations
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
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 · maintenance · safety
BSD (permissive) — BSD license is permissive, allowing commercial and private use with minimal restrictions—suitable for most projects.
last release 2018-09-26 (2879 days) · last repo commit 2020-05-27 · 1 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 127,696 downloads/mo, #11,734 on PyPI
Alternatives
Verify before relying
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- 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.
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 on this page. Verify before relying on it.
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
cyclic on PyPI
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 | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Abandoned 2,879 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 127,696 / month, #11,734 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Information TechnologyLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3 |
Evidence: cyclic-1.0.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 › “cyclic dependency detection”
- cyclicDetects and reports cyclic relationships in a directed graph by…
- scantreeRecursively scans directories with flexible filtering, wildcard…
- pydepsVisualizes Python module dependencies as graphs by analyzing import…
Give your agent the search over MCP, or paste the wish link into any chat.
More Software Development packages
Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.
Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.
Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.
Install it if you are building CLIs in Python.
Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.
See also py-import-cycles · mo-imports · toposort · pipdeptree · tach · importlab · pydeps · cycler · import-deps · rainflow