debug-env / debug_env /tasks /task5 /seed_data.py
hugsbun's picture
first commit
ba52031
Raw
History Blame Contribute Delete
7.03 kB
"""
Task 5: Unused Imports and Dead Code Seed Data
Comprehensive seed data for code quality task.
Contains Python code with unused imports, unused variables, and dead code paths
that can be found using search, dependency analysis, and code structure inspection.
"""
from typing import Any, Dict, List
def get_task5_seed_data() -> Dict[str, Any]:
"""
Generate seed data for task5 (Unused Imports & Dead Code).
Files:
- messy_code.py: Module with unused imports and dead code
Issues Present:
1. Unused imports (json, urllib, sys)
2. Unused imports from typing (Tuple, Callable, Dict)
3. Unused variable assignments
4. Dead code paths (unreachable due to early returns)
5. Commented-out code blocks
6. Unused function parameters
7. Unused class attributes
"""
return {
"files": {
"messy_code.py": get_messy_code_content(),
},
"test_file": "test_messy_code.py",
"issues_to_fix": [
"Remove unused import: json (line 3)",
"Remove unused import: urllib (line 4)",
"Remove unused import from typing: Tuple, Callable, Dict (line 6)",
"Remove unused variable: config_data (line 20)",
"Remove unused variable: temp_result (line 28)",
"Remove dead code: parse_legacy_format function (lines 35-42)",
"Remove dead code: return statement in process_data (line 59-60)",
"Remove unused parameter: debug_mode in analyze_data (line 68)",
"Remove unused class attribute: _cache in DataProcessor (line 77)",
"Remove commented-out code blocks (lines 82-85, 95-98)",
],
"tools_to_use": [
"search_code",
"get_file_structure",
"get_dependencies",
"edit_file",
"run_tests",
],
"difficulty": "medium",
}
def get_messy_code_content() -> str:
"""Get the broken messy_code.py file content."""
return '''"""
Messy module with unused imports, variables, and dead code.
Needs cleanup and refactoring.
"""
import json # UNUSED
import urllib # UNUSED
from typing import List, Optional
from typing import Tuple, Callable, Dict # UNUSED: Tuple, Callable, Dict
def load_data(filename: str) -> List[str]:
"""Load data from file."""
try:
with open(filename, "r") as f:
return f.readlines()
except FileNotFoundError:
# Unused variable assignment
config_data = {"default": "path", "timeout": 30}
return []
def process_data(items: List[str]) -> List[str]:
"""Process items."""
# Unused variable
temp_result = []
results = []
for item in items:
results.append(item.strip().upper())
# Dead code: unreachable due to early return
return results
unused_value = 999 # Unreachable
processed = [x.lower() for x in results] # Unreachable
def parse_legacy_format(data: str) -> Optional[str]:
"""
Dead code function - never called.
Parse data in legacy format.
"""
# This entire function is dead code
parts = data.split("|")
if len(parts) != 3:
return None
return parts[1]
def analyze_data(
items: List[str],
debug_mode: bool = False, # UNUSED parameter
) -> dict:
"""Analyze items and return summary."""
# debug_mode is never used
count = len(items)
non_empty = len([x for x in items if x.strip()])
return {
"total": count,
"non_empty": non_empty,
"empty": count - non_empty,
}
class DataProcessor:
"""Process data with potential for cleanup."""
def __init__(self):
"""Initialize processor."""
self.data = []
self._cache = {} # UNUSED: never read or written
def process(self, items: List[str]) -> List[str]:
"""Process items."""
# Commented-out code blocks
# self._cache["processed"] = items
# processed_items = self._preprocess(items)
# results = self._apply_transformations(processed_items)
results = []
for item in items:
results.append(item.strip().upper())
# More commented code
# self._cache["results"] = results
# logger.debug(f"Processed {len(results)} items")
return results
def validate(self, items: List[str]) -> bool:
"""Validate items."""
return len(items) > 0
def main():
"""Main entry point."""
data = load_data("data.txt")
processed = process_data(data)
analysis = analyze_data(processed, debug_mode=True)
processor = DataProcessor()
result = processor.process(data)
return {
"processed": processed,
"analysis": analysis,
"result": result,
}
if __name__ == "__main__":
main()
'''
def get_test_file_content() -> str:
"""Get the test_messy_code.py file content."""
return '''"""
Tests for messy_code module.
"""
import pytest
from messy_code import (
load_data,
process_data,
analyze_data,
DataProcessor,
main,
)
def test_process_data():
"""Test process_data function."""
input_data = ["hello", "world", "test"]
result = process_data(input_data)
assert len(result) == 3
assert result[0] == "HELLO"
assert result[1] == "WORLD"
assert result[2] == "TEST"
def test_process_data_with_whitespace():
"""Test process_data with whitespace."""
input_data = [" hello ", "\\tworld\\t", "\\n test "]
result = process_data(input_data)
assert result[0] == "HELLO"
assert result[1] == "WORLD"
assert result[2] == "TEST"
def test_analyze_data():
"""Test analyze_data function."""
items = ["hello", "", "world", "", ""]
result = analyze_data(items)
assert result["total"] == 5
assert result["non_empty"] == 2
assert result["empty"] == 3
def test_analyze_data_all_non_empty():
"""Test analyze_data with all non-empty items."""
items = ["a", "b", "c"]
result = analyze_data(items)
assert result["total"] == 3
assert result["non_empty"] == 3
assert result["empty"] == 0
def test_data_processor():
"""Test DataProcessor class."""
processor = DataProcessor()
data = ["test", "data", "items"]
result = processor.process(data)
assert len(result) == 3
assert result[0] == "TEST"
def test_data_processor_validate():
"""Test DataProcessor validation."""
processor = DataProcessor()
assert processor.validate(["item"]) is True
assert processor.validate([]) is False
def test_main():
"""Test main function."""
# Note: This test will fail if data.txt doesn't exist
# It's included to show the expected behavior
try:
result = main()
assert result is not None
assert "processed" in result
assert "analysis" in result
except FileNotFoundError:
# Expected if data.txt doesn't exist
pass
if __name__ == "__main__":
pytest.main([__file__, "-v"])
'''