64 lines
1.6 KiB
Python
64 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Master script to generate all 100,000 SSC CGL questions.
|
|
Usage: python3 generators/run_all.py [--force]
|
|
"""
|
|
import sys
|
|
import os
|
|
import time
|
|
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
|
|
from db.init import init_db, get_db, get_stats
|
|
|
|
def main():
|
|
force = '--force' in sys.argv
|
|
start = time.time()
|
|
|
|
print("=" * 60)
|
|
print("SSCTopper - Question Generation Pipeline")
|
|
print("=" * 60)
|
|
|
|
# Step 1: Initialize DB
|
|
print("\n[1/5] Initializing database...")
|
|
init_db(force=force)
|
|
|
|
conn = get_db()
|
|
|
|
# Step 2: Quantitative Aptitude
|
|
print("\n[2/5] Generating Quantitative Aptitude questions...")
|
|
from generators.quant_generator import generate_all as gen_quant
|
|
gen_quant(conn)
|
|
|
|
# Step 3: Reasoning
|
|
print("\n[3/5] Generating Reasoning questions...")
|
|
from generators.reasoning_generator import generate_all as gen_reason
|
|
gen_reason(conn)
|
|
|
|
# Step 4: English
|
|
print("\n[4/5] Generating English Language questions...")
|
|
from generators.english_generator import generate_all as gen_eng
|
|
gen_eng(conn)
|
|
|
|
# Step 5: General Awareness
|
|
print("\n[5/5] Generating General Awareness questions...")
|
|
from generators.gk_generator import generate_all as gen_gk
|
|
gen_gk(conn)
|
|
|
|
# Final stats
|
|
stats = get_stats(conn)
|
|
elapsed = time.time() - start
|
|
|
|
print("\n" + "=" * 60)
|
|
print("GENERATION COMPLETE")
|
|
print("=" * 60)
|
|
for subject, count in stats.items():
|
|
print(f" {subject}: {count:,}")
|
|
print(f"\n Time taken: {elapsed:.1f} seconds")
|
|
print("=" * 60)
|
|
|
|
conn.close()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|