code: def _from_dict(cls, values, value_filter, dictionary, allow_unset=True):
          
          if not isinstance(dictionary, Mapping):
              raise TypeError('dictionary should be mapping')
          obj = cls(values, value_filter)
          values = obj.__values
          for name, value in dictionary.items():
              if not isinstance(name, string_types):
                  raise TypeError('Key %s is not a string' % str(name))
              setattr(values, name, value)
          if obj.missing and not allow_unset:
              raise ValueError('%d value(s) are unset' % len(obj.missing))
          return obj
docs: Instantiates new PointDataObject, populated from the given dictionary. With allow_unset=False, a ValueError
          will be raised if any value has not been set. Used by PointDataObjectHandler