code: def reinforce_branches_current(grid, crit_branches):
      #TODO: finish docstring
      
      # load cable data, file_names and parameter
      branch_parameters = grid.network.static_data['MV_cables']
      branch_parameters = branch_parameters[branch_parameters['U_n'] == grid.v_level].sort_values('I_max_th')
  
      branch_ctr = 0
  
      for branch, rel_overload in crit_branches.items():
          try:
              type = branch_parameters.loc[
                  branch_parameters[
                      branch_parameters['I_max_th'] >= branch['branch']
                      .type['I_max_th'] * rel_overload
                  ].loc[
                      :, 'I_max_th'
                  ].idxmin(), :
              ]
              branch['branch'].type = type
              branch_ctr += 1
          except:
              logger.warning('Branch {} could not be reinforced (current '
                             'issues) as there is no appropriate cable type '
                             'available. Original type is retained.'.format(
                  branch))
              pass
  
      if branch_ctr:
          logger.info('==> {} branches were reinforced.'.format(str(branch_ctr)))
docs: Reinforce MV or LV grid by installing a new branch/line type
      
      Parameters
      ----------
      grid : GridDing0
          Grid identifier.
      crit_branches : dict
          Dict of critical branches with max. relative overloading.
          
      Notes
      -----
      The branch type to be installed is determined per branch using the rel. overloading. According to [#]_ 
      only cables are installed.
      
      References
      ----------
      .. [#] Ackermann et al. (RP VNS)    
      
      See Also
      --------
      ding0.flexopt.check_tech_constraints.check_load :
      ding0.flexopt.reinforce_measures.reinforce_branches_voltage :