code: def pulsation(feature, **kwargs):
      
      if not conf.devel:
          raise NotImplementedError("'pulsation' feature not officially supported for this release.  Enable developer mode to test.")
  
  
      params = []
  
      params += [FloatParameter(qualifier='radamp', value=kwargs.get('radamp', 0.1), default_unit=u.dimensionless_unscaled, description='Relative radial amplitude of the pulsations')]
      params += [FloatParameter(qualifier='freq', value=kwargs.get('freq', 1.0), default_unit=u.d**-1, description='Frequency of the pulsations')]
      params += [IntParameter(qualifier='l', value=kwargs.get('l', 0), default_unit=u.dimensionless_unscaled, description='Non-radial degree l')]
      params += [IntParameter(qualifier='m', value=kwargs.get('m', 0), default_unit=u.dimensionless_unscaled, description='Azimuthal order m')]
      params += [BoolParameter(qualifier='teffext', value=kwargs.get('teffext', False), description='Switch to denote whether Teffs are provided by the external code')]
  
  
      constraints = []
  
      return ParameterSet(params), constraints
docs: Create parameters for a pulsation feature
  
      Generally, this will be used as input to the method argument in
      :meth:`phoebe.frontend.bundle.Bundle.add_feature`
  
      :parameter **kwargs: defaults for the values of any of the parameters
      :return: a :class:`phoebe.parameters.parameters.ParameterSet`