code: def is_iban(potential_iban):
      
      path = 'data/iban.csv'  # always use slash in Python packages
      filepath = pkg_resources.resource_filename('mpu', path)
      data = mpu.io.read(filepath, delimiter=';', format='dicts')
      potential_iban = potential_iban.replace(' ', '')  # Remove spaces
      if len(potential_iban) < min([int(el['length']) for el in data]):
          return False
      country = None
      for element in data:
          if element['iban_fields'][:2] == potential_iban[:2]:
              country = element
              break
      if country is None:
          return False
      if len(potential_iban) != int(country['length']):
          return False
      if country['country_en'] == 'Germany':
          checksum_val = [value
                          for field_type, value in
                          zip(country['iban_fields'], potential_iban)
                          if field_type == 'k']
          checksum_val = ''.join(checksum_val)
          checksum_exp = _calculate_german_iban_checksum(potential_iban,
                                                         country['iban_fields'])
          return checksum_val == checksum_exp
      return True
docs: Check if a string is a valid IBAN number.
  
      IBAN is described in ISO 13616-1:2007 Part 1.
  
      Spaces are ignored.
  
      # CODE
      0 = always zero
      b = BIC or National Bank code
      c = Account number
      i = holder's kennitala (national identification number)
      k = IBAN check digits
      n = Branch number
      t = Account type
      x = National check digit or character
  
      Examples
      --------
      >>> is_iban('DE89 3704 0044 0532 0130 00')
      True
      >>> is_iban('DE89 3704 0044 0532 0130 01')
      False