Spaces:
Sleeping
Sleeping
| """ | |
| 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"]) | |
| ''' |