diff --git a/scaffoldforge/generators/code.py b/scaffoldforge/generators/code.py index d3c7336..40508c1 100644 --- a/scaffoldforge/generators/code.py +++ b/scaffoldforge/generators/code.py @@ -1,10 +1,10 @@ """Code generation functionality.""" -from typing import Any, Dict, List +from typing import Any +from scaffoldforge.generators.models import FileSpec from scaffoldforge.parsers import IssueData from scaffoldforge.templates import TemplateEngine -from scaffoldforge.generators.models import FileSpec class CodeGenerator: @@ -36,7 +36,7 @@ class CodeGenerator: def generate_all_files( self, language: str, issue_data: IssueData - ) -> List[FileSpec]: + ) -> list[FileSpec]: """Generate all project files. Args: @@ -46,7 +46,7 @@ class CodeGenerator: Returns: List of FileSpec objects. """ - files = [] + files: list[FileSpec] = [] context = self.template_engine.get_template_context(issue_data) files.extend(self._generate_source_files(language, context)) @@ -55,8 +55,8 @@ class CodeGenerator: return files def _generate_source_files( - self, language: str, context: Dict[str, Any] - ) -> List[FileSpec]: + self, language: str, context: dict[str, Any] + ) -> list[FileSpec]: """Generate source code files. Args: @@ -66,7 +66,7 @@ class CodeGenerator: Returns: List of FileSpec objects. """ - files = [] + files: list[FileSpec] = [] source_templates = self.DEFAULT_FILES.get(language, []) for template_name in source_templates: @@ -74,8 +74,6 @@ class CodeGenerator: content = self.template_engine.render( template_name, context, language ) - extension = self._get_extension(language) - filename = f"{template_name}{extension}" if not template_name.endswith(extension) else template_name path = self._get_source_path(template_name, language) files.append(FileSpec(path=path, content=content)) except ValueError: @@ -84,8 +82,8 @@ class CodeGenerator: return files def _generate_config_files( - self, language: str, context: Dict[str, Any] - ) -> List[FileSpec]: + self, language: str, context: dict[str, Any] + ) -> list[FileSpec]: """Generate configuration files. Args: @@ -110,7 +108,7 @@ class CodeGenerator: return files def _create_empty_file( - self, template_name: str, language: str, context: Dict[str, Any] + self, template_name: str, language: str, context: dict[str, Any] ) -> FileSpec: """Create an empty file with TODO comments. @@ -122,8 +120,6 @@ class CodeGenerator: Returns: FileSpec object. """ - extension = self._get_extension(language) - filename = f"{template_name}{extension}" path = self._get_source_path(template_name, language) todo_items = self.issue_data.get_todo_items() @@ -135,7 +131,7 @@ class CodeGenerator: return FileSpec(path=path, content=content) def _generate_todo_content( - self, language: str, template_name: str, todo_items: List[str] + self, language: str, template_name: str, todo_items: list[str] ) -> str: """Generate TODO comments for a file. @@ -199,7 +195,7 @@ class CodeGenerator: return f"{template_name}{self._get_extension(language)}" def generate_single_file( - self, filename: str, language: str, extra_context: Dict[str, Any] = None + self, filename: str, language: str, extra_context: dict[str, Any] | None = None ) -> str: """Generate content for a single file.