.. _dim_classes: Classes ======= .. figure:: ../../_static/swa/overview/classes.drawio.png :scale: 100% :align: center Class overview The classes of Dim can be divided into six groups: - **Main:** the entry point of this tool, it ties options, loader and subcommands together, see :ref:`main workflow `. - **Options:** loads the :ref:`options ` from the command line and makes them globally available. - **Loading and data storage:** These classes are responsible to :ref:`load ` the requirements files and to provide the data to the subcommands. - **Subcommands:** These :ref:`commands ` represent the central features of Dim: - Checking Dim files for :ref:`consistency `. - :ref:`Exporting ` data to different formats. - :ref:`Formatting ` requirements files. - Printing :ref:`statistics `. - **Exporters:** :ref:`Export ` is also a subcommand, but it's separated by output formats, namely :ref:`RST `, :ref:`CSV ` and :ref:`JSON `. - **Helper classes:** These classes cover different use cases: - Providing convenient methods for string handling (String). - Helping to generate better error messages when loading the requirements files (Psych). - Simplifying the unit tests (ThreadOut, ExitHelper).