class_docstr: Base class for terms in a Pipeline API compute graph.
class_docstr_tok: ["Base","class","for","terms","in","a","Pipeline","API","compute","graph","."]
docstr: Pop entries from the `kwargs` passed to cls.__new__ based on the values
  in `cls.params`.
  
  Parameters
  ----------
  kwargs : dict
      The kwargs passed to cls.__new__.
  
  Returns
  -------
  params : list[(str, object)]
      A list of string, value pairs containing the entries in cls.params.
  
  Raises
  ------
  TypeError
      Raised if any parameter values are not passed or not hashable.
docstr_tok: ["Pop","entries","from","the","`","kwargs","`","passed","to","cls.__new__","based","on","the","values","in","`","cls.params","`",".","Parameters","--","--","--","--","--","kwargs",":","dict","The","kwargs","passed","to","cls.__new__",".","Returns","--","--","--","-","params",":","list","[","(","str",",","object",")","]","A","list","of","string",",","value","pairs","containing","the","entries","in","cls.params",".","Raises","--","--","--","TypeError","Raised","if","any","parameter","values","are","not","passed","or","not","hashable","."]
code: def _pop_params(cls, kwargs):
      """
      Pop entries from the `kwargs` passed to cls.__new__ based on the values
      in `cls.params`.
  
      Parameters
      ----------
      kwargs : dict
          The kwargs passed to cls.__new__.
  
      Returns
      -------
      params : list[(str, object)]
          A list of string, value pairs containing the entries in cls.params.
  
      Raises
      ------
      TypeError
          Raised if any parameter values are not passed or not hashable.
      """
      params = cls.params
      if not isinstance(params, Mapping):
          params = {k: NotSpecified for k in params}
      param_values = []
      for key, default_value in params.items():
          try:
              value = kwargs.pop(key, default_value)
              if value is NotSpecified:
                  raise KeyError(key)
  
              # Check here that the value is hashable so that we fail here
              # instead of trying to hash the param values tuple later.
              hash(value)
          except KeyError:
              raise TypeError(
                  "{typename} expected a keyword parameter {name!r}.".format(
                      typename=cls.__name__, name=key
                  )
              )
          except TypeError:
              # Value wasn't hashable.
              raise TypeError(
                  "{typename} expected a hashable value for parameter "
                  "{name!r}, but got {value!r} instead.".format(
                      typename=cls.__name__,
                      name=key,
                      value=value,
                  )
              )
  
          param_values.append((key, value))
      return tuple(param_values)
  
imports: from abc import ABCMeta, abstractproperty
  from bisect import insort
  from collections import Mapping
  from weakref import WeakValueDictionary
  from numpy import array, dtype, ndarray, searchsorted
  from six import with_metaclass
  from catalyst.assets import Asset
  from catalyst.errors import DTypeNotSpecified, InvalidOutputName, NonExistentAssetInTimeFrame, NonSliceableTerm, NonWindowSafeInput, NotDType, TermInputsNotSpecified, TermOutputsEmpty, UnsupportedDType, WindowLengthNotSpecified
  from catalyst.lib.adjusted_array import can_represent_dtype
  from catalyst.lib.labelarray import LabelArray
  from catalyst.utils.input_validation import expect_types
  from catalyst.utils.memoize import lazyval
  from catalyst.utils.numpy_utils import bool_dtype, categorical_dtype, datetime64ns_dtype, default_missing_value_for_dtype
  from catalyst.utils.sharedoc import templated_docstring, PIPELINE_ALIAS_NAME_DOC, PIPELINE_DOWNSAMPLING_FREQUENCY_DOC
  from .downsample_helpers import expect_downsample_frequency
  from .sentinels import NotSpecified
label_desc: Use image node_id 2 for calling the Term obj's underlying member method code with example usage: obj._pop_params(cls, kwargs) and returns: tuple