# DFD
DFD (Data Flow Diagram) Generator - Commandline tool to generate
diagrams as images in various formats (SVG, PNG, JPG, PDF, etc.) from
source text files.
The source for this project is [available here][src].
The package page is [available here][pypi].
## Scope
The present tool allows to create diagrams following the "Structured
Analysis / Stuctured Design" (SA/SD) modelling technique as described
by Edward Yourdon.
SA/RT (which is SA/SD with a real-time extension), can be found in the
design of real-time and embedded systems.
Example: [Firmware modelling of the Active Descent
System](https://www.spyr.ch/ps/ads/qm/node18.html) of the [Rosetta
Lander](https://en.wikipedia.org/wiki/Rosetta_(spacecraft))
spacecraft.
Surprisingly, SA/RT is also well-suited to the analyse and design of
web micro-services and IoT architectures.
## Summary
Data Flow Diagram are used to model the flow and processing of
information through a system.
```data-flow-diagram example.svg
process P Process
process P2 Process
entity E Entity
store S Store
channel C Channel
E --> P flow
P ::> P2 signal
P <-> S bidirectional flow
P --- C undirected flow
```

## Syntax and examples
See the [documentation page][doc].
## Dependencies
* Python3
* Graphviz
## Installing via pip3
```
[sudo] pip3 install data-flow-diagram
```
## Installation troubleshooting
If you get an error at runtime like:
```
ModuleNotFoundError: No module named 'reportlab.graphics._renderPM'
```
you may have to reinstall reportlab:
```
[sudo] python3 -m pip install --upgrade --force-reinstall reportlab
```
## Usage
`data-flow-diagram -h` says:
```
usage: data-flow-diagram [-h] [--output-file OUTPUT_FILE] [--markdown]
[--format FORMAT] [--percent-zoom PERCENT_ZOOM]
[--background-color BACKGROUND_COLOR] [--debug]
[INPUT_FILE]
Command-line DFD diagram generator. Converts a textual description into a
graphic file.
positional arguments:
INPUT_FILE UML sequence input file; if omitted, stdin is used
options:
-h, --help show this help message and exit
--output-file OUTPUT_FILE, -o OUTPUT_FILE
output file name; pass '-' to use stdout; if
omitted, use INPUT_FILE base name with '.svg'
extension, or stdout
--markdown, -m consider snippets between opening marker:
```data-flow-diagram OUTFILE, and closing marker:
``` allowing to generate all diagrams contained in
an INPUT_FILE that is a markdown file
--format FORMAT, -f FORMAT
output format: gif, jpg, tiff, bmp, pnm, eps, pdf,
svg (any supported by Graphviz); default is svg
--no-graph-title suppress graph title
--no-check-dependencies
suppress dependencies checking
--debug emits debug messages
See https://github.com/pbauermeister/dfd for information, syntax and
examples.
```
[src]: https://github.com/pbauermeister/dfd
[pypi]: https://pypi.org/project/data-flow-diagram
[doc]: https://github.com/pbauermeister/dfd/tree/master/doc/README.md
Raw data
{
"_id": null,
"home_page": "https://github.com/pbauermeister/dfd",
"name": "data-flow-diagram",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.10",
"maintainer_email": null,
"keywords": "diagram-generator, development, tool",
"author": "Pascal Bauermeister",
"author_email": "pascal.bauermeister@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/22/fe/9789efc5187acc5a32f2a95359ea7601c52c8b56710b8f03e6f789499933/data_flow_diagram-1.11.0.tar.gz",
"platform": null,
"description": "# DFD\n\nDFD (Data Flow Diagram) Generator - Commandline tool to generate\ndiagrams as images in various formats (SVG, PNG, JPG, PDF, etc.) from\nsource text files.\n\nThe source for this project is [available here][src].\nThe package page is [available here][pypi].\n\n## Scope\n\nThe present tool allows to create diagrams following the \"Structured\nAnalysis / Stuctured Design\" (SA/SD) modelling technique as described\nby Edward Yourdon.\n\nSA/RT (which is SA/SD with a real-time extension), can be found in the\ndesign of real-time and embedded systems.\nExample: [Firmware modelling of the Active Descent\nSystem](https://www.spyr.ch/ps/ads/qm/node18.html) of the [Rosetta\nLander](https://en.wikipedia.org/wiki/Rosetta_(spacecraft))\nspacecraft.\n\nSurprisingly, SA/RT is also well-suited to the analyse and design of\nweb micro-services and IoT architectures.\n\n## Summary\nData Flow Diagram are used to model the flow and processing of\ninformation through a system.\n\n```data-flow-diagram example.svg\nprocess\tP\tProcess\nprocess\tP2\tProcess\nentity\tE\tEntity\nstore\tS\tStore\nchannel\tC\tChannel\n\nE --> P\tflow\nP ::> P2\tsignal\nP <-> S\tbidirectional flow\nP --- C\tundirected flow\n```\n\n\n\n## Syntax and examples\n\nSee the [documentation page][doc].\n\n## Dependencies\n\n * Python3\n * Graphviz\n\n## Installing via pip3\n\n```\n[sudo] pip3 install data-flow-diagram\n```\n\n## Installation troubleshooting\n\nIf you get an error at runtime like:\n```\nModuleNotFoundError: No module named 'reportlab.graphics._renderPM'\n```\nyou may have to reinstall reportlab:\n```\n[sudo] python3 -m pip install --upgrade --force-reinstall reportlab\n```\n\n## Usage\n\n`data-flow-diagram -h` says:\n\n```\nusage: data-flow-diagram [-h] [--output-file OUTPUT_FILE] [--markdown]\n [--format FORMAT] [--percent-zoom PERCENT_ZOOM]\n [--background-color BACKGROUND_COLOR] [--debug]\n [INPUT_FILE]\n\nCommand-line DFD diagram generator. Converts a textual description into a\ngraphic file.\n\npositional arguments:\n INPUT_FILE UML sequence input file; if omitted, stdin is used\n\noptions:\n -h, --help show this help message and exit\n --output-file OUTPUT_FILE, -o OUTPUT_FILE\n output file name; pass '-' to use stdout; if\n omitted, use INPUT_FILE base name with '.svg'\n extension, or stdout\n --markdown, -m consider snippets between opening marker:\n ```data-flow-diagram OUTFILE, and closing marker:\n ``` allowing to generate all diagrams contained in\n an INPUT_FILE that is a markdown file\n --format FORMAT, -f FORMAT\n output format: gif, jpg, tiff, bmp, pnm, eps, pdf,\n svg (any supported by Graphviz); default is svg\n --no-graph-title suppress graph title\n --no-check-dependencies\n suppress dependencies checking\n --debug emits debug messages\n\nSee https://github.com/pbauermeister/dfd for information, syntax and\nexamples.\n```\n\n[src]: https://github.com/pbauermeister/dfd\n[pypi]: https://pypi.org/project/data-flow-diagram\n[doc]: https://github.com/pbauermeister/dfd/tree/master/doc/README.md\n",
"bugtrack_url": null,
"license": "GNU General Public License v3 (GPLv3)",
"summary": "Commandline tool to generate data flow diagrams from text",
"version": "1.11.0",
"project_urls": {
"Bug Reports": "https://github.com/pbauermeister/dfd/issues",
"Homepage": "https://github.com/pbauermeister/dfd",
"Source": "https://github.com/pbauermeister/dfd"
},
"split_keywords": [
"diagram-generator",
" development",
" tool"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "22fe9789efc5187acc5a32f2a95359ea7601c52c8b56710b8f03e6f789499933",
"md5": "3cf110a5b1d430b474fbcd2ec7f9b81c",
"sha256": "8892017ff9b68819d259e8621e55b6d96e1ebbe9b9f251bbf96a7841c41c8279"
},
"downloads": -1,
"filename": "data_flow_diagram-1.11.0.tar.gz",
"has_sig": false,
"md5_digest": "3cf110a5b1d430b474fbcd2ec7f9b81c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.10",
"size": 16664,
"upload_time": "2025-02-22T17:56:45",
"upload_time_iso_8601": "2025-02-22T17:56:45.767107Z",
"url": "https://files.pythonhosted.org/packages/22/fe/9789efc5187acc5a32f2a95359ea7601c52c8b56710b8f03e6f789499933/data_flow_diagram-1.11.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-22 17:56:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "pbauermeister",
"github_project": "dfd",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "data-flow-diagram"
}