summaryrefslogtreecommitdiff
path: root/.flake8
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2021-07-05 21:43:52 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2022-07-31 13:29:20 -0700
commit67d27841ae796f02bce3efa465d20211f5f3f084 (patch)
tree9c315560e8a1a1edecc15a334a7ed48ae1488398 /.flake8
parentec879240396b457f8bf05361a7d55280e0fa19fb (diff)
downloadspack-67d27841ae796f02bce3efa465d20211f5f3f084.tar.gz
spack-67d27841ae796f02bce3efa465d20211f5f3f084.tar.bz2
spack-67d27841ae796f02bce3efa465d20211f5f3f084.tar.xz
spack-67d27841ae796f02bce3efa465d20211f5f3f084.zip
black: configuration
This adds necessary configuration for flake8 and black to work together. This also sets the line length to 99, per the data here: * https://github.com/spack/spack/pull/24718#issuecomment-876933636 Given the data and the spirit of black's 88-character limit, we set the limit to 99 characters for all of Spack, because: * 99 is one less than 100, a nice round number, and all lines will fit in a 100-character wide terminal (even when the text editor puts a \ at EOL). * 99 is just past the knee the file size curve for packages, and it means that packages remain readable and not significantly longer than they are now. * It doesn't seem to hurt core -- files in core might change length by a few percent but seem like they'll be mostly the same as before -- just a bit more roomy. - [x] set line length to 99 - [x] remove most exceptions from `.flake8` and add the ones black cares about - [x] add `[tool.black]` to `pyproject.toml` - [x] make `black` run if available in `spack style --fix` Co-Authored-By: Tom Scogland <tscogland@llnl.gov>
Diffstat (limited to '.flake8')
-rw-r--r--.flake842
1 files changed, 12 insertions, 30 deletions
diff --git a/.flake8 b/.flake8
index a4c8aa2fbc..226e694894 100644
--- a/.flake8
+++ b/.flake8
@@ -1,43 +1,25 @@
# -*- conf -*-
-# flake8 settings for Spack core files.
+# flake8 settings for Spack.
#
# These exceptions are for Spack core files. We're slightly more lenient
# with packages. See .flake8_packages for that.
#
-# E1: Indentation
-# - E129: visually indented line with same indent as next logical line
-#
-# E2: Whitespace
-# - E221: multiple spaces before operator
-# - E241: multiple spaces after ','
-# - E272: multiple spaces before keyword
-#
-# E7: Statement
+# This is the only flake8 rule Spack violates somewhat flagrantly
# - E731: do not assign a lambda expression, use a def
#
-# W5: Line break warning
-# - W503: line break before binary operator
-# - W504: line break after binary operator
-#
-# These are required to get the package.py files to test clean:
-# - F999: syntax error in doctest
-#
-# N8: PEP8-naming
-# - N801: class names should use CapWords convention
-# - N813: camelcase imported as lowercase
-# - N814: camelcase imported as constant
+# This is the only flake8 exception needed when using Black.
+# - E203: white space around slice operators can be required, ignore : warn
#
-# F4: pyflakes import checks, these are now checked by mypy more precisely
-# - F403: from module import *
+# We still allow these in packages (Would like to get rid of them or rely on mypy
+# in the future)
+# - F403: from/import * used; unable to detect undefined names
# - F405: undefined name or from *
-#
-# Black ignores, these are incompatible with black style and do not follow PEP-8
-# - E203: white space around slice operators can be required, ignore : warn
-# - W503: see above, already ignored for line-breaks
+# - F821: undefined name (needed with from/import *)
#
[flake8]
-ignore = E129,E221,E241,E272,E731,W503,W504,F999,N801,N813,N814,F403,F405
-max-line-length = 88
+#ignore = E129,,W503,W504,F999,N801,N813,N814,F403,F405,E203
+extend-ignore = E731,E203
+max-line-length = 99
# F4: Import
# - F405: `name` may be undefined, or undefined from star imports: `module`
@@ -46,7 +28,7 @@ max-line-length = 88
# - F821: undefined name `name`
#
per-file-ignores =
- var/spack/repos/*/package.py:F405,F821
+ var/spack/repos/*/package.py:F403,F405,F821
# exclude things we usually do not want linting for.
# These still get linted when passed explicitly, as when spack flake8 passes