code: def clean(self, value):
  		
  
  		# If the value is None and it's optional, return as is
  		if value is None and self._optional:
  			return None
  
  		# If the value is not a dict
  		if not isinstance(value, dict):
  			raise ValueError('value')
  
  		# Init the return value
  		dRet = {}
  
  		# Go through each value and clean it using the associated node
  		for k in value.keys():
  			try:
  				dRet[k] = self._nodes[k].clean(value[k])
  			except KeyError:
  				raise ValueError('%s is not a valid node in the parent' % k)
  
  		# Return the cleaned values
  		return dRet
docs: Clean
  
  		Goes through each of the values in the dict, cleans it, stores it, and
  		returns a new dict
  
  		Arguments:
  			value {dict} -- The value to clean
  
  		Returns:
  			dict