Charles Harris | d6c7564 | 2025-02-23 17:55:45 | [diff] [blame] | 1 | extend-exclude = [ |
Dimitri Papadopoulos Orfanos | c31e599 | 2024-12-16 15:34:22 | [diff] [blame] | 2 | "numpy/__config__.py", |
| 3 | "numpy/distutils", |
| 4 | "numpy/typing/_char_codes.py", |
| 5 | "numpy/typing/tests/data", |
| 6 | "spin/cmds.py", |
Charles Harris | 0e5bf57 | 2024-12-17 17:58:56 | [diff] [blame] | 7 | # Submodules. |
| 8 | "doc/source/_static/scipy-mathjax", |
| 9 | "vendored-meson/meson", |
| 10 | "numpy/fft/pocketfft", |
| 11 | "numpy/_core/src/umath/svml", |
| 12 | "numpy/_core/src/npysort/x86-simd-sort", |
| 13 | "numpy/_core/src/highway", |
| 14 | "numpy/_core/src/common/pythoncapi-compat", |
Dimitri Papadopoulos Orfanos | c31e599 | 2024-12-16 15:34:22 | [diff] [blame] | 15 | ] |
| 16 | |
Pieter Eendebak | 49f31e7 | 2025-05-12 08:22:18 | [diff] [blame] | 17 | line-length = 88 |
| 18 | |
Dimitri Papadopoulos Orfanos | c31e599 | 2024-12-16 15:34:22 | [diff] [blame] | 19 | [lint] |
| 20 | preview = true |
Dimitri Papadopoulos Orfanos | 17af48a | 2025-04-17 06:36:14 | [diff] [blame] | 21 | extend-select = [ |
Dimitri Papadopoulos | 18b06a5 | 2025-04-18 10:38:07 | [diff] [blame] | 22 | "B", |
Dimitri Papadopoulos | 73374eb | 2025-05-01 10:38:49 | [diff] [blame] | 23 | "C4", |
Dimitri Papadopoulos | 1b9db02 | 2025-05-15 13:35:11 | [diff] [blame] | 24 | "ISC", |
Dimitri Papadopoulos | 73374eb | 2025-05-01 10:38:49 | [diff] [blame] | 25 | "LOG", |
| 26 | "G", |
Dimitri Papadopoulos | 5c47ca1 | 2025-04-18 09:25:53 | [diff] [blame] | 27 | "PIE", |
Dimitri Papadopoulos | 73374eb | 2025-05-01 10:38:49 | [diff] [blame] | 28 | "TID", |
Dimitri Papadopoulos | 3290ee6 | 2025-04-18 09:26:37 | [diff] [blame] | 29 | "FLY", |
Dimitri Papadopoulos | 4e107ca | 2025-05-15 09:42:47 | [diff] [blame] | 30 | "I", |
Dimitri Papadopoulos | 8552f09 | 2025-05-15 13:47:38 | [diff] [blame] | 31 | "PD", |
Dimitri Papadopoulos Orfanos | 17af48a | 2025-04-17 06:36:14 | [diff] [blame] | 32 | "E", |
| 33 | "W", |
Dimitri Papadopoulos | 168b2ef | 2025-04-17 11:36:00 | [diff] [blame] | 34 | "PGH", |
Dimitri Papadopoulos | ee4fb00 | 2025-04-17 18:44:13 | [diff] [blame] | 35 | "PLE", |
Dimitri Papadopoulos Orfanos | 2c7b0e4 | 2025-04-19 12:05:29 | [diff] [blame] | 36 | "UP", |
Dimitri Papadopoulos Orfanos | 17af48a | 2025-04-17 06:36:14 | [diff] [blame] | 37 | ] |
Dimitri Papadopoulos Orfanos | c31e599 | 2024-12-16 15:34:22 | [diff] [blame] | 38 | ignore = [ |
Dimitri Papadopoulos | 18b06a5 | 2025-04-18 10:38:07 | [diff] [blame] | 39 | "B006", # Do not use mutable data structures for argument defaults |
| 40 | "B007", # Loop control variable not used within loop body |
| 41 | "B011", # Do not `assert False` (`python -O` removes these calls), raise `AssertionError()` |
| 42 | "B023", # Function definition does not bind loop variable |
| 43 | "B028", # No explicit `stacklevel` keyword argument found |
| 44 | "B904", # Within an `except` clause distinguish raised exceptions from errors in exception handling |
| 45 | "B905", #`zip()` without an explicit `strict=` parameter |
Dimitri Papadopoulos | 73374eb | 2025-05-01 10:38:49 | [diff] [blame] | 46 | "C408", # Unnecessary `dict()` call (rewrite as a literal) |
Dimitri Papadopoulos | 1b9db02 | 2025-05-15 13:35:11 | [diff] [blame] | 47 | "ISC002", # Implicitly concatenated string literals over multiple lines |
Dimitri Papadopoulos | 5c47ca1 | 2025-04-18 09:25:53 | [diff] [blame] | 48 | "PIE790", # Unnecessary `pass` statement |
Dimitri Papadopoulos | 8552f09 | 2025-05-15 13:47:38 | [diff] [blame] | 49 | "PD901", # Avoid using the generic variable name `df` for DataFrames |
Dimitri Papadopoulos | 48793d5 | 2025-04-19 08:49:11 | [diff] [blame] | 50 | "E241", # Multiple spaces after comma |
Dimitri Papadopoulos | 48793d5 | 2025-04-19 08:49:11 | [diff] [blame] | 51 | "E265", # Block comment should start with `# ` |
| 52 | "E266", # Too many leading `#` before block comment |
| 53 | "E302", # TODO: Expected 2 blank lines, found 1 |
| 54 | "E402", # Module level import not at top of file |
Dimitri Papadopoulos | 48793d5 | 2025-04-19 08:49:11 | [diff] [blame] | 55 | "E712", # Avoid equality comparisons to `True` or `False` |
| 56 | "E721", # TODO: Use `is` and `is not` for type comparisons, or `isinstance()` for isinstance check |
| 57 | "E731", # Do not assign a `lambda` expression, use a `def` |
| 58 | "E741", # Ambiguous variable name |
Dimitri Papadopoulos | c35cb34 | 2025-04-18 13:46:12 | [diff] [blame] | 59 | "F403", # `from ... import *` used; unable to detect undefined names |
| 60 | "F405", # may be undefined, or defined from star imports |
| 61 | "F821", # Undefined name |
| 62 | "F841", # Local variable is assigned to but never used |
Dimitri Papadopoulos | 48793d5 | 2025-04-19 08:49:11 | [diff] [blame] | 63 | "UP015", # Unnecessary mode argument |
| 64 | "UP031", # TODO: Use format specifiers instead of percent format |
Dimitri Papadopoulos Orfanos | c31e599 | 2024-12-16 15:34:22 | [diff] [blame] | 65 | ] |
| 66 | |
| 67 | [lint.per-file-ignores] |
Dimitri Papadopoulos | 18b06a5 | 2025-04-18 10:38:07 | [diff] [blame] | 68 | "_tempita.py" = ["B909"] |
| 69 | "bench_*.py" = ["B015", "B018"] |
| 70 | "test*.py" = ["B015", "B018", "E201", "E714"] |
Pieter Eendebak | 49f31e7 | 2025-05-12 08:22:18 | [diff] [blame] | 71 | "benchmarks/*py" = ["E501"] |
Pieter Eendebak | 28247e5 | 2025-05-14 12:29:45 | [diff] [blame] | 72 | "numpy/_core/tests/**" = ["E501"] |
| 73 | "numpy/_core/_add_newdocs.py" = ["E501"] |
| 74 | "numpy/_core/_add_newdocs_scalars.py" = ["E501"] |
| 75 | "numpy/_core/code_generators/generate_umath.py" = ["E501"] |
Pieter Eendebak | 49f31e7 | 2025-05-12 08:22:18 | [diff] [blame] | 76 | "numpy/_typing/*py" = ["E501"] |
Pieter Eendebak | 5f0e2f9 | 2025-05-15 10:55:23 | [diff] [blame] | 77 | "numpy/lib/tests/*py" = ["E501"] |
Pieter Eendebak | 39f73c5 | 2025-05-14 21:28:42 | [diff] [blame] | 78 | "numpy/linalg/tests/*py" = ["E501"] |
Pieter Eendebak | 5f0e2f9 | 2025-05-15 10:55:23 | [diff] [blame] | 79 | "numpy/ma/tests/*py" = ["E501"] |
Pieter Eendebak | 49f31e7 | 2025-05-12 08:22:18 | [diff] [blame] | 80 | "numpy/tests/*py" = ["E501"] |
Pieter Eendebak | 49f31e7 | 2025-05-12 08:22:18 | [diff] [blame] | 81 | "numpy*pyi" = ["E501"] |
| 82 | "numpy/f2py/*py" = ["E501"] |
Dimitri Papadopoulos | 90e744e | 2025-04-21 10:23:31 | [diff] [blame] | 83 | "__init__.py" = ["F401", "F403", "F405"] |
| 84 | "__init__.pyi" = ["F401"] |
| 85 | "numpy/_core/defchararray.py" = ["F403", "F405"] |
| 86 | "numpy/_core/multiarray.py" = ["F405"] |
| 87 | "numpy/_core/numeric.py" = ["F403", "F405"] |
| 88 | "numpy/_core/umath.py" = ["F401", "F403", "F405"] |
| 89 | "numpy/f2py/capi_maps.py" = ["F403", "F405"] |
| 90 | "numpy/f2py/crackfortran.py" = ["F403", "F405"] |
| 91 | "numpy/f2py/f90mod_rules.py" = ["F403", "F405"] |
| 92 | "numpy/ma/core.pyi" = ["F403", "F405"] |
| 93 | "numpy/matlib.py" = ["F405"] |
| 94 | "numpy/matlib.pyi" = ["F811"] |