
الكود المصدري لكتاب "Violent Python" من تأليف TJ O'Connor. تم تحويل الكود بالكامل إلى Python 3، وإعادة تنسيقه ليتوافق مع معايير PEP8، وإعادة هيكلته لإزالة مشكلات التبعيات المتعلقة بتطبيق المكتبات المهجورة.
كود مصدر الكتاب "Violent Python" للمؤلف TJ O'Connor. تم تحويل الكود بالكامل إلى بايثون 3، وإعادة تنسيقه للامتثال لمعايير PEP8، وإعادة هيكلته لإزالة مشاكل الاعتماد على المكتبات القديمة المهجورة.
لقد قمت بنشر تحويل مشابه لهذا على الكود المصدري لكتاب "Black Hat Python" لجاستن سايتز. تحقق منه هنا إذا لم تكن قد قمت به بعد.
ببساطة أنشئ دليلاً جديداً (DIR) للمشروع، وأنشئ
بيئة افتراضية أو venv له (موصى به)، واستنسخ هذا المستودع
باستخدام git clone ثم ثبّت المتطلبات باستخدام 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 المهجورة الآن بمكتبة argparse
في جميع أنحاء الكود المصدري. أصبح تحليل جميع الوسائط محتوىً الآن
تحت نطاق تنفيذ __main__ لكل ملف. جميع وسائط سطر الأوامر CLI التي كانت
إلزامية لتنفيذ البرامج النصية لكنها عُوملت كاختيارية في
الكود الأصلي تُنفَّذ الآن كوسائط موضعية. رسالة الاستخدام أصبحت
متاحة لجميع البرامج النصية التي تستخدم argparse عن طريق توفير وسيط -h إلى
سطر الأوامر CLI. إن إسناد مسؤوليات كل من الحدود
والكائن المتحكم إلى محلل سطر الأوامر CLI ليس بالتأكيد الخيار الأفضل من حيث
بنية البرمجيات، لكنه تُرك كما هو نظراً
لضرورة الامتثال لنية المبرمج الأصلي.PEP 8: E722 do not use bare except تمت
إعادة هيكلتها باستخدام عبارات استثناء أكثر تحديداً.close() على كائنات الملف/قاعدة البيانات المفتوحة. لهذا
السبب
تمت إعادة هيكلة جميع حالات التعامل مع الملفات وقواعد البيانات
باستخدام مديري السياق.# -*- coding: utf-8 -*-) بسبب
توحيد UTF-8 كترميز افتراضي لبايثون 3 (بدلاً من
ASCII في بايثون 2).