docs: def clip_foreign(network):
      """
      Delete all components and timelines located outside of Germany.
      Add transborder flows divided by country of origin as
      network.foreign_trade.
  
      Parameters
      ----------
      network : :class:`pypsa.Network
          Overall container of PyPSA
  
      Returns
      -------
      network : :class:`pypsa.Network
          Overall container of PyPSA
      """
  
      # get foreign buses by country
  
      foreign_buses = network.buses[network.buses.country_code != 'DE']
  
      network.buses = network.buses.drop(
          network.buses.loc[foreign_buses.index].index)
  
      # identify transborder lines (one bus foreign, one bus not) and the country
      # it is coming from
      """transborder_lines = pd.DataFrame(index=network.lines[
          ((network.lines['bus0'].isin(network.buses.index) == False) &
           (network.lines['bus1'].isin(network.buses.index) == True)) |
          ((network.lines['bus0'].isin(network.buses.index) == True) &
           (network.lines['bus1'].isin(network.buses.index) == False))].index)
      transborder_lines['bus0'] = network.lines['bus0']
      transborder_lines['bus1'] = network.lines['bus1']
      transborder_lines['country'] = ""
      for i in range(0, len(transborder_lines)):
          if transborder_lines.iloc[i, 0] in foreign_buses.index:
              transborder_lines['country'][i] = foreign_buses[str(
                  transborder_lines.iloc[i, 0])]
          else:
              transborder_lines['country'][i] = foreign_buses[str(
                  transborder_lines.iloc[i, 1])]
  
      # identify amount of flows per line and group to get flow per country
      transborder_flows = network.lines_t.p0[transborder_lines.index]
      for i in transborder_flows.columns:
          if network.lines.loc[str(i)]['bus1'] in foreign_buses.index:
              transborder_flows.loc[:, str(
                  i)] = transborder_flows.loc[:, str(i)]*-1
  
      network.foreign_trade = transborder_flows.\
          groupby(transborder_lines['country'], axis=1).sum()"""
  
      # drop foreign components
      network.lines = network.lines.drop(network.lines[
          (network.lines['bus0'].isin(network.buses.index) == False) |
          (network.lines['bus1'].isin(network.buses.index) == False)].index)
  
      network.links = network.links.drop(network.links[
          (network.links['bus0'].isin(network.buses.index) == False) |
          (network.links['bus1'].isin(network.buses.index) == False)].index)
  
      network.transformers = network.transformers.drop(network.transformers[
          (network.transformers['bus0'].isin(network.buses.index) == False) |
          (network.transformers['bus1'].isin(network.
                                             buses.index) == False)].index)
      network.generators = network.generators.drop(network.generators[
          (network.generators['bus'].isin(network.buses.index) == False)].index)
      network.loads = network.loads.drop(network.loads[
          (network.loads['bus'].isin(network.buses.index) == False)].index)
      network.storage_units = network.storage_units.drop(network.storage_units[
          (network.storage_units['bus'].isin(network.
                                             buses.index) == False)].index)
  
      components = ['loads', 'generators', 'lines', 'buses', 'transformers',
                    'links']
      for g in components:  # loads_t
          h = g + '_t'
          nw = getattr(network, h)  # network.loads_t
          for i in nw.keys():  # network.loads_t.p
              cols = [j for j in getattr(
                  nw, i).columns if j not in getattr(network, g).index]
              for k in cols:
                  del getattr(nw, i)[k]
  
      return network