تكوين pyflakes للعمل مع Zope في "النصي (الثعبان)" الكائنات على الملفات

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

  •  10-07-2019
  •  | 
  •  

سؤال

وعند تشغيل pyflakes على ملف عرض Zope نظام الملفات دليل (كما وجدت الكثير في بلون) فإنها ترجع دائما الكثير من التحذيرات التي لا تعرف بلدي المعلمات والقيم الخاصة مثل "السياق"، الذي من شأنه أن يكون صحيحا لو كانت بيثون السيناريو الحقيقي، ولكن لنظام الملفات دليل مشاهدة النصي، تعرف أنها تصريحات السحرية في الجزء العلوي، على سبيل المثال:

## Python Script "Name"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=foo, bar, baz
##
from AccessControl import getSecurityManager
user = getSecurityManager().getUser()

from Products.PythonScripts.standard import html_quote

request = container.REQUEST
RESPONSE = request.RESPONSE

return foo + bar + baz

هل هذا النوع من الثعبان استخدامها في أي مكان باستثناء Zope؟

هل، أو يمكن أن تكون معتمدة من قبل pyflakes، pylint أو أدوات مماثلة؟

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

المحلول

ونهج الممكن حاولت فقط هو ما قبل العملية النصي zope fspython بحيث يكون صالحا. لقد استعملت بعض المكالمات إلى الحوار الاقتصادي الاستراتيجي (أدناه):

#!/bin/bash
sed "s/\(^[^#]\)/  \1/" $1 | \
sed "s/^##bind [a-z]*=\([a-z][a-z]*\)$/import \1/" | \
sed "s/^##parameters=\(.*\)/def foo(\1):/" | pyflakes

وسيكون من الجيد لاستبدال هذا مع بيثون السيناريو الذي يلتف حول pyflakes ولا يغير مخطوطات الثعبان العادية.

نصائح أخرى

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

وPyflakes ليس شكلي جدا، على الأقل ليس بطريقة موثقة. يمكن تكوين Pylint لتخطي بعض رسائل الخطأ، ولكن تلك التي تحتاج إلى تخطي ستكون تلك التي هي الأكثر فائدة، بحيث قد لا يكون مفيدا أيضا.

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

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