original_docstring: 
  		DO NOT CALL THIS METHOD. This method is run in a new thread when the start() method is called.
  		
  		:return: the exit code of the thread which should be 0.
  		:rtype: int
  		
docstring: DO NOT CALL THIS METHOD. This method is run in a new thread when the start() method is called.
docstring_tokens: DO NOT CALL THIS METHOD . This method is run in a new thread when the start () method is called .
code: def run(self) -> int:
  		"""
  		DO NOT CALL THIS METHOD. This method is run in a new thread when the start() method is called.
  		
  		:return: the exit code of the thread which should be 0.
  		:rtype: int
  		"""
  		if self._backend == "auto":
  			self.detectBackend()
  
  		self._iteration = 0
  		app = Application(backend=self._backend)
  		app.setProcess(self._process)
  		
  		appTimeStamp = app.getStartTime()
  		while self._process.is_running():
  			self._iteration += 1
  			
  			if not self.isPlaying(): return 0
  			
  			componentCount = 0
  			# work acts as a stack. Each element is a 2-tuple where the first element
  			# is a GUI component and the second element is the parent super token.
  			work = [(win, None) for win in app.windows()]
  			while len(work) > 0:
  				
  				if not self.isPlaying(): return 0
  				
  				curComponent, parentSuperToken = work.pop()
  				if curComponent.friendly_class_name() not in Observer.ignoreTypes:
  					try:
  						token = Token.createToken(appTimeStamp, curComponent, captureImage=self.capturing)
  					
  					# List boxes have a ton of children that we probably don't care about.
  					# There are probably other types like it where we just want to ignore the
  					# children. We can make this type of
  					# if token.type == "ListBox":
  					#     continue
  					
  					except Token.CreationException as e:
  						continue
  					
  					nextParentSuperToken = self.matchToSuperToken(token, parentSuperToken)
  					self._lastSuperTokenIterations[nextParentSuperToken] = self._iteration
  				else:
  					nextParentSuperToken = parentSuperToken
  				
  				children = curComponent.children()
  				for child in children:
  					work.append((child, nextParentSuperToken))
code_tokens: def run ( self ) -> int : if self . _backend == "auto" : self . detectBackend ( ) self . _iteration = 0 app = Application ( backend = self . _backend ) app . setProcess ( self . _process ) appTimeStamp = app . getStartTime ( ) while self . _process . is_running ( ) : self . _iteration += 1 if not self . isPlaying ( ) : return 0 componentCount = 0 work = [ ( win , None ) for win in app . windows ( ) ] while len ( work ) > 0 : if not self . isPlaying ( ) : return 0 curComponent , parentSuperToken = work . pop ( ) if curComponent . friendly_class_name ( ) not in Observer . ignoreTypes : try : token = Token . createToken ( appTimeStamp , curComponent , captureImage = self . capturing ) except Token . CreationException as e : continue nextParentSuperToken = self . matchToSuperToken ( token , parentSuperToken ) self . _lastSuperTokenIterations [ nextParentSuperToken ] = self . _iteration else : nextParentSuperToken = parentSuperToken children = curComponent . children ( ) for child in children : work . append ( ( child , nextParentSuperToken ) )
short_docstring: DO NOT CALL THIS METHOD.
short_docstring_tokens: DO NOT CALL THIS METHOD .
comment: """
  		DO NOT CALL THIS METHOD. This method is run in a new thread when the start() method is called.
  		
  		:return: the exit code of the thread which should be 0.
  		:rtype: int
  		"""$SEP$# work acts as a stack. Each element is a 2-tuple where the first element$SEP$# is a GUI component and the second element is the parent super token.$SEP$# List boxes have a ton of children that we probably don't care about.$SEP$# There are probably other types like it where we just want to ignore the$SEP$# children. We can make this type of$SEP$# if token.type == "ListBox":$SEP$#     continue