def METHOD_NAME(cls, features, profile_name):
    if isinstance(features, str):
        try:
            features_dict = json.loads(features)
        except ValueError:
            if _is_url(features) or _is_s3(features):
                transport_params = None
                if _is_s3(features):
                    transport_params = get_transport_params(profile_name)
                features_dict = use_smartopen_features(
                    features,
                    transport_params=transport_params,
                )
            else:
                with open(features, "r") as f:
                    features_dict = json.METHOD_NAME(f)
        return cls(features_dict)
    return cls(json.METHOD_NAME(features))