class_docstr: Wrapper class for the basic BlueFog API.
class_docstr_tok: ["Wrapper","class","for","the","basic","BlueFog","API","."]
docstr: Return the machine ranks of all in-neighbors.
  Notice: No matter self-loop is presented or not, self machine rank will not be included.
  
  Returns:
      in_neighbor_machine_ranks
docstr_tok: ["Return","the","machine","ranks","of","all","in-neighbors",".","Notice",":","No","matter","self-loop","is","presented","or","not",",","self","machine","rank","will","not","be","included",".","Returns",":","in_neighbor_machine_ranks"]
code: def in_neighbor_machine_ranks(self) -> List[int]:
      """Return the machine ranks of all in-neighbors.
      Notice: No matter self-loop is presented or not, self machine rank will not be included.
  
      Returns:
          in_neighbor_machine_ranks
      """
      if self._machine_topology is None:
          return []
      _machine_rank = self.machine_rank()
      in_neighbor_machine_ranks = [
          r
          for r in self._machine_topology.predecessors(
              self.machine_rank()
          )
          if r != _machine_rank
      ]
      return in_neighbor_machine_ranks
  
imports: from typing import List, Callable, Optional
  import atexit
  import contextlib
  import ctypes
  import logging
  import networkx
  import bluefog.common.util
  import bluefog.common.topology_util
label_desc: Use image node_id 16 for calling the BlueFogBasics obj's underlying member method code with example usage: obj.in_neighbor_machine_ranks() and returns: in_neighbor_machine_ranks, list