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 node in the instance
  		for k in self._nodes:
  
  			# Add the field to the level
  			lLevel = level[:]
  			lLevel.append(k)
  
  			# If we are missing a node
  			if k not in value:
  
  				# If the value is not optional
  				if not self._nodes[k]._optional:
  					self.validation_failures.append(('.'.join(lLevel), 'missing'))
  					bRet = False
  
  				# Continue to next node
  				continue
  
  			# If the element isn't valid, return false
  			if not self._nodes[k].valid(value[k], lLevel):
  				self.validation_failures.extend(self._nodes[k].validation_failures)
  				bRet = False
  				continue
  
  			# If the element requires others
  			if k in self._requires:
  
  				# Go through each required field
  				for f in self._requires[k]:
  
  					# If the field doesn't exist in the value
  					if f not in value or value[f] in ('0000-00-00','',None):
  						self.validation_failures.append(('.'.join(lLevel), 'requires \'%s\' to also be set' % str(f)))
  						bRet = False
  
  		# 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