أداة لتحديد ما أدنى نسخة من بيثون المطلوب؟

StackOverflow https://stackoverflow.com/questions/804538

  •  03-07-2019
  •  | 
  •  

سؤال

هل هناك شيء مماثل لPylint، من شأنها أن ننظر إلى برنامج نصي بيثون (أو تشغيلها)، وتحديد إصدار بيثون كل سطر (أو وظيفة) يتطلب؟

وعلى سبيل المثال، استخدام النظري:

$ magic_tool <EOF
with something:
    pass
EOF
1: 'with' statement requires Python 2.6 or greater

$ magic_tool <EOF
class Something:
    @classmethod
    def blah(cls):
        pass
EOF
2: classmethod requires Python 2.2 or greater
$ magic_tool <EOF
print """Test
"""
EOF
1: Triple-quote requires Python 1.5 of later

هل مثل هذا الشيء ممكن؟ أعتقد أن أبسط طريقة ليكون لديهم كافة إصدارات بيثون على القرص، تشغيل البرنامج النصي مع كل واحد ونرى ما يحدث أخطاء ..

هل كانت مفيدة؟

المحلول

ومستوحاة من هذا سؤال ممتاز، وأنا في الآونة الأخيرة وضعت معا السيناريو الذي يحاول القيام بذلك. يمكنك العثور على جيثب على pyqver .

وأنها كاملة معقولة ولكن هناك بعض الجوانب التي لم يتم التعامل معها بعد (كما هو مذكور في ملف اقرأني). لا تتردد في مفترق وتحسينه!

نصائح أخرى

وليس إجابة مفيدة الفعلية ولكن هنا يذهب على أي حال. وأعتقد أن هذا يجب أن تكون قابلة للتنفيذ لجعل (وإن كان من المحتمل جدا تمرين)، على سبيل المثال يمكن أن نتأكد من أن لديك كل قواعد النحو الرسمية للإصدارات تريد التحقق، مثل <وأ href = "HTTP: //docs.python. غزاله / إشارة / grammar.html "يختلط =" noreferrer "> هذا واحد .

وبعد ذلك تحليل بعض الشيء من التعليمات البرمجية بدءا من نسخة القواعد الأولى. التالي كنت في حاجة الى خريطة مماثلة من كل مساحات وحدة مدمجة وتحليل الرمز مرة أخرى بدءا من الإصدار الأقدم، على الرغم من أنها قد تكون صعبة للتمييز بين وحدات وحدات مضمنة الخارجية أو شيء بين بين مثل ElementTree.

ويجب أن تكون النتيجة لمحة عامة عن الإصدارات التي تدعم بناء جملة رمز ولمحة عامة عن وحدات وإصدار (على كل حال) وهناك حاجة لاستخدامها. مع هذه النتيجة يمكن أن تحسب أفضل أدنى وأعلى الإصدار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top