Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 29 additions & 27 deletions pdd/sync_determine_operation.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,33 @@
from pdd.llm_invoke import llm_invoke
from pdd.get_language import get_language

_EXTENSIONS = {
'python': 'py',
'javascript': 'js',
'typescript': 'ts',
'java': 'java',
'cpp': 'cpp',
'c': 'c',
'ruby': 'rb',
'go': 'go',
'rust': 'rs',
'php': 'php',
'swift': 'swift',
'kotlin': 'kt',
'scala': 'scala',
'csharp': 'cs',
'css': 'css',
'html': 'html',
'sql': 'sql',
'shell': 'sh',
'bash': 'sh',
'powershell': 'ps1',
'r': 'r',
'matlab': 'm',
'lua': 'lua',
'perl': 'pl',
}

# Constants - Use functions for dynamic path resolution
def get_pdd_dir():
"""Get the .pdd directory relative to current working directory."""
Expand Down Expand Up @@ -180,33 +207,8 @@ def release(self):

def get_extension(language: str) -> str:
"""Get file extension for a programming language."""
extensions = {
'python': 'py',
'javascript': 'js',
'typescript': 'ts',
'java': 'java',
'cpp': 'cpp',
'c': 'c',
'ruby': 'rb',
'go': 'go',
'rust': 'rs',
'php': 'php',
'swift': 'swift',
'kotlin': 'kt',
'scala': 'scala',
'csharp': 'cs',
'css': 'css',
'html': 'html',
'sql': 'sql',
'shell': 'sh',
'bash': 'sh',
'powershell': 'ps1',
'r': 'r',
'matlab': 'm',
'lua': 'lua',
'perl': 'pl',
}
return extensions.get(language.lower(), language.lower())
# Move the extensions dict out of the function to module-scope for performance.
return _EXTENSIONS.get(language.lower(), language.lower())


def get_pdd_file_paths(basename: str, language: str, prompts_dir: str = "prompts", context_override: Optional[str] = None) -> Dict[str, Path]:
Expand Down