Senior-Python-Architekt Code-Audit- und Refactoring-Prompt
Von Wikiprompt, der freien Prompt-Enzyklopädie
Senior-Python-Architekt Code-Audit- und Refactoring-Prompt Ein umfassender Prompt für die Prüfung und Refaktorierung von Python-Code mit strengen Standards, Modernisierung und spanischen Ausgabeanforderungen.
Prompt-InhaltSpeichern
🌐
**Puntos Clave de Cambios (en español):**
- **Eliminación de redundancias**: Se eliminaron variables innecesarias y se simplificaron operaciones repetitivas.
- **Modernización con Python 3.10+**: Se aplicaron f-strings, type hints, dataclasses y pattern matching para mejorar legibilidad y mantenibilidad.
- **Manejo de errores robusto**: Se añadieron bloques try/except con excepciones específicas para evitar fallos silenciosos.
- **Optimización de algoritmos**: Se reemplazaron bucles ineficientes por comprensiones de listas y funciones de bibliotecas estándar más eficientes.
- **Cumplimiento de PEP 8**: Se renombraron variables a nombres semánticos y se ajustó la estructura del código.
- **Seguridad**: Se corrigieron posibles vulnerabilidades de inyección y se validaron entradas de usuario.
**Código Refactorizado:**
```python
from dataclasses import dataclass
from typing import List, Optional, Union
import json
import re
from pathlib import Path
@dataclass
class Config:
"""Configuración de la aplicación."""
name: str
version: str
debug: bool = False
max_retries: int = 3
class DataProcessor:
"""Procesador de datos con validación y transformación."""
def __init__(self, config: Config) -> None:
self.config = config
self._data: List[dict] = []
def load_data(self, file_path: Union[str, Path]) -> None:
"""Carga datos desde un archivo JSON."""
try:
path = Path(file_path)
if not path.exists():
raise FileNotFoundError(f"Archivo no encontrado: {path}")
with path.open('r', encoding='utf-8') as f:
self._data = json.load(f)
except (json.JSONDecodeError, PermissionError) as e:
print(f"Error al cargar datos: {e}")
self._data = []
def process_items(self, items: List[dict]) -> List[dict]:
"""Procesa una lista de items aplicando transformaciones."""
processed = []
for item in items:
try:
if not isinstance(item, dict):
raise TypeError(f"Item no es un diccionario: {item}")
# Aplicar transformaciones con pattern matching
match item.get('type'):
case 'numeric':
processed.append(self._process_numeric(item))
case 'text':
processed.append(self._process_text(item))
case _:
processed.append(item)
except (KeyError, ValueError) as e:
print(f"Error procesando item: {e}")
continue
return processed
def _process_numeric(self, item: dict) -> dict:
"""Procesa items numéricos."""
value = item.get('value', 0)
if not isinstance(value, (int, float)):
raise ValueError(f"Valor no numérico: {value}")
return {
**item,
'value': value * 2,
'processed': True
}
def _process_text(self, item: dict) -> dict:
"""Procesa items de texto."""
text = item.get('text', '')
if not isinstance(text, str):
raise ValueError(f"Texto no válido: {text}")
# Limpiar y normalizar texto
cleaned = re.sub(r'\s+', ' ', text.strip())
return {
**item,
'text': cleaned.upper(),
'processed': True
}
def validate_data(self, data: List[dict]) -> bool:
"""Valida la integridad de los datos."""
if not data:
return False
required_keys = {'id', 'type'}
return all(
required_keys.issubset(item.keys())
for item in data
if isinstance(item, dict)
)
def save_results(self, results: List[dict], output_path: Union[str, Path]) -> None:
"""Guarda resultados en archivo JSON."""
try:
path = Path(output_path)
path.parent.mkdir(parents=True, exist_ok=True)
with path.open('w', encoding='utf-8') as f:
json.dump(results, f, indent=2, ensure_ascii=False)
except (OSError, TypeError) as e:
print(f"Error al guardar resultados: {e}")
def main() -> None:
"""Función principal de la aplicación."""
config = Config(
name="DataProcessor",
version="2.0.0",
debug=True
)
processor = DataProcessor(config)
# Datos de ejemplo
sample_data = [
{"id": 1, "type": "numeric", "value": 10},
{"id": 2, "type": "text", "text": " Hola Mundo "},
{"id": 3, "type": "unknown", "value": "test"}
]
# Validar y procesar
if processor.validate_data(sample_data):
results = processor.process_items(sample_data)
processor.save_results(results, "output/results.json")
print(f"Procesados {len(results)} items exitosamente")
else:
print("Datos inválidos: faltan campos requeridos")
if __name__ == "__main__":
main()
```
Melde dich an, um den vollständigen Prompt zu sehen
Weiter mit:
Mit der Anmeldung akzeptierst du unsere Nutzungsbedingungen und Datenschutz
Verwendung
Dieser Prompt ist für die Verwendung mit coding gedacht. Kopiere den Inhalt oben und füge ihn in dein bevorzugtes KI-Tool ein.
Für beste Ergebnisse passe die Platzhalter (eckige Klammern oder Großbuchstaben) an deine Anforderungen an.
Diskussion
0 Kommentare