live_comm(self)
Some comms to the ip/port target may be in current use by other coroutines. We track this with the comms
dict
:: {comm: True/False if open and ready for use}
This function produces an open communication, either by taking one that we've already made or making a new one if they are all taken. This also removes comms that have been closed.
When the caller is done with the stream they should set
self.comms[comm] = True
As is done in __getattr__ below.
Get an open communication
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them