diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 88c791d5..2fd60696 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,17 +18,17 @@ jobs: test: strategy: matrix: - python: ["3.7", "3.8", "3.9", "3.10", "3.11"] + python: ["3.9", "3.10", "3.11"] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-python@v3 + - uses: actions/checkout@v3 + - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - name: Setup Graphviz uses: ts-graphviz/setup-graphviz@v1 - name: Install poetry - run: pip install poetry + run: curl -sSL https://install.python-poetry.org | python3 - - name: Run all tests run: | poetry install diff --git a/README.md b/README.md index 0b15594d..086a684c 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Diagrams lets you draw the cloud system architecture **in Python code**. It was ## Getting Started -It requires **Python 3.6** or higher, check your Python version first. +It requires **Python 3.7** or higher, check your Python version first. It uses [Graphviz](https://www.graphviz.org/) to render the diagram, so you need to [install Graphviz](https://graphviz.gitlab.io/download/) to use **diagrams**. After installing graphviz (or already have it), install the **diagrams**. @@ -76,7 +76,7 @@ To contribute to diagram, check out [contribution guidelines](CONTRIBUTING.md). ## Who uses it? -[GitPitch](https://gitpitch.github.io/gitpitch) 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://gitpitch.github.io/gitpitch/#/diagrams/cloud-architecture) so you can use Diagrams directly on any slide for conferences, meetups, and training. +[Apache Airflow](https://github.com/apache/airflow) is the most popular data workflow Orchestrator. Airflow uses Diagrams to generate architecture diagrams in their documentation. [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 your existing cloud infrastructure with Cloudiscovery. diff --git a/diagrams/azure/compute.py b/diagrams/azure/compute.py index e2e23ba6..810f9237 100644 --- a/diagrams/azure/compute.py +++ b/diagrams/azure/compute.py @@ -40,6 +40,10 @@ class CloudsimpleVirtualMachines(_Compute): _icon = "cloudsimple-virtual-machines.png" +class ContainerApps(_Compute): + _icon = "container-apps.png" + + class ContainerInstances(_Compute): _icon = "container-instances.png" diff --git a/diagrams/azure/network.py b/diagrams/azure/network.py index 23dd69c0..d55ad3cc 100644 --- a/diagrams/azure/network.py +++ b/diagrams/azure/network.py @@ -72,6 +72,10 @@ class OnPremisesDataGateways(_Network): _icon = "on-premises-data-gateways.png" +class PrivateEndpoint(_Network): + _icon = "private-endpoint.png" + + class PublicIpAddresses(_Network): _icon = "public-ip-addresses.png" diff --git a/diagrams/gcp/api.py b/diagrams/gcp/api.py index f556ff03..45ec2e09 100644 --- a/diagrams/gcp/api.py +++ b/diagrams/gcp/api.py @@ -12,6 +12,10 @@ class APIGateway(_API): _icon = "api-gateway.png" +class Apigee(_API): + _icon = "apigee.png" + + class Endpoints(_API): _icon = "endpoints.png" diff --git a/diagrams/gcp/operations.py b/diagrams/gcp/operations.py index 53ece13f..8e7a2b4a 100644 --- a/diagrams/gcp/operations.py +++ b/diagrams/gcp/operations.py @@ -8,6 +8,10 @@ class _Operations(_GCP): _icon_dir = "resources/gcp/operations" +class Logging(_Operations): + _icon = "logging.png" + + class Monitoring(_Operations): _icon = "monitoring.png" diff --git a/diagrams/generic/virtualization.py b/diagrams/generic/virtualization.py index 0695fd01..f7f9006a 100644 --- a/diagrams/generic/virtualization.py +++ b/diagrams/generic/virtualization.py @@ -8,6 +8,10 @@ class _Virtualization(_Generic): _icon_dir = "resources/generic/virtualization" +class Qemu(_Virtualization): + _icon = "qemu.png" + + class Virtualbox(_Virtualization): _icon = "virtualbox.png" diff --git a/diagrams/onprem/analytics.py b/diagrams/onprem/analytics.py index 23a55948..7e3ee9a3 100644 --- a/diagrams/onprem/analytics.py +++ b/diagrams/onprem/analytics.py @@ -72,6 +72,10 @@ class Tableau(_Analytics): _icon = "tableau.png" +class Trino(_Analytics): + _icon = "trino.png" + + # Aliases PowerBI = Powerbi diff --git a/diagrams/programming/framework.py b/diagrams/programming/framework.py index 46f67750..aa28e451 100644 --- a/diagrams/programming/framework.py +++ b/diagrams/programming/framework.py @@ -48,6 +48,10 @@ class Micronaut(_Framework): _icon = "micronaut.png" +class Quarkus(_Framework): + _icon = "quarkus.png" + + class Rails(_Framework): _icon = "rails.png" diff --git a/diagrams/saas/alerting.py b/diagrams/saas/alerting.py index 76e17ff2..0df15d83 100644 --- a/diagrams/saas/alerting.py +++ b/diagrams/saas/alerting.py @@ -16,6 +16,10 @@ class Opsgenie(_Alerting): _icon = "opsgenie.png" +class Pagerduty(_Alerting): + _icon = "pagerduty.png" + + class Pushover(_Alerting): _icon = "pushover.png" @@ -24,7 +28,4 @@ class Xmatters(_Alerting): _icon = "xmatters.png" -class Pagerduty(_Alerting): - _icon = "pagerduty.png" - # Aliases diff --git a/docs/nodes/azure.md b/docs/nodes/azure.md index 88fba3a0..6a0926cd 100644 --- a/docs/nodes/azure.md +++ b/docs/nodes/azure.md @@ -71,6 +71,9 @@ Node classes list of azure provider. CloudsimpleVirtualMachines **diagrams.azure.compute.CloudsimpleVirtualMachines** +ContainerApps +**diagrams.azure.compute.ContainerApps** + ContainerInstances **diagrams.azure.compute.ContainerInstances** @@ -572,6 +575,9 @@ Node classes list of azure provider. OnPremisesDataGateways **diagrams.azure.network.OnPremisesDataGateways** +PrivateEndpoint +**diagrams.azure.network.PrivateEndpoint** + PublicIpAddresses **diagrams.azure.network.PublicIpAddresses** diff --git a/docs/nodes/gcp.md b/docs/nodes/gcp.md index acec27bd..a47f8020 100644 --- a/docs/nodes/gcp.md +++ b/docs/nodes/gcp.md @@ -44,6 +44,9 @@ Node classes list of gcp provider. APIGateway **diagrams.gcp.api.APIGateway** +Apigee +**diagrams.gcp.api.Apigee** + Endpoints **diagrams.gcp.api.Endpoints** @@ -278,6 +281,9 @@ Node classes list of gcp provider. ## gcp.operations +Logging +**diagrams.gcp.operations.Logging** + Monitoring **diagrams.gcp.operations.Monitoring** diff --git a/docs/nodes/generic.md b/docs/nodes/generic.md index 508ab0a8..5bab8cf1 100644 --- a/docs/nodes/generic.md +++ b/docs/nodes/generic.md @@ -98,6 +98,9 @@ Node classes list of generic provider. ## generic.virtualization +Qemu +**diagrams.generic.virtualization.Qemu** + Virtualbox **diagrams.generic.virtualization.Virtualbox** diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index 4a237372..c7a7f01e 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -65,6 +65,9 @@ Node classes list of onprem provider. Tableau **diagrams.onprem.analytics.Tableau** +Trino +**diagrams.onprem.analytics.Trino** + ## onprem.auth diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index c6af42f7..08c83942 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -113,6 +113,9 @@ Node classes list of programming provider. Micronaut **diagrams.programming.framework.Micronaut** +Quarkus +**diagrams.programming.framework.Quarkus** + Rails **diagrams.programming.framework.Rails** diff --git a/docs/nodes/saas.md b/docs/nodes/saas.md index 2056e921..3bed3f32 100644 --- a/docs/nodes/saas.md +++ b/docs/nodes/saas.md @@ -14,17 +14,18 @@ Node classes list of saas provider. Opsgenie **diagrams.saas.alerting.Opsgenie** +Pagerduty +**diagrams.saas.alerting.Pagerduty** + Pushover **diagrams.saas.alerting.Pushover** Xmatters **diagrams.saas.alerting.Xmatters** -Pagerduty -**diagrams.saas.alerting.Pagerduty** - ## saas.analytics + Dataform **diagrams.saas.analytics.Dataform** diff --git a/pyproject.toml b/pyproject.toml index 05eb3008..7b638a8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "diagrams" -version = "0.23.3" +version = "0.23.4" description = "Diagram as Code" license = "MIT" authors = ["mingrammer "] @@ -13,7 +13,6 @@ include = ["resources/**/*"] python = "^3.7" graphviz = ">=0.13.2,<0.21.0" jinja2 = ">=2.10,<4.0" -contextvars = { version = "^2.4", python = "~3.6" } typed-ast = "^1.5.4" [tool.poetry.dev-dependencies] diff --git a/resources/azure/compute/container-apps.png b/resources/azure/compute/container-apps.png new file mode 100755 index 00000000..b36d9165 Binary files /dev/null and b/resources/azure/compute/container-apps.png differ diff --git a/resources/azure/network/private-endpoint.png b/resources/azure/network/private-endpoint.png new file mode 100644 index 00000000..a7a69915 Binary files /dev/null and b/resources/azure/network/private-endpoint.png differ diff --git a/resources/gcp/api/apigee.png b/resources/gcp/api/apigee.png new file mode 100644 index 00000000..961c4a72 Binary files /dev/null and b/resources/gcp/api/apigee.png differ diff --git a/resources/gcp/operations/logging.png b/resources/gcp/operations/logging.png new file mode 100644 index 00000000..71a7ceea Binary files /dev/null and b/resources/gcp/operations/logging.png differ diff --git a/resources/generic/virtualization/qemu.png b/resources/generic/virtualization/qemu.png new file mode 100644 index 00000000..39cf1f24 Binary files /dev/null and b/resources/generic/virtualization/qemu.png differ diff --git a/resources/onprem/analytics/trino.png b/resources/onprem/analytics/trino.png new file mode 100644 index 00000000..57de0e6c Binary files /dev/null and b/resources/onprem/analytics/trino.png differ diff --git a/resources/programming/framework/quarkus.png b/resources/programming/framework/quarkus.png new file mode 100644 index 00000000..4a90d922 Binary files /dev/null and b/resources/programming/framework/quarkus.png differ diff --git a/website/static/img/resources/azure/compute/container-apps.png b/website/static/img/resources/azure/compute/container-apps.png new file mode 100755 index 00000000..b36d9165 Binary files /dev/null and b/website/static/img/resources/azure/compute/container-apps.png differ diff --git a/website/static/img/resources/azure/network/private-endpoint.png b/website/static/img/resources/azure/network/private-endpoint.png new file mode 100644 index 00000000..a7a69915 Binary files /dev/null and b/website/static/img/resources/azure/network/private-endpoint.png differ diff --git a/website/static/img/resources/gcp/api/apigee.png b/website/static/img/resources/gcp/api/apigee.png new file mode 100644 index 00000000..961c4a72 Binary files /dev/null and b/website/static/img/resources/gcp/api/apigee.png differ diff --git a/website/static/img/resources/gcp/operations/logging.png b/website/static/img/resources/gcp/operations/logging.png new file mode 100644 index 00000000..71a7ceea Binary files /dev/null and b/website/static/img/resources/gcp/operations/logging.png differ diff --git a/website/static/img/resources/onprem/analytics/trino.png b/website/static/img/resources/onprem/analytics/trino.png new file mode 100644 index 00000000..57de0e6c Binary files /dev/null and b/website/static/img/resources/onprem/analytics/trino.png differ diff --git a/website/static/img/resources/programming/framework/quarkus.png b/website/static/img/resources/programming/framework/quarkus.png new file mode 100644 index 00000000..4a90d922 Binary files /dev/null and b/website/static/img/resources/programming/framework/quarkus.png differ