Skip to main content

5X AWS Athena Client Authentication Library

This Python library provides a simple way to create an AWS Athena client using AWS credentials. It handles authentication seamlessly, allowing developers to focus on querying Athena.

  • Authentication Method: AWS Credentials (Access Key and Secret Key)
  • Region Configuration: Configurable AWS Region

Installation

Install the package from PyPI using:

pip install 5x-aws-athena-auth-manager

Environment Variables

This library relies on environment variables for authentication.

Variable Description Example
FIVEX_ATHENA_AWS_ACCESS_KEY AWS Access Key ID AKIA1234567890EXAMPLE
FIVEX_ATHENA_AWS_SECRET_KEY AWS Secret Access Key wJalrXUtnFEMI/K7MDENG/123456
FIVEX_ATHENA_AWS_REGION AWS Region us-east-1

Example: Setting Environment Variables

export FIVEX_ATHENA_AWS_ACCESS_KEY="your-access-key"
export FIVEX_ATHENA_AWS_SECRET_KEY="your-secret-key"
export FIVEX_ATHENA_AWS_REGION="your-aws-region"

Usage

Import and Use in Python

from athena_auth import AthenaConnectionManager

try:
    manager = AthenaConnectionManager()
    client = manager.get_client()
    print("✅ Athena Client Created Successfully!")
except Exception as e:
    print(f"❌ Error: {e}")

Class Overview

AthenaConnectionManager

Creates and manages an AWS Athena client using environment variables.

How It Works

✔ Validates AWS credentials from environment variables
✔ Creates a boto3 Athena client with proper configuration
✔ Tests the connection to ensure credentials are valid
✔ Implements comprehensive error handling for debugging


Error Handling

The library provides detailed error handling with specific exceptions:

Exception Cause
ValueError Missing or invalid credentials
ClientError AWS API errors (invalid region, etc.)
ConnectionError Network or connectivity issues
Exception Unexpected errors during client creation

Example Error Handling

from athena_auth import AthenaConnectionManager
from botocore.exceptions import ClientError

try:
    manager = AthenaConnectionManager()
    client = manager.get_client()
except ValueError as e:
    print(f"❌ Configuration Error: {e}")
except ClientError as e:
    print(f"❌ AWS Client Error: {e}")
except ConnectionError as e:
    print(f"❌ Connection Error: {e}")
except Exception as e:
    print(f"❌ Unexpected Error: {e}")

Testing

The library includes comprehensive test utilities:

Simple Test

# simple_test.py
from athena_auth import AthenaConnectionManager

def test_athena_connection():
    manager = AthenaConnectionManager()
    client = manager.get_client()
    response = client.list_work_groups(MaxResults=1)
    print("✅ Connection successful!")

if __name__ == "__main__":
    test_athena_connection()

Full Test Suite

# Run the complete test suite
python test.py

Dependencies

Core dependencies required:

boto3>=1.26.0
botocore>=1.29.0

Why Use This Library?

✔ Simplifies AWS Athena authentication – No need to manage credentials manually
✔ Ensures proper credential validation – Validates credentials before use
✔ Provides comprehensive error handling – Clear, actionable error messages
✔ Includes testing utilities – Easy to verify your setup
✔ Production-ready – Used by 5X platform services


Contributing

We welcome contributions! Please feel free to submit a Pull Request.


License

MIT License - feel free to use this library in your projects!

Metadata

Release files for 5x-aws-athena-auth-manager 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for 5x-aws-athena-auth-manager 0.1.2
File Size Uploaded
5x_aws_athena_auth_manager-0.1.2.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for 5x-aws-athena-auth-manager 0.1.2
File Interpreter ABI Platform
5x_aws_athena_auth_manager-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.9 kB

Release files / 5x_aws_athena_auth_manager-0.1.2.tar.gz

Download URL 5x_aws_athena_auth_manager-0.1.2.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
82f3245fca84648028606ba03305d8cd48fc13fa2ba7e2328eb66dd1a46c0c4f
BLAKE2b-256 checksum
How to use checksums
31c2bb229f8b9d6c46d0874cadd5500a01828bba5a28ff58b32c2c80e9e44397
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Release files / 5x_aws_athena_auth_manager-0.1.2-py3-none-any.whl

Download URL 5x_aws_athena_auth_manager-0.1.2-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b125b294bbdfcf7633ad263881b5746e448d6f2645f8ce8904e20ac0c30162a9
BLAKE2b-256 checksum
How to use checksums
90fa1c1cd89465f18903f7a420486a84df1050d8a252a6ab54583424b52e3e83
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page