-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
enhancementNew feature or requestNew feature or requestlow priorityLow priority issueLow priority issue
Description
Checklist
- There are no similar issues or pull requests for this yet.
Is your feature related to a problem? Please describe it.
Constructing a tree of elements from Python is quite verbose today:
system = model.add_software_system(name="My System")
container1 = system.add_container(name="Container 1")
component1 = container1.add_component(name="Component 1")
component2 = container1.add_component(name="Component 2")
component1.add_relationship(description="Sends events to", destination=component2)
etc.Describe the solution you would like.
Using Python context, we could achieve the same outcome in an easier to read manner:
with model:
with SoftwareSystem("My System"):
with Container("Container 1") as container1:
Component("Component 1") >> "Sends events to" >> Component("Component 2")This would involve establishing appropriate ContextVars in __enter__()/__exit__() and checking for those during constructors to auto-register via the parent's add().
Additional context
This is inspired by mingrammer/diagrams.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestlow priorityLow priority issueLow priority issue