소스 검색

Merge branch 'master' into node-as-cluster

pull/823/head
Rob Lazzurs 1 년 전
committed by GitHub
부모
커밋
3e127f56bd
No known key found for this signature in database GPG 키 ID: 4AEE18F83AFDEB23
45개의 변경된 파일161개의 추가작업 그리고 129개의 파일을 삭제
  1. +6
    -6
      .github/workflows/test.yml
  2. +4
    -2
      config.py
  3. +3
    -0
      diagrams/__init__.py
  4. +42
    -14
      diagrams/c4/__init__.py
  5. +3
    -1
      diagrams/elastic/elasticsearch.py
  6. +4
    -0
      diagrams/onprem/network.py
  7. +4
    -0
      diagrams/onprem/registry.py
  8. +4
    -0
      diagrams/programming/framework.py
  9. +4
    -4
      docs/nodes/elastic.md
  10. +6
    -0
      docs/nodes/onprem.md
  11. +3
    -0
      docs/nodes/programming.md
  12. +55
    -74
      poetry.lock
  13. +4
    -4
      pyproject.toml
  14. BIN
      resources/onprem/network/yarp.png
  15. BIN
      resources/onprem/registry/jfrog.png
  16. BIN
      resources/programming/framework/flask.png
  17. BIN
      resources/programming/framework/svelte.png
  18. +1
    -1
      tests/test_c4.py
  19. +10
    -13
      website/package-lock.json
  20. BIN
      website/static/img/advanced_web_service_with_on-premise.png
  21. BIN
      website/static/img/advanced_web_service_with_on-premise_colored.png
  22. BIN
      website/static/img/resources/elastic/agent/agent.png
  23. BIN
      website/static/img/resources/elastic/agent/endpoint.png
  24. BIN
      website/static/img/resources/elastic/agent/fleet.png
  25. BIN
      website/static/img/resources/elastic/agent/integrations.png
  26. BIN
      website/static/img/resources/elastic/beats/apm.png
  27. BIN
      website/static/img/resources/elastic/beats/auditbeat.png
  28. BIN
      website/static/img/resources/elastic/beats/filebeat.png
  29. BIN
      website/static/img/resources/elastic/beats/functionbeat.png
  30. BIN
      website/static/img/resources/elastic/beats/heartbeat.png
  31. BIN
      website/static/img/resources/elastic/beats/metricbeat.png
  32. BIN
      website/static/img/resources/elastic/beats/packetbeat.png
  33. BIN
      website/static/img/resources/elastic/beats/winlogbeat.png
  34. BIN
      website/static/img/resources/elastic/elasticsearch/logstash-pipeline.png
  35. BIN
      website/static/img/resources/elastic/elasticsearch/map-services.png
  36. BIN
      website/static/img/resources/elastic/elasticsearch/searchable-snapshots.png
  37. BIN
      website/static/img/resources/elastic/elasticsearch/stack.png
  38. BIN
      website/static/img/resources/elastic/enterprisesearch/crawler.png
  39. BIN
      website/static/img/resources/elastic/observability/observability.png
  40. BIN
      website/static/img/resources/elastic/security/xdr.png
  41. BIN
      website/static/img/resources/onprem/network/yarp.png
  42. BIN
      website/static/img/resources/onprem/storage/portworx.png
  43. BIN
      website/static/img/resources/programming/framework/flask.png
  44. BIN
      website/static/img/simple_web_service_with_db_cluster_diagram.png
  45. +8
    -10
      website/yarn.lock

+ 6
- 6
.github/workflows/test.yml 파일 보기

@@ -5,21 +5,21 @@ on:
branches:
- master
paths:
- '.github/workflows/test.yml'
- '**.py'
- ".github/workflows/test.yml"
- "**.py"
pull_request:
branches:
- master
paths:
- '.github/workflows/test.yml'
- '**.py'
- ".github/workflows/test.yml"
- "**.py"

