51 lines
2.1 KiB
Python
51 lines
2.1 KiB
Python
from src.services.postgresql_manager import PostgreSQLManager
|
|
from src.utils.config import config
|
|
from src.models.activity import Activity
|
|
from src.services.power_estimator import PowerEstimatorService
|
|
from sqlalchemy import text, or_
|
|
|
|
def debug_power():
|
|
print("Debugging Estimated Power...")
|
|
db_manager = PostgreSQLManager(config.DATABASE_URL)
|
|
with db_manager.get_db_session() as session:
|
|
# 1. Total Cycling
|
|
cycling_count = session.query(Activity).filter(Activity.activity_type.ilike('%cycling%')).count()
|
|
print(f"Total Cycling Activities: {cycling_count}")
|
|
|
|
# 2. Missing Power
|
|
missing_power = session.query(Activity).filter(
|
|
Activity.activity_type.ilike('%cycling%'),
|
|
(Activity.avg_power == None) | (Activity.avg_power == 0)
|
|
).count()
|
|
print(f"Cycling with Missing Power: {missing_power}")
|
|
|
|
# 3. Already Estimated
|
|
estimated_count = session.query(Activity).filter(Activity.is_estimated_power == True).count()
|
|
print(f"Activities with is_estimated_power=True: {estimated_count}")
|
|
|
|
# 4. Candidates for Job
|
|
candidates = session.query(Activity).filter(
|
|
Activity.activity_type.ilike('%cycling%'),
|
|
(Activity.avg_power == None) | (Activity.avg_power == 0),
|
|
Activity.file_content != None
|
|
).all()
|
|
print(f"Job Candidates (Cycling + No Power + Has File): {len(candidates)}")
|
|
|
|
if len(candidates) > 0:
|
|
print(f"First candidate ID: {candidates[0].id}")
|
|
# Try to estimate one
|
|
print("Attempting to estimate power for first candidate...")
|
|
try:
|
|
estimator = PowerEstimatorService(session)
|
|
res = estimator.estimate_power_for_activity(candidates[0].id)
|
|
print(f"Test Estimation Result: {res}")
|
|
except Exception as e:
|
|
print(f"Test Estimation FAILED: {e}")
|
|
import traceback
|
|
traceback.print_exc()
|
|
else:
|
|
print("No candidates found for estimation.")
|
|
|
|
if __name__ == "__main__":
|
|
debug_power()
|