Skip to main content

AWS metadata as dataframes

Reason this release was yanked:

Athena execute query method doesn't work

Project description

Submodules

awsdf.aws module

This module enables connecting to AWS and extracting metadata in pandas dataframes.

Installing from PyPI: pip install -U awsdf

USAGE:

import awsdf

aws_account = awsdf.Account(profile_name=”<PROFILE_NAME>”)

glue_databases_df = aws_account.glue_get_databases()

class awsdf.aws.Account(aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None, region_name=None, profile_name=None)

Instantiate class object for connecting to AWS and retriving metadata from AWS

__init__(aws_access_key_id=None, aws_secret_access_key=None, aws_session_token=None, region_name=None, profile_name=None)

Provide access keys OR Profile name to connect to AWS account. Keys take preceedence

Parameters:

aws_access_key_id (string) – AWS access key ID

aws_secret_access_key (string) – AWS secret access key

aws_session_token (string) – AWS temporary session token

region_name (string) – AWS region

profile_name (string) – AWS profile name

glue_get_jobs() -> DataFrame

Get AWS Glue jobs

Returns:

dataframe

glue_get_job_history(job_name, no_of_runs=1) -> DataFrame

Retrieve glue job history

Arguments:

job_name – Name of job to retrive history

Keyword Arguments:

no_of_runs – No of runs to retrive in descending order (default: {1})

Returns:

dataframe

glue_get_databases() -> DataFrame

Get AWS Glue jobs

Returns:

dataframe

glue_get_tables(dbname=None) -> DataFrame

Get AWS Glue tables

Keyword Arguments:

dbname – Database Name for which to retrieve tables (default: {None})

Returns:

dataframe

glue_get_fields(dbname, tablename) -> DataFrame

Get AWS Glue table columns

Keyword Arguments:

dbname – Database Name for table tablename – Database Name for which to retrieve columns

Returns:

dataframe

athena_execute_query(database: str, query: str, s3_output: str | None = None, use_cache: bool = True)

Execute athena query

Arguments:

database – Database name query – Query to execute

Keyword Arguments:

s3_output – Amazon S3 path for query output (optional) use_cache – Use cached results if any (default: {True})

Returns:

dataframe

Raises:

ValueError – If s3_output is provided but is not a valid S3 URI

athena_data_dictionary(include_dbs: list = [], exclude_dbs: list = []) -> DataFrame

Get AWS Athean data dictionary. A data frame with all databases, tables & fields with datatypes

Keyword Arguments:

include_dbs (optional) – list of databases to be included exclude_dbs (optional) – list of databases to be excluded if include_dbs list is empty.

Returns:

dataframe

quicksight_get_datasources() -> DataFrame

Get QuickSight datasources

Keyword Arguments:

N/A

Returns:

dataframe

quicksight_get_datasets(includeDetails: bool = False) -> DataFrame

Get QuickSight datasets

Keyword Arguments:

includeDetails (optional) – Include addition details i.e. ConsumedSpiceCapacityInBytes & Owner. Default=False

Returns:

dataframe

quicksight_get_dataset_permissions(AwsAccountId: str, DataSetId: str)

Get QuickSight dataset permissions

Keyword Arguments:

AwsAccountId – AWS account id DataSetId – Dataset id

Returns:

dataframe

quicksight_get_dataset_details(datasetId: str) -> dict

Get QuickSight dataset details

Keyword Arguments:

DataSetId – Dataset id

Returns:

dataframe

quicksight_get_dashboards(includeDetails: bool = False) -> DataFrame

Get QuickSight dashboards

Keyword Arguments:

includeDetails (optional) – NOT IMPLEMENTED Include addition details. Default=False

Returns:

dataframe

quicksight_get_dashboard_details(dashboardId: str) -> dict

Get QuickSight dashboard details

Keyword Arguments:

dashboardId – Dashboard id

Returns:

dictionary

kms_encrypt(plaintext: str, key_id: str) -> str

Encrypt a plaintext string using AWS KMS and return base64-encoded ciphertext.

Parameters:

plaintext (str): The string to encrypt. key_id (str): The KMS key ARN or ID.

Returns:

str: base64-encoded ciphertext

kms_decrypt(ciphertext_b64: str) -> str

Decrypt a base64-encoded ciphertext string using AWS KMS and return the plaintext.

Parameters:

ciphertext_b64 (str): base64-encoded ciphertext

Returns:

str: decrypted plaintext string

get_secret_from_secrets_manager(secret_name: str) -> dict

Retrieve a secret value from AWS Secrets Manager.

Parameters:

secret_name (str): The name or ARN of the secret.

Returns:

str: The secret string value.

Raises:

ClientError: If retrieval fails due to permission or configuration issues.

Module contents

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

awsdf-0.1.20.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

awsdf-0.1.20-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file awsdf-0.1.20.tar.gz.

File metadata

  • Download URL: awsdf-0.1.20.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.10 Darwin/24.5.0

File hashes

Hashes for awsdf-0.1.20.tar.gz
Algorithm Hash digest
SHA256 add07799362a91f578b82191b979ff35039adf50e15ba86b49f730246decf5cb
MD5 691a150c94d2b02c3e980d77e4607c31
BLAKE2b-256 a09d99ac8e9bcf6374bfec8e225490ddb45695a793624e0dcdd8e370f35cefd6

See more details on using hashes here.

File details

Details for the file awsdf-0.1.20-py3-none-any.whl.

File metadata

  • Download URL: awsdf-0.1.20-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.9.10 Darwin/24.5.0

File hashes

Hashes for awsdf-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 d5d04bd809d2d7745043134b12aba098d04fa8426cc076bbb17253efb73fd4fa
MD5 3401424ecbc2543bedccdbdbcd62656f
BLAKE2b-256 46a24babf65ae0555040c9cea015410f4cd998dc5e8f20b699e4c334bfd08d2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page