magicciv/tools/sprite-generation/test_score_one.py

38 lines
1.1 KiB
Python

#!/usr/bin/env python3
import asyncio
import sys
from pathlib import Path
sys.path.insert(0, 'engine')
from registry import SpriteRegistry
from ranker import ScoringPipeline
async def test():
reg = SpriteRegistry(db_path=Path('spritegen.db'))
ranker = ScoringPipeline(registry=reg, raw_dir=Path('raw'))
sprite_id = 'units/bowmen_dwarves_f'
sprite = reg.get_sprite(sprite_id)
# Get the first variant to score
variants = reg.conn.execute(
"SELECT * FROM variants WHERE sprite_id=? AND job_status='completed' "
"AND raw_path IS NOT NULL AND (rating IS NULL OR rating != -1) "
"AND COALESCE(review_tier, 0) = ?",
(sprite_id, 0),
).fetchall()
if not variants:
print("No variants to score")
return
print(f"Scoring variant {variants[0]['id']}...")
try:
result = await ranker.score_variant_at_tier(dict(variants[0]), dict(sprite), 0)
print(f"Score result: {result}")
except Exception as e:
print(f"Error: {e}")
import traceback
traceback.print_exc()
asyncio.run(test())