ecologits-chat / impacts_tracker.py
yipfram's picture
Upload 14 files
b00f1d1 verified
class ImpactsTracker:
"""Simple tracker for environmental impacts"""
def __init__(self):
self.reset()
def reset(self):
"""Reset all counters to zero"""
self.total_energy = 0.0
self.total_carbon = 0.0 # GWP in CO2 equivalent
self.generation_count = 0
self.last_energy = 0.0
self.last_carbon = 0.0
def add_impact(self, impacts):
"""Add new impact data from API response"""
# Calculate energy impact (use average of min/max)
energy_impact = (impacts.energy.value.min + impacts.energy.value.max) / 2
# Calculate carbon impact (use average of min/max)
carbon_impact = (impacts.gwp.value.min + impacts.gwp.value.max) / 2
# Store last impact for display
self.last_energy = energy_impact
self.last_carbon = carbon_impact
# Add to totals
self.total_energy += energy_impact
self.total_carbon += carbon_impact
self.generation_count += 1
def get_summary(self):
"""Get a simple summary of impacts"""
return {
'last_energy': self.last_energy,
'last_carbon': self.last_carbon,
'total_energy': self.total_energy,
'total_carbon': self.total_carbon,
'generation_count': self.generation_count
}