كنت أبحث عن هذه الميزة ، لكنني لم أشاهدها في الوثائق ، لذلك أقوم بفتح طلب ميزة.
أحب أن أرى مُثبتًا يأخذ كود Python 2/3 المتوافق ويزيل دعم Python 2 بأفضل شكل ممكن.
هذا من شأنه:
__future__
( print_function
على سبيل المثال)from future import standard_library
و standard_library.install_aliases()
from builtins import *
from future.utils import python_2_unicode_compatible
إذا كان مثل هذا المثبت موجودًا بالفعل ، فأنا أحب أن أعرف عنه.
يستخدم عدد من عملائي future
لترقية الكود الخاص بهم إلى Python 3 ثم إسقاط دعم Python 2 بعد ذلك بوقت قصير ، وسيكون مثل هذا المثبت مفيدًا جدًا لهم.
إذا كان موجودًا ، فهو غير موثق جيدًا. اضطررت إلى إزالة كل ذلك يدويًا. قد يكون استخدام أداة يتم تشغيلها تلقائيًا بعلامة مثل -3
لتعني معيد البناء فقط للامتثال 3 وتجاهل توافق python2 أمرًا رائعًا.
لقد أجريت بعض التحولات بنفسي وجمعتهم في نص. إنه متاح حاليًا هنا: https://github.com/purplediane/drop2
أداة ذات صلة ، مع بعض التداخل (أي الواردات __future__
):
أشياء أخرى ملحوظة:
u
(object)
من تعريفات class
super()
callsmock
ومع ذلك ، تمكنت من استخدام sed
مقابل standard_library
:
sed -i '' '/.*standard_library.*/d' **/*.py
-from future import standard_library
-standard_library.install_aliases()
import json
import logging
import urllib.parse
أخطط لفعل الشيء نفسه من أجل:
.*python_2_unicode_compatible.*
.*implements_iterator.*
from builtins.*
أنا بالفعل على علم بـ pyupgrade واستخدمته. فإنه من المفيد جدا.
pyupgrade
(بالإضافة إلى ربط الالتزام المسبق) هي أداة رائعة لهذا الغرض. هل يمكننا إغلاق هذا FR لأن البديل متاح؟
التعليق الأكثر فائدة
لقد أجريت بعض التحولات بنفسي وجمعتهم في نص. إنه متاح حاليًا هنا: https://github.com/purplediane/drop2