# PyArchInsight PyArchInsight is a powerful command-line utility designed to help developers understand and visualize the architectural structure of Python codebases. It scans project directories to identify module-level dependencies, class relationships, and function call graphs, presenting this information in an easily digestible format. The tool can generate various insights, including detecting circular imports, identifying isolated components, and mapping the overall flow of control within an application. Its primary goal is to aid in code review, refactoring efforts, and onboarding new team members by providing a clear, interactive overview of complex Python projects directly in the terminal or as exportable graph definitions (e.g., Graphviz DOT). This makes it easier to pinpoint architectural smells and improve maintainability. ## Usage To use PyArchInsight, navigate to the project's root directory and run the `main.py` script. ### Analyze Dependencies and Find Circular Imports To analyze a project and find circular dependencies, use the `--find-circular` flag: ```bash python src/pyarchinsight/main.py --find-circular ``` Replace `` with the absolute or relative path to the Python project you want to analyze. ### Export to Graphviz DOT Format To generate a Graphviz DOT file representing the module dependencies, use the `--output-dot` flag: ```bash python src/pyarchinsight/main.py --output-dot output.dot ``` This will create a file named `output.dot` in the current directory, which you can then visualize using Graphviz tools.