import datetime as dt
import os


def select_provider(task):
    """Reject provider-backed LLM routing in packaged plugin runtimes."""

    raise RuntimeError(
        "Provider-backed LLM calls are disabled in local plugin runtimes. "
        f"Use Claude for semantic judgment instead of resolving query step {task!r}."
    )


def get_naming_params():
    """
    creates dictionary with parameters for running session
    """
    namingParams = {
        "batchMode": "batchMode",
        "largestColTemp": "largestColTemp",
        "rowIndex": "rowIndex",
        "difference": "difference",
        "collectedHashes": "collectedHashes",
        "filterString": "filterString",
        "thumbUp": "thumb_up",
        "thumbDown": "thumb_down",
        "zoomIn": "zoom_in",
        "addContext": "contextual_token_add",
        "addChart": "add_chart",
        "feedback": "feedback",
        "answer": "answer",
        "question": "question",
        "answers": "answers",
        "questions": "questions",
        "submittedQuestion": "submittedQuestion",
        "currentQuestion": "currentQuestion",
        "startConversationSubmitted": "startConversationSubmitted",
        "conversationHistory": "conversationHistory",
        "summaryReady": "summaryReady",
        "reportSummary": "reportSummary",
        "chartDescriptions": "chartDescriptions",
        "simplifiedDict": "simplifiedDict",
        "keyMappingDict": "keyMappingDict",
        "questionsAndInputs": "questionsAndInputs",
        "varianceComponent": "Variance_Component",
        "subplotTitles": "subplotTitles",
        "varianceDifferentCalculations": "varianceDifferentCalculations",
        "varianceAggregationOptionsArray": "varianceAggregationOptionsArray",
        "scalingFactor": "scalingFactor",
        "offset": "offset",
        "indexOrder": "indexOrder",
        "hierarchyTabLabel": "Fix Hierarchy",
        "getLinesTabLabel": "Get PDPs",
        "hierarchyTab": "hierarchyTab",
        "getLinesTab": "getLinesTab",
        "columnTotal": "columnTotal",
        "metricArrayKey": "metricArrayKey",
        "errorInFragment": "errorInFragment",
        "showPlotExamples": "showPlotExamples",
        "ibcsGuide": "ibcsGuide",
        "titleName": "title",
        "flexModels": [],
        "percentName": "Percent on total",
        "itemName": "Item",
        "dimensionName": "Dimension",
        "executiveSummaryName": "executive summary",
        "sectionSummaryName": "chapter outline",
        "summaryName": "summary",
        "atAGlance": "at a glance",
        "salesBreakdown": "sales breakdown",
        "dataInsights": "data insights",
        "trends": "trends",
        "smallMultiplesWaterfall": "smallMultiplesWaterfall",
        "areaBarChart": "area bar",
        "plotCommentText": "plotCommentText",
        "plotTitleText": "plotTitleText",
        "metricText": "metricText",
        "metricParams": "metricParams",
        "plotConcentrationText": "plotConcentrationText",
        "confirmOrModifyCommentLabel": "Check description for errors and hallucinations, then confirm or modify it",
        "backupName": "backup",
        "numberOfPlottedSmallMultiples": "numberOfPlottedSmallMultiples",
        "chartDictNotChangedName": "chartDictNotChangedName",
        "chartDictHashName": "chartDictHashName",
        "numberOfRows": "numberOfRows",
        "numberOfCols": "numberOfCols",
        "metricsArray": "metricsArray",
        "otherMetricsArray": "otherMetricsArray",
        "plotVarianceCharts": "plotVarianceCharts",
        "plotVarianceChartsLabel": "Plot variance charts.",
        "changeAggregationPeriod": "changeAggregationPeriod",
        "changeAggregationPeriodLabel": "Change aggregation period to",
        "minXDimension": "minXDimension",
        "maxXDimension": "maxXDimension",
        "minYDimension": "minYDimension",
        "maxYDimension": "maxYDimension",
        "appMessageArray": "appMessageArray",
        "appMessageContent": "appMessageContent",
        "appMessageType": "appMessageType",
        "errorMessageType": "error",
        "warningMessageType": "warning",
        "infoMessageType": "info",
        "writeMessageType": "write",
        "textMessageType": "text",
        "captionMessageType": "caption",
        "successMessageType": "success",
        "showAppMessageAsToast": "showAppMessageAsToast",
        "showAppMessageAsStatus": "showAppMessageAsStatus",
        "appMessageIconType": "appMessageIconType",
        "appMessageTab": "appMessageTab",
        "appMessageColumn": "appMessageColumn",
        "errorIcon": "🚨",
        "warningIcon": "⚠️",
        "infoIcon": "ℹ️",
        "successIcon": "✅",
        "clusterName": "clusterName",
        "isNoiseName": "isNoiseName",
        "alreadychosen": "alreadychosen",
        "indications": "indications",
        "chosenLanguage": "chosenLanguage",
        "chartDataPromptDict": "chartDataPromptDict",
        "chartImagePromptDict": "chartImagePromptDict",
        "chartImageBytesDict": "chartImageBytesDict",
        "submitSummaryName": "submitSummaryName",
        "submitConversationLabel": "Start conversation",
        "markerColor": "markerColor",
        "markerLineColor": "markerLineColor",
        "textFontColor": "textFontColor",
        "scenarioName": "Scenario",
        "queryOpenAi": "queryOpenAi",
        "datasetTypeName": "userType",
        "datasetTypeLabel": "Dataset type",
        "scaledSizeName": "scaledSize",
        "promptNewName": "promptNew",
        "audienceVarianceChartLabel": "Preferred year-over-year plot",
        "audienceVarianceChartName": "audienceVarianceChartName",
        "distributionChartLabel": "Preferred distribution plot",
        "audienceDistributionChartName": "audienceDistributionChartName",
        "timelineChartLabel": "Preferred temporal development plot",
        "audienceTimelineChartName": "audienceTimelineChartName",
        "correspondenceChartLabel": "Preferred intersection plot",
        "audienceCorrespondenceChartName": "audienceCorrespondenceChartName",
        "valueColsArray": "valueColsArray",
        "gptValueColsArray": "gptValueColsArray",
        "firstPeriodMargin": "firstPeriodMargin",
        "secondPeriodMargin": "secondPeriodMargin",
        "firstPeriodSales": "firstPeriodSales",
        "secondPeriodSales": "secondPeriodSales",
        "firstPeriodDiscounts": "firstPeriodDiscounts",
        "secondPeriodDiscounts": "secondPeriodDiscounts",
        "mostRecentDatePromptMessage": "mostRecentDatePromptMessage",
        "leastRecentDatePromptMessage": "leastRecentDatePromptMessage",
        "periodPromptMessage": "periodPromptMessage",
        "dimensionsPromptMessage": "dimensionsPromptMessage",
        "columnCardinalityMessage": "columnCardinalityMessage",
        "hierarchyPromptMessage": "hierarchyPromptMessage",
        "notHierarchicalPromptMessage": "notHierarchicalPromptMessage",
        "uploadJsonFileLabel": "Upload playback json file",
        "uploadPlotJsonFileLabel": "Upload plot playback json file",
        "uploadPlanJsonFileLabel": "Upload plan playback json file",
        "uploadCommentJsonFileLabel": "Upload descriptions json file",
        "plotPlaybackName": "plotPlaybackName",
        "planPlaybackName": "planPlaybackName",
        "commentUploadName": "commentUploadName",
        "stackedColumnChart": "stacked column",
        "summaryStackedColumnChart": "summary stacked column",
        "barmekkoChart": "barmekko",
        "marimekkoChart": "marimekko",
        "timelineChart": "timeline",
        "dotChart": "dot",
        "paretoChart": "pareto",
        "areaChart": "area",
        "slopeChart": "slope",
        "vennChart": "venn",
        "upsetChart": "UpSet",
        "stackedParetoChart": "pareto stacked column",
        "stackedBarChart": "stacked bar",
        "verticalWaterfallChart": "vertical waterfall",
        "barChart": "bar",
        "multitierBarChart": "multi-tier bar",
        "multitierColumnChart": "year-over-year column",
        "horizontalWaterfallChart": "year-over-year waterfall",
        "trendComparisonChart": "year-over-year line",
        "trendComparisonByPeriodChart": "year-over-year by period",
        "kernelDensityChart": "kernel density",
        "histogramChart": "histogram",
        "boxplotChart": "boxplot",
        "stripplotChart": "stripplot",
        "ecdfChart": "ECDF",
        "motionChart": "motion",
        "bubbleChart": "bubble",
        "scatterChart": "scatter",
        "verticalWaterfallChart": "vertical waterfall",
        "alternativeCombinationsChart": "alternative combinations",
        "submitPlotName": "submitPlotName",
        "submitCommentName": "submitCommentName",
        "runNumberName": "runNumberName",
        "recordRunName": "recordRunName",
        "updateCurrentRunName": "updateCurrentRunName",
        "nextRunName": "nextRunName",
        "previousRunName": "previousRunName",
        "totalNberOfRunsName": "totalNberOfRunsName",
        "deepResearchRun": "deepResearchRun",
        "runsDict": "runsDict",
        "promptUser": "promptUser",
        "promptSystem": "promptSystem",
        "firstQuery": "firstQuery",
        "followUpQuery": "followUpQuery",
        "loadDataTabLabel": "Load Dataset",
        "planDataTabLabel": "Plan Dataset",
        "openAITabLabel": "Ask GPT",
        "joinDatasetTabLabel": "Join Dataset",
        "hierarchyTabLabel": "Fix Hierarchy",
        "setTimePeriodTabLabel": "Period Options",
        "filterDataTabLabel": "Filter Dataset",
        "setVarianceOptionsTabLabel": "Variance Analysis",
        "reportBuilderTabLabel": "Report Builder",
        "salesAnalysisTabLabel": "Analyze Sales",
        "addAttributesTabLabel": "Add Attributes",
        "pdpReviewTabLabel": "Review Attributes",
        "auditSupportTabLabel": "Audit Support",
        "deepResearchTabLabel": "Deep Research",
        "runDeepResearchTabLabel": "Get Prompt and Run Research",
        "checkResearchTabLabel": "Upload & Check Research",
        "checkEntriesTabLabel": "Check Entries",
        "checkStatementsTabLabel": "Check Statements",
        "checkResearchDisabled": "checkResearchDisabled",
        "reseachDisabled": "reseachDisabled",
        "checkResearchToken": "checkResearchToken",
        "plotChartsTabLabel": "Plot Charts",
        "conversationTabLabel": "Q & A Chat",
        "showChart": "Show Chart ",
        "showDataframe": "Show Dataframe ",
        "exportData": "Export Data",
        "showStepsLabel": "➕Help",
        "planOrForecastLabel": "Build Plan or Forecast",
        "planOrForecast": "planOrForecast",
        "numberOfItems": "numberOfItems",
        "numberOfDimensions": "numberOfDimensions",
        "loadDataTab": "loadDataTab",
        "joinDatasetTab": "joinDatasetTab",
        "hierarchyTab": "hierarchyTab",
        "addAttributesTab": "addAttributesTab",
        "pdpReviewTab": "pdpReviewTab",
        "checkReseachTab": "Check Research",
        "planDataTab": "planDataTab",
        "setTimePeriodTab": "setTimePeriodTab",
        "filterDataTab": "filterDataTab",
        "setVarianceOptionsTab": "setVarianceOptionsTab",
        "plotChartsTab": "plotChartsTab",
        "openAITab": "openAITab",
        "conversationTab": "conversationTab",
        "companySales": "company sales",
        "scanMarketData": "syndicated data",
        "companyExpenses": "company expenses",
        "forecastValue": "forecastValue",
        "unitsForecastValue": "unitsForecastValue",
        "volumesForecastValue": "volumesForecastValue",
        "discountsForecastValue": "discountssForecastValue",
        "cogsForecastValue": "cogsForecastValue",
        "salesForecastValue": "salesForecastValue",
        "unitPriceForecastValue": "unitPriceForecastValue",
        "volumePriceForecastValue": "volumePriceForecastValue",
        "discountAndCogs": "",
        "defaultForecastName": "default",
        "notDefaultForecastName": "notDefault",
        "percentChangeLabel": "change in %",
        "forecastChangeLabel": "forecast in %",
        "modifierLabel": "modifier",
        "unitsForecastLabel": "Units change in %",
        "volumesForecastLabel": "Volume change in %",
        "discountsForecastLabel": "Discount change in %",
        "cogsForecastLabel": "COGS change in %",
        "salesForecastLabel": "Sales change in %",
        "unitPriceForecastLabel": "Unit price change in %",
        "volumePriceForecastLabel": "Volume price change in %",
        "unitsPLName": "unitsPLName",
        "volumesPLName": "volumesPLName",
        "unitPricePLName": "unitPricePLName",
        "volumePricePLName": "volumePricePLName",
        "cogsPLName": "cogsPLName",
        "discountPLName": "discountPLName",
        "dimensionLabel": "Dimension/s",
        "conditionName": "condition",
        "changeInProportionToSales": "changeInProportionToSales",
        "changeInProportionToSalesLabel": "Forecast other metrics ",
        "firstPeriodName": "P0",
        "secondPeriodName": "P1",
        "weekName": "Week",
        "monthName": "Month",
        "yearName": "Year",
        "quarterName": "Quarter",
        "periodName": "Period",
        "datePeriodName": "Date period",
        "dateName": "Date",
        "unitsName": "Units",
        "volumeName": "Volume",
        "unitsStem": "Unit",
        "volumeStem": "Volume",
        "discountName": "Discount",
        "discountVariance": "Discount",
        "discountsCogsName": "discountsCogsName",
        "marginRate": "marginRate",
        "netOfDiscountName": "Sales Net Discount",
        "unitsPromoName": "Units Promo",
        "unitsNoPromoName": "Units No Promo",
        "monetaryLocalCurrencyName": "Sales",
        "monetaryLocalCurrencyPLName": "Sales PL",
        "costsName": "Costs",
        "costName": "Cost",
        "monetaryPromoLocalCurrencyName": "Sales Promo",
        "monetaryNoPromoLocalCurrencyName": "Sales No Promo",
        "monetaryDollarCurrencyName": "Sales Dollar Currency",
        "monetaryPromoDollarCurrencyName": "Sales Promo Dollar Currency",
        "monetaryNoPromoDollarCurrencyName": "Sales No Promo Dollar Currency",
        "cogsName": "COGS",
        "marginName": "Margin",
        "marginInPercentName": "Margin in %",
        "marginInPercentOfNetSalesName": "Margin in % of Net Sales",
        "marginInPercentTotalName": "marginInPercentTotalName",
        "marginInPercentOfNetSalesTotalName": "marginInPercentOfNetSalesTotalName",
        "discountInPercentName": "Discount in % of Sales",  # "Avg % Discount",#   "Avg Discount in %",
        "indirectCostsName": "Indirect Costs",
        "netMarginName": "Net Margin",
        "driverName": "Driver",
        "dimensionName": "Dimension",
        "valueName": "Value",
        "filterName": "Filter",
        "uploadedFileType": "uploadedFileType",
        "categoryWeightedDistributionName": "Distribution",
        "totalDistributionPointsName": "TDP",
        "checkoutsName": "Checkouts",
        "visitsName": "Visits",
        "baselineValueMetricName": "Baseline Value",
        "baselineUnitsMetricName": "Baseline Value",
        "pricePerUnitName": "Unit Price",
        "pricePerVolumeName": "Volume Price",
        "costPerUnitName": "Unit Cost",
        "costPerVolumeName": "Volume Cost",
        "costPerUnitNetDiscountName": "Unit Cost Net Discount",
        "costPerVolumeNetDiscountName": "Volume Cost Net Discount",
        "pricePerUnitNetDiscountName": "Unit Price Net Discount",
        "pricePerVolumeNetDiscountName": "Volume Price Net Discount",
        "pricePerUnitNetDiscountTotalName": "pricePerUnitNetDiscountTotalName",
        "pricePerVolumeNetDiscountTotalName": "pricePerVolumeNetDiscountTotalName",
        "discountPerUnitName": "Avg Unit Discount",
        "discountPerVolumeName": "Avg Volume Discount",
        "averageAmount": "Avg Sales",
        "averageVolume": "Avg Volume",
        "averageUnits": "Avg Units",
        "averageAmountAfterDiscount": "Avg Net Sales",
        "discountInPercentNameTotalName": "discountInPercentNameTotalName",
        "averageMargin": "Avg Margin",
        "averageTotalValue": "averageTotalValue",
        "promopricePerUnitName": "Avg Unit Promo Price",
        "noPromopricePerUnitName": "Avg Unit No Promo Price",
        "datasetChoice": "datasetChoice",
        "cogsPerUnitName": "Avg Unit COGS",
        "cogsPerVolumeName": "Avg Volume COGS",
        "separatorString": "_",
        "fileCodeName": "fileCode",
        "chartMetrics": "chartMetrics",
        "variancePercentChangeName": "% Change",
        "normalizedPercentName": "Normalized Percent",
        "normalizedAmountName": "Normalized Amount",
        "normalizeNumberOfNodesName": "Normalized Number of Nodes",
        "aggregatedNormalizedValue": "Aggregated Normalized Value",
        "marketChangeImpact": "Impact of market change",
        "normalizedStem": "Normalized",
        "metConditionValue": True,
        "notMetConditionValue": False,
        "calculateDriverVariance": "calculateDriverVariance",
        "responseName": "response",
        "parentName": "parent",
        "childName": "child",
        "uniqueValuesCol0Name": "uniqueValuesCol0",
        "uniqueValuesCol1Name": "uniqueValuesCol1",
        "correspondingName": "corresponding",
        "hierarchicalName": "hierarchical",
        "notHierarchicalName": "notHierarchical",
        "queryDateName": "Run date",
        "canPlotYearToYear": "canPlotYearToYear",
        "stepName": "Step",
        "subStepName": "Sub step",
        "dateTimeName": "DateTime",
        "nothingThereString": "N/A",
        "startAllName": "0000 - Processing started",
        "dataPreparationName": "A - Data preparation",
        "dataLoadedName": "00100 - Data loaded - Converted",
        "dataMergedName": "00200 - Data merged with dim tables - Disactivated",
        "cleanedDfsName": "00300 - Cleaned dataset - Converted",
        "foundDateAndPeriodColsName": "00400 - Found date and period cols - Converted",
        "foundColumnAndManageDatesName": "00500 - Found cols and manage dates - Converted",
        "filterOutUselessPeriodsName": "00600 - Filter out useless periods - Converted",
        "indexArrayBuiltName": "00700 - Built index array - Converted",
        "cleanedNewIndexColsName": "00800 - Cleaned new index cols - Converted",
        "dataGroupedOnIndexColsName": "00900 - Data grouped on index cols - Converted",
        "checkedDatesName": "01400 - Checked dates & grouped data - Converted",
        "addedLostDroppedColsName": "01600 - Added lost & dropped cols - Converted",
        "queriedDataName": "01700 - Queried data - Not converted",
        "madeIntersectionDfName": "01800 - Made intersection df - Converted",
        "correlationCheckedName": "01900 - Correlation checked - Not converted",
        "hierarchyMappedName": "02000 - Hierarchy mapped - Converted",
        "deleteCorrespondingColumnsName": "02200 - Delete corresponding columns - Not converted",
        "correspondingColumnsDeletedName": "02500 - Corresponding columns deleted - Converted",
        "builtIndexCombinationName": "02500 - Index combination built - Converted",
        "highCardinalityColsAggregatedName": "03000 - Aggregated high cardinality columns - Not converted",
        "droppedRowsWithNegativeValuesName": "03200 - Dropped rows with negative values- Not converted",
        "processedBaseIndexDataframeName": "03400 - Processed base index dataframe - Not converted",
        "calculateVarianceOneDimensionName": "03500 - Calculated variance - Not converted",
        "droppedZeroVarianceRowsName": "03600 - Dropped zero variance rows - Not converted",
        "duplicatedDataName": "03700 - Duplicated dataframes and dicts - Not converted",
        "makeParentKeyName": "03800 - Made parent key - Not converted",
        "getIndexCombinationsName": "03900 - Got index combinations - Not converted",
        "processIndexCombinationName": "04200 - Processed index combinationsNot Converted",
        "appliedMultiIndexName": "04300 - Concatenated dataframes - Partially converted",
        "fillParentInfoName": "04500 - Filled parent info - Not converted",
        "countNumberOfNodesName": "04700 - Counted number of nodes - Not converted",
        "countNumberOfNodesPerCombinationName": "04900 - Counted number of nodes per combination - Not converted",
        "makeCopyForSubtractionName": "05200 - Made copy for df substract - Not converted",
        "getMetricValuesName": "05500 - Got metric values  - Not converted",
        "findUniqueNodeChainsName": "06000 - Found unique node chains - Partially converted",
        "deletedDuplicateNodesName": "06500 - Deleted duplicate nodes - Not converted",
        "endDataPreparationName": "09900 - Data preparation ended",
        "fixedDimensionVarianceName": "10000 - Fixed dimension variance",
        "fixedDimensionVarianceDataPreparationName": "11000 - Fixed dimension variance data prepared",
        "fixedDimensionVarianceChartingName": "12000 - Fixed dimension chart plotted",
        "fixedDimensionVarianceEndedName": "19990 - Fixed dimension variance ended",
        "rowProcessingName": "01000 - Row processing",
        "calculateChangeName": "10000 - Change calculated - Not converted",
        "normalizeDifferencesName": "10100 - Normalize differences - Not converted",
        "checkIfInBondsName": "10200 - Check if in bonds - Not converted",
        "checkIfInBothPeriodsPositiveName": "10300 - Check if in both periods positive - Not converted",
        "findRowsToSubtractName": "10400 - Find rows to subtract - Not converted",
        "tagMissingRowsName": "10500 - Tag missing rows - Not converted",
        "makeFilteringDataframeName": "10600 - Make filtering dataframe - Not converted",
        "saveRecalculationStepsName": "10700 - Save recalculation steps - Not converted",
        "subtractValuesName": "10800 - Subtract values - Not converted",
        "getCellValueFromDataframe": "10900 - Get cell value from dataframe - Not converted",
        "processedMainReportName": "01100 - Calculated main report",
        "processedDrilldownName": "01200 - Calculated drilldown report",
        "endRowProcessingName": "01990 - Row processing ended",
        "chartingName": "40000 - Charting",
        "chartingStartName": "40100 - Charting started",
        "chartingEndName": "40999 - Charting ended",
        "endAllName": "00999 - Processing ended",
        "uniqueValuesInColumnDict": "uniqueValuesInColumnDict",
        "uniqueValuesInColumnList": "uniqueValuesInColumnList",
        "uniqueValuesInCombination": "Unique_Values_In_Combination",
        "normalizedUniqueValuesInCombination": "Normalized_Unique_Values_In_Combination",
        "hyphenName": "-",
        "priceVariance": "Price",
        "priceVarianceOnMargin": "Price on margin",
        "priceVarianceOnNetSales": "Price on net sales",
        "volumeVariance": "Volume & mix",
        "volumeVarianceOnMargin": "Volume & mix on margin",
        "volumeVarianceOnNetSales": "Volume & mix net sales",
        "pureVolumeVarianceName": "Volume",
        "pureVolumeOnMarginVarianceName": "Volume on margin",
        "topSalesItemsName": "top items",
        "mixVariance": "Mix",
        "mixVarianceOnMargin": "Mix on margin",
        "driverVariance": "Driver",
        "costVariance": "Cost",
        "totalVariance": "Price & volume & mix",
        "COGSVariance": "COGS",
        "marginRateVariance": "Margin rate",
        "netOfDiscountVariance": "After discount",
        "marginVariance": "Margin",
        "netMarginVariance": "After indirect costs",
        "lostVolumeVarianceName": "Lost volume",
        "newVolumeVarianceName": "New volume",
        # "changedVolumeVarianceMixName":"Changed volume & mix",
        "changedVolumeVarianceMixName": "Volume & mix",
        "changedVolumeVarianceName": "Changed volume",
        "percentSuffix": " in %",
        "baseVariancePrice": "Base variance price",
        "baseVarianceUnits": "Base variance volume",
        "baseVarianceDriver": "Base variance driver",
        "baseVarianceDriverArray": "baseVarianceDriverArray",
        "baseVarianceName": "Base variance",
        "totalVarianceValue": "Price and volume",
        "residualVariance": "Residual variance total",
        "residualVariancePrice": "Residual variance price",
        "residualVarianceVolume": "Residual variance volume",
        "varianceTypeName": "Variance_Type",
        "varianceAmountName": "Variance",
        "stemDict": "stemDict",
        "drillDownDatasetNumber": "drillDownDatasetNumber",
        "drillDownKeyLength": "drillDownKeyLength",
        "drillDownRowToPlotLabel": "Plot main report data or drill down report data",
        "percentVarianceAfterDiscounts": "percentVarianceAfterDiscounts",
        "percentVarianceAfterCogs": "percentVarianceAfterCogs",
        "monetaryLocalCurrencyStemDict": "monetaryLocalCurrencyStemDict",
        "monetaryPromoLocalCurrencyStemDict": "monetaryPromoLocalCurrencyStemDict",
        "monetaryNoPromoLocalCurrencyStemDict": "monetaryNoPromoLocalCurrencyStemDict",
        "monetaryDollarCurrencyStemDict": "monetaryDollarCurrencyStemDict",
        "monetaryPromoDollarCurrencyStemDict": "monetaryPromoDollarCurrencyStemDict",
        "monetaryNoPromoDollarCurrencyStemDict": "monetaryNoPromoDollarCurrencyStemDict",
        "unitsStemDict": "unitsStemDict",
        "volumeStemDict": "volumeStemDict",
        "unitsPromoStemDict": "unitsPromoStemDict",
        "unitsNoPromoStemDict": "unitsNoPromoStemDict",
        "dateStemDict": "dateStemDict",
        "periodStemDict": "periodStemDict",
        "discountStemDict": "discountStemDict",
        "netOfDiscountStemDict": "netOfDiscountStemDict",
        "cogsStemDict": "cogsStemDict",
        "marginStemDict": "marginStemDict",
        "indirectCostsStemDict": "indirectCostsStemDict",
        "netMarginStemDict": "netMarginStemDict",
        "categoryWeightedDistributionStemDict": "categoryWeightedDistributionStemDict",
        "totalDistributionPointsStemDict": "totalDistributionPointsStemDict",
        "baselineunitsStemDict": "baselineunitsStemDict",
        "baselineValueStemDict": "baselineValueStemDict",
        "checkoutsStemDict": "checkoutsStemDict",
        "visitsStemDict": "visitsStemDict",
        "metricsColsDict": "metricsColsDict",
        "periodsArray": "periodsArray",
        "toMultiplyStemArray": "toMultiplyStemArray",
        "varianceStemArray": "varianceStemArray",
        "toDropStemArray": "toDropStemArray",
        "stemArray": "stemArray",
        "notStemArray": "notStemArray",
        "foundColsArray": "foundColsArray",
        "driverArray": "driverArray",
        "normalizeStemValue": "Norm",
        "varianceName": "variance",
        "toSubtractStem": "_To_Subtract ",
        "amountChange": "Sales change",
        "priceChange": "Price change",
        "unitsChange": "Units change",
        "volumeChange": "Volume change",
        "marginChange": "Margin change",
        "netMarginChange": "Net margin change",
        "netOfDiscountUnitsChange": "Net of discount change x unit",
        "netOfDiscountVolumeChange": "Net of discount change x volume",
        "costPerUnitChange": "costPerUnitChange",
        "netPriceChange": "Price net of costs change",
        "marginRateChange": "Margin rate change",
        "cogsUnitChange": "COGS change x unit ",
        "discountUnitChange": "Discount change x unit ",
        "cogsVolumeChange": "COGS change x volume",
        "discountVolumeChange": "Discount change x volume",
        "driverChange": "Driver change",
        "changeName": "change",
        "colorItems": "colorItems",
        "workColumn": "workColumn",
        "workColumnTwo": "workColumnTwo",
        "workColumnThree": "workColumnThree",
        "workColumnFour": "workColumnFour",
        "workColumnFive": "workColumnFive",
        "workColumnSix": "workColumnSix",
        "isRevenueChanged": "isRevenueChanged",
        "isFilteredKey": "isFilteredKey",
        "periodZeroName": "period zero",
        "periodOneName": "period one",
        "totalAmountPeriodZero": "amount period zero",
        "totalAmountPeriodOne": "amount period one",
        "totalAmountPeriodZeroFiltered": "Total period zero filtered",
        "totalAmountPeriodOneFiltered": "Total period one filtered",
        "sharePeriodZero": "Share period zero in %",
        "sharePeriodOne": "Share period one in %",
        "indexPeriodZero": "Index period zero",
        "indexPeriodOne": "Index period one",
        "totalMarginPeriodZero": "margin period zero",
        "totalMarginPeriodOne": "margin period one",
        "totalMarginPeriodZeroFiltered": "Total margin period zero filtered",
        "totalMarginPeriodOneFiltered": "Total margin period one  filtered",
        "totalMarginPeriodZeroinPercent": "Total margin period zero in %",
        "totalMarginPeriodOneinPercent": "Total margin period one in %",
        "totalMarginPeriodZeroinPercentFiltered": "Total margin period zero in % filtered",
        "totalMarginPeriodOneinPercentFiltered": "Total margin period one in % filtered",
        "totalNetMarginPeriodZero": "net margin period zero",
        "totalNetMarginPeriodOne": "net margin period one",
        "totalNetMarginPeriodZeroFiltered": "Total net margin period zero filtered",
        "totalNetMarginPeriodOneFiltered": "Total net margin period one filtered",
        "totalNetMarginPeriodZeroinPercent": "Total net margin period zero in %",
        "totalNetMarginPeriodOneinPercent": "Total net margin period one in %",
        "totalNetMarginPeriodZeroinPercentFiltered": "Total net margin period zero in % filtered",
        "totalNetMarginPeriodOneinPercentFiltered": "Total net margin period one in % filtered",
        "totalNetOfDiscountPeriodZero": "net of discount period zero",
        "totalNetOfDiscountPeriodOne": "net of discount period one",
        "totalNetOfDiscountPeriodZeroFiltered": "Total net of discount period zero filtered",
        "totalNetOfDiscountPeriodOneFiltered": "Total net of discount period one filtered",
        "totalNetOfDiscountPeriodZeroinPercent": "Total net of discount period zero in %",
        "totalNetOfDiscountPeriodOneinPercent": "Total net of discount period one in %",
        "totalNetOfDiscountPeriodZeroinPercentFiltered": "Total net of discount period zero in % filtered",
        "totalNetOfDiscountPeriodOneinPercentFiltered": "Total net of discount period one in % filtered",
        "avgAmountPeriodsZeroOne": "Avg sales two periods",
        "avgNetOfDiscountPeriodsZeroOne": "Avg net of discount two periods",
        "avgMarginPeriodsZeroOne": "Avg margin two periods",
        "cumSumVariance": "Variance cumulative sum",
        "cumSum": "cumSum",
        "maxNumberOfNodes": "maxNumberOfNodes",
        "maxNumberOfNodesLabel": "Max number of nodes per result (0 = No max)",
        "numberOfNodes": "Number_Of_Nodes",
        "filterOutPercent": "Filter out %",
        "randomKey": "Random_Key",
        "loopRandomKey": "Loop_Random_Key",
        "nanFillValue": "All",
        "filterDates": "filterDates",
        "varianceAmountWeight": "varianceAmountWeight",
        "varianceAmountWeightDefault": "varianceAmountWeightDefault",
        "numberOfNodesWeight": "numberOfNodesWeight",
        "uniqueValuesInCombinationWeight": "uniqueValuesInCombinationWeight",
        "numberOfNodesWeightDefault": "numberOfNodesWeightDefault",
        "uniqueValuesInCombinationWeightDefault": "uniqueValuesInCombinationWeightDefault",
        "minPercentOfTotalVariance": "minPercentOfTotalVariance",
        "maxPercentOfTotalVariance": "maxPercentOfTotalVariance",
        "maxPercentOfTotalVarianceDefault": "maxPercentOfTotalVarianceDefault",
        "minPercentOfTotalAmount": "minPercentOfTotalAmount",
        "minPercentOfTotalAmountDefault": "minPercentOfTotalAmountDefault",
        "maxPercentOfTotalAmount": "maxPercentOfTotalAmount",
        "maxPercentChange": "Max Percent Change",
        "maxPercentChangeDefault": "maxPercentChangeDefault",
        "minValue": "minValue",
        "maxValue": "maxValue",
        "labelName": "label",
        "otherLabelName": "otherLabel",
        "otherName": "other",
        "colorName": "colorName",
        "newVolumePercentChange": "New Volume Percent Change",
        "maxIndexArrayLength": "maxIndexArrayLength",
        "unitsColFound": "unit column found",
        "volumeColFound": "volume column found",
        "unitPromoColFound": "unit promo column found",
        "unitNoPromoColFound": "unit no promo column found",
        "monetaryLocalCurrencyColFound": "sales column found",
        "monetaryPromoLocalCurrencyColFound": "monetary promo local currency column found",
        "monetaryNoPromoLocalCurrencyColFound": "monetary no promo local currency column found",
        "monetaryDollarCurrencyColFound": "monetary dollar currency column found",
        "monetaryPromoDollarCurrencyColFound": "monetary promo dollar currency column found",
        "monetaryNoPromoDollarCurrencyColFound": "monetary no promo dollar currency column found",
        "periodColFound": "period column found",
        "dateColFound": "date column found",
        "discountColFound": "discount column found",
        "netOfDiscountColFound": "net sales after of discount column found",
        "cogsColFound": "COGS column found",
        "marginColFound": "margin column found",
        "cwdColFound": "cwd column found",
        "tdpColFound": "tdp column found",
        "driverColFound": "driver column found",
        "checkoutsColFound": "checkouts column found",
        "visitsColFound": "visits column found",
        "baselineValueColFound": "baseline value column found",
        "baselineUnitsColFound": "baseline units column found",
        "numberOfPeriodsFound": "numberOfPeriodsFound",
        "allPeriodsList": "allPeriodsList",
        "selectedPeriods": "selectedPeriods",
        "reverseSortPeriods": "reverseSortPeriods",
        "fileFormat": "fileFormat",
        "datasetName": "datasetName",
        "chosenReportFolderName": "chosenReportFolderName",
        "uploadedFileName": "uploadedFileName",
        "dropDuplicates": "dropDuplicates",
        "dropDuplicatesLabel": "Drop duplicate rows",
        "toTitleCase": "toTitleCase",
        "numberOfRowResults": "numberOfRowResults",
        "deletedColumnInMatchingPair": "deletedColumnInMatchingPair",
        "mostRecentPeriod": "mostRecentPeriod",
        "mostRecentPeriodLabel": "Most recent period",
        "mostRecentPeriodIndex": "mostRecentPeriodIndex",
        "otherPeriodIndex": "otherPeriodIndex",
        "likelyUnitsCols": "likelyUnitsCols",
        "likelyVolumeCols": "likelyVolumeCols",
        "likelyPromoUnitsCols": "likelyPromoUnitsCols",
        "likelyNoPromoUnitsCols": "likelyNoPromoUnitsCols",
        "likelyLocalCurrencyValueCols": "likelyLocalCurrencyValueCols",
        "likelyPromoLocalCurrencyValueCols": "likelyPromoLocalCurrencyValueCols",
        "likelyNoPromoLocalCurrencyValueCols": "likelyNoPromoLocalCurrencyValueCols",
        "likelyDollarCurrencyValueCols": "likelyDollarCurrencyValueCols",
        "likelyPromoDollarCurrencyValueCols": "likelyPromoDollarCurrencyValueCols",
        "likelyNoPromoDollarCurrencyValueCols": "likelyNoPromoDollarCurrencyValueCols",
        "likelyDateCols": "likelyDateCols",
        "likelyPeriodCols": "likelyPeriodCols",
        "likelyDiscountCols": "likelyDiscountCols",
        "likelyNetOfDiscountCols": "likelyNetOfDiscountCols",
        "likelyCogsCols": "likelyCogsCols",
        "likelyMarginCols": "likelyMarginCols",
        "likelyCwdCols": "likelyCwdCols",
        "likelyTdpCols": "likelyTdpCols",
        "likelyCheckoutsCols": "likelyCheckoutsCols",
        "likelyVisitsCols": "likelyVisitsCols",
        "likelyBaselineValueCols": "likelyBaselineValueCols",
        "likelyBaselineUnitsCols": "likelyBaselineUnitsCols",
        "likelyOtherNumericCols": "likelyOtherNumericCols",
        "getIndex": "getIndex",
        "loopNumberName": "loopNumber",
        "mainReportRunName": "Main Report",
        "drilldownReportRunName": "Drilldown Report",
        "moveRowReportRunName": "Main Report With Drilldown Rows",
        "drilldownKey": "drilldownKey",
        "chosenDrilldownRow": "chosenDrilldownRow",
        "rowResultsUntilStop": "rowResultsUntilStop",
        "noMoreRowsWithRandomKey": "noMoreRowsWithRandomKey",
        "rowsFoundToSubtract": "rowsFoundToSubtract",
        "insertAtRowDict": "insertAtRowDict",
        "rowMissingInToSubtract": "rowMissingInToSubtract",
        "simplifiedProcessing": "simplifiedProcessing",
        "highCardinalityNumberOfUniques": "highCardinalityNumberOfUniques",
        "highCardinalityFill": "Aggregated lower value items",
        "rankName": "Rank",
        "rankBoolean": "rankBoolean",
        "dataUploaded": "dataUploaded",
        "researchUploaded": "researchUploaded",
        "datasetListDict": "datasetListDict",
        "reportListDict": "reportListDict",
        "doclinkDict": "doclinkDict",
        "runningTotalName": "Running Total",
        "noDateColumnMessage": "Dataset period column",
        "periodChoice": "periodChoice",
        "ascendingPeriodSortMessage": "Ascending",
        "reversePeriodSortMessage": "Descending",
        "fileChoiceLabel": "Choose an example dataset...",
        "reportChoiceLabel": "Choose an example report...",
        "fileSeparatorLabel": "Csv column separator",
        "fileUploadLabel": "..or upload your Excel / CSV / Parquet file",
        "reportUploadLabel": "...or upload your zip file containing the plots and the JSON report files",
        "chartUploadLabel": ".. and your png plots.",
        "multipleFileUploadLabel": "Upload  and join dimension tables",
        "multipleFileUploadArray": "multipleFileUploadArray",
        "datasetParametersLabel": "Dataset Parameters",
        "allDimensionsStringLabel": "All dimensions must be strings ",
        "dropLowCorrelationColsLabel": "Drop columns with low correlation with variance amount",
        "dropLowCorrelationCols": "dropLowCorrelationCols",
        "allDimensionsString": "allDimensionsString",
        "totalName": "Total",
        "aggregateDateLabel": " Date aggregation",
        "periodOrderLabel": "Reverse period order",
        "fileUploadChoice": "I will upload my dataset",
        "reportUploadChoice": "I will upload my zip file",
        "reportUploaded": "reportUploaded",
        "reseachUploaded": "reseachUploaded",
        "reseachUploaded": "reseachUploaded",
        "varianceAggregationLabel": "Show variance as",
        "filterVarianceLabel": "Show only variance type",
        "showOnlyLabel": "Show",
        "showOnly": "showOnly",
        "showAll": "All",
        "showTop": "Top",
        "showBottom": "Bottom",
        "QueryName": "QueryName",
        "chooseQueryLabel": "Choose Query",
        "showLegendLabel": "Show integrated legend",
        "showLegend": "showLegend",
        "showLegendLeftOrRight": "left/right only",
        "showLegendOnTop": "top only",
        "showLegendInBars": "inside bars only",
        "varianceAggregation": "varianceAggregation",
        "parameterSettingLabel": "Parameter setting option",
        "parameterSetting": "parameterSetting",
        "largestCombinationOption": "Choose largest combinations",
        "limitFirstResultSizeOption": "Limit first result size",
        "moreNodesOption": "Choose combinations with more nodes",
        "moreGrowthOption": "Choose higher % growth combinations",
        "letMeChooseOptionLabel": "Let me fine tune parameters",
        "letMeChooseOption": "letMeChooseOption",
        "netMarginVarianceName": "after indirect costs",
        "marginVarianceAggregation": "margin",
        "marginUnitsRateAggregation": "price, units & mix, margin rate",
        "marginVolumeRateAggregation": "price, volume & mix, margin rate",
        "costsUnitsAggregation": "price, units & mix, costs",
        "costsVolumeAggregation": "price, volume & mix, costs",
        "costsUnitsMixAggregation": "price, units, mix, costs",
        "costsVolumeMixAggregation": "price, volume, mix, costs",
        "discountsUnitsCogsAggregation": "price, units & mix, discounts, COGS",
        "discountsVolumeCogsAggregation": "price, volume & mix, discounts, COGS",
        "netOfDiscountAggregation": "after discounts",
        "discountsAndUnitsAggregation": "price, units & mix, discounts",
        "discountsAndVolumeAggregation": "price, volume & mix, discounts",
        "totalVarianceAggregation": "price & units & mix",
        "priceAndUnitsAggregation": "price, units & mix",
        "priceAndVolumeAggregation": "price, volume & mix",
        "mixAndUnitsAggregation": "price, units, mix",
        "mixAndVolumeAggregation": "price, volume, mix",
        "newAndLostUnitsAggregation": "price, new, lost, units & mix",
        "newAndLostVolumeAggregation": "price, new, lost, volume & mix",
        "newAndLostUnitsMixAggregation": "price, new, lost, units, mix",
        "newAndLostVolumeMixAggregation": "price, new, lost, volume, mix",
        "driverAndUnitsAggregation": "price, units & mix, drivers",
        "driverAndVolumeAggregation": "price, volume & mix, drivers",
        "mixUnitsDriverAggregation": "price, units, mix, drivers",
        "mixVolumeDriverAggregation": "price, volume, mix, drivers",
        "unitsOnMarginAggregation": "units & mix on margin",
        "volumeOnMarginAggregation": "volume & mix on margin",
        "discountsAggregation": "discounts",
        "cogsAggregation": "COGS",
        "unitPriceOnSalesAggregation": "unit price on sales",
        "volumePriceOnSalesAggregation": "volume price on sales",
        "unitsOnSalesAggregation": "units & mix on sales",
        "volumeOnSalesAggregation": "volume & mix on sales",
        "unitPriceOnMarginAggregation": "unit price on margin",
        "volumePriceOnMarginAggregation": "volume price on margin",
        "driverAggregation": "drivers",
        "priceName": "Price",
        "newAggregation": "new",
        "lostAggregation": "lost",
        "changedAggregation": "changed",
        "changedTimeAggregation": "changedTimeAggregation",
        "mixAggregation": "mix",
        "volumePerPosVariance": "Volume x POS",
        "mixVolumePerPosVariance": "Volume x POS & mix",
        "averageTicketVariance": "Average ticket",
        "mixAverageTicketVariance": "Average ticket & mix",
        "maxPercentChangeLabel": "Max percent change (0 = No max)",
        "numberOfColumnsWeight": "numberOfColumnsWeight",
        "simplifiedProcessingMessage": "Using simplified processing option to reduce processing time. ",
        "aggregateLowerValueItemsLabel": "Aggregate bottom-ranking % of items",
        "maxPercentOfTotalVarianceLabel": "Max % of total variance per result",
        "minPercentOfTotalVarianceLabel": "Min % of total variance per result",
        "maxPercentOfTotalAmountLabel": "Max % of total amount per result",
        "minPercentOfTotalAmountLabel": "Min % of total amount per result",
        "numberOfRowResultsLabel": "Number of desired results",
        "varianceAmountWeightLabel": "Variance amount weight",
        "numberOfNodesWeightLabel": "Number of nodes weight",
        "uniqueValuesInCombinationWeightLabel": "Unique number of items weight",
        "selectDrilldownRowLabel": "Drilldown Report Rows - #",
        "chosenDrilldownRowLabel": "Drilldown row number (0️⃣ = None)",
        "processingChoice": "processingChoice",
        "varianceAnalysisChart": "varianceAnalysisChart",
        "plotSmallMultiplesLabel": "Plot small multiples",
        "plotSmallMultiplesWaterfall": "plotSmallMultiplesWaterfall",
        "plotSmallMultiplesOtherCharts": "smallMultiplesCharts",
        "chooseProcessingLabel": "Variance calculation",
        "noVarianceAnalysis": "No variance analysis calculation",
        "runVariableDimensionalAnalysis": "Multidimensional variance bridge analysis",
        "runOneDimensionalAnalysis": "Fix dimension variance analysis",
        "toMoveDrilldownRowsIndexLabel": "Select drilldown rows to move to main report",
        "toMoveDrilldownRowsIndexName": "toMoveDrilldownRowsIndexName",
        "submitLabel": "🚀Submit",
        "submitPlotLabel": "Plot🚀",
        "getChartCommentLabel": "Confirm Plot",
        "uploadChartLabel": "Upload Plot",
        "addChartCommentName": "AddChartComment",
        "addChartCommentText": "AddChartCommentText",
        "addChartCommentHash": "addChartCommentHash",
        "addChartCommentLabel": "Add Plot Description ",
        "recordRunLabel": "Save ",
        "updateCurrentRunLabel": "Update🔄",
        "deleteRunLabel": "Delete🔼",
        "deleteRunName": "deleteRunName",
        "addNewRunLabel": "Insert new🔽",
        "addNewRunName": "addNewRunName",
        "nextRunLabel": "Next⏭️",
        "previousRunLabel": "Previous⏮️",
        "clearCacheLabel": " Clear cache",
        "addPromptLabel": "You can add info to the GPT prompt.",
        "submitPromptLabel": "Select Charts",
        "choosePlotLabel": " Plot type",
        "plotlyTable": "plotlyTable",
        "plotMultipleRegression": "Multiple Regression (in development)",
        "numberOfTopLabel": "Number of top items",
        "numberOfSmallMultiplesLabel": "Number of small multiple plots or of items to plot",
        "numberOfSmallMultiples": "numberOfSmallMultiples",
        "numberOfSmallMultiplesWaterfall": "numberOfSmallMultiplesWaterfall",
        "drillDownRowsLabel": "Drilldown rows",
        "statusMessageArray": "statusMessageArray",
        "aggregateLowerValueItems": "aggregateLowerValueItems",
        "alreadyMovedRows": "alreadyMovedRows",
        "alreadyMovedSets": "alreadyMovedSets",
        "fileSeparator": "fileSeparator",
        "dropRowsWithNegativeValues": "dropRowsWithNegativeValues",
        "dropRowsWithNegativeValuesLabel": "Drop zero and negative rows",
        "dropNegative": "< 0",
        "dropZero": "= 0",
        "dropZeroAndNegative": "≤ 0",
        "driverColsArray": "driverColsArray",
        "numberOfTop": "numberOfTop",
        "resampleDatesLabel": "Resample dates (in months)",
        "resampleDates": "resampleDates",
        "aggregateUniquesByDimensionLabel": "Aggregate uniques by dimension",
        "aggregateUniquesByDimension": "aggregateUniquesByDimension",
        "showMetricsInDataColumn": "showMetricsInDataColumn",
        "selectMetricsToShowInDataColumnLabel": "Choose metrics to show in data column",
        "metricsToShowInDataColumn": "metricsToShowInDataColumn",
        "maxNumberOfDataColMetrics": "maxNumberOfDataColMetrics",
        "dataColMetricName": "dataColMetricName",
        "plotValuesAsChoice": "plotValuesAsChoice",
        "plotValuesAsLabel": "Plot values",
        "absolute": "in absolute value",
        "absoluteName": "absolute",
        "index": "index vs year ago",
        "activeName": "Still active",
        "lostName": "Lost",
        "sinceName": "Since",
        "countRank": "rank",
        "showRank": "showRank",
        "showRankLabel": "Show rank as Y label",
        "showAbsoluteValues": "showAbsoluteValues",
        "showAbsoluteValuesLabel": "Show absolute values",
        "averageWeeklyValue": "average weekly value",
        "percentOfTotalDataset": "as % of total dataset",
        "percentOfTotalFiltered": "as % of total after filters",
        "percentOfResultRow": "as % of result row",
        "percentOfTotal": "as % of total",
        "percentOfRowTotal": "as % of row total",
        "percentOfColumnTotal": "as % of column total",
        "forcedMaxPercentValue": "forcedMaxPercentValue",
        "forcedMinPercentOfTotalAmount": "forcedMinPercentOfTotalAmount",
        "forcedValue": "forcedValue",
        "topWordDict": "topWordDict",
        "nothingFilteredName": "None",
        "toIncludeItems": "toIncludeItems",
        "toExcludeItems": "toExcludeItems",
        "filterDictName": "filterDictName",
        "numberFilterDictName": "numberFilterDictName",
        "drilldownParamsDictName": "drilldownParamsDictName",
        "varianceParamsDictName": "varianceParamsDictName",
        "loopParamsDictName": "loopParamsDictName",
        "includefullQueryString": "includefullQueryString",
        "excludefullQueryString": "excludefullQueryString",
        "filterActiveName": "filterActiveName",
        "chooseFilterColumnLabel": "🔽Filter column",
        "chooseToIncludeItemsLabel": "Choose items to include✔️",
        "chooseToExcludeItemsLabel": "Choose items to exclude❌",
        "correctPeriodAggregation": "correctPeriodAggregation",
        "endThirdBlock": "9999 - End third block",
        "roundValues": "roundValues",
        "startDate": "startDate",
        "endDate": "endDate",
        "dateRangeArray": "dateRangeArray",
        "startDateLabel": "Start date filter",
        "endDateLabel": "End date filter",
        "isColumnMultiplied": "isColumnMultiplied",
        "multiplyConstant": "multiplyConstant",
        "metricName": "metric",
        "metricPLName": "MetricPL",
        "excludeOutliers": "excludeOutliers",
        "excludeOutliersLabel": "Exclude❌outliers",
        "excludeOutliersFromMixVarianceLabel": "Drop price outliers from mix variance calculation",
        "stdDeviations": "stdDeviations",
        "stdDeviationsLabel": "Number of standard deviations",
        "impossibleToProcessFile": "impossibleToProcessFile",
        "addCompanyNameLabel": "Reporting entity",
        "companyName": "companyName",
        "companyUrl": "companyUrl",
        "industry": "Industry",
        "companyDescription": "Company description",
        "industryDescription": "Industry description",
        "addMessageLabel": "Add message to plot. When done, hit Plot🚀",
        "dfName": "df",
        "dfBaseName": "dfBase",
        "dfPeriodsName": "dfPeriods",
        "dfAllPeriodsName": "dfAllPeriods",
        "dfDatesName": "dfDates",
        "dfMergedName": "dfMerged",
        "dfPlanName": "dfPlan",
        "dfForecastName": "dfForecast",
        "dfFilteredName": "dfFiltered",
        "dfMainReportName": "dfMainReport",
        "dfSnapshotName": "dfSnapshotName",
        "dfDictListDrilledName": "dfDictListDrilledName",
        "dfDictSnapshotDrilledName": "dfDictSnapshotDrilledName",
        "chooseRowToPlotLabel": "Data to plot",
        "plotOriginalDataLabel": "Plot non filtered amount",
        "prepareFileForDownloadLabel": "Prepare file for download",
        "prepareFileForDownload": "prepareFileForDownload",
        "prepareMergedFileForDownloadLabel": "Prepare merged file for download",
        "prepareMergedFileForDownload": "prepareMergedFileForDownload",
        "prepareFilteredFileForDownloadLabel": "Prepare filtered file for download",
        "prepareFilteredFileForDownload": "prepareFilteredFileForDownload",
        "isMergedFile": "isMergedFile",
        "plotOriginalData": "plotOriginalData",
        "rowToPlotName": "rowToPlot",
        "doNotPlotName": "Only plot variance charts",
        "rowName": "row ",
        "columnName": "column",
        "entireDatasetName": "Entire dataset",
        "chosenChart": "chosenChart",
        "mainDimensionLabel": "Main dimensions",
        "mainDimension": "mainDimension",
        "multipliedMetric": "multipliedMetric",
        "selectMainDimensionLabel": "✔️ Columns you want to see in every report row",
        "selectSmallMultiplesDimensionLabel": "Dimension to plot on waterfall chart",
        "selectDimensionsToPlotLabel": "Dimensions to plot",
        "selectDimensionsToPlot": "selectDimensionsToPlot",
        "selectsmallMultiplesColumnLabel": "Dimension to plot",
        "selectsmallMultiplesColumnAsSmallMultiplesLabel": "Dimension to plot as small multiples",
        "selectHorizontalDimensionLabel": "Dimension to plot on the horizontal axis",
        "selectVerticalDimensionLabel": "Dimension to plot on the vertical axis",
        "selectCountUniquesDimensionLabel": "Dimension to count unique items",
        "selectAggregateUniquesDimensionLabel": "Dimension to aggregate unique items",
        "selectDimensionAsCirclesLabel": "Dimension to plot as circles",
        "aggregateUniquesDimension": "aggregateUniquesDimension",
        "selectDimensionAsSets": "Dimension to plot as sets",
        "selectDimensionAsBubbles": "Dimension to plot as bubbles",
        "selectDimensionAsDots": "Dimension to plot as dots",
        "selectDistributionDimension": "Dimension to plot distribution",
        "selectYAxisSmallMultiplesDimension": "Dimension to plot on small multiples Y axis",
        "selectcolumnToColorBubbles": "Dimension to color bubbles",
        "selectcolumnToColorDots": "Dimension to color dots",
        "selectcolumnToCountCommunality": "Intersection dimension",
        "addCatPlotTypeLabel": "Plot distribution of variables",
        "addCatPlotMetricLabel": "Metric to plot",
        "catPlotType": "catPlotType",
        "catPlotMetric": "catPlotMetric",
        "countColumn": "countColumn",
        "smallMultiplesColumn": "smallMultiplesColumn",
        "selectMetricsToPlotLabel": "Choose metrics to plot",
        "singleMetric": "singleMetric",
        "xAxisMetric": "xAxisMetric",
        "yAxisMetric": "yAxisMetric",
        "yAxisDimension": "yAxisDimension",
        "xAxisDimension": "xAxisDimension",
        "selectSingleMetricLabel": "Metric to plot",
        "metricsToPlot": "metricsToPlot",
        "varianceOnTotal": "varianceOnTotal",
        "minPercentOfTotalAmountDict": "minPercentOfTotalAmountDict",
        "maxPercentOfTotalAmountDict": "maxPercentOfTotalAmountDict",
        "varianceAmountWeightDict": "varianceAmountWeightDict",
        "numberOfNodesWeightDict": "numberOfNodesWeightDict",
        "uniqueValuesInCombinationWeightDict": "uniqueValuesInCombinationWeightDict",
        "maxPercentChangeDict": "maxPercentChangeDict",
        "compareWithYearBeforeLabel": "Compare with rolling period",
        "compareWithYearBefore": "compareWithYearBefore",
        "twentyfourMonthsInDataset": "twentyfourMonthsInDataset",
        "periodToDateLabel": "Compare with period to date",
        "periodToDate": "periodToDate",
        "fiscalYearLabel": "Analyse dates by fiscal year",
        "fiscalYear": "fiscalYear",
        "fiscalStartMonth": "fiscalStartMonth",
        "fiscalStartMonthLabel": "Select fiscal year start month",
        "monthTranslateDict": "monthTranslateDict",
        "timeProfileLabel": "Time profile",
        "timeProfileValues": "timeProfileValues",
        "timeProfile": "timeProfile",
        "likeBaseYear": "Base",
        "flat": "Flat",
        "custom": "Set",
        "preparePlanParams": "preparePlanParams",
        "collisionChoiceName": "collisionChoiceName",
        "collisionChoiceLabel": "If multiple conditions",
        "firstChoice": "First",
        "allChoice": "All",
        "toDateName": "_",
        "yearToDateName": "_",  # "YTD"
        "quarterToDateName": "_",  # "QTD"
        "monthToDateName": "_",  # "MTD"
        "toDateSymbol": "_",
        "isdataset": "isdataset",
        "isDataUploaded": "isDataUploaded",
        "yoyPercentChange": "yoyPercentChange",
        "chooseExcludeColumnsLabel": "Exclude❌columns from analysis",
        "chooseExcludeColumns": "chooseExcludeColumns",
        "chooseExcludeColumnsCheckbox": "chooseExcludeColumnsCheckbox",
        "varianceInPercentLabel": "Variance as % of revenues",
        "shareOfTotalMarketLabel": "Show values as index💯/share of total",
        "showValuesAs": "showValuesAs",
        "showValuesAsLabel": "Show value labels",
        "shareOfTotalMarket": "shareOfTotalMarket",
        "varianceInPercent": "varianceInPercent",
        "showAverageValueLabel": "Show average value",
        "showAverageValueName": "showAverageValue",
        "encoding": "encoding",
        "redToGreen": "🔴-🟢+",
        "greenToRed": "🟢-🔴+",
        "blueToOrange": "🔵-🟠+",
        "emojiNumberDict": "emojiNumberDict",
        "invertedEmojiNumberDict": "invertedEmojiNumberDict",
        "emojiArrayOneToTen": "emojiArrayOneToTen",
        "emojiArrayZeroToTen": "emojiArrayZeroToTen",
        "colorChoiceLabel": "Variance color",
        "currencyChoiceLabel": " Currency",
        "currencyChoice": "currencyChoice",
        "fullCurrencyName": "fullCurrencyName",
        "colorChoice": "colorChoice",
        "cogsAggregationArray": "cogsAggregationArray",
        "discountsAggregationArray": "discountsAggregationArray",
        "mixSalesAggregationArray": "mixSalesAggregationArray",
        "mixMarginAggregationArray": "mixMarginAggregationArray",
        "driverAggregationArray": "driverAggregationArray",
        "salesAggregationArray": "salesAggregationArray",
        "maxNumberOfIndexCols": "maxNumberOfIndexCols",
        "cutCorrelationNumber": "cutCorrelationNumber",
        "highEstimatorValue": "highEstimatorValue",
        "droppedLowCorrelationCols": "droppedLowCorrelationCols",
        "yAxisLabel": "Y-axis metric",
        "xAxisLabel": "X-axis metric",
        "colorLabel": "Bubble color dimension",
        "bubbleSizeLabel": "Bubble size metric",
        "yAxisQqPlot": "Ordered values",
        "xAxisQqPlot": "Theorical quantiles",
        "bubbleSize": "bubbleSize",
        "styledCorrelations": "styledCorrelations",
        "correlationName": "Impact an variance",
        "residualName": "Balance",
        "showTrendLine": "showTrendLine",
        "showTrendLineLabel": "Show trend line",
        "showIsoLine": "showIsoLine",
        "showIsoLineLabel": "Show isoline",
        "isolineMetric": "isolineMetric",
        "plotAsHeatmap": "plotAsHeatmap",
        "plotAsHeatmapLabel": "Plot as datashader heatmap",
        "currentYearName": "~Y",
        "rollingPeriodSymbol": "~",
        "yearBeforeName": "~Yn-",
        "aggregateOtherItemsLabel": "Aggregate other items",
        "aggregateOtherItems": "aggregateOtherItems",
        "cumulativeHistogramLabel": "Cumulative histogram",
        "cumulativeHistogram": "cumulativeHistogram",
        "reversedEcdfLabel": "Reversed plot",
        "reversedEcdf": "reversedEcdf",
        "reversedMode": "reversed",
        "standardMode": "standard",
        "aggregateOtherWaterfalls": "aggregateOtherWaterfalls",
        "aggregateOtherWaterfallsLabel": "Aggregate smaller items",
        "aggregateOtherItemsName": "Others rank >",
        "aggregateOtherWaterfallsName": "Others aggregated",
        "acpyName": "AC_PY",
        "acName": "AC",
        "plName": "PL",
        "fcName": "FC",
        "pyName": "PY",
        "pqName": "PQ",
        "pmName": "PM",
        "pwName": "PW",
        "followUpDimension": "followUpDimension",
        "followUpDimensionLabel": "Dimension to focus on (if any)",
        "followUpMetric": "followUpMetric",
        "followUpMetricLabel": "Metric to focus on (if any)",
        "nbrOfFollowUpPlots": "nbrOfFollowUpPlots",
        "nbrOfFollowUpPlotsLabel": "Number of additional plots",
        "nbrOfPlots": "nbrOfPlots",
        "nbrOfPlotsLabel": "Number of plots",
        "yearBeforePyName": "PPY",
        "isYearBeforePy": "isYearBeforePy",
        "acAndFcName": "AC, FC",
        "weeksInYear": "weeksInYear",
        "weeksInSemester": "weeksInSemester",
        "weeksInQuarter": "weeksInQuarter",
        "weeksInMonth": "weeksInMonth",
        "lastName": "Last ",
        "yoyChangeName": "year over year % change",
        "tyYaDates": "acPyDates",
        "chartSubTypeLabel": "Plot as",
        "chartSubType": "chartSubType",
        "measureName": "measure",
        "indirectCostsColFound": "indirectCostsColFound",
        "netMarginColFound": "netMarginColFound",
        "likelyIndirectCostsCols": "likelyIndirectCostsCols",
        "likelyNetMarginCols": "likelyNetMarginCols",
        "percentVarianceAfterIndCosts": "percentVarianceAfterIndCosts",
        "indirectCostsVariance": "Indirect cost",
        "netTotal": "Net total",
        "showInitialAndFinalValuesLabel": "Show waterfall initial and final values",
        "showInitialAndFinalValues": "showInitialAndFinalValues",
        "renameTitlesDict": "renameTitlesDict",
        "reverseOrderperiodsArray": "reverseOrderperiodsArray",
        "quantileLabel": "Quantile value to exclude",
        "quantiles": "quantiles",
        "planStemArray": "planStemArray",
        "maxSizePlotAllDimensionsDict": "maxSizePlotAllDimensionsDict",
        "maxDataSetSizeDict": "maxDataSetSizeDict",
        "sampleSizeDict": "sampleSizeDict",
        "configPlotlyDict": "configPlotlyDict",
        "fontChoice": "fontChoice",
        "fontSizeText": "fontSizeText",
        "fontSizeMessage": "fontSizeMessage",
        "hideLabel": "hideLabel",
        "pricePerUnitTotalName": "pricePerUnitTotalName",
        "pricePerVolumeTotalName": "pricePerVolumeTotalName",
        "aggregationChoiceLabel": "Parameter aggregation algorithm",
        "aggregationChoice": "aggregationChoice",
        "labelToHide": "labelToHide",
        "allZscore": "all z-score",
        "allRank": "all % rank",
        "allMinMax": "all min-max",
        "compareScenarios": "Scenarios",
        "comparePeriods": "Periods",
        "compareScenariosOrPeriodsLabel": "Compare",
        "compareScenariosOrPeriods": "compareScenariosOrPeriods",
        "scenarioParameterDict": "scenarioParameterDict",
        "amountZscoreOtherMinMax": "amount z-score, other min-max",
        "amountZscoreOtherRank": "amount z-score, other % rank",
        "aggregationChoiceArray": "aggregationChoiceArray",
        "alternativeResult": "alternativeResult",
        "alternativeResultLabel": "Return alternative🔀result",
        "colorpaletteLabel": "Color palette",
        "colorpalette": "colorpalette",
        "colorArray": "colorArray",
        "cirqueColorpalette": "cirque",
        "modernColorpalette": "modern",
        "blueAndGreenColorpalette": "blue & green",
        "khakiAndDenimColorpalette": "khaki & denim",
        "poloColorpalette": "polo",
        "heatingUpColorpalette": "heating up",
        "thinkcellColorpalette": "think-cell",
        "mckinseyColorpalette": "mckinsey",
        "bcgColorpalette": "bcg",
        "bainColorpalette": "bain",
        "occColorpalette": "occ",
        "deloitteColorpalette": "deloitte",
        "tableauColorpalette": "tableau",
        "powerbiColorpalette": "powerbi",
        "symphonyColorpalette": "symphony",
        "IBCSColorpalette": "IBCS",
        "greysColorpalette": "greys",
        "bluesColorpalette": "blues",
        "orangesColorpalette": "oranges",
        "purplesColorpalette": "purples",
        "brownsColorpalette": "browns",
        "differenceInValue": "difference in value",
        "differenceInPercent": "difference in %",
        "rowNumber": "#",
        "hideTopItemsSlider": "hideTopItemsSlider",
        "columnOrderName": "columnOrder",
        "dateToLabel": "dateToLabel",
        "minIntersectionSizeLabel": "Minimum intersection size",
        "minIntersectionSize": "minimumIntersectionSize",
        "datashaderLimit": "datashaderLimit",
        "webGLLimit": "webGLLimit",
        "columnHash": "columnHash",
        "CAGRName": "CAGR",
        "CQGRName": "CQGR",
        "CMGRName": "CMGR",
        "CWGRName": "CWGR",
        "CAGRArray": "CAGRArray",
        "showCAGR": "showCAGR",
        "showCAGRLabel": "show CAGR in data column",
        "sortAxis": "sortAxis",
        "sortAxisLabel": "Sort by",
        "xAxisSort": "bar width",
        "yAxisSort": "bar length",
        "areaSort": "bar area",
        "placemessageLabel": "Place plot messages",
        "placemessage": "placemessage",
        "ratioName": "ratio",
        "countName": "# of",
        "paretoChartManyItems": "paretoChartManyItems",
        "className": "className",
        "aClassName": "A",
        "bClassName": "B",
        "cClassName": "C",
        "lossClassName": "Loss",
        "negativeClassName": "Negative",
        "deltaColor": "deltaColor",
        "oppositeSign": "oppositeSign",
        "drilldownAllResults": "drilldownAllResults",
        "drilldownAllResultsLabel": "Drilldown all result rows",
        "annotationDict": "annotationDict",
        "greyColor": "greyColor",
        "lightGreyColor": "lightGreyColor",
        "almostBlackColor": "almostBlackColor",
        "blackColor": "blackColor",
        "mostRecentDate": "mostRecentDate",
        "leastRecentDate": "leastRecentDate",
        "periodLengthInMonths": "periodLengthInMonths",
        "decemberName": "December",
        "nonMetricNumericColumns": "nonMetricNumericColumns",
        "numberOfPlots": "numberOfPlots",
        "monthDict": "monthDict",
        "monthDictInt": "monthDictInt",
        "goldenRatio": "goldenRatio",
        "averageName": "Ø",
        "longAverageName": "Average",
        "rankingMetric": "rankingMetric",
        "maxPeriodsForBarChart": "maxPeriodsForBarChart",
        "maxPeriodsForLabels": "maxPeriodsForLabels",
        "CXGRMetricName": "CXGRMetric",
        "CXGRData": "CXGRData",
        "CXGRTotal": "CXGRTotal",
        "numberOfMetricsInDataColumn": "numberOfMetricsInDataColumn",
        "dataColumnMetricOffset": "dataColumnMetricOffset",
        "synthesisPlot": "synthesisPlot",
        "addBlankColumn": "addBlankColumn",
        "showOutliers": "showOutliers",
        "showOutliersLabel": "Show outliers",
        "fileUploadDisabled": "fileUploadDisabled",
        "insertTokenLabel": "Insert activation token to enable the application.",
        "activationToken": "activationToken",
        "labelColor": "labelColor",
        "labelColorLabel": "Choose color for bubble labels",
        "plotTotalBubble": "plotTotalBubble",
        "plotTotalBubbleLabel": "Plot total bubble",
        "startAxesFromZeroLabel": "Start axes from zero",
        "startAxesFromZero": "startAxesFromZero",
        "blackLabelChoice": "⚫",
        "whiteLabelChoice": "⚪",
        "greyLabelChoice": "🔘",
        "showBubbleLabelLabel": "Show bubble labels",
        "showBubbleLabel": "showBubbleLabel",
        "showBoth": "both",
        "showLabelsOnly": "labels",
        "showValuesOnly": "values",
        "showNothing": "no labels",
        "showValueLabels": "showValueLabels",
        "salesGrowthName": "Sales Growth Rate",
        "netSalesGrowthName": "Net Sales Growth Rate",
        "unitsGrowthName": "Units Growth Rate",
        "volumeGrowthName": "Volume Growth Rate",
        "marginGrowthName": "Margin Growth Rate",
        "unitsPriceChangeName": "Unit Price Change",
        "netUnitsPriceChangeName": "Net Unit Price Change",
        "netVolumePriceChangeName": "Net Volume Price Change",
        "netUnitsCostChangeName": "Net Unit Cost Change",
        "netVolumeCostChangeName": "Net Volume Cost Change",
        "volumePriceChangeName": "Volume Price Change",
        "netVolumePriceChangeName": "Net Volume Price Change",
        "yShiftName": "yShiftName",
        "xShiftName": "xShiftName",
        "positionLegendLabel": "Show legends",
        "positionLabelLabel": "Show isoline labels",
        "positionLegends": "positionLegends",
        "legendsAtRight": "at right",
        "legendsAtLeft": "at left",
        "logXAxisLabel": "Log X-axis",
        "logXAxis": "logXAxis",
        "logYAxisLabel": "Log Y-axis",
        "logYAxis": "logYAxis",
        "showScatterLabelsLabel": "Show dot labels",
        "showScatterLabels": "showScatterLabels",
        "setFactorLabel": "Fine tune number of plotted labels",
        "setFactorParameter": "setFactorParameter",
        "adjustBubbleLabelsLabel": "Adjust bubble label position",
        "adjustBubbleLabels": "adjustBubbleLabels",
        "textposition": "textposition",
        "toPlotPeriod": "toPlotPeriod",
        "toPlotPeriodsLabel": "Choose period to plot",
        "otherName": "Other",
        "undefinedName": "Undefined",
        "andStringName": " & ",
        "uniformTextMinSize": "uniformTextMinSize",
        "periodsMissing": "periodsMissing",
        "periodsMissingSymbol": "*",
        "deltaName": "\u0394",
        "invisibleCharacter": "\u2063",
        "priceMetricsArray": "priceMetricsArray",
        "percentMetricsArray": "percentMetricsArray",
        "noSumMetricsArray": "noSumMetricsArray",
        "growthMetricArray": "growthMetricArray",
        "valueMetricsArray": "valueMetricsArray",
        "volumeMetricsArray": "volumeMetricsArray",
        "periodZeroSum": "periodZeroSum",
        "periodOneSum": "periodOneSum",
        "oneBlackValue": " ",
        "countByColumn": "countByColumn",
        "countMetrics": "countMetrics",
        "countMetricsColumn": "countMetricsColumn",
        "countMetricsAvgArray": "countMetricsAvgArray",
        "countMetricsSumArray": "countMetricsSumArray",
        "countMetricsSumDict": "countMetricsSumDict",
        "countMetricsAvgDict": "countMetricsAvgDict",
        "numberOfName": "Nber of",
        "selectAllLabel": "Select all",
        "likeForLikeLabel": "Compare like-for-like",
        "likeForLikeName": "likeForLikeName",
        "likeForLikeCalculationLabel": "Calculate like for like",
        "likeForLikeScope": "likeForLikeScope",
        "likeForLikeScopeLabel": "Calculate like-for-like across",
        "likeForLikeTwo": "Two periods",
        "likeForLikeAll": "All periods",
        "likeForLikeSuffix": "like-for-like",
        "isLikeForLike": "isLikeForLike",
        "stackedColumnMetric": "stackedColumnMetric",
        "valueMetric": "valueMetric",
        "priceMetric": "priceMetric",
        "percentMetric": "percentMetric",
        "discountMetric": "discountMetric",
        "cohortColumnLabel": "Column for cohort, lost items, unique items, like for like analysis.",
        "chosenCohortColumn": "chosenCohortColumn",
        "lostAndDroppedColumn": "lostAndDroppedColumn",
        "chosenCohortSuffix": "_Since",
        "lostAndDroppedSuffix": "_Lost",
        "plotAsBaselineLabel": "Plot as baseline chart",
        "plotAsBaseline": "plotAsBaseline",
        "labelPosition": "labelPosition",
        "compareToAverageLabel": "Compare to period average",
        "compareToAverage": "compareToAverage",
        "figureName": "figureName",
        "fatherAndChildDimensions": "fatherAndChildDimensions",
        "globalUniqueItemsArray": "globalUniqueItemsArray",
        "secondDimensionItemsArray": "secondDimensionItemsArray",
        "showTopForEachItem": "showTopForEachItem",
        "showTopForEachItemLabel": "Show top items for each small multiple plot",
        "smallMultiplesDimension": "smallMultiplesDimension",
        "globalAggregateKey": "globalAggregateKey",
        "fixedScaleChoice": "fixedScaleChoice",
        "fixedVarianceScaleChoice": "fixedVarianceScaleChoice",
        "fixedVarianceScaleChoiceLabel": "Fix chart scales ",
        "fixedScaleChoiceLabel": "Fix chart scales ",
        "fixedScaleValue": "fixedScaleValue",
        "fixedParetoScaleChoiceLabel": "Fix scales ",
        "fixedParetoScaleChoice": "fixedParetoScaleChoice",
        "keepDecimalsAtZero": "keepDecimalsAtZero",
        "onePeriodOnly": "onePeriodOnly",
        "plotlyFileName": "filename",
        "currencyDict": "currencyDict",
        "valuePrefixName": "valuePrefixName",
        "valuePrefixMetric": "valuePrefixMetric",
        "valuePrefixDict": "valuePrefixDict",
        "highlightedDimension": "highlightedDimension",
        "highlightedDimensionLabel": "Items to highlight ",
        "highlightOverlayChartLabel": "Highlight overlay line",
        "highlightOverlayChart": "highlightOverlayChart",
        "selectDimensionsToPlotCheckbox": "selectDimensionsToPlotCheckbox",
        "metricsToPlotCheckbox": "metricsToPlotCheckbox",
        "XnumberOfTop": "XnumberOfTop",
        "YnumberOfTop": "YnumberOfTop",
        "WnumberOfTop": "WnumberOfTop",
        "hashkeyArrayName": "hashkeyArrayName",
        "hashValueName": "hashValueName",
        "downloadedDictHashkey": "downloadedDictHashkey",
        "IBCSdecimalName": "IBCSdecimalName",
        "plotOverlayChartLabel": "Plot overlay chart",
        "plotOverlayChart": "plotOverlayChart",
        "overlayChartDf": "overlayChartDf",
        "overlayChartFullDf": "overlayChartFullDf",
        "overlayChartMetric": "overlayChartMetric",
        "overlayChartDimension": "overlayChartDimension",
    }
    namingParams["batchModels"] = []
    return namingParams


