code: def requires(self, require=None):
  		
  
  		# If require is None, this is a getter
  		if require is None:
  			return self._requires
  
  		# If it's not a valid dict
  		if not isinstance(require, dict):
  			raise ValueError('__require__')
  
  		# Go through each key and make sure it goes with a field
  		for k,v in iteritems(require):
  
  			# If the field doesn't exist
  			if k not in self._nodes:
  				raise ValueError('__require__[%s]' % str(k))
  
  			# If the value is a string
  			if isinstance(v, basestring):
  				v = [v]
  
  			# Else if it's not a list type
  			elif not isinstance(v, (tuple,list)):
  				raise ValueError('__require__[%s]' % str(k))
  
  			# Make sure each required field also exists
  			for s in v:
  				if s not in self._nodes:
  					raise ValueError('__require__[%s]: %s' % (str(k), str(v)))
  
  			# If it's all good
  			self._requires[k] = v
docs: Requires
  
  		Sets the require rules used to validate the Parent
  
  		Arguments:
  			require {dict} -- A dictionary expressing requirements of fields
  
  		Raises:
  			ValueError
  
  		Returns:
  			None