#!/usr/bin/env python3 import re import sys def analyze_code_metrics(code): """Analyze code for common metrics.""" # Count functions functions = len(re.findall(r'^def\s+\w+', code, re.MULTILINE)) # Count classes classes = len(re.findall(r'^class\s+\w+', code, re.MULTILINE)) # Average line length lines = code.split('\n') avg_length = sum(len(l) for l in lines) / len(lines) if lines else 0 # Estimate complexity complexity = len(re.findall(r'\b(if|elif|else|for|while|and|or)\b', code)) return { 'functions': functions, 'classes': classes, 'avg_line_length': avg_length, 'complexity_score': complexity } if __name__ == '__main__': with open(sys.argv[1], 'r') as f: code = f.read() metrics = analyze_code_metrics(code) for key, value in metrics.items(): print(f"{key}: {value:.2f}")