class_docstr: Dictionary-like object representing an SALib Problem specification.
  
  Attributes
  ----------
  samples : np.array, of generated samples
  results : np.array, of evaluations (i.e., model outputs)
  analysis : np.array or dict, of sensitivity indices
docstr: Dynamically add available SALib samplers as ProblemSpec methods.
docstr_tok: ["Dynamically","add","available","SALib","samplers","as","ProblemSpec","methods","."]
code: def _add_samplers(self):
      """Dynamically add available SALib samplers as ProblemSpec methods."""
      for sampler in avail_approaches(samplers):
          func = getattr(
              importlib.import_module(
                  "SALib.sample.{}".format(sampler)
              ),
              "sample",
          )
          method_name = "sample_{}".format(
              sampler.replace("_sampler", "")
          )
  
          self.__setattr__(
              method_name,
              MethodType(self._method_creator(func, "sample"), self),
          )
  
imports: import warnings
  import importlib
  from types import MethodType
  from functools import partial, wraps
  from multiprocess import Pool, cpu_count
  import numpy
  import SALib.sample
  import SALib.analyze
  from SALib.util import avail_approaches
  from SALib.util.results import ResultDict
label_desc: Use image node_id 21 for calling the ProblemSpec obj's underlying member method code with example usage: obj._add_samplers() without return types