nodes: 0, module; 1, function_definition; 2, function_name:_job_sorting_key; 3, parameters; 4, block; 5, identifier:self; 6, identifier:job; 7, expression_statement; 8, if_statement; 9, expression_statement; 10, if_statement; 11, return_statement; 12, comment:"""
          Get the sorting key of a CFGJob instance.
  
          :param CFGJob job: the CFGJob object.
          :return: An integer that determines the order of this job in the queue.
          :rtype: int
          """; 13, comparison_operator:self._base_graph is None; 14, comment:# we don't do sorting if there is no base_graph; 15, block; 16, assignment; 17, comparison_operator:job.addr not in self._node_addr_visiting_order; 18, block; 19, call; 20, attribute; 21, None; 22, return_statement; 23, identifier:MAX_JOBS; 24, integer:1000000; 25, attribute; 26, attribute; 27, return_statement; 28, attribute; 29, argument_list; 30, identifier:self; 31, identifier:_base_graph; 32, integer:0; 33, identifier:job; 34, identifier:addr; 35, identifier:self; 36, identifier:_node_addr_visiting_order; 37, identifier:MAX_JOBS; 38, attribute; 39, identifier:index; 40, attribute; 41, identifier:self; 42, identifier:_node_addr_visiting_order; 43, identifier:job; 44, identifier:addr
code: def _job_sorting_key(self, job):
          """
          Get the sorting key of a CFGJob instance.
  
          :param CFGJob job: the CFGJob object.
          :return: An integer that determines the order of this job in the queue.
          :rtype: int
          """
  
          if self._base_graph is None:
              # we don't do sorting if there is no base_graph
              return 0
  
          MAX_JOBS = 1000000
  
          if job.addr not in self._node_addr_visiting_order:
              return MAX_JOBS
  
          return self._node_addr_visiting_order.index(job.addr)