# ansiblelint package structure
Note that his describes the model after `__init__` cleaning (now imports look much workse than this)
Another goal is to limit the amount of code we import from Ansible in order to avoid potential breakages.
```mermaid
graph LR;
__main__-->runner
__main__-->rules
__main__-->utils
__main__-->formatters-->ansible
__main__-->generate_docs
__main__-->cli;
rules-->AnsibleLintRule
rules-->skip_utils
rules-->errors
rules-->utils
runner-->errors
runner-->skip_utils
runner-->rules
runner-->utils
cli-->version
cli-->utils
utils-->errors
utils-->ansible
style AnsibleLintRule fill:#efe,stroke:#aba
style ansible fill:#fee,stroke:#faa,stroke-width:1px
```