MCPcopy Create free account
hub / github.com/KentBeck/BPlusTree3 / print_summary

Function print_summary

analyze_programming_time.py:166–207  ·  view source on GitHub ↗

Print summary statistics.

(sessions, daily_data)

Source from the content-addressed store, hash-verified

164
165
166def print_summary(sessions, daily_data):
167 """Print summary statistics."""
168 total_minutes = sum(s["duration_minutes"] for s in sessions)
169 total_hours = total_minutes / 60
170 total_commits = sum(len(s["commits"]) for s in sessions)
171
172 print("=" * 60)
173 print("PROGRAMMING TIME ANALYSIS SUMMARY")
174 print("=" * 60)
175 print(
176 f"Total Programming Time: {total_hours:.1f} hours ({total_minutes:.0f} minutes)"
177 )
178 print(f"Total Commits: {total_commits}")
179 print(f"Total Sessions: {len(sessions)}")
180 print(f"Average Session Length: {total_minutes/len(sessions):.1f} minutes")
181 print(f"Programming Days: {len(daily_data)}")
182 print(f"Average Hours per Day: {total_hours/len(daily_data):.1f} hours")
183 print()
184
185 # Top programming days
186 top_days = sorted(
187 daily_data.items(), key=lambda x: x[1]["duration_minutes"], reverse=True
188 )[:5]
189 print("TOP 5 PROGRAMMING DAYS:")
190 for date, data in top_days:
191 hours = data["duration_minutes"] / 60
192 print(
193 f" {date}: {hours:.1f} hours ({data['commits']} commits, {data['sessions']} sessions)"
194 )
195 print()
196
197 # Longest sessions
198 longest_sessions = sorted(
199 sessions, key=lambda x: x["duration_minutes"], reverse=True
200 )[:5]
201 print("LONGEST PROGRAMMING SESSIONS:")
202 for i, session in enumerate(longest_sessions, 1):
203 hours = session["duration_minutes"] / 60
204 start_time = session["start"].strftime("%Y-%m-%d %H:%M")
205 print(
206 f" {i}. {start_time}: {hours:.1f} hours ({len(session['commits'])} commits)"
207 )
208
209
210def main():

Callers 1

mainFunction · 0.70

Calls 1

itemsMethod · 0.45

Tested by

no test coverage detected