docs: def to_networkx(self, labels=None, edge_labels=False):
          """ Get a networkx representation of the binary search tree. """
          import networkx as nx
          graph = nx.DiGraph()
          for node in self._traverse_nodes():
              u = node.key
              graph.add_node(u)  # Minor redundancy
              # Set node properties
              graph.nodes[u]['value'] = node.value
              if labels is not None:
                  label = ','.join([str(getattr(node, k)) for k in labels])
                  graph.nodes[u]['label'] = label
              if node.left is not None:
                  v = node.left.key
                  graph.add_node(v)
                  graph.add_edge(u, v)
                  if edge_labels:
                      graph.edge[u][v]['label'] = 'L'
              if node.right is not None:
                  v = node.right.key
                  graph.add_node(v)
                  graph.add_edge(u, v)
                  if edge_labels:
                      graph.edge[u][v]['label'] = 'R'
          return graph