code: def non_unique_bin_edges_error(func):
      """
      Give user a more informative error in case it is not possible
      to properly calculate quantiles on the input dataframe (factor)
      """
      message = """
  
      An error occurred while computing bins/quantiles on the input provided.
      This usually happens when the input contains too many identical
      values and they span more than one quantile. The quantiles are choosen
      to have the same number of records each, but the same value cannot span
      multiple quantiles. Possible workarounds are:
      1 - Decrease the number of quantiles
      2 - Specify a custom quantiles range, e.g. [0, .50, .75, 1.] to get unequal
          number of records per quantile
      3 - Use 'bins' option instead of 'quantiles', 'bins' chooses the
          buckets to be evenly spaced according to the values themselves, while
          'quantiles' forces the buckets to have the same number of records.
      4 - for factors with discrete values use the 'bins' option with custom
          ranges and create a range for each discrete value
      Please see utils.get_clean_factor_and_forward_returns documentation for
      full documentation of 'bins' and 'quantiles' options.
  
  """
  
      def dec(*args, **kwargs):
          try:
              return func(*args, **kwargs)
          except ValueError as e:
              if "Bin edges must be unique" in str(e):
                  rethrow(e, message)
              raise
  
      return dec
  
imports: import pandas
  import numpy
  import re
  import warnings
  from IPython.display import display
  from pandas.tseries.offsets import CustomBusinessDay, Day, BusinessDay
  from scipy.stats import mode
label_desc: Use image node_id 2 for calling a global function with example usage: non_unique_bin_edges_error(func) and returns: dec, func