def get_run_params():
    """
    Creates dictionary with parameters for running session.

    Logging flags:
    - show_user_errors: if True, display UI error boxes.
    - log_to_console: if True, enable console logs (stdout).
    - log_to_file: if True, write logs to logs/app.log.
    - log_file_max_bytes: rotate log file at the given size.
    - log_file_backup_count: number of rotated log files to keep.
    """
    runParams = {
        "checkCollect": False,
        "runChecksAndBold": True,
        "beneficiaryCheckMode": "compare",
        "printErrorDetails": True,
        "disableUpload": False,
        "checkIfMoveRowsFound": True,
        "trackProcessingTime": True,  # False
        "trackMemoryUsage": True,
        "checkIfDuplicates": False,  #  in different steps of processing checks for duplicate values
        "normalizeMean": True,  # , z score or min max
        "makeColsCategorical": True,
        "includeBaseDataframe": True,
        "checkVariance": False,  # False
        "saveDatasetSteps": False,  # for testing, save data at each step of data preparation
        "saveRecalculationSteps": False,  # for testing, saves data at each step of each loop
        "deleteHierarchicalParents": True,
        "replaceAllWithBlanc": True,
        "checkDateColName": True,  # if False just checks if column format is date, if true also checks date column name
        "numberOfRowsDetailed": 100000000000,
        "maxDfLengthForDetails": 30000000000,
        "titleOnThreeRows": True,
        "runOpenAI": True,
        "llmBatchMode": True,
        # Attribute classification: enable second-pass retry of unknowns
        # Set False to skip the fallback (reduces extra LLM calls)
        "attrClassificationRetryUnknowns": True,
        # Auto-apply synonyms from review queue after classification (LLM required)
        # Default OFF: suggestions visible in Review tab; Apply triggers writes.
        "autoApplySynonyms": False,
        # When True, treat cached 'not in taxonomy' values as missing and re-classify
        "attrReclassifyNotInTaxonomy": False,
        "show_user_errors": False,
        "log_to_console": True,
        "log_to_file": True,
        "log_file_max_bytes": 5_000_000,
        "log_file_backup_count": 5,
        "salesApiUrl": os.environ.get("SALES_API_URL", "http://localhost:8000"),
    }
    return runParams


