from collections import Counter from typing import List from mesa.visualization.modules import TextElement from data.Order import Order class DisplayOrder(TextElement): def __init__(self, attr_name): ''' Create a new text attribute element. Args: attr_name: The name of the attribute to extract from the model. Example return: "happy: 10" ''' self.attr_name = attr_name def render(self, model): val = getattr(model, self.attr_name) res = self.attr_name if val is not None: o = val itemList = map(lambda x: x.real_type, o.items) itemCounter = Counter(itemList) item_str = "" res += f"
  • items: {item_str} priority: {o.priority}
    Client: {vars(o.client_params)}
  • " return res