Metadata-Version: 2.4
Name: cycl
Version: 1.0.0
Summary: CLI and Python SDK to help identify cross-stack import/export circular dependencies, for a given AWS account and region.
License: MIT
Project-URL: Repository, http://github.com/tcm5343/cycl
Project-URL: Documentation, https://tcm5343.github.io/cycl/index.html
Keywords: aws,cdk,cycle,circular,dependency,infrastructure,boto3,cloud
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: boto3~=1.0
Requires-Dist: networkx~=3.0
Provides-Extra: test
Requires-Dist: pytest-cov==6.2.1; extra == "test"
Requires-Dist: pytest-subtests==0.14.2; extra == "test"
Requires-Dist: pytest-sugar==1.0.0; extra == "test"
Requires-Dist: pytest==8.3.5; extra == "test"
Provides-Extra: validation
Requires-Dist: boto3-stubs[essential]==1.40.32; extra == "validation"
Requires-Dist: mypy==1.18.1; extra == "validation"
Requires-Dist: ruff==0.12.11; extra == "validation"
Requires-Dist: types-networkx==3.4.2.20250509; extra == "validation"
Provides-Extra: doc
Requires-Dist: myst-parser==4.0.1; extra == "doc"
Requires-Dist: sphinx_rtd_theme==3.0.2; extra == "doc"
Requires-Dist: sphinx-argparse==0.5.2; extra == "doc"
Requires-Dist: sphinx-autobuild==2024.10.3; extra == "doc"
Requires-Dist: sphinx==8.1.3; extra == "doc"
Provides-Extra: dist
Requires-Dist: build==1.2.2.post1; extra == "dist"
Requires-Dist: twine==6.1.0; extra == "dist"
Provides-Extra: e2e
Requires-Dist: pytest==8.4.2; extra == "e2e"
Requires-Dist: aws-cdk-lib==2.172.0; extra == "e2e"
Requires-Dist: constructs<11.0.0,>=10.0.0; extra == "e2e"
Dynamic: license-file

# cycl

[![PyPI](https://img.shields.io/pypi/v/cycl)](https://pypi.org/project/cycl/)
[![Downloads](https://static.pepy.tech/badge/cycl)](https://pypi.python.org/pypi/cycl/)
[![PyPI Supported Python Versions](https://img.shields.io/pypi/pyversions/cycl.svg)](https://pypi.python.org/pypi/cycl/)
[![Build Status](https://github.com/tcm5343/cycl/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/tcm5343/cycl/actions)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v0.json)](https://github.com/charliermarsh/ruff)
![Checked with mypy](https://img.shields.io/badge/mypy-checked-blue)

cycl is a CLI and Python SDK to help identify cross-stack import/export circular dependencies, for a given AWS account and region. The successor to [circular-dependency-detector](https://github.com/tcm5343/circular-dependency-detector), which was built at the University of Texas at Austin (ECE 382C: Software Testing).

## Documentation

Documentation for using `cycl` may be found [here](https://tcm5343.github.io/cycl/).

## Contributing

`cycl` is being actively developed, instructions will come as it becomes more stable. Run `make` to see the available targets and their descriptions. To run tests using `tox`, you must install `tox` and `pyenv`. A VScode dev container is coming soon.

To run specific tests:

* using tox: `tox -e py39 -- ./tests/utils/cdk_test.py`
* using pytest directly: `make test ARGS=./tests/utils/cdk_test.py`