def get_currency_params():
    """
    creates dictionary with parameters tied to a specific dataset
    """
    namingParams = get_naming_params()
    currencyDict = namingParams["currencyDict"]
    currencyParams = {
        currencyDict: {
            "US Dollar-USD": "USD",
            "Euro-EUR": "EUR",
            "Yuan Renminbi-CNY": "CNY",
            "Pound Sterling-GBP": "GBP",
            "Swiss Franc-CHF": "CHF",
            "Canadian Dollar-CAD": "CAD",
            "Afghani-AFN": "AFN",
            "Lek-ALL": "ALL",
            "Algerian Dinar-DZD": "DZD",
            "Kwanza-AOA": "AOA",
            "East Caribbean Dollar-XCD": "XCD",
            "Argentine Peso-ARS": "ARS",
            "Armenian Dram-AMD": "AMD",
            "Aruban Florin-AWG": "AWG",
            "Australian Dollar-AUD": "AUD",
            "Azerbaijanian Manat-AZN": "AZN",
            "Bahamian Dollar-BSD": "BSD",
            "Bahraini Dinar-BHD": "BHD",
            "Taka-BDT": "BDT",
            "Barbados Dollar-BBD": "BBD",
            "Belarussian Ruble-BYN": "BYN",
            "Belize Dollar-BZD": "BZD",
            "CFA Franc BCEAO-XOF": "XOF",
            "Bermudian Dollar-BMD": "BMD",
            "Ngultrum-BTN": "BTN",
            "Indian Rupee-INR": "INR",
            "Boliviano-BOB": "BOB",
            "Mvdol-BOV": "BOV",
            "Pula-BWP": "BWP",
            "Norwegian Krone-NOK": "NOK",
            "Brazilian Real-BRL": "BRL",
            "Brunei Dollar-BND": "BND",
            "Bulgarian Lev-BGN": "BGN",
            "Burundi Franc-BIF": "BIF",
            "Cabo Verde Escudo-CVE": "CVE",
            "Riel-KHR": "KHR",
            "CFA Franc BEAC-XAF": "XAF",
            "Cayman Islands Dollar-KYD": "KYD",
            "Unidad de Fomento-CLF": "CLF",
            "Chilean Peso-CLP": "CLP",
            "Colombian Peso-COP": "COP",
            "Unidad de Valor Real-COU": "COU",
            "Comoro Franc-KMF": "KMF",
            "Congolese Franc-CDF": "CDF",
            "New Zealand Dollar-NZD": "NZD",
            "Costa Rican Colon-CRC": "CRC",
            "Kuna-HRK": "HRK",
            "Peso Convertible-CUC": "CUC",
            "Cuban Peso-CUP": "CUP",
            "Netherlands Antillean Guilder-ANG": "ANG",
            "Czech Koruna-CZK": "CZK",
            "Danish Krone-DKK": "DKK",
            "Djibouti Franc-DJF": "DJF",
            "Dominican Peso-DOP": "DOP",
            "Egyptian Pound-EGP": "EGP",
            "El Salvador Colon-SVC": "SVC",
            "Nakfa-ERN": "ERN",
            "Ethiopian Birr-ETB": "ETB",
            "Falkland Islands Pound-FKP": "FKP",
            "Fiji Dollar-FJD": "FJD",
            "CFP Franc-XPF": "XPF",
            "Dalasi-GMD": "GMD",
            "Lari-GEL": "GEL",
            "Ghana Cedi-GHS": "GHS",
            "Gibraltar Pound-GIP": "GIP",
            "Quetzal-GTQ": "GTQ",
            "Guinea Franc-GNF": "GNF",
            "Guyana Dollar-GYD": "GYD",
            "Gourde-HTG": "HTG",
            "Lempira-HNL": "HNL",
            "Hong Kong Dollar-HKD": "HKD",
            "Forint-HUF": "HUF",
            "Iceland Krona-ISK": "ISK",
            "Rupiah-IDR": "IDR",
            "SDR (Special Drawing Right)-XDR": "XDR",
            "Iranian Rial-IRR": "IRR",
            "Iraqi Dinar-IQD": "IQD",
            "New Israeli Sheqel-ILS": "ILS",
            "Jamaican Dollar-JMD": "JMD",
            "Yen-JPY": "JPY",
            "Jordanian Dinar-JOD": "JOD",
            "Tenge-KZT": "KZT",
            "Kenyan Shilling-KES": "KES",
            "North Korean Won-KPW": "KPW",
            "Won-KRW": "KRW",
            "Kuwaiti Dinar-KWD": "KWD",
            "Som-KGS": "KGS",
            "Kip-LAK": "LAK",
            "Lebanese Pound-LBP": "LBP",
            "Loti-LSL": "LSL",
            "Rand-ZAR": "ZAR",
            "Liberian Dollar-LRD": "LRD",
            "Libyan Dinar-LYD": "LYD",
            "Pataca-MOP": "MOP",
            "Malagasy Ariary-MGA": "MGA",
            "Kwacha-MWK": "MWK",
            "Malaysian Ringgit-MYR": "MYR",
            "Rufiyaa-MVR": "MVR",
            "Ouguiya-MRU": "MRU",
            "Mauritius Rupee-MUR": "MUR",
            "Mexican Peso-MXN": "MXN",
            "Moldovan Leu-MDL": "MDL",
            "Tugrik-MNT": "MNT",
            "Moroccan Dirham-MAD": "MAD",
            "Mozambique Metical-MZN": "MZN",
            "Kyat-MMK": "MMK",
            "Namibia Dollar-NAD": "NAD",
            "Nepalese Rupee-NPR": "NPR",
            "Cordoba Oro-NIO": "NIO",
            "Naira-NGN": "NGN",
            "Rial Omani-OMR": "OMR",
            "Pakistan Rupee-PKR": "PKR",
            "Balboa-PAB": "PAB",
            "Kina-PGK": "PGK",
            "Guarani-PYG": "PYG",
            "Nuevo Sol-PEN": "PEN",
            "Philippine Peso-PHP": "PHP",
            "Zloty-PLN": "PLN",
            "Qatari Rial-QAR": "QAR",
            "Denar-MKD": "MKD",
            "Romanian Leu-RON": "RON",
            "Russian Ruble-RUB": "RUB",
            "Rwanda Franc-RWF": "RWF",
            "Saint Helena Pound-SHP": "SHP",
            "Tala-WST": "WST",
            "Dobra-STN": "STN",
            "Saudi Riyal-SAR": "SAR",
            "Serbian Dinar-RSD": "RSD",
            "Seychelles Rupee-SCR": "SCR",
            "Leone-SLE": "SLE",
            "Singapore Dollar-SGD": "SGD",
            "Sucre-XSU": "XSU",
            "Solomon Islands Dollar-SBD": "SBD",
            "Somali Shilling-SOS": "SOS",
            "South Sudanese Pound-SSP": "SSP",
            "Sri Lanka Rupee-LKR": "LKR",
            "Sudanese Pound-SDG": "SDG",
            "Surinam Dollar-SRD": "SRD",
            "Lilangeni-SZL": "SZL",
            "Swedish Krona-SEK": "SEK",
            "WIR Euro-CHE": "CHE",
            "WIR Franc-CHW": "CHW",
            "Syrian Pound-SYP": "SYP",
            "New Taiwan Dollar-TWD": "TWD",
            "Somoni-TJS": "TJS",
            "Tanzanian Shilling-TZS": "TZS",
            "Baht-THB": "THB",
            "Pa’anga-TOP": "TOP",
            "Trinidad and Tobago Dollar-TTD": "TTD",
            "Tunisian Dinar-TND": "TND",
            "Turkish Lira-TRY": "TRY",
            "Turkmenistan New Manat-TMT": "TMT",
            "Uganda Shilling-UGX": "UGX",
            "Hryvnia-UAH": "UAH",
            "UAE Dirham-AED": "AED",
            "Peso Uruguayo-UYU": "UYU",
            "Uzbekistan Sum-UZS": "UZS",
            "Vatu-VUV": "VUV",
            "Bolivar-VEF": "VEF",
            "Bolivar-VED": "VED",
            "Dong-VND": "VND",
            "Yemeni Rial-YER": "YER",
            "Zambian Kwacha-ZMW": "ZMW",
            "Zimbabwe Dollar-ZWL": "ZWL",
        },
    }
    return currencyParams


