def _is_valid_s3_uri()

in src/fmeval/data_loaders/util.py [0:0]


def _is_valid_s3_uri(uri: str) -> bool:
    """
    :param uri: s3 file path
    :return: True if uri is a valid s3 path, False otherwise
    """
    parsed_url = urllib.parse.urlparse(uri)
    if parsed_url.scheme.lower() not in ["s3", "s3n", "s3a"]:
        return False
    try:
        s3_client = get_s3_client(uri)
        s3_uri = S3Uri(uri)
        s3_client.get_object(Bucket=s3_uri.bucket, Key=s3_uri.key)
        return True
    except botocore.errorfactory.ClientError:
        return False