code: def pi_revision():
      
      # Revision list available at: http://elinux.org/RPi_HardwareHistory#Board_Revision_History
      with open('/proc/cpuinfo', 'r') as infile:
          for line in infile:
              # Match a line of the form "Revision : 0002" while ignoring extra
              # info in front of the revsion (like 1000 when the Pi was over-volted).
              match = re.match('Revision\s+:\s+.*(\w{4})$', line, flags=re.IGNORECASE)
              if match and match.group(1) in ['0000', '0002', '0003']:
                  # Return revision 1 if revision ends with 0000, 0002 or 0003.
                  return 1
              elif match:
                  # Assume revision 2 if revision ends with any other 4 chars.
                  return 2
          # Couldn't find the revision, throw an exception.
          raise RuntimeError('Could not determine Raspberry Pi revision.')
docs: Detect the revision number of a Raspberry Pi, useful for changing
      functionality like default I2C bus based on revision.