class_docstr: Intermediate class that sits on `DataSet` objects and returns memoized
  `BoundColumn` objects when requested.
  
  This exists so that subclasses of DataSets don't share columns with their
  parent classes.
code: def __init__(self, dtype, missing_value, name):
      # Validating and calculating default missing values here guarantees
      # that we fail quickly if the user passes an unsupporte dtype or fails
      # to provide a missing value for a dtype that requires one
      # (e.g. int64), but still enables us to provide an error message that
      # points to the name of the failing column.
      try:
          self.dtype, self.missing_value = validate_dtype(
              termname="Column(name={name!r})".format(name=name),
              dtype=dtype,
              missing_value=missing_value,
          )
      except NoDefaultMissingValue:
          # Re-raise with a more specific message.
          raise NoDefaultMissingValue(
              "Failed to create Column with name {name!r} and"
              " dtype {dtype} because no missing_value was provided\n\n"
              "Columns with dtype {dtype} require a missing_value.\n"
              "Please pass missing_value to Column() or use a different"
              " dtype.".format(dtype=dtype, name=name)
          )
      self.name = name
  
imports: from functools import total_ordering
  from six import iteritems, with_metaclass
  from catalyst.pipeline.classifiers import Classifier, Latest
  from catalyst.pipeline.factors import Factor, Latest
  from catalyst.pipeline.filters import Filter, Latest
  from catalyst.pipeline.sentinels import NotSpecified
  from catalyst.pipeline.term import AssetExists, LoadableTerm, validate_dtype
  from catalyst.utils.input_validation import ensure_dtype
  from catalyst.utils.numpy_utils import NoDefaultMissingValue
  from catalyst.utils.preprocess import preprocess
label_desc: Use image node_id 1 to create a new _BoundColumnDescr object from inherited base classes: object with example: obj = _BoundColumnDescr(dtype, missing_value, name)