MistriDevLab / utils /utils.py
acecalisto3's picture
Create utils.py
6c0afa0 verified
raw
history blame
2.09 kB
import black
from pylint import lint
from io import StringIO
from typing import List, Dict, Optional
# --- Define custom exceptions for better error handling ---
class CodeRefinementError(Exception):
"""Raised when code refinement fails."""
pass
class CodeTestingError(Exception):
"""Raised when code testing fails."""
pass
class CodeIntegrationError(Exception):
"""Raised when code integration fails."""
pass
# --- Implement code refinement functionality ---
def refine_code(file_path: str) -> str:
"""Refines the code in the specified file."""
try:
with open(file_path, 'r') as f:
code = f.read()
refined_code = black.format_str(code, mode=black.FileMode())
return refined_code
except black.InvalidInput:
raise CodeRefinementError("Error: Invalid code input for black formatting.")
except FileNotFoundError:
raise CodeRefinementError(f"Error: File not found: {file_path}")
except Exception as e:
raise CodeRefinementError(f"Error during code refinement: {e}")
# --- Implement code testing functionality ---
def test_code(file_path: str) -> str:
"""Tests the code in the specified file."""
try:
with open(file_path, 'r') as f:
code = f.read()
output = StringIO()
lint.run(code, output=output)
return output.getvalue()
except FileNotFoundError:
raise CodeTestingError(f"Error: File not found: {file_path}")
except Exception as e:
raise CodeTestingError(f"Error during code testing: {e}")
# --- Implement code integration functionality ---
def integrate_code(file_path: str, code_snippet: str) -> str:
"""Integrates the code snippet into the specified file."""
try:
with open(file_path, 'a') as f:
f.write(code_snippet)
return "Code integrated successfully."
except FileNotFoundError:
raise CodeIntegrationError(f"Error: File not found: {file_path}")
except Exception as e:
raise CodeIntegrationError(f"Error during code integration: {e}")