Not an issue but an idea.
Where no Best order can be determined, the user would need to review and potentially reorder the cube themselves.
It would be great to be able to pass in a parameter with a dimension list which simply does some basic validation then executes tm1.cubes.update_storage_dimension_order(cube_name, new_dimension_order) based on the passed new_dimension_order argument.
e.g.
python "C:\TM1Py\OptimusPy\optimuspy.py" -i="Training" -c="Expense" -r="Period,Plant,Inventory Version,Company Code,Transaction Currency,Reporting Currency,Scenario,Product,Inventory Measures"
The list of dimensions can easily be joined using TextJoin(",",true,) from the relevant row in the results file.