Files
Srilekha 78a46a8dbe
HIFFI Multi-Platform CI / test (3.12) (push) Successful in 50s
HIFFI Multi-Platform CI / test (3.11) (push) Successful in 50s
feat: finalize root api.py with X-Auth-Secret auth security and clean pure sales cohort
2026-11-04 16:49:39 +05:30

48 lines
1.8 KiB
Python

import sqlite3
def audit_sales_table():
conn = sqlite3.connect('data/hiffi_catalog.db')
cur = conn.cursor()
# 1. Check schema
cur.execute("PRAGMA table_info(commercial_sales)")
columns = [c[1] for c in cur.fetchall()]
if not columns:
print("❌ ERROR: commercial_sales table does not exist in the database.")
conn.close()
return
print(f"✅ Table Found. Columns: {', '.join(columns)}\n")
# 2. Check Provenance Flags distribution
try:
cur.execute("SELECT provenance_flag, COUNT(*) FROM commercial_sales GROUP BY provenance_flag")
flags = cur.fetchall()
print("Provenance Flag Distribution:")
for flag, count in flags:
print(f" - {flag}: {count} records")
# 3. Check for NULLs in critical format breakdown columns
cur.execute("""
SELECT
COUNT(*) as total,
SUM(CASE WHEN pure_album_sales IS NULL THEN 1 ELSE 0 END) as null_albums,
SUM(CASE WHEN physical_singles_sales IS NULL THEN 1 ELSE 0 END) as null_physical,
SUM(CASE WHEN digital_singles_sales IS NULL THEN 1 ELSE 0 END) as null_digital,
SUM(CASE WHEN streaming_eas IS NULL THEN 1 ELSE 0 END) as null_streaming
FROM commercial_sales
""")
nulls = cur.fetchone()
print("\nMissing Data (NULL check):")
print(f"Total Sales Records: {nulls[0]}")
print(f"Null Pure Albums: {nulls[1]} | Null Physical Singles: {nulls[2]}")
print(f"Null Digital Singles: {nulls[3]} | Null Streaming EAS: {nulls[4]}")
except sqlite3.OperationalError as e:
print(f"\n⚠️ Schema Error: {e}. The table is missing required columns.")
conn.close()
if __name__ == "__main__":
audit_sales_table()