
breathe
=======

- **Subpackages**

  - **directive** - Contains some rst directive definitions. These were split out
    of `directives.py` when it started to become too large.
  - **parser** - Contains code for parsing the doxygen xml into a tree of Python
    objects. The vast majority of the code is autogenerated but there are now
    small but significant tweaks which means we don't regenerate it.
  - **finder** - Provides classes for finding nodes within the set of xml
    files generated by doxygen. Finders are generally used in the `run` methods of
    the directives to find the xml node which is then passed to the renderer to
    create the output.
  - **renderer** - Provides classes for rendering an xml node from the doxygen xml
    into docutils rst nodes which can be used by Sphinx. Breathe should ideally
    only produce rst nodes and not concern itself with the final output (html,
    latex, etc.)

- **Submodules**

  - **directives** - Contains the definitions of some of the directives. The rest
    are in the files in the `directive` folder. It also contains all the set up
    code which registers with Sphinx and wires together all the various factories.
  - **process** - Contains the code responsible for running the `doxygen` process
    when using the `autodoxygen` directives.
  - **project** - Handles the concept of a `Project` which is the breathe term for
    a folder full of doxygen xml files.
  - **exception** - Contains the base class for all custom exceptions.
