code: def valid(self, value, level=[]):
  		
  
  		# Reset validation failures
  		self.validation_failures = []
  
  		# If the value is None and it's optional, we're good
  		if value is None and self._optional:
  			return True
  
  		# If the value isn't a dictionary
  		if not isinstance(value, dict):
  			self.validation_failures.append(('.'.join(level), str(value)))
  			return False
  
  		# Init the return, assume valid
  		bRet = True
  
  		# Go through each key and value
  		for k,v in iteritems(value):
  
  			# Add the field to the level
  			lLevel = level[:]
  			lLevel.append(k)
  
  			# If the key isn't valid
  			if not self._key.valid(k):
  				self.validation_failures.append(('.'.join(lLevel), 'invalid key: %s' % str(k)))
  				bRet = False
  				continue
  
  			# Check the value
  			if not self._node.valid(v, lLevel):
  				self.validation_failures.extend(self._node.validation_failures)
  				bRet = False
  				continue
  
  		# Return whatever the result was
  		return bRet
docs: Valid
  
  		Checks if a value is valid based on the instance's values
  
  		Arguments:
  			value {mixed} -- The value to validate
  
  		Returns:
  			bool