diff --git a/config.py b/config.py index 06aa05bb..c4f00f0d 100644 --- a/config.py +++ b/config.py @@ -76,7 +76,7 @@ TMPL_APIDOC = "apidoc.tmpl" TMPL_MODULE = "module.tmpl" UPPER_WORDS = { - "aws": ("aws", "api", "ebs", "ec2", "efs", "emr", "rds", "ml", "mq", "nat", "vpc", "waf", "sdk"), + "aws": ("aws", "api", "ebs", "ec2", "efs", "emr", "rds", "ml", "mq", "nat", "vpc", "waf", "sdk", "aiagent", "agentcore"), "azure": ("ad", "b2c", "ai", "api", "cdn", "ddos", "dns", "fxt", "hana", "hd", "id", "sap", "sql", "vm", "vpn", "vpc"), "gcp": ("gcp", "ai", "api", "cdn", "dns", "gke", "gpu", "iap", "ml", "nat", "os", "sdk", "sql", "tpu", "vpn"), "firebase": ("ab", "fcm", "ml"), @@ -242,6 +242,8 @@ ALIASES = { }, "ml": { "DeepLearningContainers": "DLC", + "PolicyEngineAgenticGuardrails": "PEAG", + "Observability": "OBS", }, "network": { "CloudFront": "CF", diff --git a/diagrams/__init__.py b/diagrams/__init__.py index 66c3458f..027aa877 100644 --- a/diagrams/__init__.py +++ b/diagrams/__init__.py @@ -139,8 +139,7 @@ class Diagram: if isinstance(outformat, list): for one_format in outformat: if not self._validate_outformat(one_format): - raise ValueError( - f'"{one_format}" is not a valid output format') + raise ValueError(f'"{one_format}" is not a valid output format') else: if not self._validate_outformat(outformat): raise ValueError(f'"{outformat}" is not a valid output format') @@ -492,8 +491,7 @@ class Edge: """Implement Self - Node or Edge and Self - [Nodes]""" return self.connect(other) - def __rsub__(self, other: Union[List["Node"], - List["Edge"]]) -> List["Edge"]: + def __rsub__(self, other: Union[List["Node"], List["Edge"]]) -> List["Edge"]: """Called for [Nodes] or [Edges] - Self because list don't have __sub__ operators.""" return self.append(other) @@ -507,23 +505,15 @@ class Edge: self.reverse = True return self.connect(other) - def __rrshift__(self, - other: Union[List["Node"], - List["Edge"]]) -> List["Edge"]: + def __rrshift__(self, other: Union[List["Node"], List["Edge"]]) -> List["Edge"]: """Called for [Nodes] or [Edges] >> Self because list of Edges don't have __rshift__ operators.""" return self.append(other, forward=True) - def __rlshift__(self, - other: Union[List["Node"], - List["Edge"]]) -> List["Edge"]: + def __rlshift__(self, other: Union[List["Node"], List["Edge"]]) -> List["Edge"]: """Called for [Nodes] or [Edges] << Self because list of Edges don't have __lshift__ operators.""" return self.append(other, reverse=True) - def append(self, - other: Union[List["Node"], - List["Edge"]], - forward=None, - reverse=None) -> List["Edge"]: + def append(self, other: Union[List["Node"], List["Edge"]], forward=None, reverse=None) -> List["Edge"]: result = [] for o in other: if isinstance(o, Edge): @@ -532,12 +522,7 @@ class Edge: self._attrs = o.attrs.copy() result.append(o) else: - result.append( - Edge( - o, - forward=forward, - reverse=reverse, - **self._attrs)) + result.append(Edge(o, forward=forward, reverse=reverse, **self._attrs)) return result def connect(self, other: Union["Node", "Edge", List["Node"]]): diff --git a/diagrams/aws/ml.py b/diagrams/aws/ml.py index eb7cc5fd..d703e0ea 100644 --- a/diagrams/aws/ml.py +++ b/diagrams/aws/ml.py @@ -8,7 +8,7 @@ class _ML(_AWS): _icon_dir = "resources/aws/ml" -class Agentcore(_ML): +class AGENTCORE(_ML): _icon = "agentcore.png" @@ -191,3 +191,5 @@ class Translate(_ML): # Aliases DLC = DeepLearningContainers +PEAG = PolicyEngineAgenticGuardrails +OBS = Observability diff --git a/diagrams/cli.py b/diagrams/cli.py index c75eb3d9..7346300e 100644 --- a/diagrams/cli.py +++ b/diagrams/cli.py @@ -24,7 +24,7 @@ def run() -> int: args = parser.parse_args() for path in args.paths: - with open(path, encoding='utf-8') as f: + with open(path, encoding="utf-8") as f: exec(f.read()) return 0 diff --git a/docs/nodes/aws.md b/docs/nodes/aws.md index 5085f62d..ccadec52 100644 --- a/docs/nodes/aws.md +++ b/docs/nodes/aws.md @@ -1091,15 +1091,39 @@ Node classes list of the aws provider. ## aws.ml +AGENTCORE +**diagrams.aws.ml.AGENTCORE** + +AiAgent +**diagrams.aws.ml.AiAgent** + +AmazonCodewhisperer +**diagrams.aws.ml.AmazonCodewhisperer** + +AmazonNova +**diagrams.aws.ml.AmazonNova** + ApacheMxnetOnAWS **diagrams.aws.ml.ApacheMxnetOnAWS** AugmentedAi **diagrams.aws.ml.AugmentedAi** +AWSAppStudio +**diagrams.aws.ml.AWSAppStudio** + +AWSNeuron +**diagrams.aws.ml.AWSNeuron** + Bedrock **diagrams.aws.ml.Bedrock** +BrowserTool +**diagrams.aws.ml.BrowserTool** + +CodeInterpreter +**diagrams.aws.ml.CodeInterpreter** + Comprehend **diagrams.aws.ml.Comprehend** @@ -1121,12 +1145,21 @@ Node classes list of the aws provider. ElasticInference **diagrams.aws.ml.ElasticInference** +Evaluations +**diagrams.aws.ml.Evaluations** + Forecast **diagrams.aws.ml.Forecast** FraudDetector **diagrams.aws.ml.FraudDetector** +Gateway +**diagrams.aws.ml.Gateway** + +Identity +**diagrams.aws.ml.Identity** + Kendra **diagrams.aws.ml.Kendra** @@ -1136,9 +1169,18 @@ Node classes list of the aws provider. MachineLearning **diagrams.aws.ml.MachineLearning** +Memory +**diagrams.aws.ml.Memory** + +Observability +**diagrams.aws.ml.Observability**, **OBS** (alias) + Personalize **diagrams.aws.ml.Personalize** +PolicyEngineAgenticGuardrails +**diagrams.aws.ml.PolicyEngineAgenticGuardrails**, **PEAG** (alias) + Polly **diagrams.aws.ml.Polly** @@ -1154,6 +1196,9 @@ Node classes list of the aws provider. Rekognition **diagrams.aws.ml.Rekognition** +Runtime +**diagrams.aws.ml.Runtime** + SagemakerGroundTruth **diagrams.aws.ml.SagemakerGroundTruth** diff --git a/resources/aws/ml/agentcore.png b/resources/aws/ml/agentcore.png index c00b77e8..debeadd2 100644 Binary files a/resources/aws/ml/agentcore.png and b/resources/aws/ml/agentcore.png differ diff --git a/resources/aws/ml/ai-agent.png b/resources/aws/ml/ai-agent.png index d33c27cd..f13894a9 100644 Binary files a/resources/aws/ml/ai-agent.png and b/resources/aws/ml/ai-agent.png differ diff --git a/resources/aws/ml/amazon-nova.png b/resources/aws/ml/amazon-nova.png index ab69fd59..bfbfc28d 100644 Binary files a/resources/aws/ml/amazon-nova.png and b/resources/aws/ml/amazon-nova.png differ diff --git a/resources/aws/ml/browser-tool.png b/resources/aws/ml/browser-tool.png index d2578710..bc41ba93 100644 Binary files a/resources/aws/ml/browser-tool.png and b/resources/aws/ml/browser-tool.png differ diff --git a/resources/aws/ml/code-interpreter.png b/resources/aws/ml/code-interpreter.png index c1bb9419..b51d0033 100644 Binary files a/resources/aws/ml/code-interpreter.png and b/resources/aws/ml/code-interpreter.png differ diff --git a/resources/aws/ml/evaluations.png b/resources/aws/ml/evaluations.png index 4d41cf12..15dcb02e 100644 Binary files a/resources/aws/ml/evaluations.png and b/resources/aws/ml/evaluations.png differ diff --git a/resources/aws/ml/gateway.png b/resources/aws/ml/gateway.png index 3ca9fead..099b2d14 100644 Binary files a/resources/aws/ml/gateway.png and b/resources/aws/ml/gateway.png differ diff --git a/resources/aws/ml/identity.png b/resources/aws/ml/identity.png index ae818e7f..d6eeccd7 100644 Binary files a/resources/aws/ml/identity.png and b/resources/aws/ml/identity.png differ diff --git a/resources/aws/ml/memory.png b/resources/aws/ml/memory.png index 794b26be..e864cfb1 100644 Binary files a/resources/aws/ml/memory.png and b/resources/aws/ml/memory.png differ diff --git a/resources/aws/ml/observability.png b/resources/aws/ml/observability.png index 1a8a8bbd..8588ea29 100644 Binary files a/resources/aws/ml/observability.png and b/resources/aws/ml/observability.png differ diff --git a/resources/aws/ml/policy-engine-agentic-guardrails.png b/resources/aws/ml/policy-engine-agentic-guardrails.png index 79d57443..4239e826 100644 Binary files a/resources/aws/ml/policy-engine-agentic-guardrails.png and b/resources/aws/ml/policy-engine-agentic-guardrails.png differ diff --git a/resources/aws/ml/runtime.png b/resources/aws/ml/runtime.png index af5d0c3b..e7daf27e 100644 Binary files a/resources/aws/ml/runtime.png and b/resources/aws/ml/runtime.png differ