Is your feature related to a problem? Please describe it.
In the Java implementation, each view class overrides checkElementCanBeAdded which is defined abstractly in View. Without having this, it is possible to add elements to a view that then would not be supported in Structurizr itself.
Describe the solution you would like.
Mirror the Java implementation with an abstract check_element_can_be_added method in View which each subtype overrides.
Additional context
from structurizr import Workspace
workspace = Workspace(name="Test", description="Test")
system = workspace.model.add_software_system(name="System 1")
container = system.add_container(name="Container 1")
view = workspace.views.create_container_view(key="con1", description="test", software_system=system)
# This should fail but doesn't
view.add(system)
Checklist
Is your feature related to a problem? Please describe it.
In the Java implementation, each view class overrides
checkElementCanBeAdded
which is defined abstractly inView
. Without having this, it is possible to add elements to a view that then would not be supported in Structurizr itself.Describe the solution you would like.
Mirror the Java implementation with an abstract
check_element_can_be_added
method inView
which each subtype overrides.Additional context