Merge remote-tracking branch 'upstream/master'

pull/1076/head
Dmitry Pavlov 5 years ago
commit 9f7df4243f

@ -0,0 +1,20 @@
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
time: "08:00"
open-pull-requests-limit: 10
- package-ecosystem: npm
directory: "/website"
schedule:
interval: daily
time: "08:00"
open-pull-requests-limit: 10
- package-ecosystem: docker
directory: "/docker/dev"
schedule:
interval: daily
time: "08:00"
open-pull-requests-limit: 10

@ -18,11 +18,11 @@ jobs:
test:
strategy:
matrix:
python: ['3.6', '3.7', '3.8']
python: ['3.6', '3.7', '3.8', '3.9']
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
- name: Setup Graphviz

@ -1,5 +1,23 @@
# Changelogs
## 0.17.0
### Added
- Support GCP Endpoints: [#259](https://github.com/mingrammer/diagrams/pull/259)
- Support DroneCI and Atlantis (Terraform): [#255](https://github.com/mingrammer/diagrams/pull/255)
- Support Okta: [#254](https://github.com/mingrammer/diagrams/pull/254)
- Support OutScale provider: [#251](https://github.com/mingrammer/diagrams/pull/251)
- Support Prometheus Operator: [#253](https://github.com/mingrammer/diagrams/pull/253)
- Support Snowflake: [#245](https://github.com/mingrammer/diagrams/pull/245)
- Support for CJK fonts + Replace ms-fonts with opensans: [#242](https://github.com/mingrammer/diagrams/pull/242)
- Support Pushover: [#241](https://github.com/mingrammer/diagrams/pull/241)
### Fixed
- Update bm, vm cases for OCI
- Set a dummy filename to prevent raise error when both name and filename are not provided: [#240](https://github.com/mingrammer/diagrams/pull/240)
## 0.16.0
### Breaking Changes

@ -3,6 +3,10 @@
You shouldn't edit the node class files (all files under `diagrams/` directory) by
yourself.
## Set up your environment
* See [DEVELOPMENT][DEVELOPMENT.md]
## Resources
### Update nodes
@ -24,14 +28,17 @@ convert -resize 256 my_big_image.jpg my_image.jpg
ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=decrease my_image.png
```
Then just run the `./autogen.sh` to generate the added or updated node classes.
Then just run the `./autogen.sh` to generate the added or updated node classes. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> [inkscape][inkscape] command lines that are used for cleaning the image
> resource filenames.
>
> macOS users can download the inkscape via Homebrew.
>
> Or you should use the docker image.
[DEVELOPMENT.md]: ./DEVELOPMENT.md
[round]: https://github.com/mingrammer/round
[inkscape]: https://inkscape.org/ko/release
@ -44,11 +51,13 @@ from `ALIASES` map in [config.py](config.py).
So, if you want to add new aliases or update existing aliases, you can just add
or update the `ALIASES` map in [config.py](config.py).
Then just run the `./autogen.sh` to generate the added or updated aliases.
Then just run the `./autogen.sh` to generate the added or updated aliases. (cf. [DEVELOPMENT][DEVELOPMENT.md])
> IMPORTANT NOTE: To run `autogen.sh`, you need [round][round] and
> [inkscape][inkscape] command lines that are used for clearning the image
> resource filenames.
>
> Or you should use the docker image.
## Run Tests

@ -7,11 +7,11 @@ You should have docker installed in your system, if not click [here](https://doc
1. Go to diagrams root directory.
2. Build the docker image.
```shell
docker build --tag diagrams:1.0 -f ./docker/dev/Dockerfile .
```
3. Create the container, run in background and mount the project source code.
```shell

@ -15,11 +15,13 @@
![kubernetes provider](https://img.shields.io/badge/provider-Kubernetes-orange?logo=kubernetes&color=326ce5)
![alibaba cloud provider](https://img.shields.io/badge/provider-AlibabaCloud-orange)
![oracle cloud provider](https://img.shields.io/badge/provider-OracleCloud-orange?logo=oracle&color=f80000)
![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf)
![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32)
![firebase provider](https://img.shields.io/badge/provider-Firebase-orange?logo=firebase&color=FFCA28)
![outscale provider](https://img.shields.io/badge/provider-OutScale-orange?color=5f87bf)
![elastic provider](https://img.shields.io/badge/provider-Elastic-orange?logo=elastic&color=005571)
![generic provider](https://img.shields.io/badge/provider-Generic-orange?color=5f87bf)
![programming provider](https://img.shields.io/badge/provider-Programming-orange?color=5f87bf)
![saas provider](https://img.shields.io/badge/provider-SaaS-orange?color=5f87bf)
![openstack provider](https://img.shields.io/badge/provider-OpenStack-orange?logo=openstack&color=da1a32)
<a href="https://www.buymeacoffee.com/mingrammer" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
@ -70,12 +72,16 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md).
[![GitPitch](https://gitpitch.com/gpimg/logo.png)](https://gitpitch.com/)
[GitPitch](https://gitpitch.com/) is a markdown presentation service for developers. Diagrams is now integrated as [Cloud Diagram Widget](https://gitpitch.com/docs/diagram-features/cloud-diagrams/) of GitPitch, so you can use the Diagrams when to create slide decks for Tech Conferences, Meetups, and Training with GitPitch.
[GitPitch](https://gitpitch.com/) is the perfect slide deck solution for Tech Conferences, Training, Developer Advocates, and Educators. Diagrams is now available as a dedicated [Cloud Diagram Markdown Widget](https://docs.gitpitch.com/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training.
[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infratructure with Cloudicovery.
[Cloudiscovery](https://github.com/Cloud-Architects/cloudiscovery) helps you to analyze resources in your cloud (AWS/GCP/Azure/Alibaba/IBM) account. It allows you to create a diagram of analyzed cloud resource map based on this Diagrams library, so you can draw the your existing cloud infrastructure with Cloudicovery.
[Airflow Diagrams](https://github.com/feluelle/airflow-diagrams) is an Airflow plugin that aims to easily visualise your Airflow DAGs on service level from providers like AWS, GCP, Azure, etc. via diagrams.
## Other languages
- If you are familiar to Go, you can use [go-diagrams](https://github.com/blushft/go-diagrams) as well.
## License
[MIT](LICENSE)

@ -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")
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

@ -13,7 +13,7 @@ DIR_TEMPLATE = "templates"
PROVIDERS = (
"base", "onprem", "aws", "azure", "gcp", "firebase", "k8s", "alibabacloud", "oci", "programming", "saas", "elastic",
"generic", "openstack")
"generic", "openstack", "outscale")
#########################
# Resource Processing #
@ -38,6 +38,7 @@ FILE_PREFIXES = {
"programming": (),
"saas": (),
"elastic": (),
"outscale": (),
"generic": (),
"openstack": (),
}
@ -65,8 +66,10 @@ UPPER_WORDS = {
),
"oci": ("oci", "ocid", "oke", "ocir", "ddos", "waf", "bm", "vm", "cdn", "vpn", "dns", "nat", "dms", "api", "id"),
"elastic": ("apm", "siem", "ece", "eck"),
"generic": ("vpn", "ios", "xen", "sql"),
"generic": ("vpn", "ios", "xen", "sql", "lxc"),
"outscale": ("osc",),
"openstack": ("rpm", "loci", "nfv", "ec2api"),
"pve": ("pve"),
}
TITLE_WORDS = {
@ -87,15 +90,20 @@ TITLE_WORDS = {
# TODO: check if the classname exists
ALIASES = {
"onprem": {
"analytics": {
"Powerbi": "PowerBI"
},
"ci": {
"Circleci": "CircleCI",
"Concourseci": "ConcourseCI",
"Droneci": "DroneCI",
"Gitlabci": "GitlabCI",
"Travisci": "TravisCI",
"Teamcity": "TC",
"Zuulci": "ZuulCI",
},
"container": {
"Lxc": "LXC",
"Rkt": "RKT",
},
"database": {
@ -121,14 +129,23 @@ ALIASES = {
"network": {
"Etcd": "ETCD",
"Haproxy": "HAProxy",
"OpenServiceMesh": "OSM",
"Opnsense": "OPNSense",
"Pfsense": "PFSense",
"Vyos": "VyOS"
},
"proxmox": {
"Pve": "ProxmoxVE",
},
"queue": {
"Activemq": "ActiveMQ",
"Rabbitmq": "RabbitMQ",
"Zeromq": "ZeroMQ",
},
"storage": {
"Ceph": "CEPH",
"CephOsd": "CEPH_OSD",
},
"workflow": {
"Kubeflow": "KubeFlow",
"Nifi": "NiFi",
@ -225,6 +242,7 @@ ALIASES = {
"compute": {
"ContainerRegistries": "ACR",
"KubernetesServices": "AKS",
"VMScaleSet": "VMSS"
},
},
"gcp": {
@ -361,10 +379,10 @@ ALIASES = {
},
"oci": {
"compute": {
"Vm": "VirtualMachine",
"VmWhite": "VirtualMachineWhite",
"Bm": "BareMetal",
"BmWhite": "BareMetalWhite",
"VM": "VirtualMachine",
"VMWhite": "VirtualMachineWhite",
"BM": "BareMetal",
"BMWhite": "BareMetalWhite",
"OCIR": "OCIRegistry",
"OCIRWhite": "OCIRegistryWhite",
"OKE": "ContainerEngine",
@ -378,6 +396,9 @@ ALIASES = {
}
},
"programming": {
"framework": {
"Fastapi": "FastAPI"
},
"language": {
"Javascript": "JavaScript",
"Nodejs": "NodeJS",
@ -388,6 +409,7 @@ ALIASES = {
"saas": {
"logging": {
"Datadog": "DataDog",
"Newrelic": "NewRelic"
}
},
"elastic": {
@ -395,6 +417,9 @@ ALIASES = {
"Logstash": "LogStash",
}
},
"outscale": {
"Osc": "OSC",
},
"generic": {},
"openstack": {
"user": {

@ -60,6 +60,8 @@ class Diagram:
"height": "1.4",
"labelloc": "b",
# imagepos attribute is not backward compatible
# TODO: check graphviz version to see if "imagepos" is available >= 2.40
# https://github.com/xflr6/graphviz/blob/master/graphviz/backend.py#L248
# "imagepos": "tc",
"imagescale": "true",
"fontname": "Sans-Serif",

@ -40,8 +40,8 @@ class Marketplace(_General):
_icon = "marketplace.png"
class TradicionalServer(_General):
_icon = "tradicional-server.png"
class TraditionalServer(_General):
_icon = "traditional-server.png"
class User(_General):

@ -80,6 +80,10 @@ class VMLinux(_Compute):
_icon = "vm-linux.png"
class VMScaleSet(_Compute):
_icon = "vm-scale-set.png"
class VMWindows(_Compute):
_icon = "vm-windows.png"

@ -92,6 +92,10 @@ class ServiceEndpointPolicies(_Network):
_icon = "service-endpoint-policies.png"
class Subnets(_Network):
_icon = "subnets.png"
class TrafficManagerProfiles(_Network):
_icon = "traffic-manager-profiles.png"

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _GCP
class _API(_GCP):
_type = "api"
_icon_dir = "resources/gcp/api"
class Endpoints(_API):
_icon = "endpoints.png"
# Aliases

@ -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

@ -16,6 +16,10 @@ class Router(_Network):
_icon = "router.png"
class Subnet(_Network):
_icon = "subnet.png"
class Switch(_Network):
_icon = "switch.png"

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _K8S
class _Chaos(_K8S):
_type = "chaos"
_icon_dir = "resources/k8s/chaos"
class ChaosMesh(_Chaos):
_icon = "chaos-mesh.png"
class LitmusChaos(_Chaos):
_icon = "litmus-chaos.png"
# Aliases

@ -8,6 +8,10 @@ class _Ecosystem(_K8S):
_icon_dir = "resources/k8s/ecosystem"
class ExternalDns(_Ecosystem):
_icon = "external-dns.png"
class Helm(_Ecosystem):
_icon = "helm.png"

@ -74,10 +74,10 @@ class VM(_Compute):
# Aliases
VirtualMachine = Vm
VirtualMachineWhite = VmWhite
BareMetal = Bm
BareMetalWhite = BmWhite
VirtualMachine = VM
VirtualMachineWhite = VMWhite
BareMetal = BM
BareMetalWhite = BMWhite
OCIRegistry = OCIR
OCIRegistryWhite = OCIRWhite
ContainerEngine = OKE

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Aggregator(_OnPrem):
_type = "aggregator"
_icon_dir = "resources/onprem/aggregator"
class Fluentd(_Aggregator):
_icon = "fluentd.png"
class Vector(_Aggregator):
_icon = "vector.png"
# Aliases

@ -40,6 +40,14 @@ class Norikra(_Analytics):
_icon = "norikra.png"
class Presto(_Analytics):
_icon = "presto.png"
class Powerbi(_Analytics):
_icon = "powerbi.png"
class Singer(_Analytics):
_icon = "singer.png"
@ -52,8 +60,14 @@ class Storm(_Analytics):
_icon = "storm.png"
class Superset(_Analytics):
_icon = "superset.png"
class Tableau(_Analytics):
_icon = "tableau.png"
# Aliases
PowerBI = Powerbi

@ -0,0 +1,23 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Auth(_OnPrem):
_type = "auth"
_icon_dir = "resources/onprem/auth"
class Boundary(_Auth):
_icon = "boundary.png"
class BuzzfeedSso(_Auth):
_icon = "buzzfeed-sso.png"
class Oauth2Proxy(_Auth):
_icon = "oauth2-proxy.png"
# Aliases

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Certificates(_OnPrem):
_type = "certificates"
_icon_dir = "resources/onprem/certificates"
class CertManager(_Certificates):
_icon = "cert-manager.png"
class LetsEncrypt(_Certificates):
_icon = "lets-encrypt.png"
# Aliases

@ -16,6 +16,14 @@ class Concourseci(_Ci):
_icon = "concourseci.png"
class Droneci(_Ci):
_icon = "droneci.png"
class GithubActions(_Ci):
_icon = "github-actions.png"
class Gitlabci(_Ci):
_icon = "gitlabci.png"
@ -40,6 +48,7 @@ class Zuulci(_Ci):
CircleCI = Circleci
ConcourseCI = Concourseci
DroneCI = Droneci
GitlabCI = Gitlabci
TravisCI = Travisci
TC = Teamcity

@ -8,14 +8,35 @@ class _Container(_OnPrem):
_icon_dir = "resources/onprem/container"
class Containerd(_Container):
_icon = "containerd.png"
class Crio(_Container):
_icon = "crio.png"
class Docker(_Container):
_icon = "docker.png"
class Firecracker(_Container):
_icon = "firecracker.png"
class Gvisor(_Container):
_icon = "gvisor.png"
class Lxc(_Container):
_icon = "lxc.png"
class Rkt(_Container):
_icon = "rkt.png"
# Aliases
LXC = Lxc
RKT = Rkt

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Dns(_OnPrem):
_type = "dns"
_icon_dir = "resources/onprem/dns"
class Coredns(_Dns):
_icon = "coredns.png"
class Powerdns(_Dns):
_icon = "powerdns.png"
# Aliases

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Groupware(_OnPrem):
_type = "groupware"
_icon_dir = "resources/onprem/groupware"
class Nextcloud(_Groupware):
_icon = "nextcloud.png"
# Aliases

@ -12,6 +12,10 @@ class Ansible(_Iac):
_icon = "ansible.png"
class Atlantis(_Iac):
_icon = "atlantis.png"
class Awx(_Iac):
_icon = "awx.png"

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Identity(_OnPrem):
_type = "identity"
_icon_dir = "resources/onprem/identity"
class Dex(_Identity):
_icon = "dex.png"
# Aliases

@ -12,10 +12,6 @@ class Fluentbit(_Logging):
_icon = "fluentbit.png"
class Fluentd(_Logging):
_icon = "fluentd.png"
class Graylog(_Logging):
_icon = "graylog.png"

@ -8,6 +8,10 @@ class _Monitoring(_OnPrem):
_icon_dir = "resources/onprem/monitoring"
class Cortex(_Monitoring):
_icon = "cortex.png"
class Datadog(_Monitoring):
_icon = "datadog.png"
@ -16,6 +20,18 @@ class Grafana(_Monitoring):
_icon = "grafana.png"
class Humio(_Monitoring):
_icon = "humio.png"
class Newrelic(_Monitoring):
_icon = "newrelic.png"
class PrometheusOperator(_Monitoring):
_icon = "prometheus-operator.png"
class Prometheus(_Monitoring):
_icon = "prometheus.png"
@ -32,4 +48,8 @@ class Thanos(_Monitoring):
_icon = "thanos.png"
class Zabbix(_Monitoring):
_icon = "zabbix.png"
# Aliases

@ -8,10 +8,18 @@ class _Network(_OnPrem):
_icon_dir = "resources/onprem/network"
class Ambassador(_Network):
_icon = "ambassador.png"
class Apache(_Network):
_icon = "apache.png"
class Bind9(_Network):
_icon = "bind-9.png"
class Caddy(_Network):
_icon = "caddy.png"
@ -28,6 +36,14 @@ class Etcd(_Network):
_icon = "etcd.png"
class Glassfish(_Network):
_icon = "glassfish.png"
class Gunicorn(_Network):
_icon = "gunicorn.png"
class Haproxy(_Network):
_icon = "haproxy.png"
@ -40,6 +56,14 @@ class Istio(_Network):
_icon = "istio.png"
class Jbossas(_Network):
_icon = "jbossas.png"
class Jetty(_Network):
_icon = "jetty.png"
class Kong(_Network):
_icon = "kong.png"
@ -52,6 +76,18 @@ class Nginx(_Network):
_icon = "nginx.png"
class Ocelot(_Network):
_icon = "ocelot.png"
class OpenServiceMesh(_Network):
_icon = "open-service-mesh.png"
class Opnsense(_Network):
_icon = "opnsense.png"
class Pfsense(_Network):
_icon = "pfsense.png"
@ -60,6 +96,10 @@ class Pomerium(_Network):
_icon = "pomerium.png"
class Powerdns(_Network):
_icon = "powerdns.png"
class Tomcat(_Network):
_icon = "tomcat.png"
@ -72,6 +112,10 @@ class Vyos(_Network):
_icon = "vyos.png"
class Wildfly(_Network):
_icon = "wildfly.png"
class Zookeeper(_Network):
_icon = "zookeeper.png"
@ -80,5 +124,7 @@ class Zookeeper(_Network):
ETCD = Etcd
HAProxy = Haproxy
OSM = OpenServiceMesh
OPNSense = Opnsense
PFSense = Pfsense
VyOS = Vyos

@ -0,0 +1,17 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Proxmox(_OnPrem):
_type = "proxmox"
_icon_dir = "resources/onprem/proxmox"
class Pve(_Proxmox):
_icon = "pve.png"
# Aliases
ProxmoxVE = Pve

@ -20,6 +20,10 @@ class Kafka(_Queue):
_icon = "kafka.png"
class Nats(_Queue):
_icon = "nats.png"
class Rabbitmq(_Queue):
_icon = "rabbitmq.png"

@ -8,6 +8,10 @@ class _Security(_OnPrem):
_icon_dir = "resources/onprem/security"
class Bitwarden(_Security):
_icon = "bitwarden.png"
class Trivy(_Security):
_icon = "trivy.png"

@ -0,0 +1,26 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Storage(_OnPrem):
_type = "storage"
_icon_dir = "resources/onprem/storage"
class CephOsd(_Storage):
_icon = "ceph-osd.png"
class Ceph(_Storage):
_icon = "ceph.png"
class Glusterfs(_Storage):
_icon = "glusterfs.png"
# Aliases
CEPH = Ceph
CEPH_OSD = CephOsd

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _OnPrem
class _Tracing(_OnPrem):
_type = "tracing"
_icon_dir = "resources/onprem/tracing"
class Jaeger(_Tracing):
_icon = "jaeger.png"
# Aliases

@ -0,0 +1,8 @@
from diagrams import Node
class _Outscale(Node):
_provider = "outscale"
_icon_dir = "resources/outscale"
fontcolor = "#ffffff"

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _Outscale
class _Compute(_Outscale):
_type = "compute"
_icon_dir = "resources/outscale/compute"
class Compute(_Compute):
_icon = "compute.png"
class DirectConnect(_Compute):
_icon = "direct-connect.png"
# Aliases

@ -0,0 +1,35 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _Outscale
class _Network(_Outscale):
_type = "network"
_icon_dir = "resources/outscale/network"
class ClientVpn(_Network):
_icon = "client-vpn.png"
class InternetService(_Network):
_icon = "internet-service.png"
class LoadBalancer(_Network):
_icon = "load-balancer.png"
class NatService(_Network):
_icon = "nat-service.png"
class Net(_Network):
_icon = "net.png"
class SiteToSiteVpng(_Network):
_icon = "site-to-site-vpng.png"
# Aliases

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _Outscale
class _Security(_Outscale):
_type = "security"
_icon_dir = "resources/outscale/security"
class Firewall(_Security):
_icon = "firewall.png"
class IdentityAndAccessManagement(_Security):
_icon = "identity-and-access-management.png"
# Aliases

@ -0,0 +1,19 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _Outscale
class _Storage(_Outscale):
_type = "storage"
_icon_dir = "resources/outscale/storage"
class SimpleStorageService(_Storage):
_icon = "simple-storage-service.png"
class Storage(_Storage):
_icon = "storage.png"
# Aliases

@ -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

@ -24,6 +24,10 @@ class Ember(_Framework):
_icon = "ember.png"
class Fastapi(_Framework):
_icon = "fastapi.png"
class Flask(_Framework):
_icon = "flask.png"
@ -36,6 +40,10 @@ class Laravel(_Framework):
_icon = "laravel.png"
class Micronaut(_Framework):
_icon = "micronaut.png"
class Rails(_Framework):
_icon = "rails.png"
@ -53,3 +61,5 @@ class Vue(_Framework):
# Aliases
FastAPI = Fastapi

@ -28,6 +28,14 @@ class Dart(_Language):
_icon = "dart.png"
class Elixir(_Language):
_icon = "elixir.png"
class Erlang(_Language):
_icon = "erlang.png"
class Go(_Language):
_icon = "go.png"
@ -72,6 +80,10 @@ class Rust(_Language):
_icon = "rust.png"
class Scala(_Language):
_icon = "scala.png"
class Swift(_Language):
_icon = "swift.png"

@ -8,6 +8,10 @@ class _Alerting(_Saas):
_icon_dir = "resources/saas/alerting"
class Newrelic(_Alerting):
_icon = "newrelic.png"
class Opsgenie(_Alerting):
_icon = "opsgenie.png"

@ -8,6 +8,10 @@ class _Cdn(_Saas):
_icon_dir = "resources/saas/cdn"
class Akamai(_Cdn):
_icon = "akamai.png"
class Cloudflare(_Cdn):
_icon = "cloudflare.png"

@ -8,10 +8,26 @@ class _Chat(_Saas):
_icon_dir = "resources/saas/chat"
class Discord(_Chat):
_icon = "discord.png"
class Mattermost(_Chat):
_icon = "mattermost.png"
class RocketChat(_Chat):
_icon = "rocket-chat.png"
class Slack(_Chat):
_icon = "slack.png"
class Teams(_Chat):
_icon = "teams.png"
class Telegram(_Chat):
_icon = "telegram.png"

@ -0,0 +1,15 @@
# This module is automatically generated by autogen.sh. DO NOT EDIT.
from . import _Saas
class _Filesharing(_Saas):
_type = "filesharing"
_icon_dir = "resources/saas/filesharing"
class Nextcloud(_Filesharing):
_icon = "nextcloud.png"
# Aliases

@ -12,4 +12,8 @@ class Auth0(_Identity):
_icon = "auth0.png"
class Okta(_Identity):
_icon = "okta.png"
# Aliases

@ -12,6 +12,10 @@ class Datadog(_Logging):
_icon = "datadog.png"
class Newrelic(_Logging):
_icon = "newrelic.png"
class Papertrail(_Logging):
_icon = "papertrail.png"
@ -19,3 +23,4 @@ class Papertrail(_Logging):
# Aliases
DataDog = Datadog
NewRelic = Newrelic

@ -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)
![rabbitmq consumers diagram](/img/rabbitmq_consumers_diagram.png)

@ -144,7 +144,7 @@ Node classes list of aws provider.
- **diagrams.aws.general.GenericSamlToken**
- **diagrams.aws.general.GenericSDK**
- **diagrams.aws.general.Marketplace**
- **diagrams.aws.general.TradicionalServer**
- **diagrams.aws.general.TraditionalServer**
- **diagrams.aws.general.User**
- **diagrams.aws.general.Users**

@ -39,6 +39,7 @@ Node classes list of azure provider.
- **diagrams.azure.compute.VMClassic**
- **diagrams.azure.compute.VMImages**
- **diagrams.azure.compute.VMLinux**
- **diagrams.azure.compute.VMScaleSet**
- **diagrams.azure.compute.VMWindows**
- **diagrams.azure.compute.VM**
@ -197,6 +198,7 @@ Node classes list of azure provider.
- **diagrams.azure.network.RouteFilters**
- **diagrams.azure.network.RouteTables**
- **diagrams.azure.network.ServiceEndpointPolicies**
- **diagrams.azure.network.Subnets**
- **diagrams.azure.network.TrafficManagerProfiles**
- **diagrams.azure.network.VirtualNetworkClassic**
- **diagrams.azure.network.VirtualNetworkGateways**

@ -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).

@ -18,6 +18,10 @@ Node classes list of gcp provider.
- **diagrams.gcp.analytics.Genomics**
- **diagrams.gcp.analytics.Pubsub**, **PubSub** (alias)
## gcp.api
- **diagrams.gcp.api.Endpoints**
## gcp.compute
- **diagrams.gcp.compute.AppEngine**, **GAE** (alias)
@ -108,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**

@ -26,6 +26,7 @@ Node classes list of generic provider.
- **diagrams.generic.network.Firewall**
- **diagrams.generic.network.Router**
- **diagrams.generic.network.Subnet**
- **diagrams.generic.network.Switch**
- **diagrams.generic.network.VPN**

@ -5,6 +5,11 @@ title: K8S
Node classes list of k8s provider.
## k8s.chaos
- **diagrams.k8s.chaos.ChaosMesh**
- **diagrams.k8s.chaos.LitmusChaos**
## k8s.clusterconfig
- **diagrams.k8s.clusterconfig.HPA**, **HorizontalPodAutoscaler** (alias)
@ -32,6 +37,7 @@ Node classes list of k8s provider.
## k8s.ecosystem
- **diagrams.k8s.ecosystem.ExternalDns**
- **diagrams.k8s.ecosystem.Helm**
- **diagrams.k8s.ecosystem.Krew**
- **diagrams.k8s.ecosystem.Kustomize**

@ -9,8 +9,8 @@ Node classes list of oci provider.
- **diagrams.oci.compute.AutoscaleWhite**
- **diagrams.oci.compute.Autoscale**
- **diagrams.oci.compute.BMWhite**
- **diagrams.oci.compute.BM**
- **diagrams.oci.compute.BMWhite**, **BareMetalWhite** (alias)
- **diagrams.oci.compute.BM**, **BareMetal** (alias)
- **diagrams.oci.compute.ContainerWhite**
- **diagrams.oci.compute.Container**
- **diagrams.oci.compute.FunctionsWhite**
@ -21,8 +21,8 @@ Node classes list of oci provider.
- **diagrams.oci.compute.OCIR**, **OCIRegistry** (alias)
- **diagrams.oci.compute.OKEWhite**, **ContainerEngineWhite** (alias)
- **diagrams.oci.compute.OKE**, **ContainerEngine** (alias)
- **diagrams.oci.compute.VMWhite**
- **diagrams.oci.compute.VM**
- **diagrams.oci.compute.VMWhite**, **VirtualMachineWhite** (alias)
- **diagrams.oci.compute.VM**, **VirtualMachine** (alias)
## oci.connectivity

@ -5,6 +5,11 @@ title: OnPrem
Node classes list of onprem provider.
## onprem.aggregator
- **diagrams.onprem.aggregator.Fluentd**
- **diagrams.onprem.aggregator.Vector**
## onprem.analytics
- **diagrams.onprem.analytics.Beam**
@ -15,21 +20,37 @@ Node classes list of onprem provider.
- **diagrams.onprem.analytics.Hive**
- **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**
- **diagrams.onprem.analytics.Superset**
- **diagrams.onprem.analytics.Tableau**
## onprem.auth
- **diagrams.onprem.auth.Boundary**
- **diagrams.onprem.auth.BuzzfeedSso**
- **diagrams.onprem.auth.Oauth2Proxy**
## onprem.cd
- **diagrams.onprem.cd.Spinnaker**
- **diagrams.onprem.cd.TektonCli**
- **diagrams.onprem.cd.Tekton**
## onprem.certificates
- **diagrams.onprem.certificates.CertManager**
- **diagrams.onprem.certificates.LetsEncrypt**
## onprem.ci
- **diagrams.onprem.ci.Circleci**, **CircleCI** (alias)
- **diagrams.onprem.ci.Concourseci**, **ConcourseCI** (alias)
- **diagrams.onprem.ci.Droneci**, **DroneCI** (alias)
- **diagrams.onprem.ci.GithubActions**
- **diagrams.onprem.ci.Gitlabci**, **GitlabCI** (alias)
- **diagrams.onprem.ci.Jenkins**
- **diagrams.onprem.ci.Teamcity**, **TC** (alias)
@ -49,7 +70,12 @@ Node classes list of onprem provider.
## onprem.container
- **diagrams.onprem.container.Containerd**
- **diagrams.onprem.container.Crio**
- **diagrams.onprem.container.Docker**
- **diagrams.onprem.container.Firecracker**
- **diagrams.onprem.container.Gvisor**
- **diagrams.onprem.container.Lxc**, **LXC** (alias)
- **diagrams.onprem.container.Rkt**, **RKT** (alias)
## onprem.database
@ -73,6 +99,11 @@ Node classes list of onprem provider.
- **diagrams.onprem.database.Postgresql**, **PostgreSQL** (alias)
- **diagrams.onprem.database.Scylla**
## onprem.dns
- **diagrams.onprem.dns.Coredns**
- **diagrams.onprem.dns.Powerdns**
## onprem.etl
- **diagrams.onprem.etl.Embulk**
@ -83,12 +114,21 @@ Node classes list of onprem provider.
- **diagrams.onprem.gitops.Flagger**
- **diagrams.onprem.gitops.Flux**
## onprem.groupware
- **diagrams.onprem.groupware.Nextcloud**
## onprem.iac
- **diagrams.onprem.iac.Ansible**
- **diagrams.onprem.iac.Atlantis**
- **diagrams.onprem.iac.Awx**
- **diagrams.onprem.iac.Terraform**
## onprem.identity
- **diagrams.onprem.identity.Dex**
## onprem.inmemory
- **diagrams.onprem.inmemory.Aerospike**
@ -99,7 +139,6 @@ Node classes list of onprem provider.
## onprem.logging
- **diagrams.onprem.logging.Fluentbit**, **FluentBit** (alias)
- **diagrams.onprem.logging.Fluentd**
- **diagrams.onprem.logging.Graylog**
- **diagrams.onprem.logging.Loki**
- **diagrams.onprem.logging.Rsyslog**, **RSyslog** (alias)
@ -111,38 +150,59 @@ Node classes list of onprem provider.
## onprem.monitoring
- **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**
- **diagrams.onprem.monitoring.Sentry**
- **diagrams.onprem.monitoring.Splunk**
- **diagrams.onprem.monitoring.Thanos**
- **diagrams.onprem.monitoring.Zabbix**
## onprem.network
- **diagrams.onprem.network.Ambassador**
- **diagrams.onprem.network.Apache**
- **diagrams.onprem.network.Bind9**
- **diagrams.onprem.network.Caddy**
- **diagrams.onprem.network.Consul**
- **diagrams.onprem.network.Envoy**
- **diagrams.onprem.network.Etcd**, **ETCD** (alias)
- **diagrams.onprem.network.Glassfish**
- **diagrams.onprem.network.Gunicorn**
- **diagrams.onprem.network.Haproxy**, **HAProxy** (alias)
- **diagrams.onprem.network.Internet**
- **diagrams.onprem.network.Istio**
- **diagrams.onprem.network.Jbossas**
- **diagrams.onprem.network.Jetty**
- **diagrams.onprem.network.Kong**
- **diagrams.onprem.network.Linkerd**
- **diagrams.onprem.network.Nginx**
- **diagrams.onprem.network.Ocelot**
- **diagrams.onprem.network.OpenServiceMesh**, **OSM** (alias)
- **diagrams.onprem.network.Opnsense**, **OPNSense** (alias)
- **diagrams.onprem.network.Pfsense**, **PFSense** (alias)
- **diagrams.onprem.network.Pomerium**
- **diagrams.onprem.network.Powerdns**
- **diagrams.onprem.network.Tomcat**
- **diagrams.onprem.network.Traefik**
- **diagrams.onprem.network.Vyos**, **VyOS** (alias)
- **diagrams.onprem.network.Wildfly**
- **diagrams.onprem.network.Zookeeper**
## onprem.proxmox
- **diagrams.onprem.proxmox.Pve**, **ProxmoxVE** (alias)
## onprem.queue
- **diagrams.onprem.queue.Activemq**, **ActiveMQ** (alias)
- **diagrams.onprem.queue.Celery**
- **diagrams.onprem.queue.Kafka**
- **diagrams.onprem.queue.Nats**
- **diagrams.onprem.queue.Rabbitmq**, **RabbitMQ** (alias)
- **diagrams.onprem.queue.Zeromq**, **ZeroMQ** (alias)
@ -152,9 +212,20 @@ Node classes list of onprem provider.
## onprem.security
- **diagrams.onprem.security.Bitwarden**
- **diagrams.onprem.security.Trivy**
- **diagrams.onprem.security.Vault**
## onprem.storage
- **diagrams.onprem.storage.CephOsd**, **CEPH_OSD** (alias)
- **diagrams.onprem.storage.Ceph**, **CEPH** (alias)
- **diagrams.onprem.storage.Glusterfs**
## onprem.tracing
- **diagrams.onprem.tracing.Jaeger**
## onprem.vcs
- **diagrams.onprem.vcs.Git**

@ -0,0 +1,30 @@
---
id: outscale
title: Outscale
---
Node classes list of outscale provider.
## outscale.compute
- **diagrams.outscale.compute.Compute**
- **diagrams.outscale.compute.DirectConnect**
## outscale.network
- **diagrams.outscale.network.ClientVpn**
- **diagrams.outscale.network.InternetService**
- **diagrams.outscale.network.LoadBalancer**
- **diagrams.outscale.network.NatService**
- **diagrams.outscale.network.Net**
- **diagrams.outscale.network.SiteToSiteVpng**
## outscale.security
- **diagrams.outscale.security.Firewall**
- **diagrams.outscale.security.IdentityAndAccessManagement**
## outscale.storage
- **diagrams.outscale.storage.SimpleStorageService**
- **diagrams.outscale.storage.Storage**

@ -5,15 +5,44 @@ 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**
- **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**
- **diagrams.programming.framework.Micronaut**
- **diagrams.programming.framework.Rails**
- **diagrams.programming.framework.React**
- **diagrams.programming.framework.Spring**
@ -26,6 +55,8 @@ Node classes list of programming provider.
- **diagrams.programming.language.Cpp**
- **diagrams.programming.language.Csharp**
- **diagrams.programming.language.Dart**
- **diagrams.programming.language.Elixir**
- **diagrams.programming.language.Erlang**
- **diagrams.programming.language.Go**
- **diagrams.programming.language.Java**
- **diagrams.programming.language.Javascript**, **JavaScript** (alias)
@ -37,5 +68,6 @@ Node classes list of programming provider.
- **diagrams.programming.language.R**
- **diagrams.programming.language.Ruby**
- **diagrams.programming.language.Rust**
- **diagrams.programming.language.Scala**
- **diagrams.programming.language.Swift**
- **diagrams.programming.language.Typescript**, **TypeScript** (alias)

@ -7,6 +7,7 @@ Node classes list of saas provider.
## saas.alerting
- **diagrams.saas.alerting.Newrelic**
- **diagrams.saas.alerting.Opsgenie**
- **diagrams.saas.alerting.Pushover**
@ -17,20 +18,31 @@ Node classes list of saas provider.
## saas.cdn
- **diagrams.saas.cdn.Akamai**
- **diagrams.saas.cdn.Cloudflare**
## saas.chat
- **diagrams.saas.chat.Discord**
- **diagrams.saas.chat.Mattermost**
- **diagrams.saas.chat.RocketChat**
- **diagrams.saas.chat.Slack**
- **diagrams.saas.chat.Teams**
- **diagrams.saas.chat.Telegram**
## saas.filesharing
- **diagrams.saas.filesharing.Nextcloud**
## saas.identity
- **diagrams.saas.identity.Auth0**
- **diagrams.saas.identity.Okta**
## saas.logging
- **diagrams.saas.logging.Datadog**, **DataDog** (alias)
- **diagrams.saas.logging.Newrelic**, **NewRelic** (alias)
- **diagrams.saas.logging.Papertrail**
## saas.media

275
poetry.lock generated

@ -1,43 +1,40 @@
[[package]]
category = "dev"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
name = "appdirs"
version = "1.4.3"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "dev"
optional = false
python-versions = "*"
version = "1.4.3"
[[package]]
category = "dev"
description = "An abstract syntax tree for Python with inference support."
name = "astroid"
version = "2.3.3"
description = "An abstract syntax tree for Python with inference support."
category = "dev"
optional = false
python-versions = ">=3.5.*"
version = "2.3.3"
[package.dependencies]
lazy-object-proxy = ">=1.4.0,<1.5.0"
six = ">=1.12,<2.0"
typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""}
wrapt = ">=1.11.0,<1.12.0"
[package.dependencies.typed-ast]
python = "<3.8"
version = ">=1.4.0,<1.5"
[[package]]
category = "dev"
description = "Atomic file writes."
name = "atomicwrites"
version = "1.3.0"
description = "Atomic file writes."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.3.0"
[[package]]
category = "dev"
description = "Classes Without Boilerplate"
name = "attrs"
version = "19.3.0"
description = "Classes Without Boilerplate"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "19.3.0"
[package.extras]
azure-pipelines = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface", "pytest-azurepipelines"]
@ -46,12 +43,12 @@ docs = ["sphinx", "zope.interface"]
tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.interface"]
[[package]]
category = "dev"
description = "The uncompromising code formatter."
name = "black"
version = "19.10b0"
description = "The uncompromising code formatter."
category = "dev"
optional = false
python-versions = ">=3.6"
version = "19.10b0"
[package.dependencies]
appdirs = "*"
@ -66,64 +63,60 @@ typed-ast = ">=1.4.0"
d = ["aiohttp (>=3.3.2)", "aiohttp-cors"]
[[package]]
category = "dev"
description = "Composable command line interface toolkit"
name = "click"
version = "7.0"
description = "Composable command line interface toolkit"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "7.0"
[[package]]
category = "dev"
description = "Cross-platform colored terminal text."
marker = "sys_platform == \"win32\""
name = "colorama"
version = "0.4.3"
description = "Cross-platform colored terminal text."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.4.3"
[[package]]
category = "main"
description = "PEP 567 Backport"
marker = "python_version >= \"3.6\" and python_version < \"3.7\""
name = "contextvars"
version = "2.4"
description = "PEP 567 Backport"
category = "main"
optional = false
python-versions = "*"
version = "2.4"
[package.dependencies]
immutables = ">=0.9"
[[package]]
category = "main"
description = "Simple Python interface for Graphviz"
name = "graphviz"
version = "0.16"
description = "Simple Python interface for Graphviz"
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
version = "0.13.2"
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*"
[package.extras]
dev = ["tox (>=3.0)", "flake8", "pep8-naming", "wheel", "twine"]
docs = ["sphinx (>=1.7)", "sphinx-rtd-theme"]
test = ["mock (>=2)", "pytest (>=3.4,<3.10.0 || >3.10.0)", "pytest-mock (>=1.8)", "pytest-cov"]
dev = ["tox (>=3)", "flake8", "pep8-naming", "wheel", "twine"]
docs = ["sphinx (>=1.8)", "sphinx-rtd-theme"]
test = ["mock (>=3)", "pytest (>=4)", "pytest-mock (>=2)", "pytest-cov"]
[[package]]
category = "main"
description = "Immutable Collections"
marker = "python_version >= \"3.6\" and python_version < \"3.7\""
name = "immutables"
version = "0.11"
description = "Immutable Collections"
category = "main"
optional = false
python-versions = "*"
version = "0.11"
[[package]]
category = "dev"
description = "Read metadata from Python packages"
marker = "python_version < \"3.8\""
name = "importlib-metadata"
version = "1.5.0"
description = "Read metadata from Python packages"
category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
version = "1.5.0"
[package.dependencies]
zipp = ">=0.5"
@ -133,12 +126,20 @@ docs = ["sphinx", "rst.linker"]
testing = ["packaging", "importlib-resources"]
[[package]]
name = "iniconfig"
version = "1.1.1"
description = "iniconfig: brain-dead simple config-ini parsing"
category = "dev"
description = "A Python utility / library to sort Python imports."
optional = false
python-versions = "*"
[[package]]
name = "isort"
version = "4.3.21"
description = "A Python utility / library to sort Python imports."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "4.3.21"
[package.extras]
pipfile = ["pipreqs", "requirementslib"]
@ -147,12 +148,12 @@ requirements = ["pipreqs", "pip-api"]
xdg_home = ["appdirs (>=1.4.0)"]
[[package]]
category = "main"
description = "A very fast and expressive template engine."
name = "jinja2"
version = "2.11.1"
description = "A very fast and expressive template engine."
category = "main"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "2.11.1"
[package.dependencies]
MarkupSafe = ">=0.23"
@ -161,165 +162,178 @@ MarkupSafe = ">=0.23"
i18n = ["Babel (>=0.8)"]
[[package]]
category = "dev"
description = "A fast and thorough lazy object proxy."
name = "lazy-object-proxy"
version = "1.4.3"
description = "A fast and thorough lazy object proxy."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.4.3"
[[package]]
category = "main"
description = "Safely add untrusted strings to HTML/XML markup."
name = "markupsafe"
version = "1.1.1"
description = "Safely add untrusted strings to HTML/XML markup."
category = "main"
optional = false
python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
version = "1.1.1"
[[package]]
category = "dev"
description = "McCabe checker, plugin for flake8"
name = "mccabe"
version = "0.6.1"
description = "McCabe checker, plugin for flake8"
category = "dev"
optional = false
python-versions = "*"
version = "0.6.1"
[[package]]
name = "packaging"
version = "20.8"
description = "Core utilities for Python packages"
category = "dev"
description = "More routines for operating on iterables, beyond itertools"
name = "more-itertools"
optional = false
python-versions = ">=3.5"
version = "8.2.0"
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
[package.dependencies]
pyparsing = ">=2.0.2"
[[package]]
category = "dev"
description = "Utility library for gitignore style pattern matching of file paths."
name = "pathspec"
version = "0.7.0"
description = "Utility library for gitignore style pattern matching of file paths."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
version = "0.7.0"
[[package]]
category = "dev"
description = "plugin and hook calling mechanisms for python"
name = "pluggy"
version = "0.13.1"
description = "plugin and hook calling mechanisms for python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "0.13.1"
[package.dependencies]
[package.dependencies.importlib-metadata]
python = "<3.8"
version = ">=0.12"
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
[package.extras]
dev = ["pre-commit", "tox"]
[[package]]
category = "dev"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
name = "py"
version = "1.10.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "1.8.1"
[[package]]
category = "dev"
description = "python code static checker"
name = "pylint"
version = "2.4.4"
description = "python code static checker"
category = "dev"
optional = false
python-versions = ">=3.5.*"
version = "2.4.4"
[package.dependencies]
astroid = ">=2.3.0,<2.4"
colorama = "*"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
isort = ">=4.2.5,<5"
mccabe = ">=0.6,<0.7"
[[package]]
name = "pyparsing"
version = "2.4.7"
description = "Python parsing module"
category = "dev"
description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
[[package]]
name = "pytest"
version = "6.2.1"
description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
version = "3.10.1"
python-versions = ">=3.6"
[package.dependencies]
atomicwrites = ">=1.0"
attrs = ">=17.4.0"
colorama = "*"
more-itertools = ">=4.0.0"
pluggy = ">=0.7"
py = ">=1.5.0"
setuptools = "*"
six = ">=1.10.0"
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
attrs = ">=19.2.0"
colorama = {version = "*", markers = "sys_platform == \"win32\""}
importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
iniconfig = "*"
packaging = "*"
pluggy = ">=0.12,<1.0.0a1"
py = ">=1.8.2"
toml = "*"
[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xmlschema"]
[[package]]
category = "dev"
description = "Alternative regular expression module, to replace re."
name = "regex"
version = "2020.2.20"
description = "Alternative regular expression module, to replace re."
category = "dev"
optional = false
python-versions = "*"
version = "2020.2.20"
[[package]]
category = "dev"
description = "a python refactoring library..."
name = "rope"
version = "0.14.0"
description = "a python refactoring library..."
category = "dev"
optional = false
python-versions = "*"
version = "0.14.0"
[[package]]
category = "dev"
description = "Python 2 and 3 compatibility utilities"
name = "six"
version = "1.14.0"
description = "Python 2 and 3 compatibility utilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
version = "1.14.0"
[[package]]
category = "dev"
description = "Python Library for Tom's Obvious, Minimal Language"
name = "toml"
version = "0.10.0"
description = "Python Library for Tom's Obvious, Minimal Language"
category = "dev"
optional = false
python-versions = "*"
version = "0.10.0"
[[package]]
category = "dev"
description = "a fork of Python 2 and 3 ast modules with type comment support"
name = "typed-ast"
version = "1.4.1"
description = "a fork of Python 2 and 3 ast modules with type comment support"
category = "dev"
optional = false
python-versions = "*"
version = "1.4.1"
[[package]]
category = "dev"
description = "Module for decorators, wrappers and monkey patching."
name = "wrapt"
version = "1.11.2"
description = "Module for decorators, wrappers and monkey patching."
category = "dev"
optional = false
python-versions = "*"
version = "1.11.2"
[[package]]
category = "dev"
description = "Backport of pathlib-compatible object wrapper for zip files"
marker = "python_version < \"3.8\""
name = "zipp"
version = "3.1.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "dev"
optional = false
python-versions = ">=3.6"
version = "3.1.0"
[package.extras]
docs = ["sphinx", "jaraco.packaging (>=3.2)", "rst.linker (>=1.9)"]
testing = ["jaraco.itertools", "func-timeout"]
[metadata]
content-hash = "da205efb5c35ed10116f51854f613a43fe000afa1341828bfd8cf3d6d58c4149"
lock-version = "1.1"
python-versions = "^3.6"
content-hash = "6cb154d248e0d13adbb5229f52d1c1ab9ce2ea9cfe54091cf34cd97ccb822653"
[metadata.files]
appdirs = [
@ -354,8 +368,8 @@ contextvars = [
{file = "contextvars-2.4.tar.gz", hash = "sha256:f38c908aaa59c14335eeea12abea5f443646216c4e29380d7bf34d2018e2c39e"},
]
graphviz = [
{file = "graphviz-0.13.2-py2.py3-none-any.whl", hash = "sha256:241fb099e32b8e8c2acca747211c8237e40c0b89f24b1622860075d59f4c4b25"},
{file = "graphviz-0.13.2.zip", hash = "sha256:60acbeee346e8c14555821eab57dbf68a169e6c10bce40e83c1bf44f63a62a01"},
{file = "graphviz-0.16-py2.py3-none-any.whl", hash = "sha256:3cad5517c961090dfc679df6402a57de62d97703e2880a1a46147bb0dc1639eb"},
{file = "graphviz-0.16.zip", hash = "sha256:d2d25af1c199cad567ce4806f0449cb74eb30cf451fd7597251e1da099ac6e57"},
]
immutables = [
{file = "immutables-0.11-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:bce27277a2fe91509cca69181971ab509c2ee862e8b37b09f26b64f90e8fe8fb"},
@ -379,6 +393,10 @@ importlib-metadata = [
{file = "importlib_metadata-1.5.0-py2.py3-none-any.whl", hash = "sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"},
{file = "importlib_metadata-1.5.0.tar.gz", hash = "sha256:06f5b3a99029c7134207dd882428a66992a9de2bef7c2b699b5641f9886c3302"},
]
iniconfig = [
{file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
{file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
]
isort = [
{file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"},
{file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"},
@ -449,9 +467,9 @@ mccabe = [
{file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
]
more-itertools = [
{file = "more-itertools-8.2.0.tar.gz", hash = "sha256:b1ddb932186d8a6ac451e1d95844b382f55e12686d51ca0c68b6f61f2ab7a507"},
{file = "more_itertools-8.2.0-py3-none-any.whl", hash = "sha256:5dd8bcf33e5f9513ffa06d5ad33d78f31e1931ac9a18f33d37e77a180d393a7c"},
packaging = [
{file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"},
{file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"},
]
pathspec = [
{file = "pathspec-0.7.0-py2.py3-none-any.whl", hash = "sha256:163b0632d4e31cef212976cf57b43d9fd6b0bac6e67c26015d611a647d5e7424"},
@ -462,16 +480,20 @@ pluggy = [
{file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
]
py = [
{file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"},
{file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"},
{file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
]
pylint = [
{file = "pylint-2.4.4-py3-none-any.whl", hash = "sha256:886e6afc935ea2590b462664b161ca9a5e40168ea99e5300935f6591ad467df4"},
{file = "pylint-2.4.4.tar.gz", hash = "sha256:3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd"},
]
pyparsing = [
{file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
]
pytest = [
{file = "pytest-3.10.1-py2.py3-none-any.whl", hash = "sha256:3f193df1cfe1d1609d4c583838bea3d532b18d6160fd3f55c9447fdca30848ec"},
{file = "pytest-3.10.1.tar.gz", hash = "sha256:e246cf173c01169b9617fc07264b7b1316e78d7a650055235d6d897bc80d9660"},
{file = "pytest-6.2.1-py3-none-any.whl", hash = "sha256:1969f797a1a0dbd8ccf0fecc80262312729afea9c17f1d70ebf85c5e76c6f7c8"},
{file = "pytest-6.2.1.tar.gz", hash = "sha256:66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306"},
]
regex = [
{file = "regex-2020.2.20-cp27-cp27m-win32.whl", hash = "sha256:99272d6b6a68c7ae4391908fc15f6b8c9a6c345a46b632d7fdb7ef6c883a2bbb"},
@ -518,19 +540,28 @@ typed-ast = [
{file = "typed_ast-1.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:269151951236b0f9a6f04015a9004084a5ab0d5f19b57de779f908621e7d8b75"},
{file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:24995c843eb0ad11a4527b026b4dde3da70e1f2d8806c99b7b4a7cf491612652"},
{file = "typed_ast-1.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:fe460b922ec15dd205595c9b5b99e2f056fd98ae8f9f56b888e7a17dc2b757e7"},
{file = "typed_ast-1.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:fcf135e17cc74dbfbc05894ebca928ffeb23d9790b3167a674921db19082401f"},
{file = "typed_ast-1.4.1-cp36-cp36m-win32.whl", hash = "sha256:4e3e5da80ccbebfff202a67bf900d081906c358ccc3d5e3c8aea42fdfdfd51c1"},
{file = "typed_ast-1.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:249862707802d40f7f29f6e1aad8d84b5aa9e44552d2cc17384b209f091276aa"},
{file = "typed_ast-1.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8ce678dbaf790dbdb3eba24056d5364fb45944f33553dd5869b7580cdbb83614"},
{file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c9e348e02e4d2b4a8b2eedb48210430658df6951fa484e59de33ff773fbd4b41"},
{file = "typed_ast-1.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bcd3b13b56ea479b3650b82cabd6b5343a625b0ced5429e4ccad28a8973f301b"},
{file = "typed_ast-1.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:f208eb7aff048f6bea9586e61af041ddf7f9ade7caed625742af423f6bae3298"},
{file = "typed_ast-1.4.1-cp37-cp37m-win32.whl", hash = "sha256:d5d33e9e7af3b34a40dc05f498939f0ebf187f07c385fd58d591c533ad8562fe"},
{file = "typed_ast-1.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:0666aa36131496aed8f7be0410ff974562ab7eeac11ef351def9ea6fa28f6355"},
{file = "typed_ast-1.4.1-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:d205b1b46085271b4e15f670058ce182bd1199e56b317bf2ec004b6a44f911f6"},
{file = "typed_ast-1.4.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:6daac9731f172c2a22ade6ed0c00197ee7cc1221aa84cfdf9c31defeb059a907"},
{file = "typed_ast-1.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:498b0f36cc7054c1fead3d7fc59d2150f4d5c6c56ba7fb150c013fbc683a8d2d"},
{file = "typed_ast-1.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:7e4c9d7658aaa1fc80018593abdf8598bf91325af6af5cce4ce7c73bc45ea53d"},
{file = "typed_ast-1.4.1-cp38-cp38-win32.whl", hash = "sha256:715ff2f2df46121071622063fc7543d9b1fd19ebfc4f5c8895af64a77a8c852c"},
{file = "typed_ast-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:fc0fea399acb12edbf8a628ba8d2312f583bdbdb3335635db062fa98cf71fca4"},
{file = "typed_ast-1.4.1-cp39-cp39-macosx_10_15_x86_64.whl", hash = "sha256:d43943ef777f9a1c42bf4e552ba23ac77a6351de620aa9acf64ad54933ad4d34"},
{file = "typed_ast-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:92c325624e304ebf0e025d1224b77dd4e6393f18aab8d829b5b7e04afe9b7a2c"},
{file = "typed_ast-1.4.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d648b8e3bf2fe648745c8ffcee3db3ff903d0817a01a12dd6a6ea7a8f4889072"},
{file = "typed_ast-1.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:fac11badff8313e23717f3dada86a15389d0708275bddf766cca67a84ead3e91"},
{file = "typed_ast-1.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:0d8110d78a5736e16e26213114a38ca35cb15b6515d535413b090bd50951556d"},
{file = "typed_ast-1.4.1-cp39-cp39-win32.whl", hash = "sha256:b52ccf7cfe4ce2a1064b18594381bccf4179c2ecf7f513134ec2f993dd4ab395"},
{file = "typed_ast-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:3742b32cf1c6ef124d57f95be609c473d7ec4c14d0090e5a5e05a15269fb4d0c"},
{file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"},
]
wrapt = [

@ -1,6 +1,6 @@
[tool.poetry]
name = "diagrams"
version = "0.16.0"
version = "0.18.0"
description = "Diagram as Code"
license = "MIT"
authors = ["mingrammer <mingrammer@gmail.com>"]
@ -11,12 +11,12 @@ include = ["resources/**/*"]
[tool.poetry.dependencies]
python = "^3.6"
graphviz = "^0.13.2"
graphviz = ">=0.13.2,<0.17.0"
jinja2 = "^2.10"
contextvars = { version = "^2.4", python = "~3.6" }
[tool.poetry.dev-dependencies]
pytest = "^3.0"
pytest = "^6.2"
pylint = "^2.4"
black = {version = "^19.0", allow-prereleases = true}
rope = "^0.14.0"

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save