docs: def implement_switch_disconnector(mv_grid, node1, node2):
      """
      Install switch disconnector in grid topology
  
      The graph that represents the grid's topology is altered in such way that
      it explicitly includes a switch disconnector.
      The switch disconnector is always located at ``node1``. Technically, it
      does not make any difference. This is just an convention ensuring
      consistency of multiple runs.
  
      The ring is still closed after manipulations of this function.
  
      Parameters
      ----------
      mv_grid : :class:`~.grid.grids.MVGrid`
          MV grid instance
      node1
          A rings node
      node2
          Another rings node
  
      """
      # Get disconnecting point's location
      line = mv_grid.graph.edge[node1][node2]['line']
  
      length_sd_line = .75e-3 # in km
  
      x_sd = node1.geom.x + (length_sd_line / line.length) * (
          node1.geom.x - node2.geom.x)
      y_sd = node1.geom.y + (length_sd_line / line.length) * (
          node1.geom.y - node2.geom.y)
  
      # Instantiate disconnecting point
      mv_dp_number = len(mv_grid.graph.nodes_by_attribute(
          'mv_disconnecting_point'))
      disconnecting_point = MVDisconnectingPoint(
          id=mv_dp_number + 1,
          geom=Point(x_sd, y_sd),
          grid=mv_grid)
      mv_grid.graph.add_node(disconnecting_point, type='mv_disconnecting_point')
  
      # Replace original line by a new line
      new_line_attr = {
          'line': Line(
              id=line.id,
              type=line.type,
              length=line.length - length_sd_line,
              grid=mv_grid),
          'type': 'line'}
      mv_grid.graph.remove_edge(node1, node2)
      mv_grid.graph.add_edge(disconnecting_point, node2, new_line_attr)
  
      # Add disconnecting line segment
      switch_disconnector_line_attr = {
          'line': Line(
                    id="switch_disconnector_line_{}".format(
                        str(mv_dp_number + 1)),
                    type=line.type,
                    length=length_sd_line,
                    grid=mv_grid),
          'type': 'line'}
  
      mv_grid.graph.add_edge(node1, disconnecting_point,
                             switch_disconnector_line_attr)
  
      # Set line to switch disconnector
      disconnecting_point.line = mv_grid.graph.line_from_nodes(
          disconnecting_point, node1)