def buildSubgraph(parent, name, readable_name=None): if isinstance(parent, EDSMRootModel): parent = parent.states subgraph = SubElement(parent, u"{%s}subgraph" % EDSM_NAMESPACE_URI, name=name) if readable_name: subgraph.readable_name = readable_name subgraph.id = uniqueID(parent, str(id(subgraph))) states = subgraph.states subgraph.entry_state = buildState(states, 'entry') subgraph.exit_state = buildState(states, 'exit') return subgraph
def buildState(parent, name, readable_name=None, inputs=('input',), outputs=('output',)): if isinstance(parent, EDSMRootModel): parent = parent.states state = SubElement(parent, u"{%s}state" % EDSM_NAMESPACE_URI, name=name) if readable_name: state.readable_name = readable_name state.id = uniqueID(parent, str(id(state))) if inputs: for queue in inputs: state.add_input(queue) if outputs: for queue in outputs: state.add_output(queue) return state