{"meta":{"title":"Python CodeQL queries for Code Quality","intro":"Explore the queries that CodeQL uses to analyze code quality for code written in Python.","product":"Security and code quality","breadcrumbs":[{"href":"/en/code-security","title":"Security and code quality"},{"href":"/en/code-security/code-quality","title":"GitHub Code Quality"},{"href":"/en/code-security/code-quality/reference","title":"Reference"},{"href":"/en/code-security/code-quality/reference/codeql-queries","title":"CodeQL queries"},{"href":"/en/code-security/code-quality/reference/codeql-queries/python-queries","title":"Python queries"}]},"body":"Code Quality uses the following CodeQL queries to analyze Python code and detect code quality issues on:\n\n* Your **default branch**, with results shown on the repository's \"Standard findings\" dashboard\n* **Pull requests**, with findings shown as comments made by `github-code-quality[bot]`\n\nCopilot Autofix suggestions are provided for findings where possible.\n\n<div class=\"ghd-tool rowheaders\">\n\n| Query name                                                                                                                                                      | Category        | Severity       |\n| --------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- | -------------- |\n| ['import \\*' may pollute namespace](https://codeql.github.com/codeql-query-help/python/py-polluting-import/)                                                    | Maintainability | Recommendation |\n| [Backspace escape in regular expression](https://codeql.github.com/codeql-query-help/python/py-regex-backspace-escape/)                                         | Maintainability | Recommendation |\n| [Commented-out code](https://codeql.github.com/codeql-query-help/python/py-commented-out-code/)                                                                 | Maintainability | Recommendation |\n| [Comparison of constants](https://codeql.github.com/codeql-query-help/python/py-comparison-of-constants/)                                                       | Maintainability | Warning        |\n| [Comparison of identical values](https://codeql.github.com/codeql-query-help/python/py-comparison-of-identical-expressions/)                                    | Maintainability | Warning        |\n| [Constant in conditional expression or statement](https://codeql.github.com/codeql-query-help/python/py-constant-conditional-expression/)                       | Maintainability | Warning        |\n| [Duplicate key in dict literal](https://codeql.github.com/codeql-query-help/python/py-duplicate-key-dict-literal/)                                              | Maintainability | Warning        |\n| [Duplication in regular expression character class](https://codeql.github.com/codeql-query-help/python/py-regex-duplicate-in-character-class/)                  | Maintainability | Warning        |\n| [First parameter of a class method is not named 'cls'](https://codeql.github.com/codeql-query-help/python/py-not-named-cls/)                                    | Maintainability | Recommendation |\n| [First parameter of a method is not named 'self'](https://codeql.github.com/codeql-query-help/python/py-not-named-self/)                                        | Maintainability | Recommendation |\n| [Implicit string concatenation in a list](https://codeql.github.com/codeql-query-help/python/py-implicit-string-concatenation-in-list/)                         | Maintainability | Warning        |\n| [Imprecise assert](https://codeql.github.com/codeql-query-help/python/py-imprecise-assert/)                                                                     | Maintainability | Recommendation |\n| [Module imports itself](https://codeql.github.com/codeql-query-help/python/py-import-own-module/)                                                               | Maintainability | Recommendation |\n| [Module is imported more than once](https://codeql.github.com/codeql-query-help/python/py-repeated-import/)                                                     | Maintainability | Recommendation |\n| [Module is imported with 'import' and 'import from'](https://codeql.github.com/codeql-query-help/python/py-import-and-import-from/)                             | Maintainability | Recommendation |\n| [Nested loops with same variable](https://codeql.github.com/codeql-query-help/python/py-nested-loops-with-same-variable/)                                       | Maintainability | Recommendation |\n| [Overly complex `__del__` method](https://codeql.github.com/codeql-query-help/python/py-overly-complex-delete/)                                                 | Maintainability | Recommendation |\n| [Redundant comparison](https://codeql.github.com/codeql-query-help/python/py-redundant-comparison/)                                                             | Maintainability | Warning        |\n| [Should use a 'with' statement](https://codeql.github.com/codeql-query-help/python/py-should-use-with/)                                                         | Maintainability | Recommendation |\n| [Statement has no effect](https://codeql.github.com/codeql-query-help/python/py-ineffectual-statement/)                                                         | Maintainability | Recommendation |\n| [Unnecessary 'else' clause in loop](https://codeql.github.com/codeql-query-help/python/py-redundant-else/)                                                      | Maintainability | Warning        |\n| [Unnecessary lambda](https://codeql.github.com/codeql-query-help/python/py-unnecessary-lambda/)                                                                 | Maintainability | Recommendation |\n| [Unnecessary pass](https://codeql.github.com/codeql-query-help/python/py-unnecessary-pass/)                                                                     | Maintainability | Warning        |\n| [Unreachable code](https://codeql.github.com/codeql-query-help/python/py-unreachable-statement/)                                                                | Maintainability | Warning        |\n| [Unused argument in a formatting call](https://codeql.github.com/codeql-query-help/python/py-str-format-surplus-argument/)                                      | Maintainability | Warning        |\n| [Unused global variable](https://codeql.github.com/codeql-query-help/python/py-unused-global-variable/)                                                         | Maintainability | Recommendation |\n| [Unused import](https://codeql.github.com/codeql-query-help/python/py-unused-import/)                                                                           | Maintainability | Recommendation |\n| [Unused local variable](https://codeql.github.com/codeql-query-help/python/py-unused-local-variable/)                                                           | Maintainability | Recommendation |\n| [Unused named argument in formatting call](https://codeql.github.com/codeql-query-help/python/py-str-format-surplus-named-argument/)                            | Maintainability | Warning        |\n| [Use of 'global' at module level](https://codeql.github.com/codeql-query-help/python/py-redundant-global-declaration/)                                          | Maintainability | Warning        |\n| [Use of the return value of a procedure](https://codeql.github.com/codeql-query-help/python/py-procedure-return-value-used/)                                    | Maintainability | Warning        |\n| [Variable defined multiple times](https://codeql.github.com/codeql-query-help/python/py-multiple-definition/)                                                   | Maintainability | Warning        |\n| [`__del__` is called explicitly](https://codeql.github.com/codeql-query-help/python/py-explicit-call-to-delete/)                                                | Reliability     | Warning        |\n| [`__eq__` not overridden when adding attributes](https://codeql.github.com/codeql-query-help/python/py-missing-equals/)                                         | Reliability     | Warning        |\n| [`__init__` method calls overridden method](https://codeql.github.com/codeql-query-help/python/py-init-calls-subclass/)                                         | Reliability     | Warning        |\n| [`__init__` method is a generator](https://codeql.github.com/codeql-query-help/python/py-init-method-is-generator/)                                             | Reliability     | Error          |\n| [`__init__` method returns a value](https://codeql.github.com/codeql-query-help/python/py-explicit-return-in-init/)                                             | Reliability     | Error          |\n| [`__iter__` method returns a non-iterator](https://codeql.github.com/codeql-query-help/python/py-iter-returns-non-iterator/)                                    | Reliability     | Error          |\n| [An assert statement has a side-effect](https://codeql.github.com/codeql-query-help/python/py-side-effect-in-assert/)                                           | Reliability     | Error          |\n| [Asserting a tuple](https://codeql.github.com/codeql-query-help/python/py-asserts-tuple/)                                                                       | Reliability     | Error          |\n| [Comparison using is when operands support `__eq__`](https://codeql.github.com/codeql-query-help/python/py-comparison-using-is/)                                | Reliability     | Warning        |\n| [Conflicting attributes in base classes](https://codeql.github.com/codeql-query-help/python/py-conflicting-attributes/)                                         | Reliability     | Warning        |\n| [Empty except](https://codeql.github.com/codeql-query-help/python/py-empty-except/)                                                                             | Reliability     | Recommendation |\n| [Encoding error](https://codeql.github.com/codeql-query-help/python/py-encoding-error/)                                                                         | Reliability     | Error          |\n| [Except block handles 'BaseException'](https://codeql.github.com/codeql-query-help/python/py-catch-base-exception/)                                             | Reliability     | Recommendation |\n| [Explicit export is not defined](https://codeql.github.com/codeql-query-help/python/py-undefined-export/)                                                       | Reliability     | Error          |\n| [Explicit returns mixed with implicit (fall through) returns](https://codeql.github.com/codeql-query-help/python/py-mixed-returns/)                             | Reliability     | Recommendation |\n| [File is not always closed](https://codeql.github.com/codeql-query-help/python/py-file-not-closed/)                                                             | Reliability     | Warning        |\n| [First argument to super() is not enclosing class](https://codeql.github.com/codeql-query-help/python/py-super-not-enclosing-class/)                            | Reliability     | Error          |\n| [Formatted object is not a mapping](https://codeql.github.com/codeql-query-help/python/py-percent-format-not-mapping/)                                          | Reliability     | Error          |\n| [Formatting string mixes implicitly and explicitly numbered fields](https://codeql.github.com/codeql-query-help/python/py-str-format-mixed-fields/)             | Reliability     | Error          |\n| [Illegal raise](https://codeql.github.com/codeql-query-help/python/py-illegal-raise/)                                                                           | Reliability     | Error          |\n| [Incomplete ordering](https://codeql.github.com/codeql-query-help/python/py-incomplete-ordering/)                                                               | Reliability     | Warning        |\n| [Inconsistent equality and hashing](https://codeql.github.com/codeql-query-help/python/py-equals-hash-mismatch/)                                                | Reliability     | Warning        |\n| [Inconsistent equality and inequality](https://codeql.github.com/codeql-query-help/python/py-inconsistent-equality/)                                            | Reliability     | Warning        |\n| [Inconsistent method resolution order](https://codeql.github.com/codeql-query-help/python/py-inconsistent-mro/)                                                 | Reliability     | Error          |\n| [Iterable can be either a string or a sequence](https://codeql.github.com/codeql-query-help/python/py-iteration-string-and-sequence/)                           | Reliability     | Error          |\n| [Iterator does not return self from `__iter__` method](https://codeql.github.com/codeql-query-help/python/py-iter-returns-non-self/)                            | Reliability     | Error          |\n| [Loop variable capture](https://codeql.github.com/codeql-query-help/python/py-loop-variable-capture/)                                                           | Reliability     | Error          |\n| [Maybe missing 'self' in comparison](https://codeql.github.com/codeql-query-help/python/py-comparison-missing-self/)                                            | Reliability     | Warning        |\n| [Membership test with a non-container](https://codeql.github.com/codeql-query-help/python/py-member-test-non-container/)                                        | Reliability     | Error          |\n| [Mismatch between signature and use of an overridden method](https://codeql.github.com/codeql-query-help/python/py-inheritance-incorrect-overridden-signature/) | Reliability     | Recommendation |\n| [Mismatch between signature and use of an overriding method](https://codeql.github.com/codeql-query-help/python/py-inheritance-incorrect-overriding-signature/) | Reliability     | Error          |\n| [Mismatch in multiple assignment](https://codeql.github.com/codeql-query-help/python/py-mismatched-multiple-assignment/)                                        | Reliability     | Error          |\n| [Missing call to superclass `__del__` during object destruction](https://codeql.github.com/codeql-query-help/python/py-missing-call-to-delete/)                 | Reliability     | Error          |\n| [Missing call to superclass `__init__` during object initialization](https://codeql.github.com/codeql-query-help/python/py-missing-call-to-init/)               | Reliability     | Error          |\n| [Missing named arguments in formatting call](https://codeql.github.com/codeql-query-help/python/py-str-format-missing-named-argument/)                          | Reliability     | Error          |\n| [Missing part of special group in regular expression](https://codeql.github.com/codeql-query-help/python/py-regex-incomplete-special-group/)                    | Reliability     | Warning        |\n| [Modification of dictionary returned by locals()](https://codeql.github.com/codeql-query-help/python/py-modification-of-locals/)                                | Reliability     | Warning        |\n| [Modification of parameter with default](https://codeql.github.com/codeql-query-help/python/py-modification-of-default-value/)                                  | Reliability     | Error          |\n| [Multiple calls to `__del__` during object destruction](https://codeql.github.com/codeql-query-help/python/py-multiple-calls-to-delete/)                        | Reliability     | Warning        |\n| [Multiple calls to `__init__` during object initialization](https://codeql.github.com/codeql-query-help/python/py-multiple-calls-to-init/)                      | Reliability     | Warning        |\n| [Mutation of descriptor in `__get__` or `__set__` method](https://codeql.github.com/codeql-query-help/python/py-mutable-descriptor/)                            | Reliability     | Error          |\n| [Nested loops with same variable reused after inner loop body](https://codeql.github.com/codeql-query-help/python/py-nested-loops-with-same-variable-reused/)   | Reliability     | Error          |\n| [Non-callable called](https://codeql.github.com/codeql-query-help/python/py-call-to-non-callable/)                                                              | Reliability     | Error          |\n| [Non-exception in 'except' clause](https://codeql.github.com/codeql-query-help/python/py-useless-except/)                                                       | Reliability     | Error          |\n| [Non-iterable used in for loop](https://codeql.github.com/codeql-query-help/python/py-non-iterable-in-for-loop/)                                                | Reliability     | Error          |\n| [Non-standard exception raised in special method](https://codeql.github.com/codeql-query-help/python/py-unexpected-raise-in-special-method/)                    | Reliability     | Recommendation |\n| [Raising `NotImplemented`](https://codeql.github.com/codeql-query-help/python/py-raise-not-implemented/)                                                        | Reliability     | Warning        |\n| [Redundant assignment](https://codeql.github.com/codeql-query-help/python/py-redundant-assignment/)                                                             | Reliability     | Error          |\n| [Returning tuples with varying lengths](https://codeql.github.com/codeql-query-help/python/py-mixed-tuple-returns/)                                             | Reliability     | Recommendation |\n| [Signature mismatch in overriding method](https://codeql.github.com/codeql-query-help/python/py-inheritance-signature-mismatch/)                                | Reliability     | Warning        |\n| [Special method has incorrect signature](https://codeql.github.com/codeql-query-help/python/py-special-method-wrong-signature/)                                 | Reliability     | Error          |\n| [Superclass attribute shadows subclass method](https://codeql.github.com/codeql-query-help/python/py-attribute-shadows-method/)                                 | Reliability     | Error          |\n| [Suspicious unused loop iteration variable](https://codeql.github.com/codeql-query-help/python/py-unused-loop-variable/)                                        | Reliability     | Error          |\n| [Syntax error](https://codeql.github.com/codeql-query-help/python/py-syntax-error/)                                                                             | Reliability     | Error          |\n| [Testing equality to None](https://codeql.github.com/codeql-query-help/python/py-test-equals-none/)                                                             | Reliability     | Recommendation |\n| [Too few arguments in formatting call](https://codeql.github.com/codeql-query-help/python/py-str-format-missing-argument/)                                      | Reliability     | Error          |\n| [Unhashable object hashed](https://codeql.github.com/codeql-query-help/python/py-hash-unhashable-value/)                                                        | Reliability     | Error          |\n| [Unmatchable caret in regular expression](https://codeql.github.com/codeql-query-help/python/py-regex-unmatchable-caret/)                                       | Reliability     | Error          |\n| [Unmatchable dollar in regular expression](https://codeql.github.com/codeql-query-help/python/py-regex-unmatchable-dollar/)                                     | Reliability     | Error          |\n| [Unreachable `except` block](https://codeql.github.com/codeql-query-help/python/py-unreachable-except/)                                                         | Reliability     | Error          |\n| [Unsupported format character](https://codeql.github.com/codeql-query-help/python/py-percent-format-unsupported-character/)                                     | Reliability     | Error          |\n| [Unused exception object](https://codeql.github.com/codeql-query-help/python/py-unused-exception-object/)                                                       | Reliability     | Error          |\n| [Use of a print statement at module level](https://codeql.github.com/codeql-query-help/python/py-print-during-import/)                                          | Reliability     | Recommendation |\n| [Use of exit() or quit()](https://codeql.github.com/codeql-query-help/python/py-use-of-exit-or-quit/)                                                           | Reliability     | Warning        |\n| [Wrong name for an argument in a call](https://codeql.github.com/codeql-query-help/python/py-call-wrong-named-argument/)                                        | Reliability     | Error          |\n| [Wrong name for an argument in a class instantiation](https://codeql.github.com/codeql-query-help/python/py-call-wrong-named-class-argument/)                   | Reliability     | Error          |\n| [Wrong number of arguments for format](https://codeql.github.com/codeql-query-help/python/py-percent-format-wrong-arguments/)                                   | Reliability     | Error          |\n| [Wrong number of arguments in a call](https://codeql.github.com/codeql-query-help/python/py-call-wrong-arguments/)                                              | Reliability     | Error          |\n| [Wrong number of arguments in a class instantiation](https://codeql.github.com/codeql-query-help/python/py-call-wrong-number-class-arguments/)                  | Reliability     | Error          |\n\n</div>"}