"""Contains helper functions and configuration for AgGrid.""" import json def convert_price_to_numeric(price): if price == "Free To Play": return 0.0 try: return float(price.replace("£", "")) except ValueError: return None def categorize_price(price): if price == "Free To Play": return price try: price_value = float(price.replace("£", "")) except ValueError: return "Unknown" if price_value < 15: return "Less than £15" elif 15 <= price_value <= 30: return "£15-£30" elif 30 < price_value <= 45: return "£30-£45" else: return "More than 45£" COLOR_MAP = { "Free To Play": "#afe7f9", "Less than £15": "#3bbef1", "£15-£30": "#0d8ed1", "£30-£45": "#0061a4", "More than 45£": "#003875", } columnDefs = [ {"field": "Rank", "cellDataType": "text", "flex": 1}, {"headerName": "Thumbnail", "field": "Thumbnail URL", "cellRenderer": "ImgThumbnail", "width": 150, "flex": 3}, {"field": "Name", "headerName": "Game", "cellDataType": "text", "flex": 3}, { "field": "Current Players", "cellDataType": "number", "valueFormatter": { "function": "d3.format(',.2r')(params.value)", }, "flex": 3, }, { "field": "Peak Today", "cellDataType": "number", "valueFormatter": {"function": "d3.format(',.2r')(params.value)"}, "flex": 3, }, { "field": "Price Category", "cellDataType": "text", "cellRenderer": "DBC_Badge", "cellRendererParams": {"colorMap": json.dumps(COLOR_MAP)}, "flex": 2, }, {"field": "Store Link", "cellRenderer": "DBC_Button", "width": 200, "flex": 2}, ]