Spaces:
Running
Running
import xml.etree.ElementTree as ET | |
from utils import class_dict | |
def rescale(scale, boxes): | |
for i in range(len(boxes)): | |
boxes[i] = [boxes[i][0] * scale, boxes[i][1] * scale, boxes[i][2] * scale, boxes[i][3] * scale] | |
return boxes | |
def create_BPMN_id(data): | |
enum_end, enum_start, enum_task, enum_sequence, enum_dataflow, enum_messflow, enum_messageEvent, enum_exclusiveGateway, enum_parallelGateway, enum_pool = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 | |
BPMN_name = [class_dict[data['labels'][i]] for i in range(len(data['labels']))] | |
for idx, Bpmn_id in enumerate(BPMN_name): | |
if Bpmn_id == 'event': | |
if data['links'][idx][0] is not None and data['links'][idx][1] is None: | |
data['BPMN_id'][idx] = f'end_event_{enum_end}' | |
enum_end += 1 | |
elif data['links'][idx][0] is None and data['links'][idx][1] is not None: | |
data['BPMN_id'][idx] = f'start_event_{enum_start}' | |
enum_start += 1 | |
elif Bpmn_id == 'task' or Bpmn_id == 'dataObject': | |
data['BPMN_id'][idx] = f'task_{enum_task}' | |
enum_task += 1 | |
elif Bpmn_id == 'sequenceFlow': | |
data['BPMN_id'][idx] = f'sequenceFlow_{enum_sequence}' | |
enum_sequence += 1 | |
elif Bpmn_id == 'messageFlow': | |
data['BPMN_id'][idx] = f'messageFlow_{enum_messflow}' | |
enum_messflow += 1 | |
elif Bpmn_id == 'messageEvent': | |
data['BPMN_id'][idx] = f'message_event_{enum_messageEvent}' | |
enum_messageEvent += 1 | |
elif Bpmn_id == 'exclusiveGateway': | |
data['BPMN_id'][idx] = f'exclusiveGateway_{enum_exclusiveGateway}' | |
enum_exclusiveGateway += 1 | |
elif Bpmn_id == 'parallelGateway': | |
data['BPMN_id'][idx] = f'parallelGateway_{enum_parallelGateway}' | |
enum_parallelGateway += 1 | |
elif Bpmn_id == 'dataAssociation': | |
data['BPMN_id'][idx] = f'dataAssociation_{enum_sequence}' | |
enum_dataflow += 1 | |
elif Bpmn_id == 'pool': | |
data['BPMN_id'][idx] = f'pool_{enum_pool}' | |
enum_pool += 1 | |
return data | |