Package: hpp2plantuml
MotivationThe purpose of this tool is to convert C++ header files to a UML representation
inPlantUMLsyntax that can be used to generate diagrams with PlantUML.PlantUMLis a program rendering UML diagrams from plain text inputs using an
expressive language.This package generates the text input to PlantUML from C++ header files.  Its
ambition is limited but it should produce reasonable conversion for simple class
hierarchies.  It aims at supporting:class members with properties (private,method,protected), methods with
basic qualifiers (static, abstract),inheritance relationships,aggregation relationships (very basic support).dependency relationshipsThe package relies on theCppHeaderParserpackage for parsing of C++ header
files.UsageThehpp2plantumlpackage can be used from the command line or as a module in
other applications.Command lineThe command line usage is (hpp2plantuml--help):usage: hpp2plantuml [-h] -i HEADER-FILE [-o FILE] [-d] [-t JINJA-FILE]
                    [--version]

hpp2plantuml tool.

optional arguments:
  -h, --help            show this help message and exit
  -i HEADER-FILE, --input-file HEADER-FILE
                        input file (must be quoted when using wildcards)
  -o FILE, --output-file FILE
                        output file
  -d, --enable-dependency
                        Extract dependency relationships from method arguments
  -t JINJA-FILE, --template-file JINJA-FILE
                        path to jinja2 template file
  --version             show program's version number and exitInput files are added using the-ioption.  Inputs can be full file paths or
include wildcards.  Note that double quotes are required when using wildcards.
The output file is selected with the-ooption.  The output is a text file
following the PlantUML syntax.For instance, the following command will generate an input file for PlantUML
(output.puml) from several header files.hpp2plantuml-iFile_1.hpp-i"include/Helper_*.hpp"-ooutput.pumlTo customize the output PlantUML file, templates can be used (using the-tparameter):hpp2plantuml-iFile_1.hpp-i"include/Helper_*.hpp"-ooutput.puml-ttemplate.pumlThis will use thetemplate.pumlfile as template.  Templates follow thejinjasyntax.  For instance, to add a preamble to the PlantUML output, the template
file may contain:{% extends 'default.puml' %}

{% block preamble %}
title "This is a title"
skinparam backgroundColor #EEEBDC
skinparam handwritten true
{% endblock %}This will inherit from the default template and override the preamble only.ModuleTo use as a module, simplyimport hpp2plantuml.  TheCreatePlantUMLFilefunction can then be used to create a PlantUML file from a set of input files.
Alternatively, theDiagramobject can be used directly to build internal
objects (from files or strings).  TheDiagram.render()method can be used to
produce a string output instead of writing to a text file.  See the API
documentation for more details.InstallationUsingpipThe package is available onPyPiand can be installed using pip:pip install hpp2plantumlFrom sourceThe code usessetuptools, so it can be built using:python setup.py installTo build the documentation, run:python setup.py sphinxTo run the tests, run:python setup.py testThe full documentation is available via:This org-mode postRead the docs