def _get_credential()

in iact3/config.py [0:0]


    def _get_credential(self) -> Union[CredentialClient, None]:
        file_path = Path(self.location).expanduser().resolve() if self.location else DEFAULT_AUTH_FILE
        if not file_path.is_file():
            return
        try:
            with open(file_path, 'r', encoding='utf-8') as file_handle:
                config = json.load(file_handle)
            default = config.get('current')
            name = self.name or default
            if not name:
                return
            specified_profile = None
            profiles = config.get('profiles')
            for profile in profiles:
                if profile.get('name') == name:
                    specified_profile = profile
                    break
        except Exception as e:
            LOG.debug(str(e), exc_info=True)
            return

        if not specified_profile:
            return
        if specified_profile.get('mode') == 'AK':
            specified_config = Config(
                type='access_key',
                access_key_id=specified_profile.get('access_key_id'),
                access_key_secret=specified_profile.get('access_key_secret')
            )
        elif specified_profile.get('mode') == 'StsToken':
            specified_config = Config(
                type='sts',
                access_key_id=specified_profile.get('access_key_id'),
                access_key_secret=specified_profile.get('access_key_secret'),
                security_token=specified_profile.get('sts_token')
            )
        elif specified_profile.get('mode') == 'RamRoleArn':
            specified_config = Config(
                type='ram_role_arn',
                access_key_id=specified_profile.get('access_key_id'),
                access_key_secret=specified_profile.get('access_key_secret'),
                security_token=specified_profile.get('sts_token'),
                role_arn=specified_profile.get('ram_role_arn'),
                role_session_name=specified_profile.get('ram_session_name'),
                policy=specified_profile.get('policy', ''),
                role_session_expiration=specified_profile.get('expired_seconds', 900)
            )
        elif specified_profile.get('mode') == 'EcsRamRole':
            specified_config = Config(
                type='ecs_ram_role',
                role_name=specified_profile.get('ram_role_name')
            )
        else:
            return
        return CredentialClient(config=specified_config)