Draw your EPICS Database
Python script to produce a Markdown Mermaid Flowchart
git clone git@drf-gitlab.cea.fr:EPICS/dryed.git
First, install Poetry. Refer to the Poetry for instructions.
To build the project, you can run:
poetry install
poetry buildusage: dryed [-h] [-v {0,1,2,3,4,5}] [-r RECORD_TARGET] inputFile outputFile
Script to display EPICS record to Markdown Mermaid Flowchart
positional arguments:
inputFile Input file, EPICS format
outputFile Output file, Markdown Mermaid format
options:
-h, --help show this help message and exit
-v {0,1,2,3,4,5}, --verbosity {0,1,2,3,4,5}
decrease output verbosity. 5 (Critical), 4 (Error), 3 (Warning, default), 2
(Info), 1 (Debug)
-r RECORD_TARGET, --record_target RECORD_TARGET
Record to look for children and parents
Running Dryed can be done with Poetry:
poetry run dryed myexample.db my_output_example.txt> poetry run dryed tests/misc/example.template /tmp/my_output_example.txt
> cat /tmp/my_output_example.txt
flowchart
PREFIX_myName2--CPP-->PREFIX_name3
PREFIX_ao-->PREFIX_name3
PREFIX_myName--PP-->PREFIX_asub
PREFIX_asub-->PREFIX_ao
PREFIX_myName2--PP-->PREFIX_asub2
PREFIX_asub2-->PREFIX_aoResulting in Following Mermaid chart
flowchart
PREFIX_myName2--CPP-->PREFIX_name3
PREFIX_ao-->PREFIX_name3
PREFIX_myName--PP-->PREFIX_asub
PREFIX_asub-->PREFIX_ao
PREFIX_myName2--PP-->PREFIX_asub2
PREFIX_asub2-->PREFIX_ao
> poetry run dryed tests/misc/example2.template /tmp/my_output_example2.txt
> cat /tmp/my_output_example2.txt
flowchart
PREFIX_myName2--CP-->PREFIX_name3
PREFIX_ao-->PREFIX_name4
PREFIX_ao2-->PREFIX_name3
PREFIX_myName--CP-->PREFIX_asub
PREFIX_asub-->PREFIX_ao
PREFIX_myName2--CP-->PREFIX_asub2
PREFIX_asub2-->PREFIX_ao2Resulting in Following Mermaid chart
flowchart
PREFIX_myName2--CP-->PREFIX_name3
PREFIX_ao-->PREFIX_name4
PREFIX_ao2-->PREFIX_name3
PREFIX_myName--CP-->PREFIX_asub
PREFIX_asub-->PREFIX_ao
PREFIX_myName2--CP-->PREFIX_asub2
PREFIX_asub2-->PREFIX_ao2
If you want to do not display the whole file to reduce complexity, you can add a record 'target'. It will display recursively every records connected to this record.
> poetry run dryed tests/misc/example2.template /tmp/my_output_example2.txt -r PREFIX_ao2
> cat /tmp/my_output_example2.txt
flowchart
classDef target fill:#084
PREFIX_myName2--CP-->PREFIX_name3
PREFIX_ao2:::target -->PREFIX_name3
PREFIX_myName2--CP-->PREFIX_asub2
PREFIX_asub2-->PREFIX_ao2:::target Resulting in Following Mermaid chart
flowchart
classDef target fill:#084
PREFIX_myName2--CP-->PREFIX_name3
PREFIX_ao2:::target -->PREFIX_name3
PREFIX_myName2--CP-->PREFIX_asub2
PREFIX_asub2-->PREFIX_ao2:::target