docs: def get_markov_blanket(self, node):
          """
          Returns a markov blanket for a random variable. In the case
          of Bayesian Networks, the markov blanket is the set of
          node's parents, its children and its children's other parents.
  
          Returns
          -------
          list(blanket_nodes): List of nodes contained in Markov Blanket
  
          Parameters
          ----------
          node: string, int or any hashable python object.
                The node whose markov blanket would be returned.
  
          Examples
          --------
          >>> from pgmpy.base import DAG
          >>> from pgmpy.factors.discrete import TabularCPD
          >>> G = DAG([('x', 'y'), ('z', 'y'), ('y', 'w'), ('y', 'v'), ('u', 'w'),
                                 ('s', 'v'), ('w', 't'), ('w', 'm'), ('v', 'n'), ('v', 'q')])
          >>> G.get_markov_blanket('y')
          ['s', 'w', 'x', 'u', 'z', 'v']
          """
          children = self.get_children(node)
          parents = self.get_parents(node)
          blanket_nodes = children + parents
          for child_node in children:
              blanket_nodes.extend(self.get_parents(child_node))
          blanket_nodes = set(blanket_nodes)
          blanket_nodes.remove(node)
          return list(blanket_nodes)