docs: def _validate_ding0_mv_grid_import(grid, ding0_grid):
      """Verify imported data with original data from Ding0
  
      Parameters
      ----------
      grid: MVGrid
          MV Grid data (eDisGo)
      ding0_grid: ding0.MVGridDing0
          Ding0 MV grid object
  
      Notes
      -----
      The data validation excludes grid components located in aggregated load
      areas as these are represented differently in eDisGo.
  
      Returns
      -------
      dict
          Dict showing data integrity for each type of grid component
      """
  
      integrity_checks = ['branch_tee',
                          'disconnection_point', 'mv_transformer',
                          'lv_station'#,'line',
                          ]
  
      data_integrity = {}
      data_integrity.update({_: {'ding0': None, 'edisgo': None, 'msg': None}
                             for _ in integrity_checks})
  
      # Check number of branch tees
      data_integrity['branch_tee']['ding0'] = len(ding0_grid._cable_distributors)
      data_integrity['branch_tee']['edisgo'] = len(
          grid.graph.nodes_by_attribute('branch_tee'))
  
      # Check number of disconnecting points
      data_integrity['disconnection_point']['ding0'] = len(
          ding0_grid._circuit_breakers)
      data_integrity['disconnection_point']['edisgo'] = len(
          grid.graph.nodes_by_attribute('mv_disconnecting_point'))
  
      # Check number of MV transformers
      data_integrity['mv_transformer']['ding0'] = len(
          list(ding0_grid.station().transformers()))
      data_integrity['mv_transformer']['edisgo'] = len(
          grid.station.transformers)
  
      # Check number of LV stations in MV grid (graph)
      data_integrity['lv_station']['edisgo'] = len(grid.graph.nodes_by_attribute(
          'lv_station'))
      data_integrity['lv_station']['ding0'] = len(
          [_ for _ in ding0_grid._graph.nodes()
           if (isinstance(_, LVStationDing0) and
               not _.grid.grid_district.lv_load_area.is_aggregated)])
  
      # Check number of lines outside aggregated LA
      # edges_w_la = grid.graph.lines()
      # data_integrity['line']['edisgo'] = len([_ for _ in edges_w_la
      #          if not (_['adj_nodes'][0] == grid.station or
      #                  _['adj_nodes'][1] == grid.station) and
      #          _['line']._length > .5])
      # data_integrity['line']['ding0'] = len(
      #     [_ for _ in ding0_grid.lines()
      #      if not _['branch'].connects_aggregated])
  
      # raise an error if data does not match
      for c in integrity_checks:
          if data_integrity[c]['edisgo'] != data_integrity[c]['ding0']:
              raise ValueError(
                  'Unequal number of objects for {c}. '
                  '\n\tDing0:\t{ding0_no}'
                  '\n\teDisGo:\t{edisgo_no}'.format(
                      c=c,
                      ding0_no=data_integrity[c]['ding0'],
                      edisgo_no=data_integrity[c]['edisgo']))
  
      return data_integrity