From 2284007db95af06b694c35492d20a918508bdb2f Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 28 Jun 2021 08:03:20 -0500 Subject: [PATCH] Use flake8-import-order to enforce PEP-8 compliance (#23947) --- .flake8 | 4 ++++ .github/workflows/unit_tests.yaml | 4 ++-- lib/spack/spack/package.py | 18 +++++++++--------- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.flake8 b/.flake8 index a4c8aa2fbc..d916433cfe 100644 --- a/.flake8 +++ b/.flake8 @@ -66,6 +66,10 @@ exclude = format = spack +# flake8-import-order settings +application-import-names = llnl,spack +import-order-style = pycharm + [flake8:local-plugins] report = spack = flake8_formatter:SpackFormatter diff --git a/.github/workflows/unit_tests.yaml b/.github/workflows/unit_tests.yaml index 726c56e617..213a4c2c5f 100644 --- a/.github/workflows/unit_tests.yaml +++ b/.github/workflows/unit_tests.yaml @@ -39,7 +39,7 @@ jobs: python-version: 3.9 - name: Install Python packages run: | - pip install --upgrade pip six setuptools flake8 mypy>=0.800 black types-six types-python-dateutil + pip install --upgrade pip six setuptools flake8 flake8-import-order mypy>=0.800 black types-six types-python-dateutil - name: Setup git configuration run: | # Need this for the git tests to succeed. @@ -370,7 +370,7 @@ jobs: run: | pip install --upgrade pip six setuptools pip install --upgrade codecov coverage - pip install --upgrade flake8 pep8-naming mypy + pip install --upgrade flake8 flake8-import-order pep8-naming mypy pip install --upgrade python-dateutil - name: Setup Homebrew packages run: | diff --git a/lib/spack/spack/package.py b/lib/spack/spack/package.py index 7db7f76589..bf37018c4d 100644 --- a/lib/spack/spack/package.py +++ b/lib/spack/spack/package.py @@ -8,8 +8,8 @@ The spack package class structure is based strongly on Homebrew (http://brew.sh/), mainly because Homebrew makes it very easy to create packages. - """ + import base64 import collections import contextlib @@ -25,13 +25,14 @@ import textwrap import time import traceback -import six import types -from typing import Optional, List, Dict, Any, Callable # novm +from typing import Any, Callable, Dict, List, Optional # novm + +import six +from ordereddict_backport import OrderedDict import llnl.util.filesystem as fsys import llnl.util.tty as tty - import spack.compilers import spack.config import spack.dependency @@ -51,14 +52,13 @@ import spack.util.web from llnl.util.lang import memoized from llnl.util.link_tree import LinkTree -from ordereddict_backport import OrderedDict from spack.filesystem_view import YamlFilesystemView -from spack.installer import PackageInstaller, InstallError from spack.install_test import TestFailure, TestSuite -from spack.util.executable import which, ProcessError -from spack.util.prefix import Prefix -from spack.stage import stage_prefix, Stage, ResourceStage, StageComposite +from spack.installer import InstallError, PackageInstaller +from spack.stage import ResourceStage, Stage, StageComposite, stage_prefix +from spack.util.executable import ProcessError, which from spack.util.package_hash import package_hash +from spack.util.prefix import Prefix from spack.version import Version """Allowed URL schemes for spack packages."""