parameters: (self, path, config, read_tiers=False,
              filesystem_absolute=False, descend=True, metadata={})
docstring: Read and process a mozbuild file, descending into children.
  
          This starts with a single mozbuild file, executes it, and descends into
          other referenced files per our traversal logic.
  
          The traversal logic is to iterate over the *DIRS variables, treating
          each element as a relative directory path. For each encountered
          directory, we will open the moz.build file located in that
          directory in a new Sandbox and process it.
  
          If read_tiers is True (it should only be True for the top-level
          mozbuild file in a project), the TIERS variable will be used for
          traversal as well.
  
          If descend is True (the default), we will descend into child
          directories and files per variable values.
  
          Arbitrary metadata in the form of a dict can be passed into this
          function. This feature is intended to facilitate the build reader
          injecting state and annotations into moz.build files that is
          independent of the sandbox's execution context.
  
          Traversal is performed depth first (for no particular reason).
docstring_summary: Read and process a mozbuild file, descending into children.
docstring_tokens: Read and process a mozbuild file descending into children .
function: def read_mozbuild(self, path, config, read_tiers=False,
              filesystem_absolute=False, descend=True, metadata={}):
          """Read and process a mozbuild file, descending into children.
  
          This starts with a single mozbuild file, executes it, and descends into
          other referenced files per our traversal logic.
  
          The traversal logic is to iterate over the *DIRS variables, treating
          each element as a relative directory path. For each encountered
          directory, we will open the moz.build file located in that
          directory in a new Sandbox and process it.
  
          If read_tiers is True (it should only be True for the top-level
          mozbuild file in a project), the TIERS variable will be used for
          traversal as well.
  
          If descend is True (the default), we will descend into child
          directories and files per variable values.
  
          Arbitrary metadata in the form of a dict can be passed into this
          function. This feature is intended to facilitate the build reader
          injecting state and annotations into moz.build files that is
          independent of the sandbox's execution context.
  
          Traversal is performed depth first (for no particular reason).
          """
          self._execution_stack.append(path)
          try:
              for s in self._read_mozbuild(path, config, read_tiers=read_tiers,
                  filesystem_absolute=filesystem_absolute,
                  descend=descend, metadata=metadata):
                  yield s
  
          except BuildReaderError as bre:
              raise bre
  
          except SandboxCalledError as sce:
              raise BuildReaderError(list(self._execution_stack),
                  sys.exc_info()[2], sandbox_called_error=sce)
  
          except SandboxExecutionError as se:
              raise BuildReaderError(list(self._execution_stack),
                  sys.exc_info()[2], sandbox_exec_error=se)
  
          except SandboxLoadError as sle:
              raise BuildReaderError(list(self._execution_stack),
                  sys.exc_info()[2], sandbox_load_error=sle)
  
          except SandboxValidationError as ve:
              raise BuildReaderError(list(self._execution_stack),
                  sys.exc_info()[2], validation_error=ve)
  
          except Exception as e:
              raise BuildReaderError(list(self._execution_stack),
                  sys.exc_info()[2], other_error=e)
function_tokens: def read_mozbuild ( self , path , config , read_tiers = False , filesystem_absolute = False , descend = True , metadata = { } ) : self . _execution_stack . append ( path ) try : for s in self . _read_mozbuild ( path , config , read_tiers = read_tiers , filesystem_absolute = filesystem_absolute , descend = descend , metadata = metadata ) : yield s except BuildReaderError as bre : raise bre except SandboxCalledError as sce : raise BuildReaderError ( list ( self . _execution_stack ) , sys . exc_info ( ) [ 2 ] , sandbox_called_error = sce ) except SandboxExecutionError as se : raise BuildReaderError ( list ( self . _execution_stack ) , sys . exc_info ( ) [ 2 ] , sandbox_exec_error = se ) except SandboxLoadError as sle : raise BuildReaderError ( list ( self . _execution_stack ) , sys . exc_info ( ) [ 2 ] , sandbox_load_error = sle ) except SandboxValidationError as ve : raise BuildReaderError ( list ( self . _execution_stack ) , sys . exc_info ( ) [ 2 ] , validation_error = ve ) except Exception as e : raise BuildReaderError ( list ( self . _execution_stack ) , sys . exc_info ( ) [ 2 ] , other_error = e )