I'm using PyCharm 3.4.1 and I have this piece of code in my function:
cursor.execute('SELECT distinct "name_{0}", code, sort_order FROM {1}'.format(get_language(), ProgrammeLevel._meta.db_table))
PyCharm correctly recognizes that the string contains SQL code, but the code syntax inspection informs me that I have a syntax error because of FROM {1}
, it says: <comma join expression> expected, got '{'
, which is a valid point, but I know what I'm doing.
For most if not all PyCharm inspections I can write a # noinspection
comment in the right place and turn the inspection off for some piece of code. I did so, to turn off the PyProtectedMember
inspection for the code snippet I just gave. How can I turn off the syntax inspection for this line of code? What is the inspection name to give to noinspection
comment?
This is controlled with language injections rather than inspections.
To suppress the error:Settings
-> Editor
-> Language Injections
and uncheck the box that says:python:"SQL select/delete/insert/update/create"
Or, to only disable it on strings with {} in them, change the very end of the Places Pattern
from .*
to [^{}]*
like so:
+ pyStringLiteralMatches("[ \\t\\r\\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX))).*")
To this:
+ pyStringLiteralMatches("[ \\t\\r\\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX)))[^{}]*")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With