jobs:
test:
strategy:
matrix:
python: ['3.6', '3.7', '3.8', '3.9']
runs-on: ubuntu-latest
python: ["3.6", "3.7", "3.8", "3.9"]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2


+ 4
- 2
config.py 파일 보기

@@ -13,7 +13,7 @@ DIR_TEMPLATE = "templates"

PROVIDERS = (
"base",
"onprem"
"onprem",
"aws",
"azure",
"digitalocean",
@@ -83,7 +83,7 @@ UPPER_WORDS = {
"sa", "sc", "sts", "svc",
),
"oci": ("oci", "ocid", "oke", "ocir", "ddos", "waf", "bm", "vm", "cdn", "vpn", "dns", "nat", "dms", "api", "id"),
"elastic": ("apm", "siem", "ece", "eck"),
"elastic": ("apm", "siem", "ece", "eck", "sql"),
"generic": ("vpn", "ios", "xen", "sql", "lxc"),
"outscale": ("osc",),
"openstack": ("rpm", "loci", "nfv", "ec2api"),
@@ -446,7 +446,9 @@ ALIASES = {
},
"elastic": {
"elasticsearch": {
"Elasticsearch": "ElasticSearch",
"Logstash": "LogStash",
"MachineLearning": "ML",
}
},
"outscale": {


+ 3
- 0
diagrams/__init__.py 파일 보기

@@ -154,6 +154,7 @@ class Diagram(_Cluster):
outformat: str = "png",
autolabel: bool = False,
show: bool = True,
strict: bool = False,
graph_attr: dict = {},
node_attr: dict = {},
edge_attr: dict = {},
@@ -171,6 +172,7 @@ class Diagram(_Cluster):
:param graph_attr: Provide graph_attr dot config attributes.
:param node_attr: Provide node_attr dot config attributes.
:param edge_attr: Provide edge_attr dot config attributes.
:param strict: Rendering should merge multi-edges.
"""

self.name = name
@@ -182,6 +184,7 @@ class Diagram(_Cluster):

super().__init__(self.name, filename=self.filename)
self.edges = {}
self.dot = Digraph(self.name, filename=self.filename, strict=strict)

# Set attributes.
self.dot.attr(compound="true")


+ 42
- 14
diagrams/c4/__init__.py 파일 보기

@@ -58,24 +58,50 @@ def C4Node(name, technology="", description="", type="Container", **kwargs):


def Container(name, technology="", description="", **kwargs):
return C4Node(name, technology=technology, description=description, type="Container")
container_attributes = {
"name": name,
"technology": technology,
"description": description,
"type": "Container",
}
container_attributes.update(kwargs)
return C4Node(**container_attributes)


def Database(name, technology="", description="", **kwargs):
return C4Node(name, technology=technology, description=description, type="Database", shape="cylinder", labelloc="b")
database_attributes = {
"name": name,
"technology": technology,
"description": description,
"type": "Database",
"shape": "cylinder",
"labelloc": "b",
}
database_attributes.update(kwargs)
return C4Node(**database_attributes)


def System(name, description="", external=False, **kwargs):
type = "External System" if external else "System"
fillcolor = "gray60" if external else "dodgerblue4"
return C4Node(name, description=description, type=type, fillcolor=fillcolor)
system_attributes = {
"name": name,
"description": description,
"type": "External System" if external else "System",
"fillcolor": "gray60" if external else "dodgerblue4",
}
system_attributes.update(kwargs)
return C4Node(**system_attributes)


def Person(name, description="", external=False, **kwargs):
type = "External Person" if external else "Person"
fillcolor = "gray60" if external else "dodgerblue4"
style = "rounded,filled"
return C4Node(name, description=description, type=type, fillcolor=fillcolor, style=style)
person_attributes = {
"name": name,
"description": description,
"type": "External Person" if external else "Person",
"fillcolor": "gray60" if external else "dodgerblue4",
"style": "rounded,filled",
}
person_attributes.update(kwargs)
return C4Node(**person_attributes)


def SystemBoundary(name, **kwargs):
@@ -90,8 +116,10 @@ def SystemBoundary(name, **kwargs):


def Relationship(label="", **kwargs):
edge_attribtues = {"style": "dashed", "color": "gray60"}
if label:
edge_attribtues.update({"label": _format_edge_label(label)})
edge_attribtues.update(kwargs)
return Edge(**edge_attribtues)
edge_attributes = {
"style": "dashed",
"color": "gray60",
"label": _format_edge_label(label) if label else "",
}
edge_attributes.update(kwargs)
return Edge(**edge_attributes)

+ 3
- 1
diagrams/elastic/elasticsearch.py 파일 보기

@@ -56,7 +56,7 @@ class SecuritySettings(_Elasticsearch):
_icon = "security-settings.png"


class Sql(_Elasticsearch):
class SQL(_Elasticsearch):
_icon = "sql.png"


@@ -66,4 +66,6 @@ class Stack(_Elasticsearch):

# Aliases

ElasticSearch = Elasticsearch
LogStash = Logstash
ML = MachineLearning

+ 4
- 0
diagrams/onprem/network.py 파일 보기

@@ -120,6 +120,10 @@ class Wildfly(_Network):
_icon = "wildfly.png"


class Yarp(_Network):
_icon = "yarp.png"


class Zookeeper(_Network):
_icon = "zookeeper.png"



+ 4
- 0
diagrams/onprem/registry.py 파일 보기

@@ -12,4 +12,8 @@ class Harbor(_Registry):
_icon = "harbor.png"


class Jfrog(_Registry):
_icon = "jfrog.png"


# Aliases

+ 4
- 0
diagrams/programming/framework.py 파일 보기

@@ -64,6 +64,10 @@ class Starlette(_Framework):
_icon = "starlette.png"


class Svelte(_Framework):
_icon = "svelte.png"


class Vue(_Framework):
_icon = "vue.png"



+ 4
- 4
docs/nodes/elastic.md 파일 보기

@@ -57,7 +57,7 @@ Node classes list of elastic provider.
**diagrams.elastic.elasticsearch.Beats**

<img width="30" src="/img/resources/elastic/elasticsearch/elasticsearch.png" alt="Elasticsearch" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.Elasticsearch**
**diagrams.elastic.elasticsearch.Elasticsearch**, **ElasticSearch** (alias)

<img width="30" src="/img/resources/elastic/elasticsearch/kibana.png" alt="Kibana" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.Kibana**
@@ -69,7 +69,7 @@ Node classes list of elastic provider.
**diagrams.elastic.elasticsearch.Logstash**, **LogStash** (alias)

<img width="30" src="/img/resources/elastic/elasticsearch/machine-learning.png" alt="MachineLearning" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.MachineLearning**
**diagrams.elastic.elasticsearch.MachineLearning**, **ML** (alias)

<img width="30" src="/img/resources/elastic/elasticsearch/map-services.png" alt="MapServices" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.MapServices**
@@ -86,8 +86,8 @@ Node classes list of elastic provider.
<img width="30" src="/img/resources/elastic/elasticsearch/security-settings.png" alt="SecuritySettings" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.SecuritySettings**

<img width="30" src="/img/resources/elastic/elasticsearch/sql.png" alt="Sql" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.Sql**
<img width="30" src="/img/resources/elastic/elasticsearch/sql.png" alt="SQL" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.SQL**

<img width="30" src="/img/resources/elastic/elasticsearch/stack.png" alt="Stack" style="float: left; padding-right: 5px;" >
**diagrams.elastic.elasticsearch.Stack**


+ 6
- 0
docs/nodes/onprem.md 파일 보기

@@ -461,6 +461,9 @@ Node classes list of onprem provider.
<img width="30" src="/img/resources/onprem/network/wildfly.png" alt="Wildfly" style="float: left; padding-right: 5px;" >
**diagrams.onprem.network.Wildfly**

<img width="30" src="/img/resources/onprem/network/yarp.png" alt="Yarp" style="float: left; padding-right: 5px;" >
**diagrams.onprem.network.Yarp**

<img width="30" src="/img/resources/onprem/network/zookeeper.png" alt="Zookeeper" style="float: left; padding-right: 5px;" >
**diagrams.onprem.network.Zookeeper**

@@ -500,6 +503,9 @@ Node classes list of onprem provider.
<img width="30" src="/img/resources/onprem/registry/harbor.png" alt="Harbor" style="float: left; padding-right: 5px;" >
**diagrams.onprem.registry.Harbor**

<img width="30" src="/img/resources/onprem/registry/jfrog.png" alt="Jfrog" style="float: left; padding-right: 5px;" >
**diagrams.onprem.registry.Jfrog**

## onprem.search




+ 3
- 0
docs/nodes/programming.md 파일 보기

@@ -125,6 +125,9 @@ Node classes list of programming provider.
<img width="30" src="/img/resources/programming/framework/starlette.png" alt="Starlette" style="float: left; padding-right: 5px;" >
**diagrams.programming.framework.Starlette**

<img width="30" src="/img/resources/programming/framework/svelte.png" alt="Svelte" style="float: left; padding-right: 5px;" >
**diagrams.programming.framework.Svelte**

<img width="30" src="/img/resources/programming/framework/vue.png" alt="Vue" style="float: left; padding-right: 5px;" >
**diagrams.programming.framework.Vue**



+ 55
- 74
poetry.lock 파일 보기

@@ -14,14 +14,6 @@ typing-extensions = {version = ">=3.10", markers = "python_version < \"3.10\""}
wrapt = ">=1.11,<1.14"

[[package]]
name = "atomicwrites"
version = "1.3.0"
description = "Atomic file writes."
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "attrs"
version = "19.3.0"
description = "Classes Without Boilerplate"
@@ -37,9 +29,9 @@ tests = ["coverage", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "zope.i

[[package]]
name = "black"
version = "22.10.0"
version = "22.12.0"
description = "The uncompromising code formatter."
category = "main"
category = "dev"
optional = false
python-versions = ">=3.7"

@@ -62,7 +54,7 @@ uvloop = ["uvloop (>=0.15.2)"]
name = "click"
version = "8.1.3"
description = "Composable command line interface toolkit"
category = "main"
category = "dev"
optional = false
python-versions = ">=3.7"

@@ -74,28 +66,39 @@ importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
name = "colorama"
version = "0.4.3"
description = "Cross-platform colored terminal text."
category = "main"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"

[[package]]
name = "exceptiongroup"
version = "1.1.0"
description = "Backport of PEP 654 (exception groups)"
category = "dev"
optional = false
python-versions = ">=3.7"

[package.extras]
test = ["pytest (>=6)"]

[[package]]
name = "graphviz"
version = "0.19.1"
version = "0.20.1"
description = "Simple Python interface for Graphviz"
category = "main"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.7"

[package.extras]
dev = ["flake8", "pep8-naming", "tox (>=3)", "twine", "wheel"]
docs = ["sphinx (>=1.8)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"]
test = ["coverage", "mock (>=4)", "pytest (>=6)", "pytest-cov", "pytest-mock (>=3)"]
docs = ["sphinx (>=5)", "sphinx-autodoc-typehints", "sphinx-rtd-theme"]
test = ["coverage", "mock (>=4)", "pytest (>=7)", "pytest-cov", "pytest-mock (>=3)"]

[[package]]
name = "importlib-metadata"
version = "1.5.0"
description = "Read metadata from Python packages"
category = "main"
category = "dev"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"

@@ -130,11 +133,11 @@ xdg-home = ["appdirs (>=1.4.0)"]

[[package]]
name = "jinja2"
version = "3.0.1"
version = "3.1.2"
description = "A very fast and expressive template engine."
category = "main"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.7"

[package.dependencies]
MarkupSafe = ">=2.0"
@@ -170,7 +173,7 @@ python-versions = "*"
name = "mypy-extensions"
version = "0.4.3"
description = "Experimental type system extensions for programs checked with the mypy typechecker."
category = "main"
category = "dev"
optional = false
python-versions = "*"

@@ -189,7 +192,7 @@ pyparsing = ">=2.0.2"
name = "pathspec"
version = "0.10.1"
description = "Utility library for gitignore style pattern matching of file paths."
category = "main"
category = "dev"
optional = false
python-versions = ">=3.7"

@@ -197,7 +200,7 @@ python-versions = ">=3.7"
name = "platformdirs"
version = "2.4.0"
description = "A small Python module for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
category = "main"
category = "dev"
optional = false
python-versions = ">=3.6"

@@ -220,14 +223,6 @@ importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
dev = ["pre-commit", "tox"]

[[package]]
name = "py"
version = "1.10.0"
description = "library with cross-python path, ini-parsing, io, code, log facilities"
category = "dev"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"

[[package]]
name = "pylint"
version = "2.12.0"
description = "python code static checker"
@@ -254,22 +249,21 @@ python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"

[[package]]
name = "pytest"
version = "7.0.1"
version = "7.2.0"
description = "pytest: simple powerful testing with Python"
category = "dev"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.7"

[package.dependencies]
atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
attrs = ">=19.2.0"
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"
py = ">=1.8.2"
tomli = ">=1.0.0"
tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}

[package.extras]
testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "xmlschema"]
@@ -306,7 +300,7 @@ python-versions = "*"
name = "tomli"
version = "1.2.3"
description = "A lil' TOML parser"
category = "main"
category = "dev"
optional = false
python-versions = ">=3.6"

@@ -322,7 +316,7 @@ python-versions = ">=3.6"
name = "typing-extensions"
version = "4.1.1"
description = "Backported and Experimental Type Hints for Python 3.6+"
category = "main"
category = "dev"
optional = false
python-versions = ">=3.6"

@@ -338,7 +332,7 @@ python-versions = "*"
name = "zipp"
version = "3.1.0"
description = "Backport of pathlib-compatible object wrapper for zip files"
category = "main"
category = "dev"
optional = false
python-versions = ">=3.6"

@@ -349,43 +343,30 @@ testing = ["func-timeout", "jaraco.itertools"]
[metadata]
lock-version = "1.1"
python-versions = "^3.7"
content-hash = "89ec17def343e74e340a9a5261a015804005fc9911ae35d5dacb40c1edb591aa"
content-hash = "bd314565d6ceadde7dfc215293ff1365ad294a2219d822620beeadac0d1f3736"

[metadata.files]
astroid = [
{file = "astroid-2.9.0-py3-none-any.whl", hash = "sha256:776ca0b748b4ad69c00bfe0fff38fa2d21c338e12c84aa9715ee0d473c422778"},
{file = "astroid-2.9.0.tar.gz", hash = "sha256:5939cf55de24b92bda00345d4d0659d01b3c7dafb5055165c330bc7c568ba273"},
]
atomicwrites = [
{file = "atomicwrites-1.3.0-py2.py3-none-any.whl", hash = "sha256:03472c30eb2c5d1ba9227e4c2ca66ab8287fbfbbda3888aa93dc2e28fc6811b4"},
{file = "atomicwrites-1.3.0.tar.gz", hash = "sha256:75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6"},
]
attrs = [
{file = "attrs-19.3.0-py2.py3-none-any.whl", hash = "sha256:08a96c641c3a74e44eb59afb61a24f2cb9f4d7188748e76ba4bb5edfa3cb7d1c"},
{file = "attrs-19.3.0.tar.gz", hash = "sha256:f7b7ce16570fe9965acd6d30101a28f62fb4a7f9e926b3bbc9b61f8b04247e72"},
]
black = [
{file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"},
{file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"},
{file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"},
{file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"},
{file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"},
{file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"},
{file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"},
{file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"},
{file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"},
{file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"},
{file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"},
{file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"},
{file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"},
{file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"},
{file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"},
{file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"},
{file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"},
{file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"},
{file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"},
{file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"},
{file = "black-22.10.0.tar.gz", hash = "sha256:f513588da599943e0cde4e32cc9879e825d58720d6557062d1098c5ad80080e1"},
{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"},
]
click = [
{file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"},
@@ -395,9 +376,13 @@ colorama = [
{file = "colorama-0.4.3-py2.py3-none-any.whl", hash = "sha256:7d73d2a99753107a36ac6b455ee49046802e59d9d076ef8e47b61499fa29afff"},
{file = "colorama-0.4.3.tar.gz", hash = "sha256:e96da0d330793e2cb9485e9ddfd918d456036c7149416295932478192f4436a1"},
]
exceptiongroup = [
{file = "exceptiongroup-1.1.0-py3-none-any.whl", hash = "sha256:327cbda3da756e2de031a3107b81ab7b3770a602c4d16ca618298c526f4bec1e"},
{file = "exceptiongroup-1.1.0.tar.gz", hash = "sha256:bcb67d800a4497e1b404c2dd44fca47d3b7a5e5433dbab67f96c1a685cdfdf23"},
]
graphviz = [
{file = "graphviz-0.19.1-py3-none-any.whl", hash = "sha256:f34088c08be2ec16279dfa9c3b4ff3d1453c5c67597a33e2819b000e18d4c546"},
{file = "graphviz-0.19.1.zip", hash = "sha256:09ed0cde452d015fe77c4845a210eb642f28d245f5bc250d4b97808cb8f49078"},
{file = "graphviz-0.20.1-py3-none-any.whl", hash = "sha256:587c58a223b51611c0cf461132da386edd896a029524ca61a1462b880bf97977"},
{file = "graphviz-0.20.1.zip", hash = "sha256:8c58f14adaa3b947daf26c19bc1e98c4e0702cdc31cf99153e6f06904d492bf8"},
]
importlib-metadata = [
{file = "importlib_metadata-1.5.0-py2.py3-none-any.whl", hash = "sha256:b97607a1a18a5100839aec1dc26a1ea17ee0d93b20b0f008d80a5a050afb200b"},
@@ -412,8 +397,8 @@ isort = [
{file = "isort-4.3.21.tar.gz", hash = "sha256:54da7e92468955c4fceacd0c86bd0ec997b0e1ee80d97f67c35a78b719dccab1"},
]
jinja2 = [
{file = "Jinja2-3.0.1-py3-none-any.whl", hash = "sha256:1f06f2da51e7b56b8f238affdd6b4e2c61e39598a378cc49345bc1bd42a978a4"},
{file = "Jinja2-3.0.1.tar.gz", hash = "sha256:703f484b47a6af502e743c9122595cc812b0271f661722403114f71a79d0f5a4"},
{file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"},
{file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"},
]
lazy-object-proxy = [
{file = "lazy-object-proxy-1.4.3.tar.gz", hash = "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"},
@@ -533,10 +518,6 @@ pluggy = [
{file = "pluggy-0.13.1-py2.py3-none-any.whl", hash = "sha256:966c145cd83c96502c3c3868f50408687b38434af77734af1e9ca461a4081d2d"},
{file = "pluggy-0.13.1.tar.gz", hash = "sha256:15b2acde666561e1298d71b523007ed7364de07029219b604cf808bfa1c765b0"},
]
py = [
{file = "py-1.10.0-py2.py3-none-any.whl", hash = "sha256:3b80836aa6d1feeaa108e046da6423ab8f6ceda6468545ae8d02d9d58d18818a"},
{file = "py-1.10.0.tar.gz", hash = "sha256:21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"},
]
pylint = [
{file = "pylint-2.12.0-py3-none-any.whl", hash = "sha256:ba00afcb1550bc217bbcb0eb76c10cb8335f7417a3323bdd980c29fb5b59f8d2"},
{file = "pylint-2.12.0.tar.gz", hash = "sha256:245c87e5da54c35b623c21b35debf87d93b18bf9e0229515cc172d0b83d627cd"},
@@ -546,8 +527,8 @@ pyparsing = [
{file = "pyparsing-2.4.7.tar.gz", hash = "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1"},
]
pytest = [
{file = "pytest-7.0.1-py3-none-any.whl", hash = "sha256:9ce3ff477af913ecf6321fe337b93a2c0dcf2a0a1439c43f5452112c1e4280db"},
{file = "pytest-7.0.1.tar.gz", hash = "sha256:e30905a0c131d3d94b89624a1cc5afec3e0ba2fbdb151867d8e0ebd49850f171"},
{file = "pytest-7.2.0-py3-none-any.whl", hash = "sha256:892f933d339f068883b6fd5a459f03d85bfcb355e4981e146d2c7616c21fef71"},
{file = "pytest-7.2.0.tar.gz", hash = "sha256:c4014eb40e10f11f355ad4e3c2fb2c6c6d1919c73f3b5a433de4708202cade59"},
]
rope = [
{file = "rope-0.14.0-py2-none-any.whl", hash = "sha256:6b728fdc3e98a83446c27a91fc5d56808a004f8beab7a31ab1d7224cecc7d969"},


+ 4
- 4
pyproject.toml 파일 보기

@@ -1,6 +1,6 @@
[tool.poetry]
name = "diagrams"
version = "0.23.1"
version = "0.23.2"
description = "Diagram as Code"
license = "MIT"
authors = ["mingrammer <mingrammer@gmail.com>"]
@@ -11,17 +11,17 @@ include = ["resources/**/*"]

[tool.poetry.dependencies]
python = "^3.7"
graphviz = ">=0.13.2,<0.20.0"
graphviz = ">=0.13.2,<0.21.0"
jinja2 = ">=2.10,<4.0"
contextvars = { version = "^2.4", python = "~3.6" }
typed-ast = "^1.5.4"

[tool.poetry.dev-dependencies]
pytest = "^7.0"
pytest = "^7.2"
pylint = "^2.7"
rope = "^0.14.0"
isort = "^4.3"
black = "^22.10.0"
black = "^22.12.0"

[tool.black]
line-length = 120

BIN
resources/onprem/network/yarp.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 26 KiB

BIN
resources/onprem/registry/jfrog.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 26 KiB

BIN
resources/programming/framework/flask.png 파일 보기

Before After
Width: 256  |  Height: 328  |  Size: 22 KiB Width: 256  |  Height: 256  |  Size: 23 KiB

BIN
resources/programming/framework/svelte.png 파일 보기

Before After
Width: 256  |  Height: 308  |  Size: 17 KiB

+ 1
- 1
tests/test_c4.py 파일 보기

@@ -10,7 +10,7 @@ from diagrams.c4 import Person, Container, Database, System, SystemBoundary, Rel

class C4Test(unittest.TestCase):
def setUp(self):
self.name = "diagram-" + "".join([random.choice(string.hexdigits) for n in range(7)])
self.name = "diagram-" + "".join([random.choice(string.hexdigits) for n in range(7)]).lower()

def tearDown(self):
setdiagram(None)


+ 10
- 13
website/package-lock.json 파일 보기

@@ -2875,9 +2875,9 @@
"dev": true
},
"decode-uri-component": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz",
"integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
"dev": true
},
"decompress": {
@@ -5426,13 +5426,10 @@
"dev": true
},
"json5": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"dev": true,
"requires": {
"minimist": "^1.2.5"
}
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true
},
"jsonfile": {
"version": "6.1.0",
@@ -7278,9 +7275,9 @@
"dev": true
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"dev": true
},
"query-string": {


BIN
website/static/img/advanced_web_service_with_on-premise.png 파일 보기

Before After
Width: 1011  |  Height: 639  |  Size: 122 KiB Width: 1106  |  Height: 639  |  Size: 123 KiB

BIN
website/static/img/advanced_web_service_with_on-premise_colored.png 파일 보기

Before After
Width: 1868  |  Height: 1156  |  Size: 146 KiB Width: 1653  |  Height: 1156  |  Size: 129 KiB

BIN
website/static/img/resources/elastic/agent/agent.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.6 KiB

BIN
website/static/img/resources/elastic/agent/endpoint.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.7 KiB

BIN
website/static/img/resources/elastic/agent/fleet.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 2.7 KiB

BIN
website/static/img/resources/elastic/agent/integrations.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.7 KiB

BIN
website/static/img/resources/elastic/beats/apm.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 1.2 KiB

BIN
website/static/img/resources/elastic/beats/auditbeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 463 B

BIN
website/static/img/resources/elastic/beats/filebeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 1.4 KiB

BIN
website/static/img/resources/elastic/beats/functionbeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.4 KiB

BIN
website/static/img/resources/elastic/beats/heartbeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.4 KiB

BIN
website/static/img/resources/elastic/beats/metricbeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 4.7 KiB

BIN
website/static/img/resources/elastic/beats/packetbeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.0 KiB

BIN
website/static/img/resources/elastic/beats/winlogbeat.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 483 B

BIN
website/static/img/resources/elastic/elasticsearch/logstash-pipeline.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 1.4 KiB

BIN
website/static/img/resources/elastic/elasticsearch/map-services.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 1.9 KiB

BIN
website/static/img/resources/elastic/elasticsearch/searchable-snapshots.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 3.9 KiB

BIN
website/static/img/resources/elastic/elasticsearch/stack.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 1007 B

BIN
website/static/img/resources/elastic/enterprisesearch/crawler.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 974 B

BIN
website/static/img/resources/elastic/observability/observability.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 1.9 KiB Width: 256  |  Height: 256  |  Size: 1.2 KiB

BIN
website/static/img/resources/elastic/security/xdr.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 2.6 KiB

BIN
website/static/img/resources/onprem/network/yarp.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 26 KiB

BIN
website/static/img/resources/onprem/storage/portworx.png 파일 보기

Before After
Width: 256  |  Height: 256  |  Size: 10 KiB

BIN
website/static/img/resources/programming/framework/flask.png 파일 보기

Before After
Width: 256  |  Height: 328  |  Size: 22 KiB Width: 256  |  Height: 256  |  Size: 23 KiB

BIN
website/static/img/simple_web_service_with_db_cluster_diagram.png 파일 보기

Before After
Width: 870  |  Height: 413  |  Size: 91 KiB Width: 870  |  Height: 467  |  Size: 71 KiB

+ 8
- 10
website/yarn.lock 파일 보기

@@ -1847,8 +1847,8 @@ decamelize@^1.1.2:
resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"

decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz"
version "0.2.2"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"

decompress-response@^3.2.0, decompress-response@^3.3.0:
version "3.3.0"
@@ -3566,10 +3566,8 @@ json-stringify-safe@~5.0.1:
resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"

json5@^2.1.2:
version "2.2.0"
resolved "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz"
dependencies:
minimist "^1.2.5"
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"

jsonfile@^6.0.1:
version "6.1.0"
@@ -4768,13 +4766,13 @@ q@^1.1.2:
version "1.5.1"
resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz"

qs@6.7.0:
qs@6.7.0, qs@^6.4.0:
version "6.7.0"
resolved "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"

qs@^6.4.0, qs@~6.5.2:
version "6.5.2"
resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
qs@~6.5.2:
version "6.5.3"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"

query-string@^5.0.1:
version "5.1.1"


불러오는 중...
취소
저장