This commit is contained in:
pacnpal
2025-09-21 20:04:42 -04:00
parent 42a3dc7637
commit 75cc618c2b
610 changed files with 1719 additions and 4816 deletions

View File

@@ -1,113 +0,0 @@
#!/usr/bin/env python3
"""
Independent verification script to prove ALL tuple fallbacks have been eliminated.
This script searches for any remaining tuple fallback patterns and fails if any are found.
You can run this script independently to verify the claims.
"""
import os
import re
import sys
from pathlib import Path
def search_for_tuple_fallbacks():
"""Search for tuple fallback patterns in the codebase."""
# Patterns that indicate tuple fallbacks
choice_fallback_patterns = [
r'choices\.get\([^,]+,\s*[^)]+\)', # choices.get(value, fallback)
r'status_.*\.get\([^,]+,\s*[^)]+\)', # status_colors.get(value, fallback)
r'category_.*\.get\([^,]+,\s*[^)]+\)', # category_images.get(value, fallback)
r'sla_hours\.get\([^,]+,\s*[^)]+\)', # sla_hours.get(priority, fallback)
r'get_tuple_choices\(', # get_tuple_choices function
r'from_tuple\(', # from_tuple function
r'convert_tuple_choices\(', # convert_tuple_choices function
]
apps_dir = Path('apps')
if not apps_dir.exists():
print("❌ Error: apps directory not found")
return False
found_fallbacks = []
# Search all Python files in apps directory
for py_file in apps_dir.rglob('*.py'):
# Skip migrations (they're supposed to have hardcoded values)
if 'migration' in str(py_file):
continue
try:
with open(py_file, 'r', encoding='utf-8') as f:
content = f.read()
for line_num, line in enumerate(content.split('\n'), 1):
for pattern in choice_fallback_patterns:
if re.search(pattern, line):
found_fallbacks.append({
'file': py_file,
'line': line_num,
'content': line.strip(),
'pattern': pattern
})
except Exception as e:
print(f"❌ Error reading {py_file}: {e}")
continue
# Report results
if found_fallbacks:
print(f"❌ FOUND {len(found_fallbacks)} TUPLE FALLBACK PATTERNS:")
for fallback in found_fallbacks:
print(f" {fallback['file']}:{fallback['line']} - {fallback['content']}")
return False
else:
print("✅ NO TUPLE FALLBACKS FOUND - All eliminated!")
return True
def verify_tuple_functions_removed():
"""Verify that tuple fallback functions have been removed."""
# Check that get_tuple_choices is not importable
try:
from apps.core.choices.registry import get_tuple_choices
print("❌ ERROR: get_tuple_choices function still exists!")
return False
except ImportError:
print("✅ get_tuple_choices function successfully removed")
# Check that Rich Choice objects work as primary source
try:
from apps.core.choices.registry import get_choices
print("✅ get_choices function (Rich Choice objects) works as primary source")
return True
except ImportError:
print("❌ ERROR: get_choices function missing!")
return False
def main():
"""Main verification function."""
print("=== TUPLE FALLBACK ELIMINATION VERIFICATION ===\n")
# Change to backend directory if needed
if 'backend' not in os.getcwd():
backend_dir = Path(__file__).parent
os.chdir(backend_dir)
print(f"Changed directory to: {os.getcwd()}")
print("1. Searching for tuple fallback patterns...")
patterns_clean = search_for_tuple_fallbacks()
print("\n2. Verifying tuple functions removed...")
functions_removed = verify_tuple_functions_removed()
print("\n=== FINAL RESULT ===")
if patterns_clean and functions_removed:
print("🎉 SUCCESS: ALL TUPLE FALLBACKS HAVE BEEN ELIMINATED!")
return 0
else:
print("❌ FAILURE: Tuple fallbacks still exist!")
return 1
if __name__ == "__main__":
sys.exit(main())