From 2390ce1e0c74298b69453023f8b42ee8c1125da5 Mon Sep 17 00:00:00 2001 From: michael-corey Date: Mon, 20 Apr 2026 16:27:54 -0500 Subject: [PATCH] adding explorer --- generic_loader/.gitignore => .gitignore | 1 + .../samples/sample_kitchensink.expected.json | 107 ++++++ generic_loader/samples/sample_kitchensink.xpt | Bin 0 -> 292000 bytes utils/data_explorer.py | 330 ++++++++++++++++++ utils/sample_s3_directories.txt | 8 + 5 files changed, 446 insertions(+) rename generic_loader/.gitignore => .gitignore (74%) create mode 100644 generic_loader/samples/sample_kitchensink.expected.json create mode 100644 generic_loader/samples/sample_kitchensink.xpt create mode 100644 utils/data_explorer.py create mode 100644 utils/sample_s3_directories.txt diff --git a/generic_loader/.gitignore b/.gitignore similarity index 74% rename from generic_loader/.gitignore rename to .gitignore index 055f10e..64af339 100644 --- a/generic_loader/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /.env __pycache__/ venv/ +*/__pycache__/ \ No newline at end of file diff --git a/generic_loader/samples/sample_kitchensink.expected.json b/generic_loader/samples/sample_kitchensink.expected.json new file mode 100644 index 0000000..081ecab --- /dev/null +++ b/generic_loader/samples/sample_kitchensink.expected.json @@ -0,0 +1,107 @@ +{ + "ALLNULL": { + "acceptable_types": [ + "TEXT", + "VARCHAR" + ], + "note": "entirely null numeric; loader must pick a default type, typically TEXT", + "nullable": true + }, + "ALLNULLC": { + "acceptable_types": [ + "TEXT", + "VARCHAR" + ], + "note": "entirely null character", + "nullable": true + }, + "BIGINT": { + "note": "values beyond int32 range", + "nullable": true, + "postgres_type": "BIGINT" + }, + "BOOLCOL": { + "acceptable_types": [ + "BOOLEAN", + "SMALLINT", + "INTEGER" + ], + "note": "{0,1,NaN} is genuinely ambiguous; loader's choice is a design decision", + "nullable": true + }, + "CONST": { + "acceptable_types": [ + "TEXT", + "VARCHAR" + ], + "nullable": false + }, + "DATEASTR": { + "note": "stored as char in SAS; loader should coerce ISO-date strings", + "nullable": true, + "postgres_type": "DATE" + }, + "DATECOL": { + "note": "positive control", + "nullable": false, + "postgres_type": "DATE" + }, + "DTCOL": { + "acceptable_types": [ + "TIMESTAMP", + "TIMESTAMP WITHOUT TIME ZONE" + ], + "nullable": true + }, + "FLOATCOL": { + "acceptable_types": [ + "DOUBLE PRECISION", + "NUMERIC" + ], + "nullable": true + }, + "ID": { + "nullable": false, + "postgres_type": "INTEGER" + }, + "INTCOL": { + "note": "positive control", + "nullable": false, + "postgres_type": "INTEGER" + }, + "LONGSTR": { + "acceptable_types": [ + "TEXT", + "VARCHAR" + ], + "nullable": true + }, + "MIXED": { + "acceptable_types": [ + "TEXT", + "VARCHAR" + ], + "note": "heterogeneous content; loader should fall back to text", + "nullable": true + }, + "NUMASSTR": { + "acceptable_types": [ + "NUMERIC", + "DOUBLE PRECISION" + ], + "note": "stored as char in SAS; loader should coerce numeric-looking strings", + "nullable": true + }, + "STRCOL": { + "acceptable_types": [ + "TEXT", + "VARCHAR" + ], + "note": "positive control", + "nullable": false + }, + "TIMECOL": { + "nullable": true, + "postgres_type": "TIME" + } +} diff --git a/generic_loader/samples/sample_kitchensink.xpt b/generic_loader/samples/sample_kitchensink.xpt new file mode 100644 index 0000000000000000000000000000000000000000..67b95d11c71e460ac4b08184222e22976921c540 GIT binary patch literal 292000 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 z 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 literal 0 HcmV?d00001 diff --git a/utils/data_explorer.py b/utils/data_explorer.py new file mode 100644 index 0000000..6f3cc3b --- /dev/null +++ b/utils/data_explorer.py @@ -0,0 +1,330 @@ +"""Explore S3 directories and categorise them by accessibility. + +Reads a text file containing one S3 prefix per line (paths within the bucket +configured by the ``S3_BUCKET`` constant), then for each prefix: +- Lists all objects recursively (via ``list_objects_v2`` paginator) +- Tests read permission with ``head_object`` on the first file found +- Categorises the directory as **Available**, **Blocked**, or **Empty** + +Configure the three constants below, then run:: + + python3 data_explorer.py + +Python 3.10+ compatible. Requires only ``boto3`` / ``botocore`` and stdlib. +""" + +from __future__ import annotations + +import sys +from dataclasses import dataclass, field +from typing import List, Tuple + +# --------------------------------------------------------------------------- +# Dependency check +# --------------------------------------------------------------------------- + +try: + import boto3 # noqa: F401 + import botocore.exceptions # noqa: F401 +except ImportError: + print( + "ERROR: boto3 / botocore is not installed.\n" + "Install with: pip install boto3", + file=sys.stderr, + ) + sys.exit(1) + + +# --------------------------------------------------------------------------- +# Configuration — edit these before running +# --------------------------------------------------------------------------- + +INPUT_FILE: str = "s3_directories.txt" +"""Path to the text file containing one S3 prefix per line.""" + +S3_BUCKET: str = "my-bucket" +"""S3 bucket name (all prefixes are assumed to live in this bucket).""" + +AWS_PROFILE: str = "default" +"""AWS CLI profile name used for authentication.""" + + +# --------------------------------------------------------------------------- +# Data structures +# --------------------------------------------------------------------------- + + +@dataclass +class AvailableDir: + """An S3 directory that is readable.""" + + prefix: str + file_count: int + total_size: int # bytes + + +@dataclass +class BlockedDir: + """An S3 directory where access was denied or an error occurred.""" + + prefix: str + file_count: int + error: str + + +@dataclass +class EmptyDir: + """An S3 directory with no objects.""" + + prefix: str + + +@dataclass +class Results: + """Aggregated exploration results.""" + + available: List[AvailableDir] = field(default_factory=list) + blocked: List[BlockedDir] = field(default_factory=list) + empty: List[EmptyDir] = field(default_factory=list) + + +# --------------------------------------------------------------------------- +# Helpers +# --------------------------------------------------------------------------- + + +def read_input_file(path: str) -> List[str]: + """Return a list of S3 prefixes from *path*, ignoring blanks and comments. + + Each line is stripped and normalised so that non-empty prefixes always end + with a trailing ``/``. + """ + prefixes: List[str] = [] + with open(path, encoding="utf-8") as fh: + for raw_line in fh: + line = raw_line.strip() + if not line or line.startswith("#"): + continue + # Normalise: strip surrounding whitespace/slashes, then re-add + # a single trailing slash (unless the prefix is empty/root). + line = line.strip("/") + if line: + line += "/" + prefixes.append(line) + return prefixes + + +def format_size(size_bytes: int) -> str: + """Return a human-readable size string (KB, MB, GB, TB).""" + if size_bytes < 1024: + return f"{size_bytes} B" + for unit in ("KB", "MB", "GB", "TB"): + size_bytes /= 1024.0 + if size_bytes < 1024.0 or unit == "TB": + return f"{size_bytes:,.1f} {unit}" + # Fallback (should not be reached) + return f"{size_bytes:,.1f} TB" + + +def list_objects( + s3_client: "botocore.client.S3", + bucket: str, + prefix: str, +) -> Tuple[str | None, int, int]: + """Recursively list all objects under *prefix* using streaming counters. + + Returns ``(first_key, file_count, total_size)`` where *first_key* is the + key of the first object found (or ``None`` if the prefix is empty), + *file_count* is the total number of objects, and *total_size* is the sum + of all object sizes in bytes. + + Unlike the previous implementation this never accumulates all keys in + memory, making it safe for prefixes with millions of objects. + """ + paginator = s3_client.get_paginator("list_objects_v2") + first_key: str | None = None + file_count: int = 0 + total_size: int = 0 + for page in paginator.paginate(Bucket=bucket, Prefix=prefix): + for obj in page.get("Contents", []): + if first_key is None: + first_key = obj["Key"] + file_count += 1 + total_size += obj["Size"] + return first_key, file_count, total_size + + +def check_read_permission( + s3_client: "botocore.client.S3", + bucket: str, + key: str, +) -> str | None: + """Try ``head_object`` on *key*. Return ``None`` on success or an error string.""" + try: + s3_client.head_object(Bucket=bucket, Key=key) + except botocore.exceptions.ClientError as exc: + code = exc.response.get("Error", {}).get("Code", "Unknown") + message = exc.response.get("Error", {}).get("Message", str(exc)) + return f"{message} ({code})" + return None + + +# --------------------------------------------------------------------------- +# Core logic +# --------------------------------------------------------------------------- + + +def explore_directories(prefixes: List[str]) -> Results: + """Explore every prefix in ``S3_BUCKET`` and return categorised *Results*.""" + session = boto3.Session(profile_name=AWS_PROFILE) + s3 = session.client("s3") + + results = Results() + total = len(prefixes) + + for idx, prefix in enumerate(prefixes, start=1): + print(f"[{idx}/{total}] Checking {prefix} ...", file=sys.stderr) + + # --- Recursive listing ------------------------------------------------ + try: + first_key, file_count, total_size = list_objects(s3, S3_BUCKET, prefix) + except botocore.exceptions.ClientError as exc: + code = exc.response.get("Error", {}).get("Code", "Unknown") + message = exc.response.get("Error", {}).get("Message", str(exc)) + results.blocked.append( + BlockedDir(prefix=prefix, file_count=0, error=f"{message} ({code})") + ) + continue + except Exception as exc: + results.blocked.append( + BlockedDir(prefix=prefix, file_count=0, error=str(exc)) + ) + continue + + if first_key is None: + results.empty.append(EmptyDir(prefix=prefix)) + continue + + # --- Permission check ------------------------------------------------- + # Prefer a real object over a zero-byte directory marker (key ending + # in "/") for the head_object test. If every key is a directory + # marker, fall back to the first one anyway. + test_key = first_key + if first_key.endswith("/") and total_size > 0: + # Re-scan the first page to find a non-marker key + try: + probe_paginator = s3.get_paginator("list_objects_v2") + for probe_page in probe_paginator.paginate( + Bucket=S3_BUCKET, Prefix=prefix, PaginationConfig={"MaxItems": 1000} + ): + for obj in probe_page.get("Contents", []): + if not (obj["Key"].endswith("/") and obj["Size"] == 0): + test_key = obj["Key"] + break + if test_key != first_key: + break + except Exception: + pass # Fall back to first_key + + error = check_read_permission(s3, S3_BUCKET, test_key) + if error is None: + results.available.append( + AvailableDir(prefix=prefix, file_count=file_count, total_size=total_size) + ) + else: + results.blocked.append( + BlockedDir(prefix=prefix, file_count=file_count, error=error) + ) + + return results + + +# --------------------------------------------------------------------------- +# Output +# --------------------------------------------------------------------------- + + +def print_results(results: Results) -> None: + """Print a clean, human-readable summary to stdout.""" + print() + print("=== S3 Directory Explorer Results ===") + print(f"Bucket: {S3_BUCKET}") + + # --- Available --- + print() + print(f"--- Available ({len(results.available)}) ---") + if results.available: + for d in results.available: + print(f" {d.prefix}") + print(f" Files: {d.file_count} | Total Size: {format_size(d.total_size)}") + else: + print(" (none)") + + # --- Blocked --- + print() + print(f"--- Blocked ({len(results.blocked)}) ---") + if results.blocked: + for d in results.blocked: + if d.file_count: + print(f" {d.prefix}") + print(f" Files found: {d.file_count} | Error: {d.error}") + else: + print(f" {d.prefix}") + print(f" Error: {d.error}") + else: + print(" (none)") + + # --- Empty --- + print() + print(f"--- Empty ({len(results.empty)}) ---") + if results.empty: + for d in results.empty: + print(f" {d.prefix}") + else: + print(" (none)") + + print() + + +# --------------------------------------------------------------------------- +# Main +# --------------------------------------------------------------------------- + +if __name__ == "__main__": + import os + + # --- Read input file ------------------------------------------------------ + if not os.path.exists(INPUT_FILE): + print(f"ERROR: Input file not found: {INPUT_FILE}", file=sys.stderr) + sys.exit(1) + + try: + prefixes = read_input_file(INPUT_FILE) + except Exception as exc: + print(f"ERROR: Could not read input file: {exc}", file=sys.stderr) + sys.exit(1) + + if not prefixes: + print("No valid S3 prefixes found in the input file. Nothing to do.") + sys.exit(0) + + # --- Validate AWS profile ------------------------------------------------- + try: + session = boto3.Session(profile_name=AWS_PROFILE) + # Force credential resolution to catch bad profiles early + credentials = session.get_credentials() + if credentials is None: + raise RuntimeError( + f"No credentials found for AWS profile {AWS_PROFILE!r}" + ) + except botocore.exceptions.ProfileNotFound as exc: + print(f"ERROR: {exc}", file=sys.stderr) + sys.exit(1) + except Exception as exc: + print(f"ERROR: AWS profile validation failed: {exc}", file=sys.stderr) + sys.exit(1) + + # --- Explore -------------------------------------------------------------- + print(f"Bucket: {S3_BUCKET}", file=sys.stderr) + results = explore_directories(prefixes) + print_results(results) diff --git a/utils/sample_s3_directories.txt b/utils/sample_s3_directories.txt new file mode 100644 index 0000000..f38ba87 --- /dev/null +++ b/utils/sample_s3_directories.txt @@ -0,0 +1,8 @@ +# S3 Directory Explorer - Input File +# One S3 prefix per line (within the bucket configured in data_explorer.py). +# Blank lines and comments (#) are ignored. +# +# Examples: +# data/sales/ +# data/inventory/ +# data/archive/