From 54a26048f7348e7de5cf89bbeafb616202a78542 Mon Sep 17 00:00:00 2001 From: gabriel-tessier Date: Tue, 5 Jan 2021 22:50:07 +0900 Subject: [PATCH 01/45] docs(website): update Fluentd path in examples (#429) --- docs/getting-started/examples.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting-started/examples.md b/docs/getting-started/examples.md index 7596567a..d32a3e6f 100644 --- a/docs/getting-started/examples.md +++ b/docs/getting-started/examples.md @@ -178,7 +178,7 @@ from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis -from diagrams.onprem.logging import Fluentd +from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka @@ -221,7 +221,7 @@ from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis -from diagrams.onprem.logging import Fluentd +from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka @@ -283,4 +283,4 @@ with Diagram("Broker Consumers", show=False): queue >> consumers >> Aurora("Database") ``` -![rabbitmq consumers diagram](/img/rabbitmq_consumers_diagram.png) \ No newline at end of file +![rabbitmq consumers diagram](/img/rabbitmq_consumers_diagram.png) From 5ac2497b996c31298ff3ba5d95410a009f314367 Mon Sep 17 00:00:00 2001 From: gabriel-tessier Date: Tue, 5 Jan 2021 23:24:28 +0900 Subject: [PATCH 02/45] docs: add more visibility to Custom node (#284) (#424) * Try to make the custom doc page (#284) * [Fix] link syntax * [Fix] Generate the doc for custom outside the provider loop + Remove custom from providers list. * [Fix] Add custom menu in side bar * docs(Custom): Add more examples (#284) --- autogen.sh | 6 +- diagrams/saas/chat.py | 1 - docs/nodes/custom.md | 90 +++++++++++++++++++++++++++ scripts/generate.py | 9 ++- templates/apidoc_custom.tmpl | 6 ++ website/i18n/en.json | 3 + website/sidebars.json | 5 +- website/static/img/custom_local.png | Bin 0 -> 118089 bytes website/static/img/custom_remote.png | Bin 0 -> 34571 bytes 9 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 docs/nodes/custom.md create mode 100644 templates/apidoc_custom.tmpl create mode 100644 website/static/img/custom_local.png create mode 100644 website/static/img/custom_remote.png diff --git a/autogen.sh b/autogen.sh index 6af32ce4..12d51427 100755 --- a/autogen.sh +++ b/autogen.sh @@ -4,7 +4,7 @@ set -e app_root_dir="diagrams" # NOTE: azure icon set is not latest version -providers=("onprem" "aws" "azure" "gcp" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale") +providers=("onprem" "aws" "azure" "gcp" "firebase" "k8s" "alibabacloud" "oci" "programming" "saas" "elastic" "generic" "openstack" "outscale" ) if ! [ -x "$(command -v round)" ]; then echo 'round is not installed' @@ -52,6 +52,10 @@ for pvd in "${providers[@]}"; do python -m scripts.generate "$pvd" done +# Generate doc for custom module +echo "generating the docs for custom" +python -m scripts.generate "custom" + # run black echo "linting the all the diagram modules" black "$app_root_dir"/**/*.py diff --git a/diagrams/saas/chat.py b/diagrams/saas/chat.py index 2eb52540..e48587ab 100644 --- a/diagrams/saas/chat.py +++ b/diagrams/saas/chat.py @@ -8,7 +8,6 @@ class _Chat(_Saas): _icon_dir = "resources/saas/chat" - class Discord(_Chat): _icon = "discord.png" diff --git a/docs/nodes/custom.md b/docs/nodes/custom.md new file mode 100644 index 00000000..8c2b1b4b --- /dev/null +++ b/docs/nodes/custom.md @@ -0,0 +1,90 @@ +--- +id: custom +title: Custom +--- + +## Custom with local icons + +For this example we use the following architecture: + +``` +. +├── custom_local.py +├── my_resources +│ ├── cc_heart.black.png +│ ├── cc_attribution.png +│ ├──... +``` + +The content of custom_local.py file: + +```python +from diagrams import Diagram, Cluster +from diagrams.custom import Custom + + +with Diagram("Custom with local icons\n Can be downloaded here: \nhttps://creativecommons.org/about/downloads/", show=False, filename="custom_local", direction="LR"): + cc_heart = Custom("Creative Commons", "./my_resources/cc_heart.black.png") + cc_attribution = Custom("Credit must be given to the creator", "./my_resources/cc_attribution.png") + + cc_sa = Custom("Adaptations must be shared\n under the same terms", "./my_resources/cc_sa.png") + cc_nd = Custom("No derivatives or adaptations\n of the work are permitted", "./my_resources/cc_nd.png") + cc_zero = Custom("Public Domain Dedication", "./my_resources/cc_zero.png") + + with Cluster("Non Commercial"): + non_commercial = [Custom("Y", "./my_resources/cc_nc-jp.png") - Custom("E", "./my_resources/cc_nc-eu.png") - Custom("S", "./my_resources/cc_nc.png")] + + cc_heart >> cc_attribution + cc_heart >> non_commercial + cc_heart >> cc_sa + cc_heart >> cc_nd + cc_heart >> cc_zero +``` + +It will generate the following diagram: + +![custom local](/img/custom_local.png) + + +## Custom with remote icons + +If your icons are hosted and can be accessed when you generate the diagrams, you can + +```python +from diagrams import Diagram, Cluster +from diagrams.custom import Custom +from urllib.request import urlretrieve + +with Diagram("Custom with remote icons", show=False, filename="custom_remote", direction="LR"): + + # download the icon image file + diagrams_url = "https://github.com/mingrammer/diagrams/raw/master/assets/img/diagrams.png" + diagrams_icon = "diagrams.png" + urlretrieve(diagrams_url, diagrams_icon) + + diagrams = Custom("Diagrams", diagrams_icon) + + with Cluster("Some Providers"): + + openstack_url = "https://github.com/mingrammer/diagrams/raw/master/resources/openstack/openstack.png" + openstack_icon = "openstack.png" + urlretrieve(openstack_url, openstack_icon) + + openstack = Custom("OpenStack", openstack_icon) + + elastic_url = "https://github.com/mingrammer/diagrams/raw/master/resources/elastic/saas/elastic.png" + elastic_icon = "elastic.png" + urlretrieve(elastic_url, elastic_icon) + + elastic = Custom("Elastic", elastic_icon) + + diagrams >> openstack + diagrams >> elastic +``` + +It will generate the following diagram: + +![custom local](/img/custom_remote.png) + + +Another example can be found [Here](https://diagrams.mingrammer.com/docs/getting-started/examples#rabbitmq-consumers-with-custom-nodes). diff --git a/scripts/generate.py b/scripts/generate.py index f1568d24..d757b9cf 100644 --- a/scripts/generate.py +++ b/scripts/generate.py @@ -2,7 +2,7 @@ import os import sys from typing import Iterable -from jinja2 import Environment, FileSystemLoader, Template +from jinja2 import Environment, FileSystemLoader, Template, exceptions import config as cfg from . import app_root_dir, doc_root_dir, resource_dir, template_dir @@ -41,7 +41,12 @@ def gen_classes(pvd: str, typ: str, paths: Iterable[str]) -> str: def gen_apidoc(pvd: str, typ_paths: dict) -> str: - tmpl = load_tmpl(cfg.TMPL_APIDOC) + try: + default_tmp = cfg.TMPL_APIDOC.split('.') + tmpl_file = f"{default_tmp[0]}_{pvd}.{default_tmp[1]}" + tmpl = load_tmpl(tmpl_file) + except exceptions.TemplateNotFound: + tmpl = load_tmpl(cfg.TMPL_APIDOC) # TODO: remove def _gen_class_name(path: str) -> str: diff --git a/templates/apidoc_custom.tmpl b/templates/apidoc_custom.tmpl new file mode 100644 index 00000000..d3c88200 --- /dev/null +++ b/templates/apidoc_custom.tmpl @@ -0,0 +1,6 @@ +--- +id: {{ pvd }} +title: {{ pvd|up_or_title(pvd) }} +--- + +For a full example check: [Here](https://diagrams.mingrammer.com/docs/getting-started/examples#rabbitmq-consumers-with-custom-nodes). diff --git a/website/i18n/en.json b/website/i18n/en.json index 00bb5536..1c4a1a31 100644 --- a/website/i18n/en.json +++ b/website/i18n/en.json @@ -32,6 +32,9 @@ "nodes/azure": { "title": "Azure" }, + "nodes/custom": { + "title": "Custom" + }, "nodes/elastic": { "title": "Elastic" }, diff --git a/website/sidebars.json b/website/sidebars.json index a9697114..0f53f300 100644 --- a/website/sidebars.json +++ b/website/sidebars.json @@ -24,7 +24,8 @@ "nodes/elastic", "nodes/generic", "nodes/programming", - "nodes/saas" + "nodes/saas", + "nodes/custom" ] } -} \ No newline at end of file +} diff --git a/website/static/img/custom_local.png b/website/static/img/custom_local.png new file mode 100644 index 0000000000000000000000000000000000000000..55b81766345b78c35cb26bd83a76a6ad6fcd39f5 GIT binary patch literal 118089 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

wh_u?LXua6ud;(rTjrIMqB~_U&>vFi`m<=f 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

$gSxNaq(-SYZXxcj;P1x91kvD{L0~P zkwLGUl$7O9EQDdjbOND@L}maG*DD!_0XYtkPO1ALm)(dFqgGeBpa!Rd2(-I~74|N4 zuxHsVp}JbMy}OG{)8h^Na5Mn=8tc;&_c=$`gM+VJRzmpKgM%JDYSEqA8fskzKf~g2 zkTYRf#sA zbNo+*AfapIQ;#KZ!&ix}^mO;vFJ16A>5nAf{8kZ2K(siTM5C!W_H_hQ9|)NrBBC?1 zh)kuEi6&%F=Wy)iP)=8loc_@0=@LMO&+m3=&JoNKBJ~HF)#U?racODk-}El1?SZIP zVW@P%ZgpHxHX;vX`G3GNihzW`ZUhd$-e@mzOr1!z%%fY=11SvOlCoMxcOalbvOA8G zN1Ib~;BxQqJ3ayrWjCTNd`--Ko?1Xm{PO;FkfSNELfSr|x-X(3>04$2no#IRvwpB` zPJW+Z41w|EJ&l+%&!NznFLXx3D0;MQW(&&E?{7nu+63rd$C>oc<(x*n!0Z``mk2 z$aU*7uy?JJzdl<*PZm)awnnHOwRb3`^Y`u@Yf_^9aM&!Y)_b(x!vMqo3xk#EXL&ML z*;!eC!6F5J{`>}XI!P}IjObnVit_S)!T?%;Wdsor0dRttPtZ7R4JP!yJanw1Zz);s zB_4C#M)Tp-7&Vhp^cH5+jY6|~qzs(IolwIDSve$a1?|AqqWHr@#n3GI;OTUrs1Y3} z=XxCLB}WHRA~QE2J#k5S2!K!_l|&y1xb5HqPSZNi>)Bf+CtSF?^vgzhM$(8`E!o

6AhSSNUaT^IuOJq?C&?+ePig$OEEF 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 Date: Wed, 6 Jan 2021 00:21:36 +0900 Subject: [PATCH 03/45] feat(node): add Humio (#409) (#423) --- diagrams/onprem/monitoring.py | 4 ++++ docs/nodes/onprem.md | 1 + resources/onprem/monitoring/humio.png | Bin 0 -> 14629 bytes 3 files changed, 5 insertions(+) create mode 100644 resources/onprem/monitoring/humio.png diff --git a/diagrams/onprem/monitoring.py b/diagrams/onprem/monitoring.py index b6f0d8ec..c097ecaa 100644 --- a/diagrams/onprem/monitoring.py +++ b/diagrams/onprem/monitoring.py @@ -20,6 +20,10 @@ class Grafana(_Monitoring): _icon = "grafana.png" +class Humio(_Monitoring): + _icon = "humio.png" + + class Newrelic(_Monitoring): _icon = "newrelic.png" diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 08551d2f..ef64a7a9 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -152,6 +152,7 @@ Node classes list of onprem provider. - **diagrams.onprem.monitoring.Cortex** - **diagrams.onprem.monitoring.Datadog** - **diagrams.onprem.monitoring.Grafana** +- **diagrams.onprem.monitoring.Humio** - **diagrams.onprem.monitoring.Newrelic** - **diagrams.onprem.monitoring.PrometheusOperator** - **diagrams.onprem.monitoring.Prometheus** diff --git a/resources/onprem/monitoring/humio.png b/resources/onprem/monitoring/humio.png new file mode 100644 index 0000000000000000000000000000000000000000..bd36be109c671345de45e9b604f4a749192243c0 GIT binary patch literal 14629 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 P=m2SP1+hvI!@&Oo-!naO literal 0 HcmV?d00001 From 4bcea01f345ba68edd33a0479241c3fc710516d9 Mon Sep 17 00:00:00 2001 From: Gauthier Leonard Date: Wed, 27 Jan 2021 13:28:55 +0100 Subject: [PATCH 04/45] feat(node): add PowerBI (#337) --- config.py | 3 +++ diagrams/onprem/analytics.py | 6 ++++++ docs/nodes/onprem.md | 1 + resources/onprem/analytics/powerbi.png | Bin 0 -> 5725 bytes 4 files changed, 10 insertions(+) create mode 100644 resources/onprem/analytics/powerbi.png diff --git a/config.py b/config.py index 57c98307..1d8aafc0 100644 --- a/config.py +++ b/config.py @@ -90,6 +90,9 @@ TITLE_WORDS = { # TODO: check if the classname exists ALIASES = { "onprem": { + "analytics": { + "Powerbi": "PowerBI" + }, "ci": { "Circleci": "CircleCI", "Concourseci": "ConcourseCI", diff --git a/diagrams/onprem/analytics.py b/diagrams/onprem/analytics.py index a62e4017..182c28cd 100644 --- a/diagrams/onprem/analytics.py +++ b/diagrams/onprem/analytics.py @@ -44,6 +44,10 @@ class Presto(_Analytics): _icon = "presto.png" +class Powerbi(_Analytics): + _icon = "powerbi.png" + + class Singer(_Analytics): _icon = "singer.png" @@ -65,3 +69,5 @@ class Tableau(_Analytics): # Aliases + +PowerBI = Powerbi diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index ef64a7a9..2d813727 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -21,6 +21,7 @@ Node classes list of onprem provider. - **diagrams.onprem.analytics.Metabase** - **diagrams.onprem.analytics.Norikra** - **diagrams.onprem.analytics.Presto** +- **diagrams.onprem.analytics.Powerbi**, **PowerBI** (alias) - **diagrams.onprem.analytics.Singer** - **diagrams.onprem.analytics.Spark** - **diagrams.onprem.analytics.Storm** diff --git a/resources/onprem/analytics/powerbi.png b/resources/onprem/analytics/powerbi.png new file mode 100644 index 0000000000000000000000000000000000000000..9783fc9461efb51b1951dcf54b850ab177463d51 GIT binary patch literal 5725 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 literal 0 HcmV?d00001 From df061cd2847ea7dbb60d6e48c4eeede5b55a4130 Mon Sep 17 00:00:00 2001 From: Pierre-Yves Aillet Date: Wed, 27 Jan 2021 13:42:07 +0100 Subject: [PATCH 05/45] feat(node): add gcp monitoring (#343) --- diagrams/gcp/operations.py | 15 +++++++++++++++ docs/nodes/gcp.md | 4 ++++ resources/gcp/operations/monitoring.png | Bin 0 -> 8235 bytes 3 files changed, 19 insertions(+) create mode 100644 diagrams/gcp/operations.py create mode 100644 resources/gcp/operations/monitoring.png diff --git a/diagrams/gcp/operations.py b/diagrams/gcp/operations.py new file mode 100644 index 00000000..53ece13f --- /dev/null +++ b/diagrams/gcp/operations.py @@ -0,0 +1,15 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _GCP + + +class _Operations(_GCP): + _type = "operations" + _icon_dir = "resources/gcp/operations" + + +class Monitoring(_Operations): + _icon = "monitoring.png" + + +# Aliases diff --git a/docs/nodes/gcp.md b/docs/nodes/gcp.md index 39ad2e31..3a1ee484 100644 --- a/docs/nodes/gcp.md +++ b/docs/nodes/gcp.md @@ -112,6 +112,10 @@ Node classes list of gcp provider. - **diagrams.gcp.network.VirtualPrivateCloud**, **VPC** (alias) - **diagrams.gcp.network.VPN** +## gcp.operations + +- **diagrams.gcp.operations.Monitoring** + ## gcp.security - **diagrams.gcp.security.Iam** diff --git a/resources/gcp/operations/monitoring.png b/resources/gcp/operations/monitoring.png new file mode 100644 index 0000000000000000000000000000000000000000..427babb76fdf34852b6047509cfe77b52e2b75fd GIT binary patch literal 8235 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 TTmWMV`+%yVmO`bRMcDrV7;V3g literal 0 HcmV?d00001 From f19c3a62b8e2fc7aca6fda699dad6221b101ae8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=89=E4=B8=B9=E6=A2=85?= Date: Wed, 27 Jan 2021 07:38:17 -0600 Subject: [PATCH 06/45] feat(nodes): Add flowchart symbols (#377) --- diagrams/programming/flowchart.py | 107 ++++++++++++++++++ docs/nodes/programming.md | 27 +++++ resources/programming/flowchart/action.png | Bin 0 -> 826 bytes resources/programming/flowchart/collate.png | Bin 0 -> 3007 bytes resources/programming/flowchart/database.png | Bin 0 -> 12758 bytes resources/programming/flowchart/decision.png | Bin 0 -> 13036 bytes resources/programming/flowchart/delay.png | Bin 0 -> 5047 bytes resources/programming/flowchart/display.png | Bin 0 -> 8698 bytes resources/programming/flowchart/document.png | Bin 0 -> 5539 bytes .../programming/flowchart/input-output.png | Bin 0 -> 6198 bytes .../programming/flowchart/inspection.png | Bin 0 -> 7234 bytes .../flowchart/internal-storage.png | Bin 0 -> 1436 bytes .../programming/flowchart/loop-limit.png | Bin 0 -> 1726 bytes .../programming/flowchart/manual-input.png | Bin 0 -> 5308 bytes .../programming/flowchart/manual-loop.png | Bin 0 -> 5979 bytes resources/programming/flowchart/merge.png | Bin 0 -> 1623 bytes .../flowchart/multiple-documents.png | Bin 0 -> 6319 bytes .../flowchart/off-page-connector-left.png | Bin 0 -> 2053 bytes .../flowchart/off-page-connector-right.png | Bin 0 -> 1905 bytes resources/programming/flowchart/or.png | Bin 0 -> 7607 bytes .../flowchart/predefined-process.png | Bin 0 -> 1402 bytes .../programming/flowchart/preparation.png | Bin 0 -> 7606 bytes resources/programming/flowchart/sort.png | Bin 0 -> 2714 bytes resources/programming/flowchart/start-end.png | Bin 0 -> 4918 bytes .../programming/flowchart/stored-data.png | Bin 0 -> 8135 bytes .../flowchart/summing-junction.png | Bin 0 -> 8965 bytes 26 files changed, 134 insertions(+) create mode 100644 diagrams/programming/flowchart.py create mode 100644 resources/programming/flowchart/action.png create mode 100644 resources/programming/flowchart/collate.png create mode 100644 resources/programming/flowchart/database.png create mode 100644 resources/programming/flowchart/decision.png create mode 100644 resources/programming/flowchart/delay.png create mode 100644 resources/programming/flowchart/display.png create mode 100644 resources/programming/flowchart/document.png create mode 100644 resources/programming/flowchart/input-output.png create mode 100644 resources/programming/flowchart/inspection.png create mode 100644 resources/programming/flowchart/internal-storage.png create mode 100644 resources/programming/flowchart/loop-limit.png create mode 100644 resources/programming/flowchart/manual-input.png create mode 100644 resources/programming/flowchart/manual-loop.png create mode 100644 resources/programming/flowchart/merge.png create mode 100644 resources/programming/flowchart/multiple-documents.png create mode 100644 resources/programming/flowchart/off-page-connector-left.png create mode 100644 resources/programming/flowchart/off-page-connector-right.png create mode 100644 resources/programming/flowchart/or.png create mode 100644 resources/programming/flowchart/predefined-process.png create mode 100644 resources/programming/flowchart/preparation.png create mode 100644 resources/programming/flowchart/sort.png create mode 100644 resources/programming/flowchart/start-end.png create mode 100644 resources/programming/flowchart/stored-data.png create mode 100644 resources/programming/flowchart/summing-junction.png diff --git a/diagrams/programming/flowchart.py b/diagrams/programming/flowchart.py new file mode 100644 index 00000000..1e7ecf17 --- /dev/null +++ b/diagrams/programming/flowchart.py @@ -0,0 +1,107 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Programming + + +class _Flowchart(_Programming): + _type = "flowchart" + _icon_dir = "resources/programming/flowchart" + + +class Action(_Flowchart): + _icon = "action.png" + + +class Collate(_Flowchart): + _icon = "collate.png" + + +class Database(_Flowchart): + _icon = "database.png" + + +class Decision(_Flowchart): + _icon = "decision.png" + + +class Delay(_Flowchart): + _icon = "delay.png" + + +class Display(_Flowchart): + _icon = "display.png" + + +class Document(_Flowchart): + _icon = "document.png" + + +class InputOutput(_Flowchart): + _icon = "input-output.png" + + +class Inspection(_Flowchart): + _icon = "inspection.png" + + +class InternalStorage(_Flowchart): + _icon = "internal-storage.png" + + +class LoopLimit(_Flowchart): + _icon = "loop-limit.png" + + +class ManualInput(_Flowchart): + _icon = "manual-input.png" + + +class ManualLoop(_Flowchart): + _icon = "manual-loop.png" + + +class Merge(_Flowchart): + _icon = "merge.png" + + +class MultipleDocuments(_Flowchart): + _icon = "multiple-documents.png" + + +class OffPageConnectorLeft(_Flowchart): + _icon = "off-page-connector-left.png" + + +class OffPageConnectorRight(_Flowchart): + _icon = "off-page-connector-right.png" + + +class Or(_Flowchart): + _icon = "or.png" + + +class PredefinedProcess(_Flowchart): + _icon = "predefined-process.png" + + +class Preparation(_Flowchart): + _icon = "preparation.png" + + +class Sort(_Flowchart): + _icon = "sort.png" + + +class StartEnd(_Flowchart): + _icon = "start-end.png" + + +class StoredData(_Flowchart): + _icon = "stored-data.png" + + +class SummingJunction(_Flowchart): + _icon = "summing-junction.png" + + +# Aliases diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index 8240515b..06ce37d7 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -5,6 +5,33 @@ title: Programming Node classes list of programming provider. +## programming.flowchart + +- **diagrams.programming.flowchart.Action** +- **diagrams.programming.flowchart.Collate** +- **diagrams.programming.flowchart.Database** +- **diagrams.programming.flowchart.Decision** +- **diagrams.programming.flowchart.Delay** +- **diagrams.programming.flowchart.Display** +- **diagrams.programming.flowchart.Document** +- **diagrams.programming.flowchart.InputOutput** +- **diagrams.programming.flowchart.Inspection** +- **diagrams.programming.flowchart.InternalStorage** +- **diagrams.programming.flowchart.LoopLimit** +- **diagrams.programming.flowchart.ManualInput** +- **diagrams.programming.flowchart.ManualLoop** +- **diagrams.programming.flowchart.Merge** +- **diagrams.programming.flowchart.MultipleDocuments** +- **diagrams.programming.flowchart.OffPageConnectorLeft** +- **diagrams.programming.flowchart.OffPageConnectorRight** +- **diagrams.programming.flowchart.Or** +- **diagrams.programming.flowchart.PredefinedProcess** +- **diagrams.programming.flowchart.Preparation** +- **diagrams.programming.flowchart.Sort** +- **diagrams.programming.flowchart.StartEnd** +- **diagrams.programming.flowchart.StoredData** +- **diagrams.programming.flowchart.SummingJunction** + ## programming.framework - **diagrams.programming.framework.Angular** diff --git a/resources/programming/flowchart/action.png b/resources/programming/flowchart/action.png new file mode 100644 index 0000000000000000000000000000000000000000..28205f4b62af4e1dc08c68fd7bd3b8799e6fc07e GIT binary patch literal 826 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78O`%fY(kgt&J z5#-CjP^HGe(9pub@Czu^@PdJ%)PRBERRRNp)eHs(@q#(K0&Rd22LgOTTtNyN8k(A# znwy(7H8u0|^C4^?x22^8NMeG<#zu%5xJpblKoOv9X=y1)s;Q}^wY9Uiw|l~bE+Fdb z1DXt!?VC1j)8)(io;}<9^y&6HcbXa-C(fF+@5PI=|No!)|NrRc&t3if`<_3aFl*MH zCr?iQ{d?;7@5Arkx3;x)Pn_60b!yM#$^ZZV|C`)&3Frrfk|4ieAPo#3DQz95`1MDR z9oZDZBD_uR;yHcYOBW2!8^kkO99Mq;Qjz5C?qYA3Y)}g1u$OrHy0Smv=4BL9uX$Zi z43zfvba4!+xb^nVc0XoEk+zFpbt*d5o&=ptw)#cV>sO_bM91@zC+~N z(s(|mm-BY-yZD=P%Is*%?YG+917+qv*|XPJVnK0LS)Jg~RO{z=_a0;jziz(0Jn)Wv z57!5c1NHUO8JIW}8fZm)XlL+0ufINUPcO%W`}TH+e`N9UYW?%cDmx@G?+TCos#%xn z-bCI_S|nK=adV3qMgRZ>9zT)hY<&FAD_Hj+kf&PW8c~vxSdwa$T$Bo=7>o>z40H_* zbq$R}3=FM|46O`|v<(cb3=H00*ujUQAvZrIGp!Q0hB>_qn?MfmboFyt=akR{0G;SD AegFUf literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/collate.png b/resources/programming/flowchart/collate.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5be1c84e4b2cd8b854f05c8d873dec76ba38ed GIT binary patch literal 3007 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 literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/database.png b/resources/programming/flowchart/database.png new file mode 100644 index 0000000000000000000000000000000000000000..78eb1718ce601da5bacf7b1e90471b48e437effd GIT binary patch literal 12758 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 K#quX+!T$w4e!<`X literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/decision.png b/resources/programming/flowchart/decision.png new file mode 100644 index 0000000000000000000000000000000000000000..40b9293d2c0d20c82f98a3541034aae5e87ad8d4 GIT binary patch literal 13036 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 D(o#db literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/delay.png b/resources/programming/flowchart/delay.png new file mode 100644 index 0000000000000000000000000000000000000000..b859d173d9897131a8c9374cb7e89ecbf6dcf887 GIT binary patch literal 5047 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 J)EjyJ{U3|2GaUc` literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/display.png b/resources/programming/flowchart/display.png new file mode 100644 index 0000000000000000000000000000000000000000..1d50abfc1529a8d8f8e54d1f996e44c000ae1f31 GIT binary patch literal 8698 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 I8n&VT1DtiQ;Q#;t literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/document.png b/resources/programming/flowchart/document.png new file mode 100644 index 0000000000000000000000000000000000000000..02bb83c8cf17059ebabca20251d9a55c13f4a675 GIT binary patch literal 5539 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 literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/loop-limit.png b/resources/programming/flowchart/loop-limit.png new file mode 100644 index 0000000000000000000000000000000000000000..29813f99392517699126bd994bc950f6b64392ef GIT binary patch literal 1726 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 literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/manual-loop.png b/resources/programming/flowchart/manual-loop.png new file mode 100644 index 0000000000000000000000000000000000000000..13d1e9f05eef2337993573651a1a226426b75064 GIT binary patch literal 5979 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 literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/merge.png b/resources/programming/flowchart/merge.png new file mode 100644 index 0000000000000000000000000000000000000000..d6a5851b66534d251f095fb1dd6defcdb9bfc9aa GIT binary patch literal 1623 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 T$IO2RvVg9Z!Tpc-9G?F#I)HAM literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/predefined-process.png b/resources/programming/flowchart/predefined-process.png new file mode 100644 index 0000000000000000000000000000000000000000..f052d7bf0b92a07c50ff36700b2174215d5698f2 GIT binary patch literal 1402 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 JW9FUme*mw0urL4s literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/sort.png b/resources/programming/flowchart/sort.png new file mode 100644 index 0000000000000000000000000000000000000000..08718b4aa5c0a3bc27c7faece8af721e7a449b0f GIT binary patch literal 2714 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 literal 0 HcmV?d00001 diff --git a/resources/programming/flowchart/stored-data.png b/resources/programming/flowchart/stored-data.png new file mode 100644 index 0000000000000000000000000000000000000000..972e56090fb954a8fcd0b4b27255f92498dac8d8 GIT binary patch literal 8135 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 yW#w+k%iWTdzb-3#OICL4$7iPh)xgus`I$@b|Gz Date: Thu, 28 Jan 2021 20:07:24 +0900 Subject: [PATCH 07/45] Add FastAPI (#380) --- config.py | 3 +++ diagrams/programming/framework.py | 6 ++++++ docs/nodes/programming.md | 1 + resources/programming/framework/fastapi.png | Bin 0 -> 10779 bytes 4 files changed, 10 insertions(+) create mode 100644 resources/programming/framework/fastapi.png diff --git a/config.py b/config.py index 1d8aafc0..a5c53b14 100644 --- a/config.py +++ b/config.py @@ -395,6 +395,9 @@ ALIASES = { } }, "programming": { + "framework": { + "Fastapi": "FastAPI" + }, "language": { "Javascript": "JavaScript", "Nodejs": "NodeJS", diff --git a/diagrams/programming/framework.py b/diagrams/programming/framework.py index 48929c1d..f8d901fb 100644 --- a/diagrams/programming/framework.py +++ b/diagrams/programming/framework.py @@ -24,6 +24,10 @@ class Ember(_Framework): _icon = "ember.png" +class Fastapi(_Framework): + _icon = "fastapi.png" + + class Flask(_Framework): _icon = "flask.png" @@ -57,3 +61,5 @@ class Vue(_Framework): # Aliases + +FastAPI = Fastapi diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index 06ce37d7..fdd25404 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -38,6 +38,7 @@ Node classes list of programming provider. - **diagrams.programming.framework.Backbone** - **diagrams.programming.framework.Django** - **diagrams.programming.framework.Ember** +- **diagrams.programming.framework.Fastapi**, **FastAPI** (alias) - **diagrams.programming.framework.Flask** - **diagrams.programming.framework.Flutter** - **diagrams.programming.framework.Laravel** diff --git a/resources/programming/framework/fastapi.png b/resources/programming/framework/fastapi.png new file mode 100644 index 0000000000000000000000000000000000000000..d79d51bf7047e7c28b404769f17d2e52c98bc215 GIT binary patch literal 10779 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