docs: def read_profile_from_aws_config_file(profile_name, config_file = aws_config_file):
      """
      Read profiles from AWS config file
  
      :param profile_name:
      :param config_file:
      :return:
      """
      role_arn = None
      source_profile = 'default'
      mfa_serial = None
      profile_found = False
      external_id = None
      try:
          with open(config_file, 'rt') as config:
              for line in config:
                  profile_line = re_profile_name.match(line)
                  if profile_line:
                      role_profile_name = profile_line.groups()[0].split()[-1]
                      if role_profile_name == profile_name:
                          profile_found = True
                      else:
                          profile_found = False
                  if profile_found:
                      if re_role_arn.match(line):
                          role_arn = line.split('=')[1].strip()
                      elif re_source_profile.match(line):
                          source_profile = line.split('=')[1].strip()
                      elif re_mfa_serial.match(line):
                          mfa_serial = line.split('=')[1].strip()
                      elif re_external_id.match(line):
                          external_id = line.split('=')[1].strip()
      except Exception as e:
          # Silent if error is due to no .aws/config file
          if not hasattr(e, 'errno') or e.errno != 2:
              printException(e)
      return role_arn, source_profile, mfa_serial, external_id