Catalog PyPI
PACKAGE EXPLORERView in registry

5x-aws-athena-auth-manager

PyPI

A simple Python library for creating an AWS Athena client using access key, secret key and region.

Versions collected1
Direct dependencies2From release 0.1.2
Last observed20 Oct, 16:05 UTC

README

Version 0.1.2 documentation

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.

VariableDescriptionExample
FIVEX_ATHENA_AWS_ACCESS_KEYAWS Access Key IDAKIA1234567890EXAMPLE
FIVEX_ATHENA_AWS_SECRET_KEYAWS Secret Access KeywJalrXUtnFEMI/K7MDENG/123456
FIVEX_ATHENA_AWS_REGIONAWS Regionus-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:

ExceptionCause
ValueErrorMissing or invalid credentials
ClientErrorAWS API errors (invalid region, etc.)
ConnectionErrorNetwork or connectivity issues
ExceptionUnexpected 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!

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.213 Feb 20252

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
5x-platform/5x-nextgen-python-libraries

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:05 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:00a5e00fe7498e345aebd6ac46269642daf899a78fcd2200e7711a5060e5f6a4