def get_file_params():
    """
    creates dictionary with file saving parameters
    """
    fileParams = {
        "sepCsv": ";",
        "encodingUTF8": "utf-8",
        "encodingISO": "ISO-8859-1",
        "folderName": "variance",
        "reportsFolderName": "reports",
        "extractFileFolderName": "extracted_files",
        "jsonFolderName": "JSON",
        "jsonExecutiveSummaryName": "execJson",
        "jsonDescriptionsName": "descriptions",
        "imagesFolderName": "images",
        "inputFolderName": "input_files",
        "imageFolderName": "images",
        "logoFileName": "mparanza_2.png",
    }
    return fileParams


def get_config_params():
    """
    creates dictionary with file saving parameters
    """
    namingParams = get_naming_params()
    dateName = namingParams["dateName"]
    periodName = namingParams["periodName"]
    unitsName = namingParams["unitsName"]
    volumeName = namingParams["volumeName"]
    unitsPromoName = namingParams["unitsPromoName"]
    unitsNoPromoName = namingParams["unitsNoPromoName"]
    monetaryName = namingParams["monetaryLocalCurrencyName"]
    monetaryPromoLocalCurrencyName = namingParams["monetaryPromoLocalCurrencyName"]
    monetaryNoPromoLocalCurrencyName = namingParams["monetaryNoPromoLocalCurrencyName"]
    netOfDiscountName = namingParams["netOfDiscountName"]
    monetaryDollarCurrencyName = namingParams["monetaryDollarCurrencyName"]
    monetaryPromoDollarCurrencyName = namingParams["monetaryPromoDollarCurrencyName"]
    monetaryNoPromoDollarCurrencyName = namingParams[
        "monetaryNoPromoDollarCurrencyName"
    ]
    discountName = namingParams["discountName"]
    cogsName = namingParams["cogsName"]
    marginName = namingParams["marginName"]
    indirectCostsName = namingParams["indirectCostsName"]
    netMarginName = namingParams["netMarginName"]
    categoryWeightedDistributionName = namingParams["categoryWeightedDistributionName"]
    totalDistributionPointsName = namingParams["totalDistributionPointsName"]
    baselineValueMetricName = namingParams["baselineValueMetricName"]
    baselineUnitsMetricName = namingParams["baselineUnitsMetricName"]
    checkoutsName = namingParams["checkoutsName"]
    visitsName = namingParams["visitsName"]
    pricePerUnitName = namingParams["pricePerUnitName"]
    pricePerVolumeName = namingParams["pricePerVolumeName"]
    metricsColsDict = namingParams["metricsColsDict"]
    periodsArray = namingParams["periodsArray"]
    firstPeriodName = namingParams["firstPeriodName"]
    secondPeriodName = namingParams["secondPeriodName"]
    toMultiplyStemArray = namingParams["toMultiplyStemArray"]
    varianceStemArray = namingParams["varianceStemArray"]
    stemDict = namingParams["stemDict"]
    monetaryStemDict = namingParams["monetaryLocalCurrencyStemDict"]
    monetaryPromoLocalCurrencyStemDict = namingParams[
        "monetaryPromoLocalCurrencyStemDict"
    ]
    monetaryNoPromoLocalCurrencyStemDict = namingParams[
        "monetaryNoPromoLocalCurrencyStemDict"
    ]
    monetaryDollarCurrencyStemDict = namingParams["monetaryDollarCurrencyStemDict"]
    monetaryPromoDollarCurrencyStemDict = namingParams[
        "monetaryPromoDollarCurrencyStemDict"
    ]
    monetaryNoPromoDollarCurrencyStemDict = namingParams[
        "monetaryNoPromoDollarCurrencyStemDict"
    ]
    unitsStemDict = namingParams["unitsStemDict"]
    volumeStemDict = namingParams["volumeStemDict"]
    unitsPromoStemDict = namingParams["unitsPromoStemDict"]
    unitsNoPromoStemDict = namingParams["unitsNoPromoStemDict"]
    periodStemDict = namingParams["periodStemDict"]
    dateStemDict = namingParams["dateStemDict"]
    discountStemDict = namingParams["discountStemDict"]
    netOfDiscountStemDict = namingParams["netOfDiscountStemDict"]
    cogsStemDict = namingParams["cogsStemDict"]
    marginStemDict = namingParams["marginStemDict"]
    indirectCostsStemDict = namingParams["indirectCostsStemDict"]
    netMarginStemDict = namingParams["netMarginStemDict"]
    categoryWeightedDistributionStemDict = namingParams[
        "categoryWeightedDistributionStemDict"
    ]
    totalDistributionPointsStemDict = namingParams["totalDistributionPointsStemDict"]
    baselineunitsStemDict = namingParams["baselineunitsStemDict"]
    baselineValueStemDict = namingParams["baselineValueStemDict"]
    checkoutsStemDict = namingParams["checkoutsStemDict"]
    visitsStemDict = namingParams["visitsStemDict"]
    stemArray = namingParams["stemArray"]
    notStemArray = namingParams["notStemArray"]
    toDropStemArray = namingParams["toDropStemArray"]
    lostVolumeVarianceName = namingParams["lostVolumeVarianceName"]
    newVolumeVarianceName = namingParams["newVolumeVarianceName"]
    priceVariance = namingParams["priceVariance"]
    priceVarianceOnMargin = namingParams["priceVarianceOnMargin"]
    priceVarianceOnNetSales = namingParams["priceVarianceOnNetSales"]
    changedVolumeVarianceMixName = namingParams["changedVolumeVarianceMixName"]
    pureVolumeVarianceName = namingParams["pureVolumeVarianceName"]
    pureVolumeOnMarginVarianceName = namingParams["pureVolumeOnMarginVarianceName"]
    volumeVariance = namingParams["volumeVariance"]
    volumeVarianceOnMargin = namingParams["volumeVarianceOnMargin"]
    volumeVarianceOnNetSales = namingParams["volumeVarianceOnNetSales"]
    driverVariance = namingParams["driverVariance"]
    costVariance = namingParams["costVariance"]
    totalVariance = namingParams["totalVariance"]
    discountVariance = namingParams["discountVariance"]
    netOfDiscountVariance = namingParams["netOfDiscountVariance"]
    COGSVariance = namingParams["COGSVariance"]
    marginRateVariance = namingParams["marginRateVariance"]
    marginVariance = namingParams["marginVariance"]
    mixVariance = namingParams["mixVariance"]
    mixVarianceOnMargin = namingParams["mixVarianceOnMargin"]
    filterOutPercent = namingParams["filterOutPercent"]
    maxPercentChange = namingParams["maxPercentChange"]
    newVolumePercentChange = namingParams["newVolumePercentChange"]
    maxIndexArrayLength = namingParams["maxIndexArrayLength"]
    varianceAmountWeight = namingParams["varianceAmountWeight"]
    maxNumberOfNodes = namingParams["maxNumberOfNodes"]
    numberOfNodesWeight = namingParams["numberOfNodesWeight"]
    uniqueValuesInCombinationWeight = namingParams["uniqueValuesInCombinationWeight"]
    reverseSortPeriods = namingParams["reverseSortPeriods"]
    minPercentOfTotalVariance = namingParams["minPercentOfTotalVariance"]
    maxPercentOfTotalVariance = namingParams["maxPercentOfTotalVariance"]
    minPercentOfTotalAmount = namingParams["minPercentOfTotalAmount"]
    maxPercentOfTotalAmount = namingParams["maxPercentOfTotalAmount"]
    dropDuplicates = namingParams["dropDuplicates"]
    toTitleCase = namingParams["toTitleCase"]
    numberOfRowResults = namingParams["numberOfRowResults"]
    deletedColumnInMatchingPair = namingParams["deletedColumnInMatchingPair"]
    mostRecentPeriodIndex = namingParams["mostRecentPeriodIndex"]
    otherPeriodIndex = namingParams["otherPeriodIndex"]
    getIndex = namingParams["getIndex"]
    minValue = namingParams["minValue"]
    maxValue = namingParams["maxValue"]
    highCardinalityNumberOfUniques = namingParams["highCardinalityNumberOfUniques"]
    datasetListDict = namingParams["datasetListDict"]
    reportListDict = namingParams["reportListDict"]
    aggregateLowerValueItems = namingParams["aggregateLowerValueItems"]
    varianceAggregation = namingParams["varianceAggregation"]
    dropRowsWithNegativeValues = namingParams["dropRowsWithNegativeValues"]
    numberOfColumnsWeight = namingParams["numberOfColumnsWeight"]
    paretoChart = namingParams["paretoChart"]
    stackedParetoChart = namingParams["stackedParetoChart"]
    driverColsArray = namingParams["driverColsArray"]
    forcedMaxPercentValue = namingParams["forcedMaxPercentValue"]
    forcedMinPercentOfTotalAmount = namingParams["forcedMinPercentOfTotalAmount"]
    roundValues = namingParams["roundValues"]
    multiplyConstant = namingParams["multiplyConstant"]
    minPercentOfTotalAmountDict = namingParams["minPercentOfTotalAmountDict"]
    maxPercentOfTotalAmountDict = namingParams["maxPercentOfTotalAmountDict"]
    varianceAmountWeightDict = namingParams["varianceAmountWeightDict"]
    numberOfNodesWeightDict = namingParams["numberOfNodesWeightDict"]
    uniqueValuesInCombinationWeightDict = namingParams[
        "uniqueValuesInCombinationWeightDict"
    ]
    maxPercentChangeDict = namingParams["maxPercentChangeDict"]
    maxNumberOfIndexCols = namingParams["maxNumberOfIndexCols"]
    cutCorrelationNumber = namingParams["cutCorrelationNumber"]
    highEstimatorValue = namingParams["highEstimatorValue"]
    priceAndUnitsAggregation = namingParams["priceAndUnitsAggregation"]
    priceAndVolumeAggregation = namingParams["priceAndVolumeAggregation"]
    weeksInYear = namingParams["weeksInYear"]
    weeksInSemester = namingParams["weeksInSemester"]
    weeksInQuarter = namingParams["weeksInQuarter"]
    weeksInMonth = namingParams["weeksInMonth"]
    nothingFilteredName = namingParams["nothingFilteredName"]
    changedVolumeVarianceName = namingParams["changedVolumeVarianceName"]
    reverseOrderperiodsArray = namingParams["reverseOrderperiodsArray"]
    planStemArray = namingParams["planStemArray"]
    maxSizePlotAllDimensionsDict = namingParams["maxSizePlotAllDimensionsDict"]
    maxDataSetSizeDict = namingParams["maxDataSetSizeDict"]
    sampleSizeDict = namingParams["sampleSizeDict"]
    scatterChart = namingParams["scatterChart"]
    verticalWaterfallChart = namingParams["verticalWaterfallChart"]
    trendComparisonByPeriodChart = namingParams["trendComparisonByPeriodChart"]
    trendComparisonChart = namingParams["trendComparisonChart"]
    kernelDensity = namingParams["kernelDensityChart"]
    histogramChart = namingParams["histogramChart"]
    boxplotChart = namingParams["boxplotChart"]
    stripplotChart = namingParams["stripplotChart"]
    ecdfChart = namingParams["ecdfChart"]
    marimekkoChart = namingParams["marimekkoChart"]
    barmekkoChart = namingParams["barmekkoChart"]
    timelineChart = namingParams["timelineChart"]
    alternativeCombinationsChart = namingParams["alternativeCombinationsChart"]
    areaChart = namingParams["areaChart"]
    bubbleChart = namingParams["bubbleChart"]
    motionChart = namingParams["motionChart"]
    multitierBarChart = namingParams["multitierBarChart"]
    multitierColumnChart = namingParams["multitierColumnChart"]
    horizontalWaterfallChart = namingParams["horizontalWaterfallChart"]
    slopeChart = namingParams["slopeChart"]
    stackedColumnChart = namingParams["stackedColumnChart"]
    summaryStackedColumnChart = namingParams["summaryStackedColumnChart"]
    stackedBarChart = namingParams["stackedBarChart"]
    dotChart = namingParams["dotChart"]
    configPlotlyDict = namingParams["configPlotlyDict"]
    fontChoice = namingParams["fontChoice"]
    fontSizeText = namingParams["fontSizeText"]
    fontSizeMessage = namingParams["fontSizeMessage"]
    aggregationChoiceArray = namingParams["aggregationChoiceArray"]
    allZscore = namingParams["allZscore"]
    allRank = namingParams["allRank"]
    allMinMax = namingParams["allMinMax"]
    scenarioParameterDict = namingParams["scenarioParameterDict"]
    amountZscoreOtherMinMax = namingParams["amountZscoreOtherMinMax"]
    amountZscoreOtherRank = namingParams["amountZscoreOtherRank"]
    largestCombinationOption = namingParams["largestCombinationOption"]
    limitFirstResultSizeOption = namingParams["limitFirstResultSizeOption"]
    moreNodesOption = namingParams["moreNodesOption"]
    moreGrowthOption = namingParams["moreGrowthOption"]
    plotlyTable = namingParams["plotlyTable"]
    datashaderLimit = namingParams["datashaderLimit"]
    webGLLimit = namingParams["webGLLimit"]
    CAGRArray = namingParams["CAGRArray"]
    paretoChartManyItems = namingParams["paretoChartManyItems"]
    annotationDict = namingParams["annotationDict"]
    greyColor = namingParams["greyColor"]
    lightGreyColor = namingParams["lightGreyColor"]
    almostBlackColor = namingParams["almostBlackColor"]
    blackColor = namingParams["blackColor"]
    monthDict = namingParams["monthDict"]
    monthDictInt = namingParams["monthDictInt"]
    goldenRatio = namingParams["goldenRatio"]
    maxPeriodsForBarChart = namingParams["maxPeriodsForBarChart"]
    maxPeriodsForLabels = namingParams["maxPeriodsForLabels"]
    maxNumberOfDataColMetrics = namingParams["maxNumberOfDataColMetrics"]
    dataColumnMetricOffset = namingParams["dataColumnMetricOffset"]
    uniformTextMinSize = namingParams["uniformTextMinSize"]
    emojiNumberDict = namingParams["emojiNumberDict"]
    invertedEmojiNumberDict = namingParams["invertedEmojiNumberDict"]
    emojiArrayOneToTen = namingParams["emojiArrayOneToTen"]
    emojiArrayZeroToTen = namingParams["emojiArrayZeroToTen"]
    numberOfItems = namingParams["numberOfItems"]
    numberOfDimensions = namingParams["numberOfDimensions"]
    configParams = {
        "today": dt.datetime.today(),
        metricsColsDict: {  # True if the code uses the metric, False if it does not
            monetaryName: True,
            monetaryPromoLocalCurrencyName: False,
            monetaryNoPromoLocalCurrencyName: False,
            monetaryDollarCurrencyName: False,
            monetaryPromoDollarCurrencyName: False,
            monetaryNoPromoDollarCurrencyName: False,
            unitsName: True,
            unitsPromoName: False,
            unitsNoPromoName: False,
            volumeName: True,
            discountName: True,
            netOfDiscountName: True,
            cogsName: True,
            marginName: True,
            indirectCostsName: True,
            netMarginName: True,
            pricePerUnitName: False,
            pricePerVolumeName: False,
            categoryWeightedDistributionName: True,
            totalDistributionPointsName: False,
            baselineValueMetricName: False,
            baselineUnitsMetricName: False,
            checkoutsName: True,
            visitsName: True,
        },
        CAGRArray: [
            monetaryName,
            unitsName,
            volumeName,
            discountName,
            netOfDiscountName,
            cogsName,
            marginName,
            indirectCostsName,
        ],
        driverColsArray: [
            categoryWeightedDistributionName,
            checkoutsName,
            visitsName,
        ],
        periodsArray: [firstPeriodName, secondPeriodName],
        toMultiplyStemArray: [
            monetaryName,
        ],
        varianceStemArray: [
            lostVolumeVarianceName,
            newVolumeVarianceName,
            changedVolumeVarianceMixName,
            pureVolumeVarianceName,
            pureVolumeOnMarginVarianceName,
            priceVariance,
            priceVarianceOnMargin,
            priceVarianceOnNetSales,
            volumeVariance,
            volumeVarianceOnMargin,
            volumeVarianceOnNetSales,
            driverVariance,
            costVariance,
            totalVariance,
            discountVariance,
            netOfDiscountVariance,
            COGSVariance,
            marginRateVariance,
            marginVariance,
            mixVariance,
            mixVarianceOnMargin,
            categoryWeightedDistributionName,
            checkoutsName,
            visitsName,
            changedVolumeVarianceName,
        ],
        emojiNumberDict: {
            0: "0️⃣ ",
            1: "1️⃣",
            2: "2️⃣ ",
            3: "3️⃣ ",
            4: "4️⃣ ",
            5: "5️⃣ ",
            6: "6️⃣ ",
            7: "7️⃣ ",
            8: "8️⃣ ",
            9: "9️⃣ ",
            10: "🔟",
        },
        invertedEmojiNumberDict: {
            "0️⃣": 0,
            "1️⃣": 1,
            "2️⃣": 2,
            "3️⃣": 3,
            "4️⃣": 4,
            "5️⃣": 5,
            "6️⃣": 6,
            "7️⃣": 7,
            "8️⃣": 8,
            "9️⃣": 9,
            "🔟": 10,
        },
        emojiArrayOneToTen: [
            "1️⃣",
            "2️⃣ ",
            "3️⃣ ",
            "4️⃣ ",
            "5️⃣ ",
            "6️⃣ ",
            "7️⃣ ",
            "8️⃣ ",
            "9️⃣ ",
            "🔟",
        ],
        emojiArrayZeroToTen: [
            "0️⃣",
            "1️⃣",
            "2️⃣ ",
            "3️⃣ ",
            "4️⃣ ",
            "5️⃣ ",
            "6️⃣ ",
            "7️⃣ ",
            "8️⃣ ",
            "9️⃣ ",
            "🔟",
        ],
        toDropStemArray: [
            "Unit_Cost",
            "Unit_Price",
            "UnitPrice",
            "Prezzo",
            "Prix",
            "Precio",
            "Price",
            "Sale_Price",
            "date",
            "Cost",
        ],
        stemDict: {
            monetaryStemDict: {
                stemArray: [
                    "Amount",
                    "Revenue",
                    "Gross_Sales",
                    "Sales",
                    "Value",
                    "Sales_Value",
                    "Sell-Out Value",
                    "NetInvoiceSales",
                    "Betrag",
                    "Umsatz",
                    "Bruttoumsatz",
                    "Ventas_Valor",
                    "Totale",
                    "Valore",
                    "Fatturato",
                    "Vendite_Valore",
                    "Importo",
                    "Total",
                    "Valeur",
                    "Chiffre_de_Affaires",
                    "Chiffre_d'Affaires",
                    "Montant",
                    "ποσό",
                ],
                notStemArray: [
                    "Number",
                    "Unit_Cost",
                    "Unit_Price",
                    "UnitPrice",
                    "Sale_Price",
                    "Price",
                    "Prix",
                    "Remise",
                    "Rabais",
                    "Prezzo",
                    "Sconto",
                    "Discount",
                    "Discount",
                    "Sales_Quantity",
                    "Sales_Qty",
                    "Value_No_promo",
                    "Value_Promo",
                    "Promo",
                    "No_promo",
                    "Baseline",
                    "Net_Sales",
                    "Unit_Sales",
                    "Sales_Units",
                    "Ordine",
                    "Order",
                    "Change",
                    "Cost",
                    "κόστος",
                    "Id",
                    "Key",
                    "id",
                    "key",
                    "Sell-Out Volume",
                    "Profit",
                    "Sales_Person",
                    "SalesRep",
                    "Sales_Person",
                    "Sales_Rep",
                ],
                getIndex: 0,
            },
            monetaryPromoLocalCurrencyStemDict: {
                stemArray: [
                    "Amount Promo LC",
                    "Revenue Promo LC",
                    "Gross_Sales_Promo_LC",
                    "Euro_Promo",
                    "£_Promo",
                    "Chf_Promo",
                    "€_Promo",
                    "Ventas_Valor_Promo_Pesos",
                    "Value_Promo_Lc",
                    "Sales_Value_Promo_LC",
                    "Totale Promo Valuta Locale",
                    "Total Promo Monnaie Locale",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "Price",
                    "Prezzo",
                    "Sale_Price",
                    "Discount",
                    "Baseline",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            monetaryNoPromoLocalCurrencyStemDict: {
                stemArray: [
                    "Amount No Promo LC",
                    "Revenue No Promo LC",
                    "Gross_Sales_No_Promo_LC",
                    "Euro_No_Promo",
                    "£_No_Promo",
                    "Chf_No_Promo",
                    "€_No_Promo",
                    "Ventas_Valor_No_Promo_Pesos",
                    "Value_No_Promo_Lc",
                    "Sales_Value_No_Promo_LC",
                    "Totale No Promo Valuta Locale",
                    "Total No Promo Monnaie Locale",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "UnitPrice",
                    "Prezzo",
                    "Sale_Price",
                    "Discount",
                    "Baseline",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            monetaryDollarCurrencyStemDict: {
                stemArray: [
                    "Amount_USD",
                    "Revenue_USD",
                    "Gross_Sales_USD",
                    "$",
                    "Ventas_Valor_USD",
                    "Sales_Value_USD",
                    "Value_USD",
                    "Sales_USD",
                    "Totale_Dollari",
                    "Total_Dollars",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "Price",
                    "Prezzo",
                    "Sale_Price",
                    "Discount",
                    "Promo",
                    "Price",
                    "No_promo",
                    "Baseline",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            monetaryPromoDollarCurrencyStemDict: {
                stemArray: [
                    "Amount Promo USD",
                    "Revenue Promo USD",
                    "Gross_Sales_Promo_USD",
                    "Promo $",
                    "Ventas_Promo_Valor_USD",
                    "Sales_Promo Value USD",
                    "Value_Promo_Usd",
                    "Sale_Promo_Usd",
                    "Totale_Promo_Dollari",
                    "Total_Promo_Dollars",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "Price",
                    "Prezzo",
                    "Sale_Price",
                    "Discount",
                    "Baseline",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            monetaryNoPromoDollarCurrencyStemDict: {
                stemArray: [
                    "Amount No Promo USD",
                    "Revenue No Promo USD",
                    "Gross_Sales_No_Promo_USD",
                    "No Promo $",
                    "Ventas_No_Promo_Valor_USD",
                    "Sales_NO_Promo Value USD",
                    "Value_No_Promo_Usd",
                    "Sale_No_Promo_Usd",
                    "Totale_No_Promo_Dollari",
                    "Total_No_Promo_Dollars",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "Price",
                    "Prezzo",
                    "Sale_Price",
                    "Discount",
                    "Baseline",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            volumeStemDict: {
                stemArray: [
                    "Volume",
                    "Volumes",
                    "Kg",
                    "Chilogrammi",
                    "Litres",
                    "Kilograms",
                    "Bottles",
                    "Tons",
                    "Quintali",
                    "Absatzvolumen",
                ],
                notStemArray: [
                    "Quantity",
                    "Qty",
                    "Q.ty",
                    "Quantité",
                    "Q.té",
                    "Qté",
                    "Quantità",
                    "Quantita'",
                    "Q.tà",
                    "Qtà",
                    "Unit_Cost",
                    "Unit_Price",
                    "UnitPrice",
                    "Sale_Price",
                    "Price",
                    "Prix",
                    "Prezzo",
                    "Sales_Items",
                    "Units_Sales",
                    "Unit_Sales",
                    "Sales_Units",
                    "Sell-Out Units",
                    "Absatzmenge",
                    "Cantidad",
                    "Discount",
                    "Remise",
                    "Rabais",
                    "Sconto",
                    "Promo",
                    "No_promo",
                    "Ventas_Unidades",
                    "Ventas_Uni",
                    "Unités",
                    "Pieces",
                    "Baseline",
                    "Change",
                    "Cost",
                    "κόστος",
                    "Id",
                    "Key",
                    "id",
                    "key",
                    "Sell-Out Value",
                    "Unità",
                    "Unita'",
                    "Unita",
                    "Pezzi",
                    "Nights",
                    "ποσότητα",
                    "CWD",
                    "Cwd",
                    "Category_Weighted_Distribution",
                    "Weighted_Distribution",
                    "Weighted Distribution",
                    "Distribuzione_Ponderata",
                    "Weighted_Selling_Distribution",
                ],
                getIndex: 0,
            },
            unitsStemDict: {
                stemArray: [
                    "Units",
                    "Quantity",
                    "Qty",
                    "Q.ty",
                    "QuantityNet",
                    "Sales_Items",
                    "Units_Sales",
                    "Unit_Sales",
                    "Sales_Units",
                    "Sell-Out Units",
                    "Nights",
                    "Quantité",
                    "Q.té",
                    "Qté",
                    "Unités",
                    "Pieces",
                    "Quantità",
                    "Quantita'",
                    "Q.tà",
                    "Qtà",
                    "Unità",
                    "Unita'",
                    "Unita",
                    "Pezzi",
                    "Absatzmenge",
                    "Ventas_Unidades",
                    "Ventas_Uni",
                    "Cantidad",
                    "ποσότητα",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "UnitPrice",
                    "Sale_Price",
                    "Price",
                    "Prix",
                    "Prezzo",
                    "Volume",
                    "Volumes",
                    "Discount",
                    "Remise",
                    "Rabais",
                    "Sconto",
                    "Promo",
                    "No_promo",
                    "Baseline",
                    "Change",
                    "Cost",
                    "κόστος",
                    "Id",
                    "Key",
                    "id",
                    "key",
                    "Sell-Out Value",
                    "Absatzvolumen",
                ],
                getIndex: 0,
            },
            unitsPromoStemDict: {
                stemArray: [
                    "Promo_Units",
                    "Units_Promo",
                    "Promo_Quantity",
                    "Promo_Pieces",
                    "Pezzi_Promo",
                    "Unità_Promo",
                    "Promo_Qty",
                    "Promo_Q.ty",
                    "Ventas_Unidades_Promo",
                    "Ventas_Uni_Promo",
                    "Sales_Items_Promo",
                    "Units_Sales_Promo",
                    "Unit_Sales_Promo",
                    "Quantità_Promo",
                    "Q.tà_Promo",
                    "Quantité_Promo",
                    "Q.té_Promo",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "UnitPrice",
                    "Prezzo",
                    "Sale_Price",
                    "Price",
                    "Baseline",
                    "id",
                    "key",
                    "Promo_Volume",
                ],
                getIndex: 0,
            },
            unitsNoPromoStemDict: {
                stemArray: [
                    "No_Promo_Units",
                    "Units_No_Promo",
                    "No_Promo_Quantity",
                    "No_Promo_Pieces",
                    "Pezzi_No_Promo",
                    "Unità_No_Promo",
                    "No_Promo_Qty",
                    "No_Promo_Q.ty",
                    "Ventas_Unidades_No_Promo",
                    "Ventas_Uni_No_Promo",
                    "Sales_Items_No_Promo",
                    "Units_Sales_No_Promo",
                    "Unit_Sales_No_Promo",
                    "Quantità_No_Promo",
                    "Q.tà_No_Promo",
                    "Quantité_No_Promo",
                    "Q.té_No_Promo",
                ],
                notStemArray: [
                    "Unit_Cost",
                    "Unit_Price",
                    "UnitPrice",
                    "Prezzo",
                    "Sale_Price",
                    "Price",
                    "Baseline",
                    "id",
                    "key",
                    "No_Promo_Volume",
                ],
                getIndex: 0,
            },
            periodStemDict: {
                stemArray: [
                    "Period",
                    "Periodo",
                    "Période",
                    "Scénario",
                    "Fiscal_Year",
                    "Year",
                    "Month",
                    "Quarter",
                    "Week",
                    "Periode",
                    "Zeitraum",
                    "Jahr",
                    "Monat",
                    "Trimester",
                    "Année",
                    "Mois",
                    "Trimestre",
                    "Semaine",
                    "Anno",
                    "Mese",
                    "Settimana",
                    "περίοδος",
                    "Scenario",
                ],
                notStemArray: [
                    "Date",
                    "Change",
                    "Weekend",
                    "Id",
                    "Key",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            dateStemDict: {
                stemArray: [
                    "Date",
                    "Data",
                    "Datum",
                    "Time",
                    "ημερομηνία",
                ],
                notStemArray: [
                    "Period",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            discountStemDict: {
                stemArray: [
                    "Discount",
                    "Discounts",
                    "Rabatt",
                    "Savings",
                    "Sconto",
                    "Sconti",
                    "Remise",
                    "Remises",
                    "Rabais",
                    "Descuento",
                    "Descuentos",
                    "Commission",
                    "Distribution",
                    "έκπτωση",
                ],
                notStemArray: ["id", "key", "Weighted", "Distribution"],
                getIndex: 0,
            },
            netOfDiscountStemDict: {
                stemArray: [
                    "Net_Sales",
                    "Net_Revenue",
                    "Total_Aprés_Remises",
                    "Ventas_Valor_Con_Discuento",
                    "Fatturato_Netto",
                    "Ventes_Nettes",
                    "καθαρές_πωλήσεις",
                ],
                notStemArray: [
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            cogsStemDict: {
                stemArray: [
                    "Cogs",
                    "COGS",
                    "Cost_of_Sales",
                    "Direct_costs",
                    "Direktkostenw" "Claims",
                    "Costi_diretti",
                    "Sinistri",
                    "Coûts_directs",
                    "άμεσο_κόστος",
                ],
                notStemArray: [
                    "Change",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            marginStemDict: {
                stemArray: [
                    "Gross_Profit",
                    "Gross_Margin",
                    "Marge_Brut",
                    "Profitto_Lordo",
                    "Margine_Lordo",
                    "Ακαθάριστο_περιθώριο",
                ],
                notStemArray: [
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            indirectCostsStemDict: {
                stemArray: [
                    "Indirect_Costs",
                    "Costi_indiretti",
                    "Coûts_indirects",
                    "Overhead",
                    "FP&A",
                    "Έμμεσες_δαπάνες",
                ],
                notStemArray: [
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            netMarginStemDict: {
                stemArray: [
                    "Profit",
                    "Net_Profit",
                    "Net_Margin",
                    "Marge_Net",
                    "Profitto_Netto",
                    "Margine_Netto",
                    "Καθαρό_περιθώριο",
                ],
                notStemArray: [
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            categoryWeightedDistributionStemDict: {
                stemArray: [
                    "CWD",
                    "Cwd",
                    "Category_Weighted_Distribution",
                    "Weighted_Distribution",
                    "Distribuzione_Ponderata",
                    "Weighted_Selling_Distribution",
                ],
                notStemArray: [
                    "Not_Use",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            totalDistributionPointsStemDict: {
                stemArray: [
                    "TDP",
                    "TDPs",
                    "Tdp",
                    "Total_Distribution_Points",
                ],
                notStemArray: [
                    "Not_Use",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            baselineValueStemDict: {
                stemArray: [
                    "Baseline_Value",
                    "Value_Baseline",
                ],
                notStemArray: [
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            baselineunitsStemDict: {
                stemArray: [
                    "Baseline_Units",
                    "Baseline_Volume",
                    "Units_Baseline",
                    "Volume_Baseline",
                ],
                notStemArray: [
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            checkoutsStemDict: {
                stemArray: [
                    "Bookings",
                    "Checkouts",
                    "Tickets",
                    "Purchases",
                    "Einkäufe",
                    "Αγορές",
                ],
                notStemArray: [
                    "Not_Use",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
            visitsStemDict: {
                stemArray: [
                    "Visits",
                    "Traffic",
                    "Besuche",
                    "Leads",
                    "Visite",
                    "Επίσκεψη",
                ],
                notStemArray: [
                    "Not_Use",
                    "id",
                    "key",
                ],
                getIndex: 0,
            },
        },
        reverseOrderperiodsArray: [
            ["year before", "current year"],
            ["pl", "ac"],
            ["plan", "actual"],
            ["py", "ac"],
            ["previous year", "actual"],
            ["budget", "actual"],
            ["bu", "ac"],
            ["sp", "ac"],
        ],
        planStemArray: ["pl", "plan", "budget", "piano"],
        annotationDict: {
            multitierBarChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.04,
                "xshift": 0,
                "yshift": 0.28,
            },
            multitierColumnChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 150,
                "maxChars": 130,
                "x": 0,
                "y": 1.05,
                "xshift": 0,
                "yshift": 0.12,
            },
            stackedParetoChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.012,
                "xshift": 0,
                "yshift": 0.15,
            },
            marimekkoChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.03,
                "xshift": 0,
                "yshift": 0.16,
            },
            horizontalWaterfallChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 160,
                "maxChars": 130,
                "x": 0,
                "y": 1,
                "xshift": 0,
                "yshift": 0.14,
            },
            verticalWaterfallChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 200,
                "x": 0,
                "y": 1.05,
                "xshift": 0,
                "yshift": 0.15,
            },
            paretoChart: {
                # "y" : 1.13,
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.03,
                "xshift": 0,
                "yshift": 0.1,
            },
            alternativeCombinationsChart: {
                # "y" : 1.13,
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.03,
                "xshift": 0,
                "yshift": 0.12,
            },
            barmekkoChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.03,
                "xshift": 0,
                "yshift": 0.18,
            },
            scatterChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1,
                "xshift": 0,
                "yshift": 0.14,
            },
            kernelDensity: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 140,
                "maxChars": 130,
                "x": 0,
                "y": 1.0,
                "xshift": 0,
                "yshift": 0.19,
            },
            histogramChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 140,
                "maxChars": 130,
                "x": 0,
                "y": 1.0,
                "xshift": 0,
                "yshift": 0.18,
            },
            boxplotChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.0,
                "xshift": 0,
                "yshift": 0.22,
            },
            stripplotChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 140,
                "maxChars": 130,
                "x": 0,
                "y": 1.0,
                "xshift": 0,
                "yshift": 0.19,
            },
            ecdfChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 140,
                "maxChars": 130,
                "x": 0,
                "y": 1.0,
                "xshift": 0,
                "yshift": 0.2,
            },
            trendComparisonByPeriodChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 160,
                "maxChars": 130,
                "x": 0,
                "y": 0.99,
                "xshift": 0,
                "yshift": 0.15,
            },
            trendComparisonChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 160,
                "maxChars": 130,
                "x": 0,
                "y": 0.99,
                "xshift": 0,
                "yshift": 0.3,
            },
            slopeChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1,
                "xshift": 0,
                "yshift": 0.1,
            },
            stackedColumnChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.04,
                "xshift": 0,
                "yshift": 0.16,
            },
            stackedBarChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.07,
                "xshift": 0,
                "yshift": 0.38,
            },
            dotChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1,
                "xshift": 0,
                "yshift": 0.2,
            },
            timelineChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.03,
                "xshift": 0,
                "yshift": 0.16,
            },
            areaChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1.03,
                "xshift": 0,
                "yshift": 0.17,
            },
            bubbleChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1,
                "xshift": 0,
                "yshift": 0.13,
            },
            motionChart: {
                "align": "left",
                "xAnchor": "left",
                "yAnchor": "bottom",
                "color": blackColor,
                "topMargin": 130,
                "maxChars": 130,
                "x": 0,
                "y": 1,
                "xshift": 0,
                "yshift": 0.13,
            },
        },
        monthDict: {
            "01": "Jan",
            "02": "Feb",
            "03": "Mar",
            "04": "Apr",
            "05": "May",
            "06": "Jun",
            "07": "Jul",
            "08": "Aug",
            "09": "Sep",
            "10": "Oct",
            "11": "Nov",
            "12": "Dec",
        },
        monthDictInt: {
            1: "Jan",
            2: "Feb",
            3: "Mar",
            4: "Apr",
            5: "May",
            6: "Jun",
            7: "Jul",
            8: "Aug",
            9: "Sep",
            10: "Oct",
            11: "Nov",
            12: "Dec",
        },
        varianceAggregation: priceAndUnitsAggregation,
        uniformTextMinSize: 10,
        roundValues: False,
        multiplyConstant: 1000000,  # 1000000
        reverseSortPeriods: False,
        maxIndexArrayLength: 6,
        dropRowsWithNegativeValues: nothingFilteredName,
        numberOfColumnsWeight: 100000,  # 150000,
        aggregateLowerValueItems: 0.2,
        minPercentOfTotalVariance: 0.01,
        minPercentOfTotalAmount: 0.0,
        maxPercentOfTotalVariance: 1.0,
        maxPercentOfTotalAmount: 1.0,
        varianceAmountWeight: 1.0,
        numberOfNodesWeight: 0,
        uniqueValuesInCombinationWeight: 0,
        minPercentOfTotalAmountDict: {
            0.0001: (0, 5),
            0.0002: (5, 10),
            0.001: (10, 20),
            0.002: (20, 50),
        },
        maxPercentOfTotalAmountDict: {
            1.6: (0, 5),
            1.5: (5, 10),
            1.4: (10, 20),
            1.3: (20, 50),
        },
        varianceAmountWeightDict: {
            0.9: (0, 5),
            0.9: (5, 10),
            0.95: (10, 20),
            1.0: (20, 50),
        },
        numberOfNodesWeightDict: {0: (0, 5), 0: (5, 10), 1: (10, 20), 1: (20, 50)},
        uniqueValuesInCombinationWeightDict: {
            0: (0, 5),
            0: (5, 10),
            1: (10, 20),
            1: (20, 50),
        },
        highCardinalityNumberOfUniques: 100,
        maxPercentChange: 0.8,
        maxPercentChangeDict: {2: (0, 5), 3: (5, 10), 4: (10, 50), 5: (50, 90)},
        scenarioParameterDict: {
            largestCombinationOption: {
                maxPercentOfTotalVariance: 2.0,
            },
            limitFirstResultSizeOption: {
                minPercentOfTotalAmount: 0.001,
            },
            moreNodesOption: {
                minPercentOfTotalAmount: 0.001,
                numberOfNodesWeight: 3,
                uniqueValuesInCombinationWeight: 3,
            },
            moreGrowthOption: {
                minPercentOfTotalAmount: 0.001,
                varianceAmountWeight: 0.5,
            },
        },
        newVolumePercentChange: 0.6,
        dropDuplicates: False,
        toTitleCase: True,
        numberOfRowResults: 5,
        deletedColumnInMatchingPair: 0,
        mostRecentPeriodIndex: -1,
        otherPeriodIndex: -2,
        forcedMinPercentOfTotalAmount: 0.00000,
        forcedMaxPercentValue: 0.4,
        maxNumberOfNodes: 0,
        maxNumberOfIndexCols: 10,
        cutCorrelationNumber: 0.0015,
        highEstimatorValue: 1300000,
        weeksInYear: 52,
        weeksInSemester: 26,
        weeksInQuarter: 13,
        weeksInMonth: 4,
        maxDataSetSizeDict: {
            kernelDensity: 350000,
            histogramChart: 350000,
            ecdfChart: 350000,
            boxplotChart: 350000,
            stripplotChart: 350000,
            scatterChart: 15000,
        },
        sampleSizeDict: {
            kernelDensity: 300000,
            histogramChart: 300000,
            ecdfChart: 300000,
            boxplotChart: 300000,
            stripplotChart: 300000,
            scatterChart: 10000,
        },
        maxSizePlotAllDimensionsDict: {
            kernelDensity: 100,
            scatterChart: 100,
            barmekkoChart: 100,
            marimekkoChart: 100,
            histogramChart: 100,
            ecdfChart: 100,
            boxplotChart: 100,
            stripplotChart: 100,
            timelineChart: 100,
            trendComparisonChart: 100,
            multitierColumnChart: 100,
            horizontalWaterfallChart: 100,
            stackedBarChart: 100,
            paretoChart: 100,
            stackedParetoChart: 100,
        },
        datashaderLimit: 2000,
        webGLLimit: 1000,
        # fontChoice:"IBM Plex Sans",
        fontChoice: "Helvetica",
        # fontChoice:"Inter",
        fontSizeText: 12,
        fontSizeMessage: 14,
        aggregationChoiceArray: [
            amountZscoreOtherMinMax,
            allMinMax,
            amountZscoreOtherRank,
            allRank,
            allZscore,
        ],
        paretoChartManyItems: 30,
        goldenRatio: 1.61803398875,
        maxPeriodsForBarChart: 25,
        maxPeriodsForLabels: 10,
        maxNumberOfDataColMetrics: 2,
        dataColumnMetricOffset: 70,
        numberOfItems: 5,
        numberOfDimensions: 6,
        configPlotlyDict: {
            kernelDensity: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": kernelDensity,
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            histogramChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "histogram",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            boxplotChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "boxplot",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            stripplotChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "stripplot",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            ecdfChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "ecdf",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            verticalWaterfallChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "vertical_waterfall",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "shapePosition": True,
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": False,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            trendComparisonByPeriodChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "year-over-year_by_period",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            trendComparisonChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "year-over-year_line",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            marimekkoChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "marimekko",
                    "scale": 6,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            barmekkoChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "area_bar",
                    "scale": 4,
                },
                "editable": False,
                "displaylogo": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            timelineChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "timeline",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            areaChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "area",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            slopeChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "slope",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            dotChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "dot",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            bubbleChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "bubble",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            scatterChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "scatter",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            alternativeCombinationsChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "alternativeCombinations",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            motionChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "motion",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            multitierColumnChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "year-over-year_column",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "shapePosition": False,
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            multitierBarChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "multi-tier_bar",
                    "scale": 6,
                },
                "editable": False,
                "edits": {
                    "shapePosition": False,
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            horizontalWaterfallChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "year-over-year_waterfall",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "shapePosition": False,
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": False,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            plotlyTable: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "table",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            paretoChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "pareto",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "displaylogo": False,
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            stackedColumnChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "stacked_column",
                    "scale": 6,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            summaryStackedColumnChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "summary_stacked_column",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            stackedBarChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "stacked_bar",
                    "scale": 6,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
            stackedParetoChart: {
                "toImageButtonOptions": {
                    "format": "png",
                    "filename": "pareto_stacked_column",
                    "scale": 4,
                },
                "editable": False,
                "edits": {
                    "annotationPosition": True,
                    "annotationText": True,
                    "axisTitleText": False,
                    "legendPosition": True,
                    "legendText": False,
                    "titleText": False,
                    "shapePosition": True,
                },
                "modeBarButtonsToAdd": [
                    "drawline",
                    # 'drawopenpath',
                    # 'drawclosedpath',
                    "drawcircle",
                    "drawrect",
                    "eraseshape",
                ],
                "displaylogo": False,
                "modeBarButtonsToRemove": [
                    "zoom2d",
                    "pan2d",
                    "autoScale2d",
                    "select2d",
                    "zoomIn2d",
                    "zoomOut2d",
                    "toggleSpikelines",
                    "resetScale2d",
                    "lasso2d",
                ],
            },
        },
        datasetListDict: {
            "01 Global superstore - 50k rows 16 cols, discounts, COGS": 66,
            "02 Tableau superstore - 10k rows 11 cols, discounts, COGS, indirect cost": 65,
            "03 ZebraBi Sales Dashboard - 127k rows 10 cols, COGS, PL vs AC": 53,
            "04 MS Contoso Retail Dataset - 980k rows 11 cols": 58,
            "05 MS Financial Sample - 700 rows 9 cols": 22,
            "06 MS Customer Profitability Sample - 48k rows 10 cols, COGS": 52,
            "07 MS Procurement Analysis Sample - 200k rows 6 cols": 54,
            "08 MS Retail Analysis Sample - 900k rows 8 cols, COGS": 55,
            "09 MS Sales & Marketing Sample - 870k rows 7 cols": 56,
            "10 Jedox Bike dataset - 46k rows 7 cols, COGS": 70,
            "11 MS Supplier Quality Sample - 6k rows 6 cols": 57,
            "12 MS AdventureWorks - 120k rows 24 cols, COGS, PL vs AC": 68,
            "13 Sell-Out Wipes - 5k rows 6 cols, drivers": 42,
            "14 Sell-Out Hair Color - 500k rows 7 cols, drivers, promo data": 32,
            "15 Sell-Out Pharma - 38k rows 7 cols, drivers": 59,
            "16 Sell-Out Middle East - 56k rows 8 cols": 11,
            "17 SME - 6k rows 5 cols, COGS, indirect costs": 60,
            "18 Retailer - 2k rows 6 cols, COGS, discounts, indirect costs": 41,
            "19 Watch Co - 2k rows 8 cols, COGS, indirect cost, PL vs AC ": 61,
            "20 General store - 114k rows 6 cols, COGS, discounts": 48,
            "21 Middle East Retailers - 44k rows 6 cols": 27,
            "22 Middle East Retailers - 9k rows 8 cols": 13,
            "23 Maven Toys Challenge - 830k rows 5 cols, COGS": 63,
            "24 Pakistan Kaggle Ecommerce - 584k rows 4 cols, discounts": 64,
            "25 Shampoo - 160k rows 6 cols, drivers, promo data": 29,
            "26 Mexico - 140k rows 6 cols, drivers, promo data": 25,
            "27 Styling - 81k rows 7 cols, promo data": 37,
            "28 Sprays - 61k rows 7 cols, promo data": 36,
            "29 Hair Color - 12k rows 8 cols": 14,
            "30 Rewards - 30k rows 10 cols": 45,
            "31 Vegetables - 374k rows 3 cols": 12,
            "32 Airbnb - 19k rows 4 cols": 19,
            "33 Mexico - 7k rows 6 cols, drivers": 2,
            "34 NYC bgt - 205k rows 6 cols": 17,
            "35 Global Fund - 22k rows 7 cols": 18,
            "36 Microstrategy Example - 94k rows 8 cols": 69,
            "37 Saint Paul - 75k rows 7 cols": 16,
            "38 Ecommerce - 406k rows 3 cols": 15,
            "39 Spreads - 200 rows 3 cols": 20,
            "40 Color UK - 338k rows 7 cols": 5,
            "41 Color Mexico - 112k rows 6 cols": 4,
            "42 Color - 56k rows 8 cols, drivers, promo data": 31,
            "43 Color - 29k rows 5 cols, drivers, promo data": 34,
            "44 Color - 2k rows 8 cols": 21,
            "45 Color USA - 56k rows 8 cols": 9,
            "46 Styling - 36k rows 7 cols": 6,
            "47 Color Nielsen - 24k rows 11 cols": 7,
            "48 Color USA - 175k rows 6 cols": 8,
            "49 Wine & Nutella - 3k rows 10 cols": 1,
            "50 Stable market - 313k rows 7 cols, promo data": 39,
            "51 Random - 11k rows 7 cols, COGS, discounts, indirect costs": 47,
            "52 Color - 23k rows 5 cols, drivers, promo data": 33,
            "53 Color - 10k rows 8 cols, drivers": 23,
            "54 Color - 6k rows 4 cols, drivers": 35,
            "55 Shampoo - 68k rows 5 cols, drivers": 26,
            "56 Mexico - 55k rows 5 cols, drivers": 3,
            "57 Styling - 35k rows 7 cols, drivers, promo data": 30,
            "58 Shampoo - 15k rows 7 cols, drivers, promo data": 28,
            "59 Affiliate Management - 11k rows 10 cols, drivers": 62,
            "60 Falling market - 67k rows 7 cols, promo data": 38,
            "61 MS IT Spend Analysis Sample - 66k rows 9 cols": 51,
            "62 Hotel reservations - 7k rows 4 cols, COGS": 67,
            "63 MS Server Log Healthcare - 990k rows 6 cols": 50,
        },
        reportListDict: {
            "01 Hair Color in CH - Market analysis": 1,
            "02 Watch Retailer - Sales report": 2,
            "03 Colori capelli in CH - Analisi mercato": 3,
            "04 Catena Orologi - Report vendite": 4,
            "05 Coloration capillaire en CH - Analyse de marché": 5,
            "06 Chaîne horlogère - Rapport de ventes": 6,
            "07 Haarfarbe in der Schweiz – Marktanalyse": 7,
            "08 Uhrenhändler – Verkaufsbericht": 8,
        },
    }
    return configParams


def get_image_params():
    """
    creates dictionary with parameters tied to a specific dataset
    """
    namingParams = get_naming_params()
    doclinkDict = namingParams["doclinkDict"]
    imageParams = {
        doclinkDict: {
            "multi-tier bar plot": "https://mparanza.com/site/MULTI_TIERED_BAR_PLOT/",
            "multi-tier bar small multiples plot": "https://mparanza.com/site/MULTI_TIERED_BAR_PLOT/#small-multiples-plot",
            "multi-tier bar small multiples by single dimension plot": "https://mparanza.com/site/MULTI_TIERED_BAR_PLOT/#small-multiples-plot-by-single-dimension",
            "stacked bar plot": "https://mparanza.com/site/STACKED_BAR_PLOT/",
            "normalized stacked bar plot": "https://mparanza.com/site/STACKED_BAR_PLOT/#normalized-stacked-plot",
            "bar plot": "https://mparanza.com/site/STACKED_BAR_PLOT/#one-dimension-bar-plot",
            "stacked bar small multiples plot": "https://mparanza.com/site/STACKED_BAR_PLOT/STACKED_BAR_PLOT/",
            "dot plot": "https://mparanza.com/site/DUMBBELL_PLOT/",
            "slope small multiples plot": "https://mparanza.com/site/SLOPE_PLOT/#small-multiples-plot",
            "slope plot": "https://mparanza.com/site/DUMBBELL_PLOT/",
            "marimekko plot": "https://mparanza.com/site/MEKKO_PLOT/",
            "bar mekko plot": "https://mparanza.com/site/BAR_MEKKO_PLOT/",
            "area bar plot": "https://mparanza.com/site/BAR_MEKKO_PLOT/",
            "bubble plot": "https://mparanza.com/site/BUBBLE_PLOT/",
            "motion plot": "https://mparanza.com/site/MOTION_PLOT/",
            "scatter plot": "https://mparanza.com/site/SCATTER_PLOT/",
            "normalized stacked column plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/#normalized-stacked-plot",
            "stacked column in absolute value plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/",
            "stacked column small multiples plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/#small-multiples-plot",
            "year-over-year column small multiples plot": "https://mparanza.com/site/MULTI_TIERED_COLUMN_PLOT/#small-multiples-plot",
            "year-over-year column plot": "https://mparanza.com/site/MULTI_TIERED_COLUMN_PLOT/",
            "year-over-year waterfall plot": "https://mparanza.com/site/HORIZONTAL_WATERFALL_PLOT/",
            "year-over-year waterfall smallmultiplescharts plot": "https://mparanza.com/site/HORIZONTAL_WATERFALL_PLOT/#small-multiples-plot",
            "year-over-year waterfall small multiples plot": "https://mparanza.com/site/HORIZONTAL_WATERFALL_PLOT/#small-multiples-plot",
            "year-over-year line small multiples plot": "https://mparanza.com/site/TREND_COMPARISON_PLOT/",
            "year-over-year line plot": "https://mparanza.com/site/TREND_COMPARISON_PLOT/",
            "year-over-year by period small multiples plot": "https://mparanza.com/site/ACTUAL_VS_PREVIOUS_YEAR_PLOT/",
            "year-over-year by period plot": "https://mparanza.com/site/ACTUAL_VS_PREVIOUS_YEAR_PLOT/",
            "baseline plot": "https://mparanza.com/site/TREND_COMPARISON_PLOT/#baseline-plot",
            "baseline small multiples plot": "https://mparanza.com/site/TREND_COMPARISON_PLOT/#baseline-plot",
            "line plot": "https://mparanza.com/site/TIMELINE_PLOT/",
            "line small multiples plot": "https://mparanza.com/site/TIMELINE_PLOT/#small-multiples-plot",
            "timeline plot": "https://mparanza.com/site/TIMELINE_PLOT/",
            "timeline small multiples plot": "https://mparanza.com/site/TIMELINE_PLOT/#small-multiples-plot",
            "area in absolute value plot": "https://mparanza.com/site/AREA_PLOT/",
            "area plot": "https://mparanza.com/site/AREA_PLOT/",
            "normalized area plot": "https://mparanza.com/site/AREA_PLOT/#normalized-area-plot",
            "pareto stacked column plot": "https://mparanza.com/site/PARETO_STACKED_BAR/",
            "pareto stacked column by dimension plot": "https://mparanza.com/site/PARETO_STACKED_BAR/#plot-by-items-of-dimension",
            "pareto in absolute value plot": "https://mparanza.com/site/PARETO_PLOT/#plot-absolute-values",
            "pareto plot": "https://mparanza.com/site/PARETO_PLOT/",
            "venn plot": "https://mparanza.com/site/VENN_PLOT/",
            "venn small multiples plot": "https://mparanza.com/site/VENN_PLOT/#small-multiples-plot",
            "UpSet plot": "https://mparanza.com/site/UPSET_PLOT/",
            "UpSet small multiples plot": "https://mparanza.com/site/UPSET_PLOT/#small-multiples-plot",
            "upset plot": "https://mparanza.com/site/UPSET_PLOT/",
            "upset small multiples plot": "https://mparanza.com/site/UPSET_PLOT/#small-multiples-plot",
            "kernel density plot": "https://mparanza.com/site/DISTRIBUTION_PLOT/",
            "histogram plot": "https://mparanza.com/site/HISTOGRAM_PLOT/",
            "ecdf plot": "https://mparanza.com/site/ECDF_PLOT/",
            "boxplot plot": "https://mparanza.com/site/BOX_PLOT/",
            "stripplot plot": "https://mparanza.com/site/STRIP_PLOT/",
            "alternative combinations": "https://mparanza.com/site/ALTERNATIVE_COMBINATIONS_PLOT/",
            "column plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/#column-plot",
            "summary stacked column percent plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/#summary-plot",
            "summary stacked column absolute plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/#summary-plot",
            "column plot": "https://mparanza.com/site/STACKED_COLUMN_PLOT/#column-plot",
            "vertical waterfall variable dimension plot": "https://mparanza.com/site/WATERFALL_REPORT/",
            "vertical waterfall plot": "https://mparanza.com/site/BREAK_DOWN_VARIANCE_ALONG_A_DIMENSION/",
            "vertical waterfall small multiples plot": "https://mparanza.com/site/BREAK_DOWN_VARIANCE_ALONG_A_DIMENSION/#small-multiples-fix-dimension-variance-chart",
            "vertical waterfall fix dimension plot": "https://mparanza.com/site/BREAK_DOWN_VARIANCE_ALONG_A_DIMENSION/#variance-chart-along-a-dimension",
        },
    }
    return imageParams


def get_report_params():
    """
    creates dictionary with parameters tied to a specific dataset
    """
    namingParams = get_naming_params()
    chosenReportFolderName = namingParams["chosenReportFolderName"]
    reportParams = {
        1: {
            chosenReportFolderName: "eng_haircolor",
        },
        2: {
            chosenReportFolderName: "eng_beaverbrooks",
        },
        3: {
            chosenReportFolderName: "ita_haircolor",
        },
        4: {
            chosenReportFolderName: "ita_beaverbrooks",
        },
        5: {
            chosenReportFolderName: "fra_haircolor",
        },
        6: {
            chosenReportFolderName: "fra_beaverbrooks",
        },
        7: {
            chosenReportFolderName: "de_haircolor",
        },
        8: {
            chosenReportFolderName: "de_beaverbrooks",
        },
    }
    return reportParams


def get_dataset_params():
    """
    creates dictionary with parameters tied to a specific dataset
    """
    namingParams = get_naming_params()
    datasetName = namingParams["datasetName"]
    fileFormat = namingParams["fileFormat"]
    datasetParams = {
        0: {
            fileFormat: "csv",
            datasetName: "check_small_discounts MM",
        },
        1: {
            fileFormat: "csv",
            datasetName: "3000RowSample",
        },
        2: {
            fileFormat: "csv",
            datasetName: "MexicoRetail",
        },
        3: {
            fileFormat: "csv",
            datasetName: "MexicoScan",
        },
        4: {
            fileFormat: "csv",
            datasetName: "MexicoCities",
        },
        5: {
            fileFormat: "csv",
            datasetName: "UK_coloring",
        },
        6: {
            fileFormat: "csv",
            datasetName: "UK_Styling",
        },
        7: {
            fileFormat: "csv",
            datasetName: "NielsenOld",
        },
        8: {
            fileFormat: "csv",
            datasetName: "USA_total_detailed",
        },
        9: {
            fileFormat: "csv",
            datasetName: "USA_total_not_detailed",
        },
        10: {
            fileFormat: "csv",
            datasetName: "costi_trasporto",
        },
        11: {
            fileFormat: "csv",
            datasetName: "Quatar",
        },
        12: {
            fileFormat: "csv",
            datasetName: "fruithut",
        },
        13: {
            fileFormat: "csv",
            datasetName: "Middle_East",
        },
        14: {
            fileFormat: "csv",
            datasetName: "SaudiRetail_int",
        },
        15: {
            fileFormat: "csv",
            datasetName: "ecommerce",
        },
        16: {
            fileFormat: "csv",
            datasetName: "Saint_Paul_Expenses",
        },
        17: {
            fileFormat: "csv",
            datasetName: "expense_budget_nyc",
        },
        18: {
            fileFormat: "csv",
            datasetName: "Global_fund_2",
        },
        19: {
            fileFormat: "csv",
            datasetName: "AirBNB_NY",
        },
        20: {
            fileFormat: "csv",
            datasetName: "spreads",
        },
        21: {
            fileFormat: "csv",
            datasetName: "Sample_Data_2",
        },
        22: {
            fileFormat: "csv",
            datasetName: "Microsoft_Financial_Sample",
        },
        23: {
            fileFormat: "csv",
            datasetName: "SaudiRetail_coloring",
        },
        24: {
            fileFormat: "csv",
            datasetName: "tesla",
        },
        25: {
            fileFormat: "csv",
            datasetName: "MexicoScan_top_cities",
        },
        26: {
            fileFormat: "csv",
            datasetName: "MexicoSmall",
        },
        27: {
            fileFormat: "csv",
            datasetName: "Middle_East_Retailers",
        },
        28: {
            fileFormat: "csv",
            datasetName: "small",
        },
        29: {
            fileFormat: "csv",
            datasetName: "USATotalCountryMonths",
        },
        30: {
            fileFormat: "csv",
            datasetName: "USATotalCountryMonthsColoring",
        },
        31: {
            fileFormat: "csv",
            datasetName: "USADrugAndFoodMonthsColoring",
        },
        32: {
            fileFormat: "csv",
            datasetName: "Value_Units_Retailers_Shades_coloring",
        },
        33: {
            fileFormat: "csv",
            datasetName: "Value_Units_Shades_coloring",
        },
        34: {
            fileFormat: "csv",
            datasetName: "Value_Units_Retailers_coloring",
        },
        35: {
            fileFormat: "csv",
            datasetName: "Value_Units_Promo_coloring",
        },
        36: {
            fileFormat: "csv",
            datasetName: "UK_Styling_SKU_level_qty_styling",
        },
        37: {
            fileFormat: "csv",
            datasetName: "UK_Styling_No_Retailers_styling",
        },
        38: {
            fileFormat: "csv",
            datasetName: "UK_Coloring_No_Retailers_coloring_color_crave",
        },
        39: {
            fileFormat: "csv",
            datasetName: "UK_Coloring_No_Retailers_coloring",
        },
        40: {
            fileFormat: "csv",
            datasetName: "dati_random_crossfilter_cogs",
        },
        41: {
            fileFormat: "csv",
            datasetName: "example_data",
        },
        42: {
            fileFormat: "csv",
            datasetName: "pulizia_Italia_eng",
        },
        43: {
            fileFormat: "csv",
            datasetName: "Expedia_test",
        },
        44: {
            fileFormat: "csv",
            datasetName: "roi_test",
        },
        45: {
            fileFormat: "csv",
            datasetName: "many_dimensions_customers",
        },
        46: {
            fileFormat: "csv",
            datasetName: "dati_random_crossfilter_discounts",
        },
        47: {
            fileFormat: "csv",
            datasetName: "test_electric",
        },
        48: {
            fileFormat: "csv",
            datasetName: "dati_random_crossfilter_cogs_discounts",
        },
        49: {
            fileFormat: "csv",
            datasetName: "zebra",
        },
        50: {
            fileFormat: "csv",
            datasetName: "MS_IT_Log_Healthcare",
        },
        51: {
            fileFormat: "csv",
            datasetName: "Microsoft_IT_spend_analysis",
        },
        52: {
            fileFormat: "csv",
            datasetName: "Microsoft_Customer_Profitability",
        },
        53: {
            fileFormat: "csv",
            datasetName: "zebrabi_sales_dashboard",
        },
        54: {
            fileFormat: "csv",
            datasetName: "Microsoft_Procurement_Analysis",
        },
        55: {
            fileFormat: "csv",
            datasetName: "MS_retail_analysis_sample",
        },
        56: {
            fileFormat: "csv",
            datasetName: "MS_Sales_and_Marketing_Sample",
        },
        57: {
            fileFormat: "csv",
            datasetName: "MS_Supplier_Quality_Sample",
        },
        58: {
            fileFormat: "csv",
            datasetName: "MS_Contoso_Retail_dataset",
        },
        59: {
            fileFormat: "csv",
            datasetName: "PharmaSellOut",
        },
        60: {
            fileFormat: "csv",
            datasetName: "SME",
        },
        61: {
            fileFormat: "csv",
            datasetName: "watch_retailer",
        },
        62: {
            fileFormat: "csv",
            datasetName: "Affiliate",
        },
        63: {
            fileFormat: "csv",
            datasetName: "maven_toys",
        },
        64: {
            fileFormat: "csv",
            datasetName: "Pakistan_Ecommerce_Dataset",
        },
        65: {
            fileFormat: "csv",
            datasetName: "Superstore",
        },
        66: {
            fileFormat: "csv",
            datasetName: "Global_Superstore",
        },
        67: {
            fileFormat: "csv",
            datasetName: "hotels",
        },
        68: {
            fileFormat: "csv",
            datasetName: "AdventureWorks",
        },
        69: {
            fileFormat: "csv",
            datasetName: "microstrategy_example_file",
        },
        70: {
            fileFormat: "csv",
            datasetName: "bikes",
        },
    }
    return datasetParams


def get_translate_dict_from_open_ai():
    """
    creates dictionary with parameters for running session
    """
    namingParams = get_naming_params()
    aggregateUniquesByDimension = namingParams["aggregateUniquesByDimension"]
    areaChart = namingParams["areaChart"]
    barmekkoChart = namingParams["barmekkoChart"]
    boxplotChart = namingParams["boxplotChart"]
    bubbleChart = namingParams["bubbleChart"]
    bubbleSize = namingParams["bubbleSize"]
    chosenChart = namingParams["chosenChart"]
    chosenCohortColumn = namingParams["chosenCohortColumn"]
    marginGrowthName = namingParams["marginGrowthName"]
    smallMultiplesColumn = namingParams["smallMultiplesColumn"]
    countColumn = namingParams["countColumn"]
    discountInPercent = namingParams["discountInPercentName"]
    ecdfChart = namingParams["ecdfChart"]
    marginInPercent = namingParams["marginInPercentName"]
    marginInPercentOfNetSalesName = namingParams["marginInPercentOfNetSalesName"]
    histogramChart = namingParams["histogramChart"]
    horizontalWaterfallChart = namingParams["horizontalWaterfallChart"]
    kernelDensity = namingParams["kernelDensityChart"]
    likeForLike = namingParams["likeForLikeName"]
    marimekkoChart = namingParams["marimekkoChart"]
    metricsToPlot = namingParams["metricsToPlot"]
    multitierBarChart = namingParams["multitierBarChart"]
    multitierColumnChart = namingParams["multitierColumnChart"]
    netSalesGrowthName = namingParams["netSalesGrowthName"]
    netUnitsPriceChangeName = namingParams["netUnitsPriceChangeName"]
    paretoChart = namingParams["paretoChart"]
    plotValuesAsChoice = namingParams["plotValuesAsChoice"]
    plotSmallMultiplesKey = namingParams["plotSmallMultiplesOtherCharts"]
    pricePerUnit = namingParams["pricePerUnitName"]
    salesGrowthName = namingParams["salesGrowthName"]
    scatterChart = namingParams["scatterChart"]
    selectDimensionsToPlotCheckbox = namingParams["selectDimensionsToPlotCheckbox"]
    selectDimensionsToPlot = namingParams["selectDimensionsToPlot"]
    stackedBarChart = namingParams["stackedBarChart"]
    stackedColumnChart = namingParams["stackedColumnChart"]
    stackedParetoChart = namingParams["stackedParetoChart"]
    stripplotChart = namingParams["stripplotChart"]
    timelineChart = namingParams["timelineChart"]
    trendComparisonChart = namingParams["trendComparisonChart"]
    upsetChart = namingParams["upsetChart"]
    vennChart = namingParams["vennChart"]
    units = namingParams["unitsName"]
    unitsGrowthName = namingParams["unitsGrowthName"]
    unitsPriceChangeName = namingParams["unitsPriceChangeName"]
    volume = namingParams["volumeName"]
    yAxisDimension = namingParams["yAxisDimension"]
    yAxisMetric = namingParams["yAxisMetric"]
    xAxisMetric = namingParams["xAxisMetric"]
    xAxisDimension = namingParams["xAxisDimension"]
    translateDict = {
        1: "1",
        2: "2",
        3: "3",
        4: "4",
        5: "5",
        6: "6",
        7: "7",
        8: "8",
        9: "9",
        10: "10",
        11: "11",
        12: "12",
        13: "13",
        14: "14",
        15: "15",
        16: "16",
        17: "17",
        18: "18",
        19: "19",
        20: "20",
        21: "21",
        22: "22",
        23: "23",
        24: "24",
        25: "25",
        26: "26",
        27: "27",
        28: "28",
        29: "29",
        30: "30",
        31: "31",
        32: "32",
        33: "33",
        34: "34",
        35: "35",
        36: "36",
        37: "37",
        38: "38",
        39: "39",
        40: "40",
        41: "41",
        42: "42",
        43: "43",
        44: "44",
        45: "45",
        46: "46",
        47: "47",
        48: "48",
        49: "49",
        50: "50",
        51: "51",
        52: "52",
        53: "53",
        54: "54",
        55: "55",
        56: "56",
        57: "57",
        58: "58",
        59: "59",
        60: "60",
        61: "61",
        62: "62",
        63: "63",
        64: "64",
        65: "65",
        66: "66",
        67: "67",
        68: "68",
        69: "69",
        70: "70",
        71: "71",
        72: "72",
        73: "73",
        74: "74",
        75: "75",
        76: "76",
        77: "77",
        78: "78",
        79: "79",
        80: "80",
        81: "81",
        82: "82",
        83: "83",
        84: "84",
        85: "85",
        86: "86",
        87: "87",
        88: "88",
        89: "89",
        90: "90",
        91: "91",
        92: "92",
        93: "93",
        94: "94",
        95: "95",
        96: "96",
        97: "97",
        98: "98",
        99: "99",
        100: "100",
        "chart1": "1",
        "chart2": "2",
        "chart3": "3",
        "chart4": "4",
        "chart5": "5",
        "chart6": "6",
        "chart7": "7",
        "chart8": "8",
        "chart9": "9",
        "chart10": "10",
        "chart11": "11",
        "chart12": "12",
        "chart13": "13",
        "chart14": "14",
        "chart15": "15",
        "chart16": "16",
        "chart17": "17",
        "chart18": "18",
        "chart19": "19",
        "chart20": "20",
        "chart21": "21",
        "chart22": "22",
        "chart23": "23",
        "chart24": "24",
        "chart25": "25",
        "chart26": "26",
        "chart27": "27",
        "chart28": "28",
        "chart29": "29",
        "chart30": "30",
        "chart31": "31",
        "chart32": "32",
        "chart33": "33",
        "chart34": "34",
        "chart35": "35",
        "chart36": "36",
        "chart37": "37",
        "chart38": "38",
        "chart39": "39",
        "chart40": "40",
        "chart41": "41",
        "chart42": "42",
        "chart43": "43",
        "chart44": "44",
        "chart45": "45",
        "chart46": "46",
        "chart47": "47",
        "chart48": "48",
        "chart49": "49",
        "chart50": "50",
        "chart51": "51",
        "chart52": "52",
        "chart53": "53",
        "chart54": "54",
        "chart55": "55",
        "chart56": "56",
        "chart57": "57",
        "chart58": "58",
        "chart59": "59",
        "chart60": "60",
        "chart61": "61",
        "chart62": "62",
        "chart63": "63",
        "chart64": "64",
        "chart65": "65",
        "chart66": "66",
        "chart67": "67",
        "chart68": "68",
        "chart69": "69",
        "chart70": "70",
        "chart71": "71",
        "chart72": "72",
        "chart73": "73",
        "chart74": "74",
        "chart75": "75",
        "chart76": "76",
        "chart77": "77",
        "chart78": "78",
        "chart79": "79",
        "chart80": "80",
        "chart81": "81",
        "chart82": "82",
        "chart83": "83",
        "chart84": "84",
        "chart85": "85",
        "chart86": "86",
        "chart87": "87",
        "chart88": "88",
        "chart89": "89",
        "chart90": "90",
        "chart91": "91",
        "chart92": "92",
        "chart93": "93",
        "chart94": "94",
        "chart95": "95",
        "chart96": "96",
        "chart97": "97",
        "chart98": "98",
        "chart99": "99",
        "chart100": "100",
        "chart_1": "1",
        "chart_2": "2",
        "chart_3": "3",
        "chart_4": "4",
        "chart_5": "5",
        "chart_6": "6",
        "chart_7": "7",
        "chart_8": "8",
        "chart_9": "9",
        "chart_10": "10",
        "chart_11": "11",
        "chart_12": "12",
        "chart_13": "13",
        "chart_14": "14",
        "chart_15": "15",
        "chart_16": "16",
        "chart_17": "17",
        "chart_18": "18",
        "chart_19": "19",
        "chart_20": "20",
        "chart_21": "21",
        "chart_22": "22",
        "chart_23": "23",
        "chart_24": "24",
        "chart_25": "25",
        "chart_26": "26",
        "chart_27": "27",
        "chart_28": "28",
        "chart_29": "29",
        "chart_30": "30",
        "chart_31": "31",
        "chart_32": "32",
        "chart_33": "33",
        "chart_34": "34",
        "chart_35": "35",
        "chart_36": "36",
        "chart_37": "37",
        "chart_38": "38",
        "chart_39": "39",
        "chart_40": "40",
        "chart_41": "41",
        "chart_42": "42",
        "chart_43": "43",
        "chart_44": "44",
        "chart_45": "45",
        "chart_46": "46",
        "chart_47": "47",
        "chart_48": "48",
        "chart_49": "49",
        "chart_50": "50",
        "chart_51": "51",
        "chart_52": "52",
        "chart_53": "53",
        "chart_54": "54",
        "chart_55": "55",
        "chart_56": "56",
        "chart_57": "57",
        "chart_58": "58",
        "chart_59": "59",
        "chart_60": "60",
        "chart_61": "61",
        "chart_62": "62",
        "chart_63": "63",
        "chart_64": "64",
        "chart_65": "65",
        "chart_66": "66",
        "chart_67": "67",
        "chart_68": "68",
        "chart_69": "69",
        "chart_70": "70",
        "chart_71": "71",
        "chart_72": "72",
        "chart_73": "73",
        "chart_74": "74",
        "chart_75": "75",
        "chart_76": "76",
        "chart_77": "77",
        "chart_78": "78",
        "chart_79": "79",
        "chart_80": "80",
        "chart_81": "81",
        "chart_82": "82",
        "chart_83": "83",
        "chart_84": "84",
        "chart_85": "85",
        "chart_86": "86",
        "chart_87": "87",
        "chart_88": "88",
        "chart_89": "89",
        "chart_90": "90",
        "chart_91": "91",
        "chart_92": "92",
        "chart_93": "93",
        "chart_94": "94",
        "chart_95": "95",
        "chart_96": "96",
        "chart_97": "97",
        "chart_98": "98",
        "chart_99": "99",
        "chart_100": "100",
        "chart 1": "1",
        "chart 2": "2",
        "chart 3": "3",
        "chart 4": "4",
        "chart 5": "5",
        "chart 6": "6",
        "chart 7": "7",
        "chart 8": "8",
        "chart 9": "9",
        "chart 10": "10",
        "chart 11": "11",
        "chart 12": "12",
        "chart 13": "13",
        "chart 14": "14",
        "chart 15": "15",
        "chart 16": "16",
        "chart 17": "17",
        "chart 18": "18",
        "chart 19": "19",
        "chart 20": "20",
        "chart 21": "21",
        "chart 22": "22",
        "chart 23": "23",
        "chart 24": "24",
        "chart 25": "25",
        "chart 26": "26",
        "chart 27": "27",
        "chart 28": "28",
        "chart 29": "29",
        "chart 30": "30",
        "chart 31": "31",
        "chart 32": "32",
        "chart 33": "33",
        "chart 34": "34",
        "chart 35": "35",
        "chart 36": "36",
        "chart 37": "37",
        "chart 38": "38",
        "chart 39": "39",
        "chart 40": "40",
        "chart 41": "41",
        "chart 42": "42",
        "chart 43": "43",
        "chart 44": "44",
        "chart 45": "45",
        "chart 46": "46",
        "chart 47": "47",
        "chart 48": "48",
        "chart 49": "49",
        "chart 50": "50",
        "chart 51": "51",
        "chart 52": "52",
        "chart 53": "53",
        "chart 54": "54",
        "chart 55": "55",
        "chart 56": "56",
        "chart 57": "57",
        "chart 58": "58",
        "chart 59": "59",
        "chart 60": "60",
        "chart 61": "61",
        "chart 62": "62",
        "chart 63": "63",
        "chart 64": "64",
        "chart 65": "65",
        "chart 66": "66",
        "chart 67": "67",
        "chart 68": "68",
        "chart 69": "69",
        "chart 70": "70",
        "chart 71": "71",
        "chart 72": "72",
        "chart 73": "73",
        "chart 74": "74",
        "chart 75": "75",
        "chart 76": "76",
        "chart 77": "77",
        "chart 78": "78",
        "chart 79": "79",
        "chart 80": "80",
        "chart 81": "81",
        "chart 82": "82",
        "chart 83": "83",
        "chart 84": "84",
        "chart 85": "85",
        "chart 86": "86",
        "chart 87": "87",
        "chart 88": "88",
        "chart 89": "89",
        "chart 90": "90",
        "chart 91": "91",
        "chart 92": "92",
        "chart 93": "93",
        "chart 94": "94",
        "chart 95": "95",
        "chart 96": "96",
        "chart 97": "97",
        "chart 98": "98",
        "chart 99": "99",
        "chart 100": "100",
        "aggregateUniquesByDimension": aggregateUniquesByDimension,
        "aggregate by dimension": aggregateUniquesByDimension,
        "aggregate_by_dimension": aggregateUniquesByDimension,
        "alldimensions": selectDimensionsToPlotCheckbox,
        "all dimensions": selectDimensionsToPlotCheckbox,
        "all_dimensions": selectDimensionsToPlotCheckbox,
        "plotalldimensions": selectDimensionsToPlotCheckbox,
        "plot all dimensions": selectDimensionsToPlotCheckbox,
        "plot_all_dimensions": selectDimensionsToPlotCheckbox,
        "plotlikeforlike": likeForLike,
        "plot like for like": likeForLike,
        "plot_like_for_like": likeForLike,
        "chartalldimensions": selectDimensionsToPlotCheckbox,
        "chart all dimensions": selectDimensionsToPlotCheckbox,
        "chart_all_dimensions": selectDimensionsToPlotCheckbox,
        "showalldimensions": selectDimensionsToPlotCheckbox,
        "show all dimensions": selectDimensionsToPlotCheckbox,
        "show_all_dimensions": selectDimensionsToPlotCheckbox,
        "percentage": plotValuesAsChoice,
        "show as percentage": plotValuesAsChoice,
        "showaspercentage": plotValuesAsChoice,
        "show_as_percentage": plotValuesAsChoice,
        "show percentage": plotValuesAsChoice,
        "showpercentage": plotValuesAsChoice,
        "show_percentage": plotValuesAsChoice,
        "show percentages": plotValuesAsChoice,
        "showpercentages": plotValuesAsChoice,
        "show_percentages": plotValuesAsChoice,
        "showvaluesaspercentages": plotValuesAsChoice,
        "show values as percentages": plotValuesAsChoice,
        "show_values_as_percentages": plotValuesAsChoice,
        "chart": chosenChart,
        "charttype": chosenChart,
        "plot type": chosenChart,
        "chart_type": chosenChart,
        "plot": chosenChart,
        "plottype": chosenChart,
        "plot type": chosenChart,
        "plot_type": chosenChart,
        "plot": chosenChart,
        "plottype": chosenChart,
        "plot type": chosenChart,
        "plot_type": chosenChart,
        "bubblesizemetric": bubbleSize,
        "bubble size metric": bubbleSize,
        "bubble_size_metric": bubbleSize,
        "bardimensioncolumn": xAxisDimension,
        "bar dimension column": xAxisDimension,
        "bar_dimension_column": xAxisDimension,
        "cohort dimension": chosenCohortColumn,
        "cohortdimensioncolumn": chosenCohortColumn,
        "item dimension column": chosenCohortColumn,
        "cohort_dimension_column": chosenCohortColumn,
        "dimensiontoplot": countColumn,
        "dimension to plot": countColumn,
        "dimension_to_plot": countColumn,
        "dimensiontoplotcolumn": countColumn,
        "dimension to plot column": countColumn,
        "dimension_to_plot_column": countColumn,
        "dimensioncolumn": countColumn,
        "dimension column": countColumn,
        "dimension_column": countColumn,
        "dimensioncolumnx": selectDimensionsToPlot,
        "dimension column x": selectDimensionsToPlot,
        "dimension_column_x": selectDimensionsToPlot,
        "dimensionx": selectDimensionsToPlot,
        "dimension x": selectDimensionsToPlot,
        "dimension_x": selectDimensionsToPlot,
        "discountinpercent": discountInPercent,
        "discount in percent": discountInPercent,
        "discount_in_percent": discountInPercent,
        "discountin%": discountInPercent,
        "discount in %": discountInPercent,
        "discount_in_%": discountInPercent,
        "bubbledimensioncolumn": xAxisDimension,
        "bubble dimension column": xAxisDimension,
        "bubble_dimension_column": xAxisDimension,
        "margininpercent": marginInPercent,
        "margin in percent": marginInPercent,
        "margin_in_percent": marginInPercent,
        "marginin%": marginInPercent,
        "margin in %": marginInPercent,
        "margin_in_%": marginInPercent,
        "marginInPercent": marginInPercent,
        "gross margin in percent": marginInPercent,
        "gross_margin_in_percent": marginInPercent,
        "grossmarginin%": marginInPercent,
        "gross margin in %": marginInPercent,
        "gross_margin_in_%": marginInPercent,
        "dotdimensioncolumn": xAxisDimension,
        "dot dimension column": xAxisDimension,
        "dot_dimension_column": xAxisDimension,
        "grossmargingrowthrate": marginGrowthName,
        "gross margin growth rate": marginGrowthName,
        "gross_margin_growth_rate": marginGrowthName,
        "grossmarginrate": marginGrowthName,
        "grossmargin growth rate": marginGrowthName,
        "grossmargin_growth_rate": marginGrowthName,
        "margingrowthrate": marginGrowthName,
        "margin growth rate": marginGrowthName,
        "margin_growth_rate": marginGrowthName,
        "marginrate": marginGrowthName,
        "margin growth rate": marginGrowthName,
        "margin_growth_rate": marginGrowthName,
        "netsalesgrowthrate": netSalesGrowthName,
        "net sales growth rate": netSalesGrowthName,
        "net_sales_growth_rate": netSalesGrowthName,
        "salesgrowthrate": salesGrowthName,
        "sales growth rate": salesGrowthName,
        "sales_growth_rate": salesGrowthName,
        "unitsgrowthrate": unitsGrowthName,
        "units growth rate": unitsGrowthName,
        "units_growth_rate": unitsGrowthName,
        "unitgrowthrate": unitsGrowthName,
        "unit growth rate": unitsGrowthName,
        "unit_growth_rate": unitsGrowthName,
        "netunitspricechange": netUnitsPriceChangeName,
        "net units price change": netUnitsPriceChangeName,
        "net_units_price_change": netUnitsPriceChangeName,
        "netunitpricechange": netUnitsPriceChangeName,
        "net unit price change": netUnitsPriceChangeName,
        "net_unit_price_change": netUnitsPriceChangeName,
        "unitspricechange": unitsPriceChangeName,
        "units price change": unitsPriceChangeName,
        "units_price_change": unitsPriceChangeName,
        "unitpricechange": unitsPriceChangeName,
        "unit price change": unitsPriceChangeName,
        "unit_price_change": unitsPriceChangeName,
        "smallmultiplesdimensioncolumn": smallMultiplesColumn,
        "small multiples dimension column": smallMultiplesColumn,
        "small_multiples_dimension_column": smallMultiplesColumn,
        "price": pricePerUnit,
        "unitprice": pricePerUnit,
        "unit price": pricePerUnit,
        "unit_price": pricePerUnit,
        "unitsprice": pricePerUnit,
        "units price": pricePerUnit,
        "units_price": pricePerUnit,
        "unit": units,
        "units": units,
        "unit": units,
        "volume": volume,
        "volume": volume,
        "xdimension": selectDimensionsToPlot,
        "x dimension": selectDimensionsToPlot,
        "x_dimension": selectDimensionsToPlot,
        "setsdimensioncolumn": selectDimensionsToPlot,
        "sets dimension column": selectDimensionsToPlot,
        "sets_dimension_column": selectDimensionsToPlot,
        "setsdimension": selectDimensionsToPlot,
        "sets dimension": selectDimensionsToPlot,
        "sets_dimension": selectDimensionsToPlot,
        "xaxismetric": xAxisMetric,
        "x axis metric": xAxisMetric,
        "x_axis_metric": xAxisMetric,
        "yaxismetric": yAxisMetric,
        "y axis metric": yAxisMetric,
        "y_axis_metric": yAxisMetric,
        "dimensioncolumny": yAxisDimension,
        "dimension column y": yAxisDimension,
        "dimension_column_y": yAxisDimension,
        "dimensiony": yAxisDimension,
        "dimension y": yAxisDimension,
        "dimension_y": yAxisDimension,
        "ydimension": yAxisDimension,
        "y dimension": yAxisDimension,
        "y_dimension": yAxisDimension,
        "communalitydimensioncolumn": yAxisDimension,
        "communality dimension column": yAxisDimension,
        "communality_dimension_column": yAxisDimension,
        "communalitydimension": yAxisDimension,
        "communality dimension": yAxisDimension,
        "communality_dimension": yAxisDimension,
        "intersectiondimensioncolumn": yAxisDimension,
        "intersection dimension column": yAxisDimension,
        "intersection_dimension_column": yAxisDimension,
        "intersectiondimension": yAxisDimension,
        "intersection dimension": yAxisDimension,
        "intersection_dimension": yAxisDimension,
        "smallmultiples": plotSmallMultiplesKey,
        "small multiples": plotSmallMultiplesKey,
        "small_multiples": plotSmallMultiplesKey,
        "smallmultiple": plotSmallMultiplesKey,
        "small multiple": plotSmallMultiplesKey,
        "small_multiple": plotSmallMultiplesKey,
        "issmallmultiple": plotSmallMultiplesKey,
        "is small multiple": plotSmallMultiplesKey,
        "is_small_multiple": plotSmallMultiplesKey,
        "issmallmultiples": plotSmallMultiplesKey,
        "is small multiples": plotSmallMultiplesKey,
        "is_small_multiples": plotSmallMultiplesKey,
        "metric": metricsToPlot,
        "metrics": metricsToPlot,
        "averagemetriccolumnchart": stackedColumnChart,
        "average metric column chart": stackedColumnChart,
        "average_metric_column_chart": stackedColumnChart,
        "averagemetriccolumnplot": stackedColumnChart,
        "average metric column plot": stackedColumnChart,
        "average_metric_column_plot": stackedColumnChart,
        "averagemetriccolumn": stackedColumnChart,
        "average metric column": stackedColumnChart,
        "average_metric_column": stackedColumnChart,
        "area": areaChart,
        "areachart": areaChart,
        "area chart": areaChart,
        "area_chart": areaChart,
        "areaplot": areaChart,
        "area plot": areaChart,
        "area_plot": areaChart,
        "bar": stackedBarChart,
        "barchart": stackedBarChart,
        "bar chart": stackedBarChart,
        "bar_chart": stackedBarChart,
        "barplot": stackedBarChart,
        "bar plot": stackedBarChart,
        "bar_plot": stackedBarChart,
        "barmekko": barmekkoChart,
        "bar mekko": barmekkoChart,
        "bar_mekko": barmekkoChart,
        "barmekkochart": barmekkoChart,
        "barmekko chart": barmekkoChart,
        "barmekko_chart": barmekkoChart,
        "bar mekko chart": barmekkoChart,
        "bar_mekko_chart": barmekkoChart,
        "barmekkoplot": barmekkoChart,
        "barmekko plot": barmekkoChart,
        "barmekko_plot": barmekkoChart,
        "bar mekko plot": barmekkoChart,
        "bar_mekko_plot": barmekkoChart,
        "bubble": bubbleChart,
        "bubblechart": bubbleChart,
        "bubble chart": bubbleChart,
        "bubble_chart": bubbleChart,
        "bubbleplot": bubbleChart,
        "bubble plot": bubbleChart,
        "bubble_plot": bubbleChart,
        "boxplot": boxplotChart,
        "boxplotchart": boxplotChart,
        "boxplot chart": boxplotChart,
        "boxplot_chart": boxplotChart,
        "boxplotplot": boxplotChart,
        "boxplot plot": boxplotChart,
        "boxplot_plot": boxplotChart,
        "box plot": boxplotChart,
        "box plotchart": boxplotChart,
        "box plot chart": boxplotChart,
        "box_plot_chart": boxplotChart,
        "box plotplot": boxplotChart,
        "box plot plot": boxplotChart,
        "box_plot_plot": boxplotChart,
        "cohort": stackedColumnChart,
        "cohortchart": stackedColumnChart,
        "cohort chart": stackedColumnChart,
        "cohort_chart": stackedColumnChart,
        "cohortcolumn": stackedColumnChart,
        "cohort column": stackedColumnChart,
        "cohort_column": stackedColumnChart,
        "cohortcolumnchart": stackedColumnChart,
        "cohort column chart": stackedColumnChart,
        "cohort_column_chart": stackedColumnChart,
        "cohort": stackedColumnChart,
        "cohortplot": stackedColumnChart,
        "cohort plot": stackedColumnChart,
        "cohort_plot": stackedColumnChart,
        "cohortcolumn": stackedColumnChart,
        "cohort column": stackedColumnChart,
        "cohort_column": stackedColumnChart,
        "cohortcolumnplot": stackedColumnChart,
        "cohort column plot": stackedColumnChart,
        "cohort_column_plot": stackedColumnChart,
        "column": stackedColumnChart,
        "columnchart": stackedColumnChart,
        "column chart": stackedColumnChart,
        "column_chart": stackedColumnChart,
        "column": stackedColumnChart,
        "columnplot": stackedColumnChart,
        "column plot": stackedColumnChart,
        "column_plot": stackedColumnChart,
        "ecdf": ecdfChart,
        "ecdfchart": ecdfChart,
        "ecdf chart": ecdfChart,
        "ecdf_chart": ecdfChart,
        "ecdfplot": ecdfChart,
        "ecdf plot": ecdfChart,
        "ecdf_plot": ecdfChart,
        "kerneldensity": kernelDensity,
        "kernel density": kernelDensity,
        "kernel_density": kernelDensity,
        "kerneldensitychart": kernelDensity,
        "kernel density chart": kernelDensity,
        "kernel_density_chart": kernelDensity,
        "kerneldensityplot": kernelDensity,
        "kernel density plot": kernelDensity,
        "kernel_density_plot": kernelDensity,
        "histogram": histogramChart,
        "histogramchart": histogramChart,
        "histogram chart": histogramChart,
        "histogram_chart": histogramChart,
        "histogramplot": histogramChart,
        "histogram plot": histogramChart,
        "histogram_plot": histogramChart,
        "ibcsmultitierbar": multitierBarChart,
        "ibcs multitier bar": multitierBarChart,
        "ibcs_multitier_bar": multitierBarChart,
        "ibcsmultitierbarchart": multitierBarChart,
        "ibcs multitier bar chart": multitierBarChart,
        "ibcs_multitier_bar_chart": multitierBarChart,
        "ibcsmultitierbarplot": multitierBarChart,
        "ibcs multitier bar plot": multitierBarChart,
        "ibcs_multitier_bar_plot": multitierBarChart,
        "likeforlike": stackedColumnChart,
        "like for like": stackedColumnChart,
        "like_for_like": stackedColumnChart,
        "likeforlikechart": stackedColumnChart,
        "like for like chart": stackedColumnChart,
        "like_for_like_chart": stackedColumnChart,
        "likeforlikeplot": stackedColumnChart,
        "like for like plot": stackedColumnChart,
        "like_for_like_plot": stackedColumnChart,
        "likeforlikecolumn": stackedColumnChart,
        "like for like column": stackedColumnChart,
        "like_for_like_column": stackedColumnChart,
        "likeforlikeplot": stackedColumnChart,
        "like for like plot": stackedColumnChart,
        "like_for_like_plot": stackedColumnChart,
        "likeforlikecolumnchart": stackedColumnChart,
        "like for like column chart": stackedColumnChart,
        "like_for_like_column_chart": stackedColumnChart,
        "likeforlikecolumnplot": stackedColumnChart,
        "like for like column plot": stackedColumnChart,
        "like_for_like_column_plot": stackedColumnChart,
        "ibcsmultitiercolumn": multitierColumnChart,
        "ibcs multitier column": multitierColumnChart,
        "ibcs_multitier_column": multitierColumnChart,
        "ibcsmultitierplot": multitierColumnChart,
        "ibcs multitier plot": multitierColumnChart,
        "ibcs_multitier_plot": multitierColumnChart,
        "ibcsmultitiercolumnchart": multitierColumnChart,
        "ibcs multitier column chart": multitierColumnChart,
        "ibcs_multitier_column_chart": multitierColumnChart,
        "ibcsmultitiercolumnplot": multitierColumnChart,
        "ibcs multitier column plot": multitierColumnChart,
        "ibcs_multitier_column_plot": multitierColumnChart,
        "line": timelineChart,
        "linechart": timelineChart,
        "line chart": timelineChart,
        "line_chart": timelineChart,
        "lineplot": timelineChart,
        "line plot": timelineChart,
        "line_plot": timelineChart,
        "timelinechart": timelineChart,
        "timeline chart": timelineChart,
        "timeline_chart": timelineChart,
        "timelineplot": timelineChart,
        "timeline plot": timelineChart,
        "timeline_plot": timelineChart,
        "multibar": multitierBarChart,
        "multi bar": multitierBarChart,
        "multi_bar": multitierBarChart,
        "multitierbar": multitierBarChart,
        "multitier bar": multitierBarChart,
        "multitier_bar": multitierBarChart,
        "multitierbarchart": multitierBarChart,
        "multitier bar chart": multitierBarChart,
        "multitier_bar_chart": multitierBarChart,
        "multitierbarplot": multitierBarChart,
        "multitier bar plot": multitierBarChart,
        "multitier_bar_plot": multitierBarChart,
        "multitiercolumn": multitierColumnChart,
        "multitier column": multitierColumnChart,
        "multitier_column": multitierColumnChart,
        "multicolumn": multitierColumnChart,
        "multi column": multitierColumnChart,
        "multi_column": multitierColumnChart,
        "multitiercolumnchart": multitierColumnChart,
        "multitier column chart": multitierColumnChart,
        "multitier_column_chart": multitierColumnChart,
        "multitiercolumnplot": multitierColumnChart,
        "multitier column plot": multitierColumnChart,
        "multitier_column_plot": multitierColumnChart,
        "marimekko": marimekkoChart,
        "marimekkochart": marimekkoChart,
        "marimekko chart": marimekkoChart,
        "marimekko_chart": marimekkoChart,
        "marimekkoplot": marimekkoChart,
        "marimekko plot": marimekkoChart,
        "marimekko_plot": marimekkoChart,
        "pareto": paretoChart,
        "paretochart": paretoChart,
        "pareto chart": paretoChart,
        "pareto_chart": paretoChart,
        "paretoplot": paretoChart,
        "pareto plot": paretoChart,
        "pareto_plot": paretoChart,
        "paretostackedcolumn": stackedParetoChart,
        "pareto stacked column": stackedParetoChart,
        "pareto_stacked_column": stackedParetoChart,
        "paretostackedcolumn chart": stackedParetoChart,
        "pareto stacked column chart": stackedParetoChart,
        "pareto_stacked_column_chart": stackedParetoChart,
        "paretostackedcolumn plot": stackedParetoChart,
        "pareto stacked column plot": stackedParetoChart,
        "pareto_stacked_column_plot": stackedParetoChart,
        "paretostackedcolumnbydimension": stackedParetoChart,
        "pareto stacked column by dimension": stackedParetoChart,
        "pareto_stacked_column_by_dimension": stackedParetoChart,
        "paretostackedcolumn chart": stackedParetoChart,
        "pareto stacked column by dimension chart": stackedParetoChart,
        "pareto_stacked_column_by_dimension_chart": stackedParetoChart,
        "paretostackedbydimensioncolumn plot": stackedParetoChart,
        "pareto stacked column by dimension plot": stackedParetoChart,
        "pareto_stacked_column_by_dimension_plot": stackedParetoChart,
        "scatter": scatterChart,
        "scatterchart": scatterChart,
        "scatter chart": scatterChart,
        "scatter_chart": scatterChart,
        "scatterplot": scatterChart,
        "scatter plot": scatterChart,
        "scatter_plot": scatterChart,
        "stackedbar": stackedBarChart,
        "stacked bar": stackedBarChart,
        "stacked_bar": stackedBarChart,
        "stackedbarchart": stackedBarChart,
        "stacked bar chart": stackedBarChart,
        "stacked_bar_chart": stackedBarChart,
        "stackedbarplot": stackedBarChart,
        "stacked bar plot": stackedBarChart,
        "stacked_bar_plot": stackedBarChart,
        "stackedcolumn": stackedColumnChart,
        "stacked column": stackedColumnChart,
        "stacked_column": stackedColumnChart,
        "stackedcolumnchart": stackedColumnChart,
        "stacked column chart": stackedColumnChart,
        "stacked_column_chart": stackedColumnChart,
        "stackedcolumnplot": stackedColumnChart,
        "stacked column plot": stackedColumnChart,
        "stacked_column_plot": stackedColumnChart,
        "stackedpareto": stackedParetoChart,
        "stacked pareto": stackedParetoChart,
        "stacked_pareto": stackedParetoChart,
        "stackedparetochart": stackedParetoChart,
        "stacked pareto chart": stackedParetoChart,
        "stacked_pareto_chart": stackedParetoChart,
        "stackedparetoplot": stackedParetoChart,
        "stacked pareto plot": stackedParetoChart,
        "stacked_pareto_plot": stackedParetoChart,
        "stripplot": stripplotChart,
        "stripplotchart": stripplotChart,
        "stripplot chart": stripplotChart,
        "stripplot_chart": stripplotChart,
        "strip plot": stripplotChart,
        "strip plotchart": stripplotChart,
        "strip plot chart": stripplotChart,
        "strip_plot_chart": stripplotChart,
        "strip plotplot": stripplotChart,
        "strip plot plot": stripplotChart,
        "strip_plot_plot": stripplotChart,
        "upsetchart": upsetChart,
        "upsetplot": upsetChart,
        "UpSetplot": upsetChart,
        "upset chart": upsetChart,
        "upset_chart": upsetChart,
        "UpSet chart": upsetChart,
        "UpSet_chart": upsetChart,
        "upset plot": upsetChart,
        "upset_plot": upsetChart,
        "UpSet plot": upsetChart,
        "UpSet_plot": upsetChart,
        "vennchart": vennChart,
        "venn chart": vennChart,
        "venn_chart": vennChart,
        "vennplot": vennChart,
        "venn plot": vennChart,
        "venn_plot": vennChart,
        "waterfall": horizontalWaterfallChart,
        "waterfallchart": horizontalWaterfallChart,
        "waterfall chart": horizontalWaterfallChart,
        "waterfall_chart": horizontalWaterfallChart,
        "waterfallplot": horizontalWaterfallChart,
        "waterfall plot": horizontalWaterfallChart,
        "waterfall_plot": horizontalWaterfallChart,
        "yearoveryearline": trendComparisonChart,
        "yearoveryearlinechart": trendComparisonChart,
        "year over year line chart": trendComparisonChart,
        "year_over_year_line_chart": trendComparisonChart,
        "yearoveryearlineplot": trendComparisonChart,
        "year over year line plot": trendComparisonChart,
        "year_over_year_line_plot": trendComparisonChart,
        "year-over-year line": trendComparisonChart,
        "year-over-year line chart": trendComparisonChart,
        "year-over-year line plot": trendComparisonChart,
        "year-over-year-line": trendComparisonChart,
        "year-over-year-line chart": trendComparisonChart,
        "year-over-year-line plot": trendComparisonChart,
        "year-over-yearwaterfallchart": horizontalWaterfallChart,
        "year-over-year waterfall chart": horizontalWaterfallChart,
        "year-over-year_waterfall_chart": horizontalWaterfallChart,
        "year-over-yearwaterfallplot": horizontalWaterfallChart,
        "year-over-year waterfall plot": horizontalWaterfallChart,
        "year-over-year_waterfall_plot": horizontalWaterfallChart,
        "year-over-yearwaterfall": horizontalWaterfallChart,
        "year-over-year waterfall": horizontalWaterfallChart,
        "year-over-year_waterfall": horizontalWaterfallChart,
    }
    return translateDict


def get_array_variables():
    """
    creates dictionary with parameters for running session
    """
    namingParams = get_naming_params()
    selectDimensionsToPlot = namingParams["selectDimensionsToPlot"]
    metricsToPlot = namingParams["metricsToPlot"]
    metConditionValue = namingParams["metConditionValue"]
    arrayVariablesDict = {
        metricsToPlot: metConditionValue,
        selectDimensionsToPlot: metConditionValue,
    }
    return arrayVariablesDict


def get_variables_to_duplicate():
    """
    creates dictionary with parameters for running session
    """
    namingParams = get_naming_params()
    xAxisDimension = namingParams["xAxisDimension"]
    selectDimensionsToPlot = namingParams["selectDimensionsToPlot"]
    metricsToPlot = namingParams["metricsToPlot"]
    singleMetricKey = namingParams["singleMetric"]
    duplicateVariablesDict = {
        metricsToPlot: singleMetricKey,
        selectDimensionsToPlot: xAxisDimension,
    }
    return duplicateVariablesDict


def get_variance_aggregation_params():
    """
    maps groups of variance aggregation options into arrays

    """
    namingParams = get_naming_params()
    cogsAggregationArray = namingParams["cogsAggregationArray"]
    salesAggregationArray = namingParams["salesAggregationArray"]
    discountsAggregationArray = namingParams["discountsAggregationArray"]
    driverAggregationArray = namingParams["driverAggregationArray"]
    mixSalesAggregationArray = namingParams["mixSalesAggregationArray"]
    mixMarginAggregationArray = namingParams["mixMarginAggregationArray"]
    varianceAggregation = namingParams["varianceAggregation"]
    marginVarianceAggregation = namingParams["marginVarianceAggregation"]
    marginUnitsRateAggregation = namingParams["marginUnitsRateAggregation"]
    marginVolumeRateAggregation = namingParams["marginVolumeRateAggregation"]
    costsUnitsAggregation = namingParams["costsUnitsAggregation"]
    costsVolumeAggregation = namingParams["costsVolumeAggregation"]
    costsUnitsMixAggregation = namingParams["costsUnitsMixAggregation"]
    costsVolumeMixAggregation = namingParams["costsVolumeMixAggregation"]
    discountsUnitsCogsAggregation = namingParams["discountsUnitsCogsAggregation"]
    discountsVolumeCogsAggregation = namingParams["discountsVolumeCogsAggregation"]
    netOfDiscountAggregation = namingParams["netOfDiscountAggregation"]
    discountsAndUnitsAggregation = namingParams["discountsAndUnitsAggregation"]
    discountsAndVolumeAggregation = namingParams["discountsAndVolumeAggregation"]
    discountsAggregation = namingParams["discountsAggregation"]
    cogsAggregation = namingParams["cogsAggregation"]
    totalVarianceAggregation = namingParams["totalVarianceAggregation"]
    priceAndUnitsAggregation = namingParams["priceAndUnitsAggregation"]
    priceAndVolumeAggregation = namingParams["priceAndVolumeAggregation"]
    unitPriceOnSalesAggregation = namingParams["unitPriceOnSalesAggregation"]
    volumePriceOnSalesAggregation = namingParams["volumePriceOnSalesAggregation"]
    unitsOnSalesAggregation = namingParams["unitsOnSalesAggregation"]
    volumeOnSalesAggregation = namingParams["volumeOnSalesAggregation"]
    unitPriceOnMarginAggregation = namingParams["unitPriceOnMarginAggregation"]
    volumePriceOnMarginAggregation = namingParams["volumePriceOnMarginAggregation"]
    unitsOnMarginAggregation = namingParams["unitsOnMarginAggregation"]
    volumeOnMarginAggregation = namingParams["volumeOnMarginAggregation"]
    newAndLostUnitsAggregation = namingParams["newAndLostUnitsAggregation"]
    newAndLostVolumeAggregation = namingParams["newAndLostVolumeAggregation"]
    newAndLostUnitsMixAggregation = namingParams["newAndLostUnitsMixAggregation"]
    newAndLostVolumeMixAggregation = namingParams["newAndLostVolumeMixAggregation"]
    newAggregation = namingParams["newAggregation"]
    lostAggregation = namingParams["lostAggregation"]
    changedAggregation = namingParams["changedAggregation"]
    driverAndUnitsAggregation = namingParams["driverAndUnitsAggregation"]
    driverAndVolumeAggregation = namingParams["driverAndVolumeAggregation"]
    driverAggregation = namingParams["driverAggregation"]
    mixUnitsDriverAggregation = namingParams["mixUnitsDriverAggregation"]
    mixVolumeDriverAggregation = namingParams["mixVolumeDriverAggregation"]
    mixAggregation = namingParams["mixAggregation"]
    categoryWeightedDistributionName = namingParams["categoryWeightedDistributionName"]
    checkoutsName = namingParams["checkoutsName"]
    visitsName = namingParams["visitsName"]
    mixAndUnitsAggregation = namingParams["mixAndUnitsAggregation"]
    mixAndVolumeAggregation = namingParams["mixAndVolumeAggregation"]
    varianceAggregationParams = {
        cogsAggregationArray: [
            marginVarianceAggregation,
            marginUnitsRateAggregation,
            marginVolumeRateAggregation,
            costsUnitsAggregation,
            costsVolumeAggregation,
            costsUnitsMixAggregation,
            costsVolumeMixAggregation,
            discountsUnitsCogsAggregation,
            discountsVolumeCogsAggregation,
            unitsOnMarginAggregation,
            volumeOnMarginAggregation,
            unitPriceOnMarginAggregation,
            volumePriceOnMarginAggregation,
            cogsAggregation,
        ],
        discountsAggregationArray: [
            netOfDiscountAggregation,
            discountsAndUnitsAggregation,
            discountsAndVolumeAggregation,
            discountsAggregation,
        ],
        salesAggregationArray: [
            totalVarianceAggregation,
            priceAndUnitsAggregation,
            priceAndVolumeAggregation,
            mixAndUnitsAggregation,
            mixAndVolumeAggregation,
            mixAggregation,
            driverAndUnitsAggregation,
            driverAndVolumeAggregation,
            driverAggregation,
            mixUnitsDriverAggregation,
            mixVolumeDriverAggregation,
            unitPriceOnSalesAggregation,
            volumePriceOnSalesAggregation,
            unitsOnSalesAggregation,
            volumeOnSalesAggregation,
            newAndLostUnitsAggregation,
            newAndLostVolumeAggregation,
            newAndLostUnitsMixAggregation,
            newAndLostVolumeMixAggregation,
            newAggregation,
            lostAggregation,
            changedAggregation,
        ],
        mixSalesAggregationArray: [
            mixAndUnitsAggregation,
            mixAndVolumeAggregation,
            newAndLostUnitsMixAggregation,
            newAndLostVolumeMixAggregation,
            mixUnitsDriverAggregation,
            mixVolumeDriverAggregation,
            mixAggregation,
        ],
        mixMarginAggregationArray: [
            costsUnitsMixAggregation,
            costsVolumeMixAggregation,
        ],
        driverAggregationArray: [
            categoryWeightedDistributionName,
            checkoutsName,
            visitsName,
        ],
    }
    return varianceAggregationParams


def get_metric_array_params():
    """
    maps groups of metrics into arrays

    """
    namingParams = get_naming_params()
    priceMetricsArray = namingParams["priceMetricsArray"]
    growthMetricArray = namingParams["growthMetricArray"]
    percentMetricsArray = namingParams["percentMetricsArray"]
    noSumMetricsArray = namingParams["noSumMetricsArray"]
    valueMetricsArray = namingParams["valueMetricsArray"]
    volumeMetricsArray = namingParams["volumeMetricsArray"]
    pricePerUnitName = namingParams["pricePerUnitName"]
    pricePerVolumeName = namingParams["pricePerVolumeName"]
    pricePerUnitNetDiscountName = namingParams["pricePerUnitNetDiscountName"]
    pricePerVolumeNetDiscountName = namingParams["pricePerVolumeNetDiscountName"]
    discountInPercentName = namingParams["discountInPercentName"]
    marginInPercentName = namingParams["marginInPercentName"]
    marginInPercentOfNetSalesName = namingParams["marginInPercentOfNetSalesName"]
    volumePriceChangeName = namingParams["volumePriceChangeName"]
    netVolumePriceChangeName = namingParams["netVolumePriceChangeName"]
    unitsPriceChangeName = namingParams["unitsPriceChangeName"]
    netUnitsPriceChangeName = namingParams["netUnitsPriceChangeName"]
    salesGrowthName = namingParams["salesGrowthName"]
    netSalesGrowthName = namingParams["netSalesGrowthName"]
    unitsGrowthName = namingParams["unitsGrowthName"]
    volumeGrowthName = namingParams["volumeGrowthName"]
    marginGrowthName = namingParams["marginGrowthName"]
    amount = namingParams["monetaryLocalCurrencyName"]
    discount = namingParams["discountName"]
    cogs = namingParams["cogsName"]
    margin = namingParams["marginName"]
    netOfDiscount = namingParams["netOfDiscountName"]
    unitsName = namingParams["unitsName"]
    volumeName = namingParams["volumeName"]
    metricArrayParams = {
        priceMetricsArray: [
            pricePerUnitName,
            pricePerVolumeName,
            pricePerUnitNetDiscountName,
            pricePerVolumeNetDiscountName,
        ],
        percentMetricsArray: [
            discountInPercentName,
            marginInPercentName,
            marginInPercentOfNetSalesName,
        ],
        noSumMetricsArray: [
            pricePerUnitName,
            pricePerVolumeName,
            pricePerUnitNetDiscountName,
            pricePerVolumeNetDiscountName,
            discountInPercentName,
            marginInPercentName,
            marginInPercentOfNetSalesName,
        ],
        growthMetricArray: [
            salesGrowthName,
            netSalesGrowthName,
            unitsGrowthName,
            volumeGrowthName,
            marginGrowthName,
            volumePriceChangeName,
            netVolumePriceChangeName,
            unitsPriceChangeName,
            netUnitsPriceChangeName,
        ],
        valueMetricsArray: [amount, discount, netOfDiscount, cogs, margin],
        volumeMetricsArray: [unitsName, volumeName],
    }
    return metricArrayParams


def get_drilldown_params():
    """
    creates dictionary with parameters tied to a specific dataset
    """
    namingParams = get_naming_params()
    drilldownParams = {
        0: {},
    }
    return drilldownParams


def get_insert_at_row_params():
    """
    creates dictionary with parameters tied to a specific dataset

    """
    namingParams = get_naming_params()
    insertAtRowDict = namingParams["insertAtRowDict"]
    insertAtRowParams = {
        0: {},
    }
    return insertAtRowParams
