Как подавить синтаксическую проверку в PyCharm?

Я использую PyCharm 3.4.1 и у меня есть этот кусок кода в моей функции:

cursor.execute('SELECT distinct "name_{0}", code, sort_order FROM {1}'.format(get_language(), ProgrammeLevel._meta.db_table))

PyCharm правильно распознает, что строка содержит код SQL, но проверка синтаксиса кода сообщает мне, что у меня есть синтаксическая ошибка из-за FROM {1} Он говорит: <comma join expression> expected, got '{', что является действительным моментом, но я знаю, что делаю.

для большинства, если не всех проверок PyCharm я могу написать # noinspection комментарий в нужном месте и выключите проверку для некоторого фрагмента кода. Я сделал Итак, чтобы отключить PyProtectedMember проверка фрагмента кода, который я только что дал. Как отключить проверку синтаксиса для этой строки кода? Что такое название инспекции, чтобы дать noinspection комментарии?

1 ответов


это контролируется с помощью языковых инъекций, а не проверок.

подавив ошибку:
Settings ->Editor ->Language Injections и снимите флажок, который говорит:
python:"SQL select/delete/insert/update/create"

Language Injections


или, чтобы отключить его только на строках с {} в них измените самый конец Places Pattern С .* to [^{}]* вот так:

+ pyStringLiteralMatches("[ \t\r\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX))).*")

в это:

+ pyStringLiteralMatches("[ \t\r\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX)))[^{}]*")

pyStringLiteralMatches