
Code source du livre « Violent Python » de TJ O'Connor. Le code a été entièrement converti en Python 3, reformaté pour se conformer aux normes PEP8 et refactorisé afin d'éliminer les problèmes de dépendances liés à l'implémentation de bibliothèques obsolètes.
Code source du livre « Violent Python » de TJ O'Connor. Le code a été entièrement converti en Python 3, reformaté pour être conforme aux normes PEP8 et refactorisé afin d'éliminer les problèmes de dépendances liés à l'implémentation de bibliothèques obsolètes.
Une conversion similaire à celle-ci a été rendue disponible par moi-même sur le code source du livre « Black Hat Python », de Justin Seitz. Allez y jeter un œil ici si vous ne l'avez pas encore fait.
Créez simplement un nouveau répertoire (DIR) pour le projet, créez un nouvel environnement virtuel ou venv pour celui-ci (recommandé), clonez ce dépôt à l'aide de git clone et installez les dépendances avec 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, désormais obsolète, a été remplacée par argparse dans l'ensemble du code source. Tout l'analyse des arguments est désormais contenue dans le cadre d'exécution __main__ de chaque fichier. Tous les arguments CLI qui étaient obligatoires pour l'exécution des scripts mais traités comme facultatifs dans le code d'origine sont désormais implémentés comme positionnels. Une invite usage est désormais disponible pour tous les scripts qui utilisent argparse en fournissant un argument -h à la CLI. Laisser les responsabilités d'objet frontière et de contrôleur à l'analyseur CLI n'est certainement pas le meilleur choix en termes d'architecture logicielle, mais a été laissé tel quel par nécessité de conformité à l'intention du codeur original.PEP 8: E722 do not use bare except ont été refactorisées avec des clauses d'exception plus spécifiques.close() sur les objets fichier/base de données ouverts. Pour cette raison, toutes les manipulations de fichiers et de bases de données ont été refactorisées à l'aide de gestionnaires de contexte.# -*- coding: utf-8 -*-) a été supprimée en raison de la normalisation de UTF-8 comme encodage par défaut de Python 3 (remplaçant ASCII de Python 2).Les fichiers non listés ci-dessous peuvent être considérés comme ayant été refactorisés d'une manière ou d'une autre, comme établi dans la section « Remarques ».