84 lines
2.1 KiB
Python
84 lines
2.1 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Check arc_puzzles table for ConceptArc entries
|
|
"""
|
|
|
|
import os
|
|
import pymysql
|
|
from dotenv import load_dotenv
|
|
|
|
def load_env_config():
|
|
"""Load database configuration from .env file"""
|
|
load_dotenv()
|
|
return {
|
|
'host': os.getenv('DB_HOST'),
|
|
'user': os.getenv('DB_USER'),
|
|
'password': os.getenv('DB_PASSWORD'),
|
|
'database': os.getenv('DB_NAME'),
|
|
'port': int(os.getenv('DB_PORT', 3306)),
|
|
'charset': 'utf8mb4'
|
|
}
|
|
|
|
def main():
|
|
print("Checking arc_puzzles table")
|
|
print("=" * 50)
|
|
|
|
config = load_env_config()
|
|
connection = pymysql.connect(**config)
|
|
cursor = connection.cursor()
|
|
|
|
# Check total counts by corpora
|
|
cursor.execute("""
|
|
SELECT corpora, COUNT(*) as count
|
|
FROM arc_puzzles
|
|
GROUP BY corpora
|
|
ORDER BY corpora
|
|
""")
|
|
|
|
print("\nTotal puzzles by corpora:")
|
|
for corpora, count in cursor.fetchall():
|
|
print(f" {corpora}: {count}")
|
|
|
|
# Check ConceptArc entries in detail
|
|
cursor.execute("""
|
|
SELECT id, corpora, `set`, difficulty, version
|
|
FROM arc_puzzles
|
|
WHERE corpora = 'ConceptArc'
|
|
ORDER BY `set`, id
|
|
LIMIT 20
|
|
""")
|
|
|
|
print("\n" + "=" * 50)
|
|
print("First 20 ConceptArc entries in arc_puzzles:")
|
|
print("=" * 50)
|
|
print(f"{'ID':<20} {'Corpora':<15} {'Set':<20} {'Difficulty':<12} {'Version':<10}")
|
|
print("-" * 80)
|
|
|
|
rows = cursor.fetchall()
|
|
if rows:
|
|
for row in rows:
|
|
puzzle_id, corpora, set_name, difficulty, version = row
|
|
print(f"{puzzle_id:<20} {corpora:<15} {set_name:<20} {str(difficulty):<12} {str(version):<10}")
|
|
else:
|
|
print("No ConceptArc entries found!")
|
|
|
|
# Count by set
|
|
cursor.execute("""
|
|
SELECT `set`, COUNT(*) as count
|
|
FROM arc_puzzles
|
|
WHERE corpora = 'ConceptArc'
|
|
GROUP BY `set`
|
|
ORDER BY `set`
|
|
""")
|
|
|
|
print("\n" + "=" * 50)
|
|
print("ConceptArc puzzles by category:")
|
|
print("=" * 50)
|
|
for set_name, count in cursor.fetchall():
|
|
print(f" {set_name}: {count}")
|
|
|
|
connection.close()
|
|
|
|
if __name__ == '__main__':
|
|
main()
|