code: def ConvCnstrMODMaskDcplOptions(opt=None, method='cns'):
      
  
      # Assign base class depending on method selection argument
      if method == 'ism':
          base = ConvCnstrMODMaskDcpl_IterSM.Options
      elif method == 'cg':
          base = ConvCnstrMODMaskDcpl_CG.Options
      elif method == 'cns':
          base = ConvCnstrMODMaskDcpl_Consensus.Options
      else:
          raise ValueError('Unknown ConvCnstrMODMaskDcpl solver method %s'
                           % method)
  
      # Nested class with dynamically determined inheritance
      class ConvCnstrMODMaskDcplOptions(base):
          def __init__(self, opt):
              super(ConvCnstrMODMaskDcplOptions, self).__init__(opt)
  
      # Allow pickling of objects of type ConvCnstrMODMaskDcplOptions
      _fix_dynamic_class_lookup(ConvCnstrMODMaskDcplOptions, method)
  
      # Return object of the nested class type
      return ConvCnstrMODMaskDcplOptions(opt)
docs: A wrapper function that dynamically defines a class derived from
      the Options class associated with one of the implementations of
      the Convolutional Constrained MOD with Mask Decoupling  problem,
      and returns an object instantiated with the provided parameters.
      The wrapper is designed to allow the appropriate object to be
      created by calling this function using the same syntax as would be
      used if it were a class. The specific implementation is selected
      by use of an additional keyword argument 'method'. Valid values are
      as specified in the documentation for :func:`ConvCnstrMODMaskDcpl`.