diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 97c08e8..cf070ca 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -16,7 +16,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: # We must fetch at least the immediate parents so that if this is # a pull request then we can check out the head. @@ -29,10 +29,10 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v3 # Override language selection by uncommenting this and choosing your languages with: languages: python - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v3 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2fd6069..7b56e73 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,27 +6,31 @@ on: - master paths: - ".github/workflows/test.yml" + - "pyproject.toml" + - "poetry.lock" - "**.py" pull_request: branches: - master paths: - ".github/workflows/test.yml" + - "pyproject.toml" + - "poetry.lock" - "**.py" jobs: test: strategy: matrix: - python: ["3.9", "3.10", "3.11"] + python: ["3.9", "3.10", "3.11", "3.12", "3.13"] runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python }} - name: Setup Graphviz - uses: ts-graphviz/setup-graphviz@v1 + uses: ts-graphviz/setup-graphviz@v2 - name: Install poetry run: curl -sSL https://install.python-poetry.org | python3 - - name: Run all tests diff --git a/CHANGELOG.md b/CHANGELOG.md index 692ff6b..fe71dd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -394,3 +394,17 @@ The following import changes: ### Added - Support kubernetes diagrams: [3eda1cb](https://github.com/mingrammer/diagrams/commit/3eda1cb6bca8be8a55773d90b93483a8fab3e0f1) + + +## v0.23.5 + +### Breaking Changes + +The following import changes: + +#### OCI + +| Old import path | New import path | +| -------------------------------------------------------------------| --------------------------------------------------------------| +| `from diagrams.oci.connectivity import CustomerPremiseWhite` | `from diagrams.oci.connectivity import CustomerPremisesWhite` | +| `from diagrams.oci.connectivity import CustomerPremises` | `from diagrams.oci.connectivity import CustomerPremises` | \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 90e28a1..d1c430d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,14 +5,14 @@ yourself. ## Set up your environment -* See [DEVELOPMENT][DEVELOPMENT.md] +- See [DEVELOPMENT][DEVELOPMENT.md] ## Resources ### Update nodes -All node classes was auto-generated from image resource files. For example, the -`diagram.aws.compute.EC2` class was auto-generated based on +All node classes are auto-generated from image resource files. For example, the +`diagram.aws.compute.EC2` class is auto-generated based on the `resources/aws/compute/ec2.png` image resource file. So, if you want to add new node resources or update existing node resources, you @@ -30,13 +30,13 @@ ffmpeg -i my_big_image.jpg -vf scale=w=256:h=256:force_original_aspect_ratio=dec 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], [black][black] and -> [inkscape][inkscape] command lines that are used for cleaning the image +> IMPORTANT NOTE: To run `autogen.sh`, you need the [round][round], [black][black] and +> [inkscape][inkscape] command line tools that are used for cleaning the image > resource filenames and formatting the generated python code. > -> macOS users can download the inkscape via Homebrew. +> macOS users can download inkscape via Homebrew. > -> Or you should use the docker image. +> Or you can use the docker image. [DEVELOPMENT.md]: ./DEVELOPMENT.md [round]: https://github.com/mingrammer/round @@ -54,11 +54,13 @@ or update the `ALIASES` map in [config.py](config.py). 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 cleaning the image +> IMPORTANT NOTE: To run `autogen.sh`, you need the [round][round] and +> [inkscape][inkscape] command line tools that are used for cleaning the image > resource filenames. > -> Or you should use the docker image. +> macOS users can download inkscape via Homebrew. +> +> Or you can use the docker image. ## Run Tests diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 661b8b0..93d1e34 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -39,7 +39,7 @@ You should have docker installed in your system, if not click [here](https://doc ## Mac local development setup -To be able to develop and run diagrams locally on you Mac device, you should have [Python](https://www.python.org/downloads/), [Go](https://golang.org/doc/install) and [brew](https://brew.sh/) installed on your system. +To be able to develop and run diagrams locally on you Mac device, you should have [Python](https://www.python.org/downloads/), [Go](https://golang.org/doc/install), and [brew](https://brew.sh/) installed on your system. 1. Go to diagrams root directory. @@ -59,7 +59,8 @@ To be able to develop and run diagrams locally on you Mac device, you should hav ```shell brew install imagemagick inkscape black - go get github.com/mingrammer/round + go install github.com/mingrammer/round@latest + # ln -sf ~/go/bin/round ~/.local/bin/round ``` 5. Run unit tests to confirm that it's working. @@ -74,4 +75,4 @@ To be able to develop and run diagrams locally on you Mac device, you should hav ./autogen.sh ``` -7. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development. +7. If the unit tests and the bash script `autogen.sh` is working correctly, then your system is now ready for development. \ No newline at end of file diff --git a/README.md b/README.md index 086a684..a24d11f 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ **Diagram as Code**. -Diagrams lets you draw the cloud system architecture **in Python code**. It was born for **prototyping** a new system architecture design without any design tools. You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud`, `Oracle Cloud` etc... It also supports `On-Premise` nodes, `SaaS` and major `Programming` frameworks and languages. +Diagrams lets you draw the cloud system architecture **in Python code**. It was born for **prototyping** a new system architecture design without any design tools. You can also describe or visualize the existing system architecture as well. Diagrams currently supports main major providers including: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud`, `Oracle Cloud` etc... It also supports `On-Premises` nodes, `SaaS` and major `Programming` frameworks and languages. **Diagram as Code** also allows you to **track** the architecture diagram changes in any **version control** system. @@ -33,7 +33,7 @@ Diagrams lets you draw the cloud system architecture **in Python code**. It was ![digital ocean provider](https://img.shields.io/badge/DigitalOcean-0080ff?logo=digitalocean&color=0080ff) ![elastic provider](https://img.shields.io/badge/Elastic-orange?logo=elastic&color=005571) ![outscale provider](https://img.shields.io/badge/OutScale-orange?color=5f87bf) -![on premise provider](https://img.shields.io/badge/OnPremise-orange?color=5f87bf) +![on premises provider](https://img.shields.io/badge/OnPremises-orange?color=5f87bf) ![generic provider](https://img.shields.io/badge/Generic-orange?color=5f87bf) ![programming provider](https://img.shields.io/badge/Programming-orange?color=5f87bf) ![saas provider](https://img.shields.io/badge/SaaS-orange?color=5f87bf) @@ -64,7 +64,7 @@ You can start with [quick start](https://diagrams.mingrammer.com/docs/getting-st | Event Processing | Stateful Architecture | Advanced Web Service | | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| ![event processing](https://diagrams.mingrammer.com/img/event_processing_diagram.png) | ![stateful architecture](https://diagrams.mingrammer.com/img/stateful_architecture_diagram.png) | ![advanced web service with on-premise](https://diagrams.mingrammer.com/img/advanced_web_service_with_on-premise.png) | +| ![event processing](https://diagrams.mingrammer.com/img/event_processing_diagram.png) | ![stateful architecture](https://diagrams.mingrammer.com/img/stateful_architecture_diagram.png) | ![advanced web service with on-premises](https://diagrams.mingrammer.com/img/advanced_web_service_with_on-premises.png) | You can find all the examples on the [examples](https://diagrams.mingrammer.com/docs/getting-started/examples) page. diff --git a/config.py b/config.py index dc0590b..58c4475 100644 --- a/config.py +++ b/config.py @@ -429,7 +429,9 @@ ALIASES = { "programming": { "framework": { "Fastapi": "FastAPI", - "Graphql": "GraphQL" + "Graphql": "GraphQL", + "Dotnet": "DotNet", + "Nextjs": "NextJs" }, "language": { "Javascript": "JavaScript", diff --git a/diagrams/__init__.py b/diagrams/__init__.py index 6fe2a80..7b6d246 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -82,7 +82,7 @@ class Diagram: filename: str = "", direction: str = "LR", curvestyle: str = "ortho", - outformat: str = "png", + outformat: Union[str, list[str]] = "png", autolabel: bool = False, show: bool = True, strict: bool = False, diff --git a/diagrams/aws/analytics.py b/diagrams/aws/analytics.py index d37377d..2b789c4 100644 --- a/diagrams/aws/analytics.py +++ b/diagrams/aws/analytics.py @@ -8,6 +8,10 @@ class _Analytics(_AWS): _icon_dir = "resources/aws/analytics" +class AmazonOpensearchService(_Analytics): + _icon = "amazon-opensearch-service.png" + + class Analytics(_Analytics): _icon = "analytics.png" diff --git a/diagrams/aws/devtools.py b/diagrams/aws/devtools.py index 0f674dd..d6458e5 100644 --- a/diagrams/aws/devtools.py +++ b/diagrams/aws/devtools.py @@ -20,6 +20,10 @@ class Cloud9(_Devtools): _icon = "cloud9.png" +class Codeartifact(_Devtools): + _icon = "codeartifact.png" + + class Codebuild(_Devtools): _icon = "codebuild.png" diff --git a/diagrams/aws/management.py b/diagrams/aws/management.py index b04dac8..730a68c 100644 --- a/diagrams/aws/management.py +++ b/diagrams/aws/management.py @@ -8,6 +8,22 @@ class _Management(_AWS): _icon_dir = "resources/aws/management" +class AmazonDevopsGuru(_Management): + _icon = "amazon-devops-guru.png" + + +class AmazonManagedGrafana(_Management): + _icon = "amazon-managed-grafana.png" + + +class AmazonManagedPrometheus(_Management): + _icon = "amazon-managed-prometheus.png" + + +class AmazonManagedWorkflowsApacheAirflow(_Management): + _icon = "amazon-managed-workflows-apache-airflow.png" + + class AutoScaling(_Management): _icon = "auto-scaling.png" @@ -140,10 +156,18 @@ class PersonalHealthDashboard(_Management): _icon = "personal-health-dashboard.png" +class Proton(_Management): + _icon = "proton.png" + + class ServiceCatalog(_Management): _icon = "service-catalog.png" +class SystemsManagerAppConfig(_Management): + _icon = "systems-manager-app-config.png" + + class SystemsManagerAutomation(_Management): _icon = "systems-manager-automation.png" diff --git a/diagrams/aws/network.py b/diagrams/aws/network.py index aa389f9..e9291a5 100644 --- a/diagrams/aws/network.py +++ b/diagrams/aws/network.py @@ -84,6 +84,10 @@ class NATGateway(_Network): _icon = "nat-gateway.png" +class NetworkFirewall(_Network): + _icon = "network-firewall.png" + + class NetworkingAndContentDelivery(_Network): _icon = "networking-and-content-delivery.png" diff --git a/diagrams/azure/ml.py b/diagrams/azure/ml.py index 295a261..eb0c474 100644 --- a/diagrams/azure/ml.py +++ b/diagrams/azure/ml.py @@ -8,6 +8,14 @@ class _Ml(_Azure): _icon_dir = "resources/azure/ml" +class AzureOpenAI(_Ml): + _icon = "azure-open-ai.png" + + +class AzureSpeedToText(_Ml): + _icon = "azure-speed-to-text.png" + + class BatchAI(_Ml): _icon = "batch-ai.png" diff --git a/diagrams/azure/monitor.py b/diagrams/azure/monitor.py new file mode 100644 index 0000000..9dcc5bb --- /dev/null +++ b/diagrams/azure/monitor.py @@ -0,0 +1,27 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Azure + + +class _Monitor(_Azure): + _type = "monitor" + _icon_dir = "resources/azure/monitor" + + +class ChangeAnalysis(_Monitor): + _icon = "change-analysis.png" + + +class Logs(_Monitor): + _icon = "logs.png" + + +class Metrics(_Monitor): + _icon = "metrics.png" + + +class Monitor(_Monitor): + _icon = "monitor.png" + + +# Aliases diff --git a/diagrams/c4/__init__.py b/diagrams/c4/__init__.py index 90ce7a9..f53a65b 100644 --- a/diagrams/c4/__init__.py +++ b/diagrams/c4/__init__.py @@ -1,6 +1,7 @@ """ A set of nodes and edges to visualize software architecture using the C4 model. """ + import html import textwrap from diagrams import Cluster, Node, Edge diff --git a/diagrams/oci/connectivity.py b/diagrams/oci/connectivity.py index 8c51f60..658ac0a 100644 --- a/diagrams/oci/connectivity.py +++ b/diagrams/oci/connectivity.py @@ -32,12 +32,12 @@ class CustomerDatacntrWhite(_Connectivity): _icon = "customer-datacntr-white.png" -class CustomerPremiseWhite(_Connectivity): - _icon = "customer-premise-white.png" +class CustomerPremisesWhite(_Connectivity): + _icon = "customer-premises-white.png" -class CustomerPremise(_Connectivity): - _icon = "customer-premise.png" +class CustomerPremises(_Connectivity): + _icon = "customer-premises.png" class DisconnectedRegionsWhite(_Connectivity): diff --git a/diagrams/onprem/__init__.py b/diagrams/onprem/__init__.py index e0a9596..73d3e1f 100644 --- a/diagrams/onprem/__init__.py +++ b/diagrams/onprem/__init__.py @@ -1,5 +1,5 @@ """ -OnPrem provides a set of general on-premise services. +OnPrem provides a set of general on-premises services. """ from diagrams import Node diff --git a/diagrams/onprem/network.py b/diagrams/onprem/network.py index 15d81b2..7ef068b 100644 --- a/diagrams/onprem/network.py +++ b/diagrams/onprem/network.py @@ -72,6 +72,10 @@ class Linkerd(_Network): _icon = "linkerd.png" +class Mikrotik(_Network): + _icon = "mikrotik.png" + + class Nginx(_Network): _icon = "nginx.png" diff --git a/diagrams/programming/framework.py b/diagrams/programming/framework.py index f0b772f..1b74478 100644 --- a/diagrams/programming/framework.py +++ b/diagrams/programming/framework.py @@ -16,10 +16,18 @@ class Backbone(_Framework): _icon = "backbone.png" +class Camel(_Framework): + _icon = "camel.png" + + class Django(_Framework): _icon = "django.png" +class Dotnet(_Framework): + _icon = "dotnet.png" + + class Ember(_Framework): _icon = "ember.png" @@ -40,17 +48,29 @@ class Graphql(_Framework): _icon = "graphql.png" +class Hibernate(_Framework): + _icon = "hibernate.png" + + +class Jhipster(_Framework): + _icon = "jhipster.png" + + class Laravel(_Framework): _icon = "laravel.png" class Micronaut(_Framework): _icon = "micronaut.png" + +class Nextjs(_Framework): + _icon = "nextjs.png" + class Phoenix(_Framework): _icon = "phoenix.png" - + class Quarkus(_Framework): _icon = "quarkus.png" @@ -76,6 +96,10 @@ class Svelte(_Framework): _icon = "svelte.png" +class Vercel(_Framework): + _icon = "vercel.png" + + class Vue(_Framework): _icon = "vue.png" @@ -84,3 +108,6 @@ class Vue(_Framework): FastAPI = Fastapi GraphQL = Graphql +DotNet = Dotnet +NextJs = Nextjs +JHipster = Jhipster diff --git a/diagrams/saas/security.py b/diagrams/saas/security.py new file mode 100644 index 0000000..4fc316e --- /dev/null +++ b/diagrams/saas/security.py @@ -0,0 +1,15 @@ +# This module is automatically generated by autogen.sh. DO NOT EDIT. + +from . import _Saas + + +class _Security(_Saas): + _type = "alerting" + _icon_dir = "resources/saas/security" + + +class Sonarqube(_Security): + _icon = "sonarqube.png" + + +# Aliases diff --git a/docs/getting-started/examples.md b/docs/getting-started/examples.md index caa51cc..d2d2f4c 100644 --- a/docs/getting-started/examples.md +++ b/docs/getting-started/examples.md @@ -170,7 +170,7 @@ with Diagram("Stateful Architecture", show=False): ![stateful architecture diagram](/img/stateful_architecture_diagram.png) -## Advanced Web Service with On-Premise +## Advanced Web Service with On-Premises ```python from diagrams import Cluster, Diagram @@ -183,7 +183,7 @@ from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka -with Diagram("Advanced Web Service with On-Premise", show=False): +with Diagram("Advanced Web Service with On-Premises", show=False): ingress = Nginx("ingress") metrics = Prometheus("metric") diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md index 90f6be8..f38b524 100644 --- a/docs/getting-started/installation.md +++ b/docs/getting-started/installation.md @@ -3,11 +3,13 @@ id: installation title: Installation --- -It requires **Python 3.6** or higher, check your Python version first. +**diagrams** 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**. +**diagrams** uses [Graphviz](https://www.graphviz.org/) to render the diagram, so you need to [install Graphviz](https://graphviz.gitlab.io/download/) to use it. -> macOS users can download the Graphviz via `brew install graphviz` if you're using [Homebrew](https://brew.sh). Similarly, Windows users with [Chocolatey](https://chocolatey.org) installed can run `choco install graphviz`. +> macOS users using [Homebrew](https://brew.sh) can install Graphviz via `brew install graphviz` . Similarly, Windows users with [Chocolatey](https://chocolatey.org) installed can run `choco install graphviz`. + +After installing Graphviz (or if you already have it), install **diagrams**: ```shell # using pip (pip3) @@ -33,16 +35,18 @@ with Diagram("Web Service", show=False): ELB("lb") >> EC2("web") >> RDS("userdb") ``` -This code generates below diagram. +To generate the diagram, run: ```shell $ python diagram.py ``` +This generates the diagram below: + ![web service diagram](/img/web_service_diagram.png) -It will be saved as `web_service.png` on your working directory. +It will be saved as `web_service.png` in your working directory. ## Next -See more [Examples](/docs/getting-started/examples) or see [Guides](/docs/guides/diagram) page for more details. +See more [Examples](/docs/getting-started/examples) or see the [Guides](/docs/guides/diagram) page for more details. diff --git a/docs/guides/cluster.md b/docs/guides/cluster.md index f4b55b2..b24bb44 100644 --- a/docs/guides/cluster.md +++ b/docs/guides/cluster.md @@ -3,13 +3,13 @@ id: cluster title: Clusters --- -Cluster allows you group (or clustering) the nodes in an isolated group. +`Cluster` allows you to group (or cluster) nodes in an isolated group. ## Basic -Cluster represents a local cluster context. +`Cluster` represents a local cluster context. -You can create a cluster context with Cluster class. And you can also connect the nodes in a cluster to other nodes outside a cluster. +You can create a cluster context using the `Cluster` class. You can also connect the nodes in a cluster to other nodes outside a cluster. ```python from diagrams import Cluster, Diagram @@ -33,7 +33,7 @@ with Diagram("Simple Web Service with DB Cluster", show=False): ## Nested Clusters -Nested clustering is also possible. +Nested clustering is also possible: ```python from diagrams import Cluster, Diagram @@ -68,4 +68,4 @@ with Diagram("Event Processing", show=False): ![event processing diagram](/img/event_processing_diagram.png) -> There is no depth limit of nesting. Feel free to create nested clusters as deep as you want. +> There is no depth limit to nesting. Feel free to create nested clusters as deep as you want. diff --git a/docs/guides/diagram.md b/docs/guides/diagram.md index de7f59c..9d71e98 100644 --- a/docs/guides/diagram.md +++ b/docs/guides/diagram.md @@ -3,13 +3,13 @@ id: diagram title: Diagrams --- -Diagram is a primary object representing a diagram. +`Diagram` is a primary object representing a diagram. ## Basic -Diagram represents a global diagram context. +`Diagram` represents a global diagram context. -You can create a diagram context with Diagram class. The first parameter of Diagram constructor will be used for output filename. +You can create a diagram context with the `Diagram` class. The first parameter of the `Diagram` constructor will be used to generate the output filename. ```python from diagrams import Diagram @@ -19,17 +19,17 @@ with Diagram("Simple Diagram"): EC2("web") ``` -And if you run the above script with below command, +If you run the above script with the command below, ```shell $ python diagram.py ``` -It will generate an image file with single `EC2` node drawn as `simple_diagram.png` on your working directory, and open that created image file immediately. +it will generate an image file with single `EC2` node drawn as `simple_diagram.png` in your working directory and open that created image file immediately. ## Jupyter Notebooks -Diagrams can be also rendered directly inside the notebook as like this: +Diagrams can also be rendered directly inside Jupyter notebooks like this: ```python from diagrams import Diagram @@ -42,9 +42,9 @@ diag ## Options -You can specify the output file format with `outformat` parameter. Default is **png**. +You can specify the output file format with the `outformat` parameter. The default is **png**. -> (png, jpg, svg, pdf and dot) are allowed. +> Allowed formats are: png, jpg, svg, pdf, and dot ```python from diagrams import Diagram @@ -54,7 +54,7 @@ with Diagram("Simple Diagram", outformat="jpg"): EC2("web") ``` -The `outformat` parameter also support list to output all the defined output in one call. +The `outformat` parameter also supports a list to output all the defined outputs in one call: ```python from diagrams import Diagram @@ -64,7 +64,7 @@ with Diagram("Simple Diagram Multi Output", outformat=["jpg", "png", "dot"]): EC2("web") ``` -You can specify the output filename with `filename` parameter. The extension shouldn't be included, it's determined by the `outformat` parameter. +You can specify the output filename with the `filename` parameter. The extension shouldn't be included, it's determined by the `outformat` parameter. ```python from diagrams import Diagram @@ -74,7 +74,7 @@ with Diagram("Simple Diagram", filename="my_diagram"): EC2("web") ``` -You can also disable the automatic file opening by setting the `show` parameter as **false**. Default is **true**. +You can also disable the automatic file opening by setting the `show` parameter to **false**. The default is **true**. ```python from diagrams import Diagram @@ -84,7 +84,7 @@ with Diagram("Simple Diagram", show=False): EC2("web") ``` -It allows custom Graphviz dot attributes options. +Diagrams also allow custom Graphviz dot attributes options. > `graph_attr`, `node_attr` and `edge_attr` are supported. Here is a [reference link](https://www.graphviz.org/doc/info/attrs.html). diff --git a/docs/guides/edge.md b/docs/guides/edge.md index 622ef95..befee71 100644 --- a/docs/guides/edge.md +++ b/docs/guides/edge.md @@ -3,13 +3,13 @@ id: edge title: Edges --- -Edge is representing an edge between Nodes. +`Edge` represents an edge between nodes. ## Basic -Edge is an object representing a connection between Nodes with some additional properties. +`Edge` is an object representing a connection between nodes with some additional properties. -An edge object contains three attributes: **label**, **color** and **style** which mirror corresponding graphviz edge attributes. +An edge object contains three attributes: **label**, **color**, and **style**. They mirror the corresponding Graphviz edge attributes. ```python from diagrams import Cluster, Diagram, Edge @@ -22,7 +22,7 @@ from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka -with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False): +with Diagram(name="Advanced Web Service with On-Premises (colored)", show=False): ingress = Nginx("ingress") metrics = Prometheus("metric") @@ -66,4 +66,4 @@ with Diagram(name="Advanced Web Service with On-Premise (colored)", show=False): >> aggregator ``` -![advanced web service with on-premise diagram colored](/img/advanced_web_service_with_on-premise_colored.png) +![advanced web service with on-premises diagram colored](/img/advanced_web_service_with_on-premises_colored.png) diff --git a/docs/guides/node.md b/docs/guides/node.md index f0f524a..462440a 100644 --- a/docs/guides/node.md +++ b/docs/guides/node.md @@ -3,11 +3,11 @@ id: node title: Nodes --- -Node is a second object representing a node or system component. +`Node` is an object representing a node or system component. ## Basic -Node is an abstract concept that represents a single system component object. +`Node` is an abstract concept that represents a single system component object. A node object consists of three parts: **provider**, **resource type** and **name**. You may already have seen each part in the previous example. @@ -19,9 +19,9 @@ with Diagram("Simple Diagram"): EC2("web") ``` -In above example, the `EC2` is a node of `compute` resource type which provided by `aws` provider. +In the example above, the `EC2` is a node of resource type `compute` which is provided by the `aws` provider. -You can use other node objects in a similar manner like: +You can use other node objects in a similar manner: ```python # aws resources @@ -42,7 +42,7 @@ from diagrams.alibabacloud.storage import ObjectTableStore # gcp resources from diagrams.gcp.compute import AppEngine, GKE -from diagrams.gcp.ml import AutoML +from diagrams.gcp.ml import AutoML ... # k8s resources @@ -57,15 +57,17 @@ from diagrams.oci.network import Firewall from diagrams.oci.storage import FileStorage, StorageGateway ``` -You can find all available nodes list in [Here](https://diagrams.mingrammer.com/docs/nodes/aws). +You can find lists of all available nodes for each provider in the sidebar on the left. + +For example, [here](https://diagrams.mingrammer.com/docs/nodes/aws) is the list of all available AWS nodes. ## Data Flow -You can represent data flow by connecting the nodes with these operators: `>>`, `<<` and `-`. +You can represent data flow by connecting the nodes with the operators `>>`, `<<`, and `-`. -* **>>**: Connect nodes in left to right direction. -* **<<**: Connect nodes in right to left direction. -* **-**: Connect nodes in no direction. Undirected. +- **>>** connects nodes in left to right direction. +- **<<** connects nodes in right to left direction. +- **-** connects nodes in no direction. Undirected. ```python from diagrams import Diagram @@ -80,15 +82,15 @@ with Diagram("Web Services", show=False): (ELB("lb") >> EC2("web")) - EC2("web") >> RDS("userdb") ``` -> Be careful when using the `-` and any shift operators together, which could cause unexpected results due to operator precedence. +> Be careful when using `-` and any shift operators together. It can cause unexpected results due to Python's operator precedence, so you might have to use parentheses. ![web services diagram](/img/web_services_diagram.png) > The order of rendered diagrams is the reverse of the declaration order. -You can change the data flow direction with `direction` parameter. Default is **LR**. +You can change the data flow direction with the `direction` parameter. The default is **LR**. -> (TB, BT, LR and RL) are allowed. +> Allowed values are: TB, BT, LR, and RL ```python from diagrams import Diagram @@ -110,7 +112,7 @@ with Diagram("Workers", show=False, direction="TB"): ## Group Data Flow -Above worker example has too many redundant flows. In this case, you can group nodes into a list so that all nodes are connected to other nodes at once. +The above worker example has too many redundant flows. To avoid this, you can group nodes into a list so that all nodes are connected to other nodes at once: ```python from diagrams import Diagram diff --git a/docs/nodes/alibabacloud.md b/docs/nodes/alibabacloud.md index 649bdd4..a274473 100644 --- a/docs/nodes/alibabacloud.md +++ b/docs/nodes/alibabacloud.md @@ -3,7 +3,7 @@ id: alibabacloud title: AlibabaCloud --- -Node classes list of alibabacloud provider. +Node classes list of the alibabacloud provider. ## alibabacloud.analytics diff --git a/docs/nodes/aws.md b/docs/nodes/aws.md index 8f68961..cf9e2cf 100644 --- a/docs/nodes/aws.md +++ b/docs/nodes/aws.md @@ -3,11 +3,14 @@ id: aws title: AWS --- -Node classes list of aws provider. +Node classes list of the aws provider. ## aws.analytics +AmazonOpensearchService +**diagrams.aws.analytics.AmazonOpensearchService** + Analytics **diagrams.aws.analytics.Analytics** @@ -389,6 +392,9 @@ Node classes list of aws provider. Cloud9 **diagrams.aws.devtools.Cloud9** +Codeartifact +**diagrams.aws.devtools.Codeartifact** + Codebuild **diagrams.aws.devtools.Codebuild** @@ -800,6 +806,18 @@ Node classes list of aws provider. ## aws.management +AmazonDevopsGuru +**diagrams.aws.management.AmazonDevopsGuru** + +AmazonManagedGrafana +**diagrams.aws.management.AmazonManagedGrafana** + +AmazonManagedPrometheus +**diagrams.aws.management.AmazonManagedPrometheus** + +AmazonManagedWorkflowsApacheAirflow +**diagrams.aws.management.AmazonManagedWorkflowsApacheAirflow** + AutoScaling **diagrams.aws.management.AutoScaling** @@ -899,9 +917,15 @@ Node classes list of aws provider. PersonalHealthDashboard **diagrams.aws.management.PersonalHealthDashboard** +Proton +**diagrams.aws.management.Proton** + ServiceCatalog **diagrams.aws.management.ServiceCatalog** +SystemsManagerAppConfig +**diagrams.aws.management.SystemsManagerAppConfig** + SystemsManagerAutomation **diagrams.aws.management.SystemsManagerAutomation** @@ -1205,6 +1229,9 @@ Node classes list of aws provider. NATGateway **diagrams.aws.network.NATGateway** +NetworkFirewall +**diagrams.aws.network.NetworkFirewall** + NetworkingAndContentDelivery **diagrams.aws.network.NetworkingAndContentDelivery** diff --git a/docs/nodes/azure.md b/docs/nodes/azure.md index 6a0926c..875471e 100644 --- a/docs/nodes/azure.md +++ b/docs/nodes/azure.md @@ -3,7 +3,7 @@ id: azure title: Azure --- -Node classes list of azure provider. +Node classes list of the azure provider. ## azure.analytics @@ -488,6 +488,12 @@ Node classes list of azure provider. ## azure.ml +AzureOpenAI +**diagrams.azure.ml.AzureOpenAI** + +AzureSpeedToText +**diagrams.azure.ml.AzureSpeedToText** + BatchAI **diagrams.azure.ml.BatchAI** @@ -524,6 +530,21 @@ Node classes list of azure provider. NotificationHubs **diagrams.azure.mobile.NotificationHubs** +## azure.monitor + + +ChangeAnalysis +**diagrams.azure.monitor.ChangeAnalysis** + +Logs +**diagrams.azure.monitor.Logs** + +Metrics +**diagrams.azure.monitor.Metrics** + +Monitor +**diagrams.azure.monitor.Monitor** + ## azure.network diff --git a/docs/nodes/digitalocean.md b/docs/nodes/digitalocean.md index 9377933..c29118c 100644 --- a/docs/nodes/digitalocean.md +++ b/docs/nodes/digitalocean.md @@ -3,7 +3,7 @@ id: digitalocean title: DigitalOcean --- -Node classes list of digitalocean provider. +Node classes list of the digitalocean provider. ## digitalocean.compute diff --git a/docs/nodes/elastic.md b/docs/nodes/elastic.md index bc1c964..8c1212d 100644 --- a/docs/nodes/elastic.md +++ b/docs/nodes/elastic.md @@ -3,7 +3,7 @@ id: elastic title: Elastic --- -Node classes list of elastic provider. +Node classes list of the elastic provider. ## elastic.agent diff --git a/docs/nodes/firebase.md b/docs/nodes/firebase.md index 69d2292..15c4582 100644 --- a/docs/nodes/firebase.md +++ b/docs/nodes/firebase.md @@ -3,7 +3,7 @@ id: firebase title: Firebase --- -Node classes list of firebase provider. +Node classes list of the firebase provider. ## firebase.base diff --git a/docs/nodes/gcp.md b/docs/nodes/gcp.md index a47f802..800489d 100644 --- a/docs/nodes/gcp.md +++ b/docs/nodes/gcp.md @@ -3,7 +3,7 @@ id: gcp title: GCP --- -Node classes list of gcp provider. +Node classes list of the gcp provider. ## gcp.analytics diff --git a/docs/nodes/generic.md b/docs/nodes/generic.md index 5bab8cf..054164b 100644 --- a/docs/nodes/generic.md +++ b/docs/nodes/generic.md @@ -3,7 +3,7 @@ id: generic title: Generic --- -Node classes list of generic provider. +Node classes list of the generic provider. ## generic.blank diff --git a/docs/nodes/ibm.md b/docs/nodes/ibm.md index 33daf60..1bb3068 100644 --- a/docs/nodes/ibm.md +++ b/docs/nodes/ibm.md @@ -3,7 +3,7 @@ id: ibm title: IBM --- -Node classes list of ibm provider. +Node classes list of the ibm provider. ## ibm.analytics diff --git a/docs/nodes/k8s.md b/docs/nodes/k8s.md index f36d1bb..3459d9e 100644 --- a/docs/nodes/k8s.md +++ b/docs/nodes/k8s.md @@ -3,7 +3,7 @@ id: k8s title: K8S --- -Node classes list of k8s provider. +Node classes list of the k8s provider. ## k8s.chaos diff --git a/docs/nodes/oci.md b/docs/nodes/oci.md index d75d92b..2d0c6fa 100644 --- a/docs/nodes/oci.md +++ b/docs/nodes/oci.md @@ -3,7 +3,7 @@ id: oci title: OCI --- -Node classes list of oci provider. +Node classes list of the oci provider. ## oci.compute @@ -77,11 +77,11 @@ Node classes list of oci provider. CustomerDatacntrWhite **diagrams.oci.connectivity.CustomerDatacntrWhite** -CustomerPremiseWhite -**diagrams.oci.connectivity.CustomerPremiseWhite** +CustomerPremisesWhite +**diagrams.oci.connectivity.CustomerPremisesWhite** -CustomerPremise -**diagrams.oci.connectivity.CustomerPremise** +CustomerPremises +**diagrams.oci.connectivity.CustomerPremises** DisconnectedRegionsWhite **diagrams.oci.connectivity.DisconnectedRegionsWhite** diff --git a/docs/nodes/onprem.md b/docs/nodes/onprem.md index c7a7f01..149ebf9 100644 --- a/docs/nodes/onprem.md +++ b/docs/nodes/onprem.md @@ -3,7 +3,7 @@ id: onprem title: OnPrem --- -Node classes list of onprem provider. +Node classes list of the onprem provider. ## onprem.aggregator @@ -437,6 +437,9 @@ Node classes list of onprem provider. Linkerd **diagrams.onprem.network.Linkerd** +Mikrotik +**diagrams.onprem.network.Mikrotik** + Nginx **diagrams.onprem.network.Nginx** diff --git a/docs/nodes/openstack.md b/docs/nodes/openstack.md index c2ca7ab..c88727a 100644 --- a/docs/nodes/openstack.md +++ b/docs/nodes/openstack.md @@ -3,7 +3,7 @@ id: openstack title: OpenStack --- -Node classes list of openstack provider. +Node classes list of the openstack provider. ## openstack.apiproxies diff --git a/docs/nodes/outscale.md b/docs/nodes/outscale.md index 7619f11..34a25c1 100644 --- a/docs/nodes/outscale.md +++ b/docs/nodes/outscale.md @@ -3,7 +3,7 @@ id: outscale title: Outscale --- -Node classes list of outscale provider. +Node classes list of the outscale provider. ## outscale.compute diff --git a/docs/nodes/programming.md b/docs/nodes/programming.md index 5607af9..7e17589 100644 --- a/docs/nodes/programming.md +++ b/docs/nodes/programming.md @@ -3,7 +3,7 @@ id: programming title: Programming --- -Node classes list of programming provider. +Node classes list of the programming provider. ## programming.flowchart @@ -89,9 +89,15 @@ Node classes list of programming provider. Backbone **diagrams.programming.framework.Backbone** +Camel +**diagrams.programming.framework.Camel** + Django **diagrams.programming.framework.Django** +Dotnet +**diagrams.programming.framework.Dotnet**, **DotNet** (alias) + Ember **diagrams.programming.framework.Ember** @@ -107,12 +113,21 @@ Node classes list of programming provider. Graphql **diagrams.programming.framework.Graphql**, **GraphQL** (alias) +Hibernate +**diagrams.programming.framework.Hibernate** + +Jhipster +**diagrams.programming.framework.Jhipster**, **JHipster** (alias) + Laravel **diagrams.programming.framework.Laravel** Micronaut **diagrams.programming.framework.Micronaut** +Nextjs +**diagrams.programming.framework.Nextjs**, **NextJs** (alias) + Phoenix **diagrams.programming.framework.Phoenix** @@ -134,6 +149,9 @@ Node classes list of programming provider. Svelte **diagrams.programming.framework.Svelte** +Vercel +**diagrams.programming.framework.Vercel** + Vue **diagrams.programming.framework.Vue** diff --git a/docs/nodes/saas.md b/docs/nodes/saas.md index 3bed3f3..a44702c 100644 --- a/docs/nodes/saas.md +++ b/docs/nodes/saas.md @@ -3,7 +3,7 @@ id: saas title: Saas --- -Node classes list of saas provider. +Node classes list of the saas provider. ## saas.alerting diff --git a/poetry.lock b/poetry.lock index 3c271de..02f04d8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,180 +1,169 @@ -# This file is automatically @generated by Poetry and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand. [[package]] name = "astroid" -version = "2.9.0" +version = "3.2.4" description = "An abstract syntax tree for Python with inference support." -category = "dev" optional = false -python-versions = "~=3.6" +python-versions = ">=3.8.0" files = [ - {file = "astroid-2.9.0-py3-none-any.whl", hash = "sha256:776ca0b748b4ad69c00bfe0fff38fa2d21c338e12c84aa9715ee0d473c422778"}, - {file = "astroid-2.9.0.tar.gz", hash = "sha256:5939cf55de24b92bda00345d4d0659d01b3c7dafb5055165c330bc7c568ba273"}, + {file = "astroid-3.2.4-py3-none-any.whl", hash = "sha256:413658a61eeca6202a59231abb473f932038fbcbf1666587f66d482083413a25"}, + {file = "astroid-3.2.4.tar.gz", hash = "sha256:0e14202810b30da1b735827f78f5157be2bbd4a7a59b7707ca0bfc2fb4c0063a"}, ] [package.dependencies] -lazy-object-proxy = ">=1.4.0" -setuptools = ">=20.0" -typed-ast = {version = ">=1.4.0,<2.0", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""} -typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""} -wrapt = ">=1.11,<1.14" +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.11\""} [[package]] name = "black" -version = "22.12.0" +version = "24.8.0" description = "The uncompromising code formatter." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "black-22.12.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eedd20838bd5d75b80c9f5487dbcb06836a43833a37846cf1d8c1cc01cef59d"}, - {file = "black-22.12.0-cp310-cp310-win_amd64.whl", hash = "sha256:159a46a4947f73387b4d83e87ea006dbb2337eab6c879620a3ba52699b1f4351"}, - {file = "black-22.12.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d30b212bffeb1e252b31dd269dfae69dd17e06d92b87ad26e23890f3efea366f"}, - {file = "black-22.12.0-cp311-cp311-win_amd64.whl", hash = "sha256:7412e75863aa5c5411886804678b7d083c7c28421210180d67dfd8cf1221e1f4"}, - {file = "black-22.12.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c116eed0efb9ff870ded8b62fe9f28dd61ef6e9ddd28d83d7d264a38417dcee2"}, - {file = "black-22.12.0-cp37-cp37m-win_amd64.whl", hash = "sha256:1f58cbe16dfe8c12b7434e50ff889fa479072096d79f0a7f25e4ab8e94cd8350"}, - {file = "black-22.12.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77d86c9f3db9b1bf6761244bc0b3572a546f5fe37917a044e02f3166d5aafa7d"}, - {file = "black-22.12.0-cp38-cp38-win_amd64.whl", hash = "sha256:82d9fe8fee3401e02e79767016b4907820a7dc28d70d137eb397b92ef3cc5bfc"}, - {file = "black-22.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:101c69b23df9b44247bd88e1d7e90154336ac4992502d4197bdac35dd7ee3320"}, - {file = "black-22.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:559c7a1ba9a006226f09e4916060982fd27334ae1998e7a38b3f33a37f7a2148"}, - {file = "black-22.12.0-py3-none-any.whl", hash = "sha256:436cc9167dd28040ad90d3b404aec22cedf24a6e4d7de221bec2730ec0c97bcf"}, - {file = "black-22.12.0.tar.gz", hash = "sha256:229351e5a18ca30f447bf724d007f890f97e13af070bb6ad4c0a441cd7596a2f"}, + {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, + {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, + {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"}, + {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"}, + {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"}, + {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"}, + {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"}, + {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"}, + {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"}, + {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"}, + {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"}, + {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"}, + {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"}, + {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"}, + {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"}, + {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"}, + {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"}, + {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"}, + {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"}, + {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"}, + {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"}, + {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"}, ] [package.dependencies] click = ">=8.0.0" mypy-extensions = ">=0.4.3" +packaging = ">=22.0" pathspec = ">=0.9.0" platformdirs = ">=2" -tomli = {version = ">=1.1.0", markers = "python_full_version < \"3.11.0a7\""} -typed-ast = {version = ">=1.4.2", markers = "python_version < \"3.8\" and implementation_name == \"cpython\""} -typing-extensions = {version = ">=3.10.0.0", markers = "python_version < \"3.10\""} +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""} [package.extras] colorama = ["colorama (>=0.4.3)"] -d = ["aiohttp (>=3.7.4)"] +d = ["aiohttp (>=3.7.4)", "aiohttp (>=3.7.4,!=3.9.0)"] jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"] uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" -category = "dev" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} [[package]] name = "colorama" -version = "0.4.3" +version = "0.4.6" description = "Cross-platform colored terminal text." -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ - {file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"}, - {file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"}, + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] [[package]] -name = "exceptiongroup" -version = "1.1.0" -description = "Backport of PEP 654 (exception groups)" -category = "dev" +name = "dill" +version = "0.3.9" +description = "serialize all of Python" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"}, - {file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"}, + {file = "dill-0.3.9-py3-none-any.whl", hash = "sha256:468dff3b89520b474c0397703366b7b95eebe6303f108adf9b19da1f702be87a"}, + {file = "dill-0.3.9.tar.gz", hash = "sha256:81aa267dddf68cbfe8029c42ca9ec6a4ab3b22371d1c450abc54422577b4512c"}, ] [package.extras] -test = ["pytest (>=6)"] +graph = ["objgraph (>=1.7.2)"] +profile = ["gprof2dot (>=2022.7.29)"] [[package]] -name = "graphviz" -version = "0.20.1" -description = "Simple Python interface for Graphviz" -category = "main" +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" files = [ - {file = "graphviz-0.20.1-py3-none-any.whl", hash = "sha256:587c58a223b51611c0cf461132da386edd896a029524ca61a1462b880bf97977"}, - {file = "graphviz-0.20.1.zip", hash = "sha256:8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] -dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"] -docs = ["sphinx (>=5)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"] -test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>=3)"] +test = ["pytest (>=6)"] [[package]] -name = "importlib-metadata" -version = "1.5.0" -description = "Read metadata from Python packages" -category = "dev" +name = "graphviz" +version = "0.20.3" +description = "Simple Python interface for Graphviz" optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7" +python-versions = ">=3.8" files = [ - {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"}, + {file = "graphviz-0.20.3-py3-none-any.whl", hash = "sha256:81f848f2904515d8cd359cc611faba817598d2feaac4027b266aa3eda7b3dde5"}, + {file = "graphviz-0.20.3.zip", hash = "sha256:09d6bc81e6a9fa392e7ba52135a9d49f1ed62526f96499325930e87ca1b5925d"}, ] -[package.dependencies] -zipp = ">=0.5" - [package.extras] -docs = ["rst.linker", "sphinx"] -testing = ["importlib-resources", "packaging"] +dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"] +docs = ["sphinx (>=5,<7)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"] +test = ["coverage", "pytest (>=7,<8.1)", "pytest-cov", "pytest-mock (>=3)"] [[package]] name = "iniconfig" -version = "1.1.1" -description = "iniconfig: brain-dead simple config-ini parsing" -category = "dev" +version = "2.0.0" +description = "brain-dead simple config-ini parsing" optional = false -python-versions = "*" +python-versions = ">=3.7" files = [ - {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"}, - {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"}, + {file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"}, + {file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"}, ] [[package]] name = "isort" -version = "4.3.21" +version = "5.13.2" 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.*" +python-versions = ">=3.8.0" files = [ - {file = "isort-4.3.21-py2.py3-none-any.whl", hash = "sha256:6e811fcb295968434526407adb8796944f1988c5b65e8139058f2014cbe100fd"}, - {file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"}, + {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, + {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, ] [package.extras] -pipfile = ["pipreqs", "requirementslib"] -pyproject = ["toml"] -requirements = ["pip-api", "pipreqs"] -xdg-home = ["appdirs (>=1.4.0)"] +colors = ["colorama (>=0.4.6)"] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.4" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -184,384 +173,276 @@ MarkupSafe = ">=2.0" i18n = ["Babel (>=2.7)"] [[package]] -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.*" -files = [ - {file = "lazy-object-proxy-1.4.3.tar.gz", hash = "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"}, - {file = "lazy_object_proxy-1.4.3-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442"}, - {file = "lazy_object_proxy-1.4.3-cp27-cp27m-win32.whl", hash = "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4"}, - {file = "lazy_object_proxy-1.4.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a"}, - {file = "lazy_object_proxy-1.4.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d"}, - {file = "lazy_object_proxy-1.4.3-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a"}, - {file = "lazy_object_proxy-1.4.3-cp34-cp34m-win32.whl", hash = "sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e"}, - {file = "lazy_object_proxy-1.4.3-cp34-cp34m-win_amd64.whl", hash = "sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357"}, - {file = "lazy_object_proxy-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50"}, - {file = "lazy_object_proxy-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db"}, - {file = "lazy_object_proxy-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449"}, - {file = "lazy_object_proxy-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156"}, - {file = "lazy_object_proxy-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531"}, - {file = "lazy_object_proxy-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb"}, - {file = "lazy_object_proxy-1.4.3-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08"}, - {file = "lazy_object_proxy-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383"}, - {file = "lazy_object_proxy-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142"}, - {file = "lazy_object_proxy-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea"}, - {file = "lazy_object_proxy-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62"}, - {file = "lazy_object_proxy-1.4.3-cp38-cp38-win32.whl", hash = "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd"}, - {file = "lazy_object_proxy-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239"}, -] - -[[package]] name = "markupsafe" -version = "2.0.1" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win32.whl", hash = "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28"}, - {file = "MarkupSafe-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win32.whl", hash = "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d"}, - {file = "MarkupSafe-2.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win32.whl", hash = "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415"}, - {file = "MarkupSafe-2.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win32.whl", hash = "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64"}, - {file = "MarkupSafe-2.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win32.whl", hash = "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74"}, - {file = "MarkupSafe-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8"}, - {file = "MarkupSafe-2.0.1.tar.gz", hash = "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "mccabe" -version = "0.6.1" +version = "0.7.0" description = "McCabe checker, plugin for flake8" -category = "dev" optional = false -python-versions = "*" +python-versions = ">=3.6" files = [ - {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"}, - {file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"}, + {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"}, + {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"}, ] [[package]] name = "mypy-extensions" -version = "0.4.3" -description = "Experimental type system extensions for programs checked with the mypy typechecker." -category = "dev" +version = "1.0.0" +description = "Type system extensions for programs checked with the mypy type checker." optional = false -python-versions = "*" +python-versions = ">=3.5" files = [ - {file = "mypy_extensions-0.4.3-py2.py3-none-any.whl", hash = "sha256:090fedd75945a69ae91ce1303b5824f428daf5a028d2f6ab8a299250a846f15d"}, - {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"}, + {file = "mypy_extensions-1.0.0-py3-none-any.whl", hash = "sha256:4392f6c0eb8a5668a69e23d168ffa70f0be9ccfd32b5cc2d26a34ae5b844552d"}, + {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] [[package]] name = "packaging" -version = "20.8" +version = "24.1" description = "Core utilities for Python packages" -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"}, - {file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] -[package.dependencies] -pyparsing = ">=2.0.2" - [[package]] name = "pathspec" -version = "0.10.1" +version = "0.12.1" description = "Utility library for gitignore style pattern matching of file paths." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pathspec-0.10.1-py3-none-any.whl", hash = "sha256:46846318467efc4556ccfd27816e004270a9eeeeb4d062ce5e6fc7a87c573f93"}, - {file = "pathspec-0.10.1.tar.gz", hash = "sha256:7ace6161b621d31e7902eb6b5ae148d12cfd23f4a249b9ffb6b9fee12084323d"}, + {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"}, + {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"}, ] [[package]] name = "platformdirs" -version = "2.4.0" -description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -category = "dev" +version = "4.3.6" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "platformdirs-2.4.0-py3-none-any.whl", hash = "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"}, - {file = "platformdirs-2.4.0.tar.gz", hash = "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2"}, + {file = "platformdirs-4.3.6-py3-none-any.whl", hash = "sha256:73e575e1408ab8103900836b97580d5307456908a03e92031bab39e4554cc3fb"}, + {file = "platformdirs-4.3.6.tar.gz", hash = "sha256:357fb2acbc885b0419afd3ce3ed34564c13c9b95c89360cd9563f73aa5e2b907"}, ] [package.extras] -docs = ["Sphinx (>=4)", "furo (>=2021.7.5b38)", "proselint (>=0.10.2)", "sphinx-autodoc-typehints (>=1.12)"] -test = ["appdirs (==1.4.4)", "pytest (>=6)", "pytest-cov (>=2.7)", "pytest-mock (>=3.6)"] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.0.2)", "sphinx-autodoc-typehints (>=2.4)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.2)", "pytest-cov (>=5)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.11.2)"] [[package]] name = "pluggy" -version = "0.13.1" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" -category = "dev" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"}, - {file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] -[package.dependencies] -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} - [package.extras] dev = ["pre-commit", "tox"] +testing = ["pytest", "pytest-benchmark"] [[package]] name = "pylint" -version = "2.12.0" +version = "3.2.7" description = "python code static checker" -category = "dev" optional = false -python-versions = "~=3.6" +python-versions = ">=3.8.0" files = [ - {file = "pylint-2.12.0-py3-none-any.whl", hash = "sha256:ba00afcb1550bc217bbcb0eb76c10cb8335f7417a3323bdd980c29fb5b59f8d2"}, - {file = "pylint-2.12.0.tar.gz", hash = "sha256:245c87e5da54c35b623c21b35debf87d93b18bf9e0229515cc172d0b83d627cd"}, + {file = "pylint-3.2.7-py3-none-any.whl", hash = "sha256:02f4aedeac91be69fb3b4bea997ce580a4ac68ce58b89eaefeaf06749df73f4b"}, + {file = "pylint-3.2.7.tar.gz", hash = "sha256:1b7a721b575eaeaa7d39db076b6e7743c993ea44f57979127c517c6c572c803e"}, ] [package.dependencies] -astroid = ">=2.9.0,<2.10" -colorama = {version = "*", markers = "sys_platform == \"win32\""} -isort = ">=4.2.5,<6" -mccabe = ">=0.6,<0.7" +astroid = ">=3.2.4,<=3.3.0-dev0" +colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} +dill = [ + {version = ">=0.2", markers = "python_version < \"3.11\""}, + {version = ">=0.3.7", markers = "python_version >= \"3.12\""}, + {version = ">=0.3.6", markers = "python_version >= \"3.11\" and python_version < \"3.12\""}, +] +isort = ">=4.2.5,<5.13.0 || >5.13.0,<6" +mccabe = ">=0.6,<0.8" platformdirs = ">=2.2.0" -toml = ">=0.9.2" +tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} +tomlkit = ">=0.10.1" typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} -[[package]] -name = "pyparsing" -version = "2.4.7" -description = "Python parsing module" -category = "dev" -optional = false -python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"}, - {file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"}, -] +[package.extras] +spelling = ["pyenchant (>=3.2,<4.0)"] +testutils = ["gitpython (>3)"] [[package]] name = "pytest" -version = "7.3.0" +version = "8.3.3" description = "pytest: simple powerful testing with Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.3.0-py3-none-any.whl", hash = "sha256:933051fa1bfbd38a21e73c3960cebdad4cf59483ddba7696c48509727e17f201"}, - {file = "pytest-7.3.0.tar.gz", hash = "sha256:58ecc27ebf0ea643ebfdf7fb1249335da761a00c9f955bcd922349bcb68ee57d"}, + {file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"}, + {file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"}, ] [package.dependencies] colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} -importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] -name = "rope" -version = "0.14.0" -description = "a python refactoring library..." -category = "dev" +name = "pytoolconfig" +version = "1.3.1" +description = "Python tool configuration" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "rope-0.14.0-py2-none-any.whl", hash = "sha256:6b728fdc3e98a83446c27a91fc5d56808a004f8beab7a31ab1d7224cecc7d969"}, - {file = "rope-0.14.0-py3-none-any.whl", hash = "sha256:f0dcf719b63200d492b85535ebe5ea9b29e0d0b8aebeb87fe03fc1a65924fdaf"}, - {file = "rope-0.14.0.tar.gz", hash = "sha256:c5c5a6a87f7b1a2095fb311135e2a3d1f194f5ecb96900fdd0a9100881f48aaf"}, + {file = "pytoolconfig-1.3.1-py3-none-any.whl", hash = "sha256:5d8cea8ae1996938ec3eaf44567bbc5ef1bc900742190c439a44a704d6e1b62b"}, + {file = "pytoolconfig-1.3.1.tar.gz", hash = "sha256:51e6bd1a6f108238ae6aab6a65e5eed5e75d456be1c2bf29b04e5c1e7d7adbae"}, ] -[[package]] -name = "setuptools" -version = "59.6.0" -description = "Easily download, build, install, upgrade, and uninstall Python packages" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "setuptools-59.6.0-py3-none-any.whl", hash = "sha256:4ce92f1e1f8f01233ee9952c04f6b81d1e02939d6e1b488428154974a4d0783e"}, - {file = "setuptools-59.6.0.tar.gz", hash = "sha256:22c7348c6d2976a52632c67f7ab0cdf40147db7789f9aed18734643fe9cf3373"}, -] +[package.dependencies] +packaging = ">=23.2" +platformdirs = {version = ">=3.11.0", optional = true, markers = "extra == \"global\""} +tomli = {version = ">=2.0.1", markers = "python_version < \"3.11\""} [package.extras] -docs = ["furo", "jaraco.packaging (>=8.2)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx", "sphinx-inline-tabs", "sphinxcontrib-towncrier"] -testing = ["flake8-2020", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "mock", "paver", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-flake8", "pytest-mypy", "pytest-virtualenv (>=1.2.7)", "pytest-xdist", "sphinx", "virtualenv (>=13.0.0)", "wheel"] +doc = ["sphinx (>=7.1.2)", "tabulate (>=0.9.0)"] +gendocs = ["pytoolconfig[doc]", "sphinx (>=7.1.2)", "sphinx-autodoc-typehints (>=1.25.2)", "sphinx-rtd-theme (>=2.0.0)"] +global = ["platformdirs (>=3.11.0)"] +validation = ["pydantic (>=2.5.3)"] [[package]] -name = "toml" -version = "0.10.0" -description = "Python Library for Tom's Obvious, Minimal Language" -category = "dev" +name = "rope" +version = "1.13.0" +description = "a python refactoring library..." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "toml-0.10.0-py2.py3-none-any.whl", hash = "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e"}, - {file = "toml-0.10.0.tar.gz", hash = "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c"}, + {file = "rope-1.13.0-py3-none-any.whl", hash = "sha256:b435a0c0971244fdcd8741676a9fae697ae614c20cc36003678a7782f25c0d6c"}, + {file = "rope-1.13.0.tar.gz", hash = "sha256:51437d2decc8806cd5e9dd1fd9c1306a6d9075ecaf78d191af85fc1dfface880"}, ] +[package.dependencies] +pytoolconfig = {version = ">=1.2.2", extras = ["global"]} + +[package.extras] +dev = ["build (>=0.7.0)", "pre-commit (>=2.20.0)", "pytest (>=7.0.1)", "pytest-cov (>=4.1.0)", "pytest-timeout (>=2.1.0)"] +doc = ["pytoolconfig[doc]", "sphinx (>=4.5.0)", "sphinx-autodoc-typehints (>=1.18.1)", "sphinx-rtd-theme (>=1.0.0)"] +release = ["pip-tools (>=6.12.1)", "toml (>=0.10.2)", "twine (>=4.0.2)"] + [[package]] name = "tomli" -version = "1.2.3" +version = "2.0.2" description = "A lil' TOML parser" -category = "dev" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "tomli-1.2.3-py3-none-any.whl", hash = "sha256:e3069e4be3ead9668e21cb9b074cd948f7b3113fd9c8bba083f48247aab8b11c"}, - {file = "tomli-1.2.3.tar.gz", hash = "sha256:05b6166bff487dc068d322585c7ea4ef78deed501cc124060e0f238e89a9231f"}, + {file = "tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38"}, + {file = "tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed"}, ] [[package]] -name = "typed-ast" -version = "1.5.4" -description = "a fork of Python 2 and 3 ast modules with type comment support" -category = "main" +name = "tomlkit" +version = "0.13.2" +description = "Style preserving TOML library" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "typed_ast-1.5.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:669dd0c4167f6f2cd9f57041e03c3c2ebf9063d0757dc89f79ba1daa2bfca9d4"}, - {file = "typed_ast-1.5.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:211260621ab1cd7324e0798d6be953d00b74e0428382991adfddb352252f1d62"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:267e3f78697a6c00c689c03db4876dd1efdfea2f251a5ad6555e82a26847b4ac"}, - {file = "typed_ast-1.5.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c542eeda69212fa10a7ada75e668876fdec5f856cd3d06829e6aa64ad17c8dfe"}, - {file = "typed_ast-1.5.4-cp310-cp310-win_amd64.whl", hash = "sha256:a9916d2bb8865f973824fb47436fa45e1ebf2efd920f2b9f99342cb7fab93f72"}, - {file = "typed_ast-1.5.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:79b1e0869db7c830ba6a981d58711c88b6677506e648496b1f64ac7d15633aec"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a94d55d142c9265f4ea46fab70977a1944ecae359ae867397757d836ea5a3f47"}, - {file = "typed_ast-1.5.4-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:183afdf0ec5b1b211724dfef3d2cad2d767cbefac291f24d69b00546c1837fb6"}, - {file = "typed_ast-1.5.4-cp36-cp36m-win_amd64.whl", hash = "sha256:639c5f0b21776605dd6c9dbe592d5228f021404dafd377e2b7ac046b0349b1a1"}, - {file = "typed_ast-1.5.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf4afcfac006ece570e32d6fa90ab74a17245b83dfd6655a6f68568098345ff6"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed855bbe3eb3715fca349c80174cfcfd699c2f9de574d40527b8429acae23a66"}, - {file = "typed_ast-1.5.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:6778e1b2f81dfc7bc58e4b259363b83d2e509a65198e85d5700dfae4c6c8ff1c"}, - {file = "typed_ast-1.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:0261195c2062caf107831e92a76764c81227dae162c4f75192c0d489faf751a2"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:2efae9db7a8c05ad5547d522e7dbe62c83d838d3906a3716d1478b6c1d61388d"}, - {file = "typed_ast-1.5.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7d5d014b7daa8b0bf2eaef684295acae12b036d79f54178b92a2b6a56f92278f"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:370788a63915e82fd6f212865a596a0fefcbb7d408bbbb13dea723d971ed8bdc"}, - {file = "typed_ast-1.5.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e964b4ff86550a7a7d56345c7864b18f403f5bd7380edf44a3c1fb4ee7ac6c6"}, - {file = "typed_ast-1.5.4-cp38-cp38-win_amd64.whl", hash = "sha256:683407d92dc953c8a7347119596f0b0e6c55eb98ebebd9b23437501b28dcbb8e"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4879da6c9b73443f97e731b617184a596ac1235fe91f98d279a7af36c796da35"}, - {file = "typed_ast-1.5.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3e123d878ba170397916557d31c8f589951e353cc95fb7f24f6bb69adc1a8a97"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ebd9d7f80ccf7a82ac5f88c521115cc55d84e35bf8b446fcd7836eb6b98929a3"}, - {file = "typed_ast-1.5.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:98f80dee3c03455e92796b58b98ff6ca0b2a6f652120c263efdba4d6c5e58f72"}, - {file = "typed_ast-1.5.4-cp39-cp39-win_amd64.whl", hash = "sha256:0fdbcf2fef0ca421a3f5912555804296f0b0960f0418c440f5d6d3abb549f3e1"}, - {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"}, + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] [[package]] name = "typing-extensions" -version = "4.1.1" -description = "Backported and Experimental Type Hints for Python 3.6+" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "typing_extensions-4.1.1-py3-none-any.whl", hash = "sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"}, - {file = "typing_extensions-4.1.1.tar.gz", hash = "sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42"}, -] - -[[package]] -name = "wrapt" -version = "1.11.2" -description = "Module for decorators, wrappers and monkey patching." -category = "dev" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "wrapt-1.11.2.tar.gz", hash = "sha256:565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] -[[package]] -name = "zipp" -version = "3.1.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -category = "dev" -optional = false -python-versions = ">=3.6" -files = [ - {file = "zipp-3.1.0-py3-none-any.whl", hash = "sha256:aa36550ff0c0b7ef7fa639055d797116ee891440eac1a56f378e2d3179e0320b"}, - {file = "zipp-3.1.0.tar.gz", hash = "sha256:c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96"}, -] - -[package.extras] -docs = ["jaraco.packaging (>=3.2)", "rst.linker (>=1.9)", "sphinx"] -testing = ["func-timeout", "jaraco.itertools"] - [metadata] lock-version = "2.0" -python-versions = "^3.7" -content-hash = "5c2b82d1c8a6a283f63558fc693271f42fdcaeab73616713eb9b38b0b59787fc" +python-versions = "^3.8" +content-hash = "03a0a3902229c2c740ab7cea26e79fa78d81d5faa90d35973ff5174b95be3abc" diff --git a/pyproject.toml b/pyproject.toml index 7b638a8..46957ee 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "diagrams" -version = "0.23.4" +version = "0.24.1" description = "Diagram as Code" license = "MIT" authors = ["mingrammer "] @@ -9,18 +9,21 @@ homepage = "https://diagrams.mingrammer.com" repository = "https://github.com/mingrammer/diagrams" include = ["resources/**/*"] +[tool.poetry.scripts] +diagrams="diagrams.cli:main" + [tool.poetry.dependencies] -python = "^3.7" +python = "^3.8" graphviz = ">=0.13.2,<0.21.0" jinja2 = ">=2.10,<4.0" -typed-ast = "^1.5.4" +typed-ast = {version="^1.5.5", markers="python_version<'3.8'"} [tool.poetry.dev-dependencies] -pytest = "^7.3" -pylint = "^2.7" -rope = "^0.14.0" -isort = "^4.3" -black = "^22.12.0" +pytest = "^8.2" +pylint = "^3.2" +rope = "^1.13" +isort = "^5.13" +black = "^24.4" [tool.black] -line-length = 120 +line-length=120 \ No newline at end of file diff --git a/resources/aws/analytics/amazon-opensearch-service.png b/resources/aws/analytics/amazon-opensearch-service.png new file mode 100644 index 0000000..e1d5a6a Binary files /dev/null and b/resources/aws/analytics/amazon-opensearch-service.png differ diff --git a/resources/aws/devtools/codeartifact.png b/resources/aws/devtools/codeartifact.png new file mode 100644 index 0000000..7c4f3f4 Binary files /dev/null and b/resources/aws/devtools/codeartifact.png differ diff --git a/resources/aws/management/amazon-devops-guru.png b/resources/aws/management/amazon-devops-guru.png new file mode 100644 index 0000000..f9129c1 Binary files /dev/null and b/resources/aws/management/amazon-devops-guru.png differ diff --git a/resources/aws/management/amazon-managed-grafana.png b/resources/aws/management/amazon-managed-grafana.png new file mode 100644 index 0000000..ba44d70 Binary files /dev/null and b/resources/aws/management/amazon-managed-grafana.png differ diff --git a/resources/aws/management/amazon-managed-prometheus.png b/resources/aws/management/amazon-managed-prometheus.png new file mode 100644 index 0000000..0cca037 Binary files /dev/null and b/resources/aws/management/amazon-managed-prometheus.png differ diff --git a/resources/aws/management/amazon-managed-workflows-apache-airflow.png b/resources/aws/management/amazon-managed-workflows-apache-airflow.png new file mode 100644 index 0000000..1b58424 Binary files /dev/null and b/resources/aws/management/amazon-managed-workflows-apache-airflow.png differ diff --git a/resources/aws/management/proton.png b/resources/aws/management/proton.png new file mode 100644 index 0000000..619191c Binary files /dev/null and b/resources/aws/management/proton.png differ diff --git a/resources/aws/management/systems-manager-app-config.png b/resources/aws/management/systems-manager-app-config.png new file mode 100644 index 0000000..a6087e5 Binary files /dev/null and b/resources/aws/management/systems-manager-app-config.png differ diff --git a/resources/aws/network/network-firewall.png b/resources/aws/network/network-firewall.png new file mode 100644 index 0000000..7535c28 Binary files /dev/null and b/resources/aws/network/network-firewall.png differ diff --git a/resources/azure/ml/azure-open-ai.png b/resources/azure/ml/azure-open-ai.png new file mode 100644 index 0000000..f617791 Binary files /dev/null and b/resources/azure/ml/azure-open-ai.png differ diff --git a/resources/azure/ml/azure-speed-to-text.png b/resources/azure/ml/azure-speed-to-text.png new file mode 100644 index 0000000..ca331f1 Binary files /dev/null and b/resources/azure/ml/azure-speed-to-text.png differ diff --git a/resources/azure/monitor/change-analysis.png b/resources/azure/monitor/change-analysis.png new file mode 100644 index 0000000..4d5c031 Binary files /dev/null and b/resources/azure/monitor/change-analysis.png differ diff --git a/resources/azure/monitor/logs.png b/resources/azure/monitor/logs.png new file mode 100644 index 0000000..2fe8997 Binary files /dev/null and b/resources/azure/monitor/logs.png differ diff --git a/resources/azure/monitor/metrics.png b/resources/azure/monitor/metrics.png new file mode 100644 index 0000000..b68f387 Binary files /dev/null and b/resources/azure/monitor/metrics.png differ diff --git a/resources/azure/monitor/monitor.png b/resources/azure/monitor/monitor.png new file mode 100644 index 0000000..ec03485 Binary files /dev/null and b/resources/azure/monitor/monitor.png differ diff --git a/resources/oci/connectivity/customer-premise-white.png b/resources/oci/connectivity/customer-premises-white.png similarity index 100% rename from resources/oci/connectivity/customer-premise-white.png rename to resources/oci/connectivity/customer-premises-white.png diff --git a/resources/oci/connectivity/customer-premise.png b/resources/oci/connectivity/customer-premises.png similarity index 100% rename from resources/oci/connectivity/customer-premise.png rename to resources/oci/connectivity/customer-premises.png diff --git a/resources/onprem/network/mikrotik.png b/resources/onprem/network/mikrotik.png new file mode 100644 index 0000000..515b685 Binary files /dev/null and b/resources/onprem/network/mikrotik.png differ diff --git a/resources/programming/framework/camel.png b/resources/programming/framework/camel.png new file mode 100644 index 0000000..f71ba15 Binary files /dev/null and b/resources/programming/framework/camel.png differ diff --git a/resources/programming/framework/dotnet.png b/resources/programming/framework/dotnet.png new file mode 100644 index 0000000..851e1b7 Binary files /dev/null and b/resources/programming/framework/dotnet.png differ diff --git a/resources/programming/framework/hibernate.png b/resources/programming/framework/hibernate.png new file mode 100644 index 0000000..35a6028 Binary files /dev/null and b/resources/programming/framework/hibernate.png differ diff --git a/resources/programming/framework/jhipster.png b/resources/programming/framework/jhipster.png new file mode 100644 index 0000000..cde8aa9 Binary files /dev/null and b/resources/programming/framework/jhipster.png differ diff --git a/resources/programming/framework/nextjs.png b/resources/programming/framework/nextjs.png new file mode 100644 index 0000000..3306955 Binary files /dev/null and b/resources/programming/framework/nextjs.png differ diff --git a/resources/programming/framework/vercel.png b/resources/programming/framework/vercel.png new file mode 100644 index 0000000..6277be3 Binary files /dev/null and b/resources/programming/framework/vercel.png differ diff --git a/resources/programming/language/elixir.png b/resources/programming/language/elixir.png index 86e7bdd..2ef4caf 100644 Binary files a/resources/programming/language/elixir.png and b/resources/programming/language/elixir.png differ diff --git a/resources/saas/security/sonarqube.png b/resources/saas/security/sonarqube.png new file mode 100644 index 0000000..b6070ae Binary files /dev/null and b/resources/saas/security/sonarqube.png differ diff --git a/scripts/__init__.py b/scripts/__init__.py index 81d3128..5f7fbe7 100644 --- a/scripts/__init__.py +++ b/scripts/__init__.py @@ -4,7 +4,7 @@ from pathlib import Path import config as cfg -def base_dir() -> str: +def base_dir() -> Path: return Path(os.path.abspath(os.path.dirname(__file__))).parent diff --git a/templates/apidoc.tmpl b/templates/apidoc.tmpl index f5fc323..75af3cf 100644 --- a/templates/apidoc.tmpl +++ b/templates/apidoc.tmpl @@ -3,7 +3,7 @@ id: {{ pvd }} title: {{ pvd|up_or_title(pvd) }} --- -Node classes list of {{ pvd }} provider. +Node classes list of the {{ pvd }} provider. {% for typ, classes in typ_classes.items() %} ## {{ pvd }}.{{ typ }} {% for class in classes %} diff --git a/website/pages/en/index.js b/website/pages/en/index.js index 690368a..34b711a 100644 --- a/website/pages/en/index.js +++ b/website/pages/en/index.js @@ -106,7 +106,7 @@ class Index extends React.Component { `Diagram as Code` allows you to **track** the architecture diagram changes in any **version control** system. - Diagrams currently supports main major providers including: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud`, `Oracle Cloud` etc... It also supports `On-Premise` nodes, `SaaS` and major `Programming` frameworks and languages. + Diagrams currently supports main major providers including: `AWS`, `Azure`, `GCP`, `Kubernetes`, `Alibaba Cloud`, `Oracle Cloud` etc... It also supports `On-Premises` nodes, `SaaS` and major `Programming` frameworks and languages. `NOTE: It does not control any actual cloud resources nor does it generate cloud formation or terraform code. It is just for drawing the cloud system architecture diagrams.` diff --git a/website/static/img/advanced_web_service_with_on-premise.png b/website/static/img/advanced_web_service_with_on-premises.png similarity index 100% rename from website/static/img/advanced_web_service_with_on-premise.png rename to website/static/img/advanced_web_service_with_on-premises.png diff --git a/website/static/img/advanced_web_service_with_on-premise_colored.png b/website/static/img/advanced_web_service_with_on-premises_colored.png similarity index 100% rename from website/static/img/advanced_web_service_with_on-premise_colored.png rename to website/static/img/advanced_web_service_with_on-premises_colored.png diff --git a/website/static/img/resources/aws/analytics/amazon-opensearch-service.png b/website/static/img/resources/aws/analytics/amazon-opensearch-service.png new file mode 100644 index 0000000..e1d5a6a Binary files /dev/null and b/website/static/img/resources/aws/analytics/amazon-opensearch-service.png differ diff --git a/website/static/img/resources/aws/analytics/opensearch.png b/website/static/img/resources/aws/analytics/opensearch.png new file mode 100644 index 0000000..e1d5a6a Binary files /dev/null and b/website/static/img/resources/aws/analytics/opensearch.png differ diff --git a/website/static/img/resources/aws/devtools/codeartifact.png b/website/static/img/resources/aws/devtools/codeartifact.png new file mode 100644 index 0000000..7c4f3f4 Binary files /dev/null and b/website/static/img/resources/aws/devtools/codeartifact.png differ diff --git a/website/static/img/resources/aws/management/amazon-devops-guru.png b/website/static/img/resources/aws/management/amazon-devops-guru.png new file mode 100644 index 0000000..f9129c1 Binary files /dev/null and b/website/static/img/resources/aws/management/amazon-devops-guru.png differ diff --git a/website/static/img/resources/aws/management/amazon-managed-grafana.png b/website/static/img/resources/aws/management/amazon-managed-grafana.png new file mode 100644 index 0000000..ba44d70 Binary files /dev/null and b/website/static/img/resources/aws/management/amazon-managed-grafana.png differ diff --git a/website/static/img/resources/aws/management/amazon-managed-prometheus.png b/website/static/img/resources/aws/management/amazon-managed-prometheus.png new file mode 100644 index 0000000..0cca037 Binary files /dev/null and b/website/static/img/resources/aws/management/amazon-managed-prometheus.png differ diff --git a/website/static/img/resources/aws/management/amazon-managed-workflows-apache-airflow.png b/website/static/img/resources/aws/management/amazon-managed-workflows-apache-airflow.png new file mode 100644 index 0000000..1b58424 Binary files /dev/null and b/website/static/img/resources/aws/management/amazon-managed-workflows-apache-airflow.png differ diff --git a/website/static/img/resources/aws/management/devops-guru.png b/website/static/img/resources/aws/management/devops-guru.png new file mode 100644 index 0000000..f9129c1 Binary files /dev/null and b/website/static/img/resources/aws/management/devops-guru.png differ diff --git a/website/static/img/resources/aws/management/proton.png b/website/static/img/resources/aws/management/proton.png new file mode 100644 index 0000000..619191c Binary files /dev/null and b/website/static/img/resources/aws/management/proton.png differ diff --git a/website/static/img/resources/aws/management/systems-manager-app-config.png b/website/static/img/resources/aws/management/systems-manager-app-config.png new file mode 100644 index 0000000..a6087e5 Binary files /dev/null and b/website/static/img/resources/aws/management/systems-manager-app-config.png differ diff --git a/website/static/img/resources/aws/network/network-firewall.png b/website/static/img/resources/aws/network/network-firewall.png new file mode 100644 index 0000000..7535c28 Binary files /dev/null and b/website/static/img/resources/aws/network/network-firewall.png differ diff --git a/website/static/img/resources/azure/ml/azure-open-ai.png b/website/static/img/resources/azure/ml/azure-open-ai.png new file mode 100644 index 0000000..f617791 Binary files /dev/null and b/website/static/img/resources/azure/ml/azure-open-ai.png differ diff --git a/website/static/img/resources/azure/ml/azure-speed-to-text.png b/website/static/img/resources/azure/ml/azure-speed-to-text.png new file mode 100644 index 0000000..ca331f1 Binary files /dev/null and b/website/static/img/resources/azure/ml/azure-speed-to-text.png differ diff --git a/website/static/img/resources/azure/monitor/change-analysis.png b/website/static/img/resources/azure/monitor/change-analysis.png new file mode 100644 index 0000000..4d5c031 Binary files /dev/null and b/website/static/img/resources/azure/monitor/change-analysis.png differ diff --git a/website/static/img/resources/azure/monitor/logs.png b/website/static/img/resources/azure/monitor/logs.png new file mode 100644 index 0000000..2fe8997 Binary files /dev/null and b/website/static/img/resources/azure/monitor/logs.png differ diff --git a/website/static/img/resources/azure/monitor/metrics.png b/website/static/img/resources/azure/monitor/metrics.png new file mode 100644 index 0000000..b68f387 Binary files /dev/null and b/website/static/img/resources/azure/monitor/metrics.png differ diff --git a/website/static/img/resources/azure/monitor/monitor.png b/website/static/img/resources/azure/monitor/monitor.png new file mode 100644 index 0000000..ec03485 Binary files /dev/null and b/website/static/img/resources/azure/monitor/monitor.png differ diff --git a/website/static/img/resources/generic/virtualization/qemu.png b/website/static/img/resources/generic/virtualization/qemu.png new file mode 100644 index 0000000..39cf1f2 Binary files /dev/null and b/website/static/img/resources/generic/virtualization/qemu.png differ diff --git a/website/static/img/resources/onprem/messaging/centrifugo.png b/website/static/img/resources/onprem/messaging/centrifugo.png new file mode 100644 index 0000000..0821cba Binary files /dev/null and b/website/static/img/resources/onprem/messaging/centrifugo.png differ diff --git a/website/static/img/resources/onprem/network/mikrotik.png b/website/static/img/resources/onprem/network/mikrotik.png new file mode 100644 index 0000000..515b685 Binary files /dev/null and b/website/static/img/resources/onprem/network/mikrotik.png differ diff --git a/website/static/img/resources/onprem/registry/jfrog.png b/website/static/img/resources/onprem/registry/jfrog.png new file mode 100644 index 0000000..931bfd8 Binary files /dev/null and b/website/static/img/resources/onprem/registry/jfrog.png differ diff --git a/website/static/img/resources/programming/framework/camel.png b/website/static/img/resources/programming/framework/camel.png new file mode 100644 index 0000000..f71ba15 Binary files /dev/null and b/website/static/img/resources/programming/framework/camel.png differ diff --git a/website/static/img/resources/programming/framework/dotnet.png b/website/static/img/resources/programming/framework/dotnet.png new file mode 100644 index 0000000..851e1b7 Binary files /dev/null and b/website/static/img/resources/programming/framework/dotnet.png differ diff --git a/website/static/img/resources/programming/framework/hibernate.png b/website/static/img/resources/programming/framework/hibernate.png new file mode 100644 index 0000000..35a6028 Binary files /dev/null and b/website/static/img/resources/programming/framework/hibernate.png differ diff --git a/website/static/img/resources/programming/framework/jhipster.png b/website/static/img/resources/programming/framework/jhipster.png new file mode 100644 index 0000000..cde8aa9 Binary files /dev/null and b/website/static/img/resources/programming/framework/jhipster.png differ diff --git a/website/static/img/resources/programming/framework/nextjs.png b/website/static/img/resources/programming/framework/nextjs.png new file mode 100644 index 0000000..3306955 Binary files /dev/null and b/website/static/img/resources/programming/framework/nextjs.png differ diff --git a/website/static/img/resources/programming/framework/svelte.png b/website/static/img/resources/programming/framework/svelte.png new file mode 100644 index 0000000..463cc47 Binary files /dev/null and b/website/static/img/resources/programming/framework/svelte.png differ diff --git a/website/static/img/resources/programming/framework/vercel.png b/website/static/img/resources/programming/framework/vercel.png new file mode 100644 index 0000000..6277be3 Binary files /dev/null and b/website/static/img/resources/programming/framework/vercel.png differ diff --git a/website/static/img/resources/programming/language/elixir.png b/website/static/img/resources/programming/language/elixir.png index 86e7bdd..2ef4caf 100644 Binary files a/website/static/img/resources/programming/language/elixir.png and b/website/static/img/resources/programming/language/elixir.png differ diff --git a/website/static/img/resources/saas/alerting/pagerduty.png b/website/static/img/resources/saas/alerting/pagerduty.png new file mode 100644 index 0000000..4e369e3 Binary files /dev/null and b/website/static/img/resources/saas/alerting/pagerduty.png differ diff --git a/website/static/img/resources/saas/analytics/dataform.png b/website/static/img/resources/saas/analytics/dataform.png new file mode 100644 index 0000000..c41f16f Binary files /dev/null and b/website/static/img/resources/saas/analytics/dataform.png differ diff --git a/website/static/img/resources/saas/security/sonarqube.png b/website/static/img/resources/saas/security/sonarqube.png new file mode 100644 index 0000000..b6070ae Binary files /dev/null and b/website/static/img/resources/saas/security/sonarqube.png differ