def __getattr__(self, name):
		"""Access field attributes, or, for complex fields (Array, Embed, Reference, etc.) nested fields."""
		
		if self._combining:  # If we are combining fields, we can not dereference further.
			raise AttributeError()
		
		if not hasattr(self._field, '_kind'):
			return getattr(self._field, name)
		
		kind = self._field
		while getattr(kind, '_kind', None):
			kind = kind._kind(self._document)
		
		if hasattr(kind, '__fields__') and name in kind.__fields__:
				return self.__class__(self._document, kind.__fields__[name], self._name + '.')
		
		try:
			return getattr(kind, name)
		except AttributeError:
			pass
		
		try:  # Pass through to the field itself as a last resort.
			return getattr(self._field, name)
		except AttributeError:
			pass
		
		raise AttributeError()
def __getattr__ ( self , name ) : if self . _combining : raise AttributeError ( ) if not hasattr ( self . _field , '_kind' ) : return getattr ( self . _field , name ) kind = self . _field while getattr ( kind , '_kind' , None ) : kind = kind . _kind ( self . _document ) if hasattr ( kind , '__fields__' ) and name in kind . __fields__ : return self . __class__ ( self . _document , kind . __fields__ [ name ] , self . _name + '.' ) try : return getattr ( kind , name ) except AttributeError : pass try : return getattr ( self . _field , name ) except AttributeError : pass raise AttributeError ( )
Access field attributes, or, for complex fields (Array, Embed, Reference, etc.) nested fields.