--- a/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html Sat Sep 02 15:50:01 2023 +0200 +++ b/src/eric7/Documentation/Source/eric7.Plugins.CheckerPlugins.CodeStyleChecker.pycodestyle.html Sat Sep 02 15:50:18 2023 +0200 @@ -11,7 +11,7 @@ <h3>Global Attributes</h3> <table> -<tr><td>ARITHMETIC_OP</td></tr><tr><td>ASSIGNMENT_EXPRESSION_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>BLANK_EXCEPT_REGEX</td></tr><tr><td>BLANK_LINES_CONFIG</td></tr><tr><td>COMPARE_NEGATIVE_REGEX</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>DUNDER_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>INDENT_SIZE</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_DOC_LENGTH</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>NEWLINE</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>RAISE_COMMA_REGEX</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>RERAISE_COMMA_REGEX</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_COMMENTS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>STARTSWITH_DEF_REGEX</td></tr><tr><td>STARTSWITH_INDENT_STATEMENT_REGEX</td></tr><tr><td>STARTSWITH_TOP_LEVEL_REGEX</td></tr><tr><td>TESTSUITE_PATH</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>_SYMBOLIC_OPS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr> +<tr><td>ARITHMETIC_OP</td></tr><tr><td>BENCHMARK_KEYS</td></tr><tr><td>BLANK_EXCEPT_REGEX</td></tr><tr><td>BLANK_LINES_CONFIG</td></tr><tr><td>COMPARE_NEGATIVE_REGEX</td></tr><tr><td>COMPARE_SINGLETON_REGEX</td></tr><tr><td>COMPARE_TYPE_REGEX</td></tr><tr><td>DEFAULT_EXCLUDE</td></tr><tr><td>DEFAULT_IGNORE</td></tr><tr><td>DOCSTRING_REGEX</td></tr><tr><td>DUNDER_REGEX</td></tr><tr><td>ERRORCODE_REGEX</td></tr><tr><td>EXTRANEOUS_WHITESPACE_REGEX</td></tr><tr><td>HUNK_REGEX</td></tr><tr><td>INDENT_REGEX</td></tr><tr><td>INDENT_SIZE</td></tr><tr><td>KEYWORDS</td></tr><tr><td>KEYWORD_REGEX</td></tr><tr><td>LAMBDA_REGEX</td></tr><tr><td>MAX_DOC_LENGTH</td></tr><tr><td>MAX_LINE_LENGTH</td></tr><tr><td>NEWLINE</td></tr><tr><td>OPERATOR_REGEX</td></tr><tr><td>PROJECT_CONFIG</td></tr><tr><td>PyCF_ONLY_AST</td></tr><tr><td>REPORT_FORMAT</td></tr><tr><td>SINGLETONS</td></tr><tr><td>SKIP_COMMENTS</td></tr><tr><td>SKIP_TOKENS</td></tr><tr><td>STARTSWITH_DEF_REGEX</td></tr><tr><td>STARTSWITH_INDENT_STATEMENT_REGEX</td></tr><tr><td>STARTSWITH_TOP_LEVEL_REGEX</td></tr><tr><td>UNARY_OPERATORS</td></tr><tr><td>WHITESPACE</td></tr><tr><td>WHITESPACE_AFTER_COMMA_REGEX</td></tr><tr><td>WS_NEEDED_OPERATORS</td></tr><tr><td>WS_OPTIONAL_OPERATORS</td></tr><tr><td>_SYMBOLIC_OPS</td></tr><tr><td>__version__</td></tr><tr><td>_checks</td></tr><tr><td>noqa</td></tr> </table> <h3>Classes</h3> @@ -160,17 +160,13 @@ </tr> <tr> <td><a href="#missing_whitespace">missing_whitespace</a></td> -<td>Each comma, semicolon or colon should be followed by whitespace.</td> +<td>Surround operators with the correct amount of whitespace.</td> </tr> <tr> <td><a href="#missing_whitespace_after_keyword">missing_whitespace_after_keyword</a></td> <td>Keywords should be followed by whitespace.</td> </tr> <tr> -<td><a href="#missing_whitespace_around_operator">missing_whitespace_around_operator</a></td> -<td>Surround operators with a single space on either side.</td> -</tr> -<tr> <td><a href="#module_imports_on_top_of_file">module_imports_on_top_of_file</a></td> <td>Place imports at the top of the file.</td> </tr> @@ -191,30 +187,10 @@ <td>Process options passed either via arglist or command line args.</td> </tr> <tr> -<td><a href="#python_3000_async_await_keywords">python_3000_async_await_keywords</a></td> -<td>'async' and 'await' are reserved keywords starting at Python 3.7.</td> -</tr> -<tr> -<td><a href="#python_3000_backticks">python_3000_backticks</a></td> -<td>Use repr() instead of backticks in Python 3.</td> -</tr> -<tr> -<td><a href="#python_3000_has_key">python_3000_has_key</a></td> -<td>The {}.has_key() method is removed in Python 3: use the 'in' operator.</td> -</tr> -<tr> <td><a href="#python_3000_invalid_escape_sequence">python_3000_invalid_escape_sequence</a></td> <td>Invalid escape sequences are deprecated in Python 3.6.</td> </tr> <tr> -<td><a href="#python_3000_not_equal">python_3000_not_equal</a></td> -<td>New code should always use != instead of <>.</td> -</tr> -<tr> -<td><a href="#python_3000_raise_comma">python_3000_raise_comma</a></td> -<td>When raising an exception, use "raise ValueError('message')".</td> -</tr> -<tr> <td><a href="#read_config">read_config</a></td> <td>Read and parse configurations.</td> </tr> @@ -1210,16 +1186,8 @@ </p> <p> Okay: if isinstance(obj, int): - E721: if type(obj) is type(1): -</p> -<p> - When checking if an object is a string, keep in mind that it might - be a unicode string too! In Python 2.3, str and unicode have a - common base class, basestring, so you can do: -</p> -<p> - Okay: if isinstance(obj, basestring): - Okay: if type(a1) is type(b1): + Okay: if type(obj) is int: + E721: if type(obj) == type(1): </p> <div align="right"><a href="#top">Up</a></div> <hr /> @@ -1312,16 +1280,6 @@ <p> Tabs are expanded to the next multiple of 8. </p> -<p> - >>> expand_indent(' ') - 4 - >>> expand_indent('\t') - 8 - >>> expand_indent(' \t') - 8 - >>> expand_indent(' \t') - 16 -</p> <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> @@ -1502,12 +1460,32 @@ <hr /> <a NAME="missing_whitespace" ID="missing_whitespace"></a> <h2>missing_whitespace</h2> -<b>missing_whitespace</b>(<i>logical_line</i>) +<b>missing_whitespace</b>(<i>logical_line, tokens</i>) <p> -Each comma, semicolon or colon should be followed by whitespace. +Surround operators with the correct amount of whitespace. +</p> +<p> + - Always surround these binary operators with a single space on + either side: assignment (=), augmented assignment (+=, -= etc.), + comparisons (==, <, >, !=, <=, >=, in, not in, is, is not), + Booleans (and, or, not). +</p> +<p> + - Each comma, semicolon or colon should be followed by whitespace. </p> <p> + - If operators with different priorities are used, consider adding + whitespace around the operators with the lowest priorities. +</p> +<p> + Okay: i = i + 1 + Okay: submitted += 1 + Okay: x = x * 2 - 1 + Okay: hypot2 = x * x + y * y + Okay: c = (a + b) * (a - b) + Okay: foo(bar, key='word', *args, **kwargs) + Okay: alpha[:-i] Okay: [a, b] Okay: (3,) Okay: a[3,] = 1 @@ -1515,6 +1493,17 @@ Okay: a[:4] Okay: a[1:] Okay: a[1:4:2] +</p> +<p> + E225: i=i+1 + E225: submitted +=1 + E225: x = x /2 - 1 + E225: z = x **y + E225: z = 1and 1 + E226: c = (a+b) * (a-b) + E226: hypot2 = x*x + y*y + E227: c = a|b + E228: msg = fmt%(errno, errmsg) E231: ['a','b'] E231: foo(bar,baz) E231: [{'a':'b'}] @@ -1538,46 +1527,6 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> -<a NAME="missing_whitespace_around_operator" ID="missing_whitespace_around_operator"></a> -<h2>missing_whitespace_around_operator</h2> -<b>missing_whitespace_around_operator</b>(<i>logical_line, tokens</i>) - -<p> -Surround operators with a single space on either side. -</p> -<p> - - Always surround these binary operators with a single space on - either side: assignment (=), augmented assignment (+=, -= etc.), - comparisons (==, <, >, !=, <=, >=, in, not in, is, is not), - Booleans (and, or, not). -</p> -<p> - - If operators with different priorities are used, consider adding - whitespace around the operators with the lowest priorities. -</p> -<p> - Okay: i = i + 1 - Okay: submitted += 1 - Okay: x = x * 2 - 1 - Okay: hypot2 = x * x + y * y - Okay: c = (a + b) * (a - b) - Okay: foo(bar, key='word', *args, **kwargs) - Okay: alpha[:-i] -</p> -<p> - E225: i=i+1 - E225: submitted +=1 - E225: x = x /2 - 1 - E225: z = x **y - E225: z = 1and 1 - E226: c = (a+b) * (a-b) - E226: hypot2 = x*x + y*y - E227: c = a|b - E228: msg = fmt%(errno, errmsg) -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> <a NAME="module_imports_on_top_of_file" ID="module_imports_on_top_of_file"></a> <h2>module_imports_on_top_of_file</h2> <b>module_imports_on_top_of_file</b>(<i>logical_line, indent_level, checker_state, noqa</i>) @@ -1594,10 +1543,6 @@ Okay: # this is a comment\nimport os Okay: '''this is a module docstring'''\nimport os Okay: r'''this is a module docstring'''\nimport os - Okay: - try:\n\timport x\nexcept ImportError:\n\tpass\nelse:\n\tpass\nimport y - Okay: - try:\n\timport x\nexcept ImportError:\n\tpass\nfinally:\n\tpass\nimport y E402: a=1\nimport os E402: 'One string'\n"Two string"\nimport os E402: a=1\nfrom sys import x @@ -1615,14 +1560,6 @@ <p> Replace contents with 'xxx' to prevent syntax matching. </p> -<p> - >>> mute_string('"abc"') - '"xxx"' - >>> mute_string("'''abc'''") - "'''xxx'''" - >>> mute_string("r'abc'") - "r'xxx'" -</p> <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> @@ -1663,50 +1600,6 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> -<a NAME="python_3000_async_await_keywords" ID="python_3000_async_await_keywords"></a> -<h2>python_3000_async_await_keywords</h2> -<b>python_3000_async_await_keywords</b>(<i>logical_line, tokens</i>) - -<p> -'async' and 'await' are reserved keywords starting at Python 3.7. -</p> -<p> - W606: async = 42 - W606: await = 42 - Okay: async def read(db):\n data = await db.fetch('SELECT ...') -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> -<a NAME="python_3000_backticks" ID="python_3000_backticks"></a> -<h2>python_3000_backticks</h2> -<b>python_3000_backticks</b>(<i>logical_line</i>) - -<p> -Use repr() instead of backticks in Python 3. -</p> -<p> - Okay: val = repr(1 + 2) - W604: val = `1 + 2` -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> -<a NAME="python_3000_has_key" ID="python_3000_has_key"></a> -<h2>python_3000_has_key</h2> -<b>python_3000_has_key</b>(<i>logical_line, noqa</i>) - -<p> -The {}.has_key() method is removed in Python 3: use the 'in' - operator. -</p> -<p> - Okay: if "alph" in d:\n print d["alph"] - W601: assert d.has_key('alph') -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> <a NAME="python_3000_invalid_escape_sequence" ID="python_3000_invalid_escape_sequence"></a> <h2>python_3000_invalid_escape_sequence</h2> <b>python_3000_invalid_escape_sequence</b>(<i>logical_line, tokens, noqa</i>) @@ -1721,40 +1614,6 @@ <div align="right"><a href="#top">Up</a></div> <hr /> <hr /> -<a NAME="python_3000_not_equal" ID="python_3000_not_equal"></a> -<h2>python_3000_not_equal</h2> -<b>python_3000_not_equal</b>(<i>logical_line</i>) - -<p> -New code should always use != instead of <>. -</p> -<p> - The older syntax is removed in Python 3. -</p> -<p> - Okay: if a != 'no': - W603: if a <> 'no': -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> -<a NAME="python_3000_raise_comma" ID="python_3000_raise_comma"></a> -<h2>python_3000_raise_comma</h2> -<b>python_3000_raise_comma</b>(<i>logical_line</i>) - -<p> -When raising an exception, use "raise ValueError('message')". -</p> -<p> - The older form is removed in Python 3. -</p> -<p> - Okay: raise DummyError("Message") - W602: raise DummyError, "Message" -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /> -<hr /> <a NAME="read_config" ID="read_config"></a> <h2>read_config</h2> <b>read_config</b>(<i>options, args, arglist, parser</i>) @@ -1837,7 +1696,6 @@ </p> <p> Okay: if a == 0:\n a = 1\n b = 1 - E101: if a == 0:\n a = 1\n\tb = 1 </p> <div align="right"><a href="#top">Up</a></div> <hr />