
Código fuente del libro "Violent Python" de TJ O'Connor. El código ha sido completamente convertido a Python 3, reformateado para cumplir con los estándares PEP8 y refactorizado para eliminar problemas de dependencias relacionados con la implementación de librerías obsoletas.
Código fuente del libro "Violent Python" de TJ O'Connor. El código se ha convertido completamente a Python 3, reformateado para cumplir con los estándares PEP8 y refactorizado para eliminar problemas de dependencias derivados de la implementación de librerías obsoletas.
Una conversión similar a esta ha sido puesta a disposición por mí en el código fuente del libro "Black Hat Python", de Justin Seitz. Échale un vistazo aquí si aún no lo has hecho todavía.
Simplemente crea un nuevo directorio (DIR) para el proyecto, crea un nuevo
entorno virtual o venv para el mismo (recomendado), clona este repositorio
usando git clone e instala los requisitos usando pip install.
user@host:~/DIR$ git clone https://github.com/EONRaider/violent-python3
user@host:~/DIR$ python3 -m venv venv
user@host:~/DIR$ source venv/bin/activate
(venv) user@host:~/DIR$ pip install -r requirements.txt
optparse ha sido reemplazada por argparse
en todo el código fuente. Todo el análisis de argumentos ahora está contenido
bajo el ámbito de ejecución __main__ de cada archivo. Todos los argumentos de
CLI que eran obligatorios para la ejecución de los scripts pero se trataban
como opcionales en el código original ahora se implementan como posicionales.
Ahora hay un indicador de uso disponible para todos los scripts que usan
argparse al proporcionar un argumento -h a la CLI. Dejar las
responsabilidades de objeto de límite y controlador al analizador de CLI
definitivamente no es la mejor opción en términos de arquitectura de
software, pero se dejó como está debido a la necesidad de ajustarse a la
intención del programador original.PEP 8: E722 do not use bare except se han
refactorizado con cláusulas de excepción más específicas.close() en los objetos de archivo/base de datos
abiertos. Por
esta razón, todas las instancias de manipulación de archivos y bases de datos se
han refactorizado mediante administradores de contexto.# -*- coding: utf-8 -*-) debido a la
estandarización de UTF-8 como codificación predeterminada para Python 3
(que reemplaza a ASCII de Python 2).