code: def from_config(cls, cp, section, variable_args):
          
          tag = variable_args
          variable_args = variable_args.split(VARARGS_DELIM)
          if not set(variable_args) == set(cls._params):
              raise ValueError("Not all parameters used by this distribution "
                               "included in tag portion of section name")
          # get the bounds for the setable parameters
          mass1 = get_param_bounds_from_config(cp, section, tag, 'mass1')
          mass2 = get_param_bounds_from_config(cp, section, tag, 'mass2')
          chi_eff = get_param_bounds_from_config(cp, section, tag, 'chi_eff')
          chi_a = get_param_bounds_from_config(cp, section, tag, 'chi_a')
          xi_bounds = get_param_bounds_from_config(cp, section, tag, 'xi_bounds')
          if cp.has_option('-'.join([section, tag]), 'nsamples'):
              nsamples = int(cp.get('-'.join([section, tag]), 'nsamples'))
          else:
              nsamples = None
          return cls(mass1=mass1, mass2=mass2, chi_eff=chi_eff, chi_a=chi_a,
                     xi_bounds=xi_bounds, nsamples=nsamples)
docs: Returns a distribution based on a configuration file. The parameters
          for the distribution are retrieved from the section titled
          "[`section`-`variable_args`]" in the config file.
  
          Parameters
          ----------
          cp : pycbc.workflow.WorkflowConfigParser
              A parsed configuration file that contains the distribution
              options.
          section : str
              Name of the section in the configuration file.
          variable_args : str
              The names of the parameters for this distribution, separated by
              `prior.VARARGS_DELIM`. These must appear in the "tag" part
              of the section header.
  
          Returns
          -------
          IndependentChiPChiEff
              A distribution instance.