diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2021-12-14 23:54:58 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-14 23:54:58 +0100 |
commit | 39dc44bfa5fbb9500166b3480295379602e5bbc5 (patch) | |
tree | ee785ba8d9e189fb2b1bffda19492414cd7c0d2c | |
parent | b490b5d51af6ed29709c357a00fcdb6bda26df78 (diff) | |
download | psutil-39dc44bfa5fbb9500166b3480295379602e5bbc5.tar.gz |
Automatically sort imports (isort CLI tool) (#2033)
62 files changed, 264 insertions, 169 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ca026299..5fd6e735 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -161,12 +161,14 @@ jobs: - uses: actions/setup-python@v2 - name: 'Run linters' run: | + # py2 curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py python2 get-pip.py python2 -m pip install flake8 - python3 -m pip install flake8 python2 -m flake8 . + # py3 + python3 -m pip install flake8 isort python3 -m flake8 . - echo "flake8 linting OK" + python3 -m isort --settings=.isort.cfg . + # clinter find . -type f \( -iname "*.c" -o -iname "*.h" \) | xargs python3 scripts/internal/clinter.py - echo "C linting OK" diff --git a/.isort.cfg b/.isort.cfg new file mode 100644 index 00000000..58f66946 --- /dev/null +++ b/.isort.cfg @@ -0,0 +1,7 @@ +# See: https://pycqa.github.io/isort/docs/configuration/options + +[settings] +# one import per line +force_single_line = true +# blank spaces after import section +lines_after_imports = 2 diff --git a/MANIFEST.in b/MANIFEST.in index e9c20d81..4a10365d 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,6 +1,7 @@ include .coveragerc include .flake8 include .gitignore +include .isort.cfg include CONTRIBUTING.md include CREDITS include HISTORY.rst @@ -15,6 +15,7 @@ DEPS = \ coverage \ flake8 \ flake8-print \ + isort \ pyperf \ pypinfo \ requests \ @@ -187,19 +188,30 @@ test-coverage: ## Run test coverage. # Linters # =================================================================== -lint-py: ## Run Python (flake8) linter. +check-flake8: ## Run flake8 linter. @git ls-files '*.py' | xargs $(PYTHON) -m flake8 --config=.flake8 -lint-c: ## Run C linter. +check-imports: ## Run isort linter. + @git ls-files '*.py' | xargs $(PYTHON) -m isort --settings=.isort.cfg --check-only + +check-c-code: ## Run C linter. @git ls-files '*.c' '*.h' | xargs $(PYTHON) scripts/internal/clinter.py -lint: ## Run Python (flake8) and C linters. - ${MAKE} lint-py - ${MAKE} lint-c +lint: ## Run all linters + ${MAKE} check-flake8 + ${MAKE} check-imports + ${MAKE} check-c-code -fix-lint: ## Attempt to automatically fix some Python lint issues. +# =================================================================== +# Fixers +# =================================================================== + +fix-flake8: ## Attempt to automatically fix some Python flake8 issues. @git ls-files | grep \\.py$ | xargs $(PYTHON) -m flake8 --exit-zero | $(PYTHON) scripts/internal/fix_flake8.py +fix-imports: ## Fix imports with isort. + @git ls-files '*.py' | xargs $(PYTHON) -m isort --settings=.isort.cfg + # =================================================================== # GIT # =================================================================== diff --git a/psutil/__init__.py b/psutil/__init__.py index 4632aa85..1a113bc3 100644 --- a/psutil/__init__.py +++ b/psutil/__init__.py @@ -21,6 +21,7 @@ Works with Python versions from 2.6 to 3.4+. """ from __future__ import division + import collections import contextlib import datetime @@ -31,25 +32,16 @@ import subprocess import sys import threading import time + + try: import pwd except ImportError: pwd = None from . import _common -from ._common import AccessDenied -from ._common import Error -from ._common import memoize_when_activated -from ._common import NoSuchProcess -from ._common import TimeoutExpired -from ._common import wrap_numbers as _wrap_numbers -from ._common import ZombieProcess -from ._compat import long -from ._compat import PermissionError -from ._compat import ProcessLookupError -from ._compat import SubprocessTimeoutExpired as _SubprocessTimeoutExpired -from ._compat import PY3 as _PY3 - +from ._common import AIX +from ._common import BSD from ._common import CONN_CLOSE from ._common import CONN_CLOSE_WAIT from ._common import CONN_CLOSING @@ -62,9 +54,16 @@ from ._common import CONN_NONE from ._common import CONN_SYN_RECV from ._common import CONN_SYN_SENT from ._common import CONN_TIME_WAIT +from ._common import FREEBSD # NOQA +from ._common import LINUX +from ._common import MACOS +from ._common import NETBSD # NOQA from ._common import NIC_DUPLEX_FULL from ._common import NIC_DUPLEX_HALF from ._common import NIC_DUPLEX_UNKNOWN +from ._common import OPENBSD # NOQA +from ._common import OSX # deprecated alias +from ._common import POSIX # NOQA from ._common import POWER_TIME_UNKNOWN from ._common import POWER_TIME_UNLIMITED from ._common import STATUS_DEAD @@ -79,18 +78,21 @@ from ._common import STATUS_TRACING_STOP from ._common import STATUS_WAITING from ._common import STATUS_WAKING from ._common import STATUS_ZOMBIE - -from ._common import AIX -from ._common import BSD -from ._common import FREEBSD # NOQA -from ._common import LINUX -from ._common import MACOS -from ._common import NETBSD # NOQA -from ._common import OPENBSD # NOQA -from ._common import OSX # deprecated alias -from ._common import POSIX # NOQA from ._common import SUNOS from ._common import WINDOWS +from ._common import AccessDenied +from ._common import Error +from ._common import NoSuchProcess +from ._common import TimeoutExpired +from ._common import ZombieProcess +from ._common import memoize_when_activated +from ._common import wrap_numbers as _wrap_numbers +from ._compat import PY3 as _PY3 +from ._compat import PermissionError +from ._compat import ProcessLookupError +from ._compat import SubprocessTimeoutExpired as _SubprocessTimeoutExpired +from ._compat import long + if LINUX: # This is public API and it will be retrieved from _pslinux.py @@ -98,7 +100,6 @@ if LINUX: PROCFS_PATH = "/proc" from . import _pslinux as _psplatform - from ._pslinux import IOPRIO_CLASS_BE # NOQA from ._pslinux import IOPRIO_CLASS_IDLE # NOQA from ._pslinux import IOPRIO_CLASS_NONE # NOQA @@ -113,10 +114,10 @@ elif WINDOWS: from ._psutil_windows import NORMAL_PRIORITY_CLASS # NOQA from ._psutil_windows import REALTIME_PRIORITY_CLASS # NOQA from ._pswindows import CONN_DELETE_TCB # NOQA - from ._pswindows import IOPRIO_VERYLOW # NOQA + from ._pswindows import IOPRIO_HIGH # NOQA from ._pswindows import IOPRIO_LOW # NOQA from ._pswindows import IOPRIO_NORMAL # NOQA - from ._pswindows import IOPRIO_HIGH # NOQA + from ._pswindows import IOPRIO_VERYLOW # NOQA elif MACOS: from . import _psosx as _psplatform diff --git a/psutil/_common.py b/psutil/_common.py index 5e6dbb6d..16d3b3b5 100644 --- a/psutil/_common.py +++ b/psutil/_common.py @@ -7,7 +7,8 @@ # Note: this module is imported by setup.py so it should not import # psutil or third-party modules. -from __future__ import division, print_function +from __future__ import division +from __future__ import print_function import collections import contextlib @@ -24,6 +25,7 @@ from socket import AF_INET from socket import SOCK_DGRAM from socket import SOCK_STREAM + try: from socket import AF_INET6 except ImportError: diff --git a/psutil/_compat.py b/psutil/_compat.py index e5275f5f..251e595f 100644 --- a/psutil/_compat.py +++ b/psutil/_compat.py @@ -15,6 +15,7 @@ import os import sys import types + __all__ = [ # constants "PY3", @@ -413,8 +414,8 @@ except ImportError: def get_terminal_size(fallback=(80, 24)): try: import fcntl - import termios import struct + import termios except ImportError: return fallback else: diff --git a/psutil/_psaix.py b/psutil/_psaix.py index 3e3a3d14..9cc7d56e 100644 --- a/psutil/_psaix.py +++ b/psutil/_psaix.py @@ -18,20 +18,20 @@ from . import _common from . import _psposix from . import _psutil_aix as cext from . import _psutil_posix as cext_posix -from ._common import AccessDenied -from ._common import conn_to_ntuple -from ._common import get_procfs_path -from ._common import memoize_when_activated from ._common import NIC_DUPLEX_FULL from ._common import NIC_DUPLEX_HALF from ._common import NIC_DUPLEX_UNKNOWN +from ._common import AccessDenied from ._common import NoSuchProcess -from ._common import usage_percent from ._common import ZombieProcess +from ._common import conn_to_ntuple +from ._common import get_procfs_path +from ._common import memoize_when_activated +from ._common import usage_percent +from ._compat import PY3 from ._compat import FileNotFoundError from ._compat import PermissionError from ._compat import ProcessLookupError -from ._compat import PY3 __extra__all__ = ["PROCFS_PATH"] diff --git a/psutil/_psbsd.py b/psutil/_psbsd.py index bdcfc1e6..52885065 100644 --- a/psutil/_psbsd.py +++ b/psutil/_psbsd.py @@ -9,24 +9,24 @@ import errno import functools import os import xml.etree.ElementTree as ET -from collections import namedtuple from collections import defaultdict +from collections import namedtuple from . import _common from . import _psposix from . import _psutil_bsd as cext from . import _psutil_posix as cext_posix +from ._common import FREEBSD +from ._common import NETBSD +from ._common import OPENBSD from ._common import AccessDenied +from ._common import NoSuchProcess +from ._common import ZombieProcess from ._common import conn_tmap from ._common import conn_to_ntuple -from ._common import FREEBSD from ._common import memoize from ._common import memoize_when_activated -from ._common import NETBSD -from ._common import NoSuchProcess -from ._common import OPENBSD from ._common import usage_percent -from ._common import ZombieProcess from ._compat import FileNotFoundError from ._compat import PermissionError from ._compat import ProcessLookupError diff --git a/psutil/_pslinux.py b/psutil/_pslinux.py index 1cbbec42..5a356912 100644 --- a/psutil/_pslinux.py +++ b/psutil/_pslinux.py @@ -25,30 +25,31 @@ from . import _common from . import _psposix from . import _psutil_linux as cext from . import _psutil_posix as cext_posix +from ._common import NIC_DUPLEX_FULL +from ._common import NIC_DUPLEX_HALF +from ._common import NIC_DUPLEX_UNKNOWN from ._common import AccessDenied +from ._common import NoSuchProcess +from ._common import ZombieProcess from ._common import debug from ._common import decode from ._common import get_procfs_path from ._common import isfile_strict from ._common import memoize from ._common import memoize_when_activated -from ._common import NIC_DUPLEX_FULL -from ._common import NIC_DUPLEX_HALF -from ._common import NIC_DUPLEX_UNKNOWN -from ._common import NoSuchProcess from ._common import open_binary from ._common import open_text from ._common import parse_environ_block from ._common import path_exists_strict from ._common import supports_ipv6 from ._common import usage_percent -from ._common import ZombieProcess -from ._compat import b -from ._compat import basestring +from ._compat import PY3 from ._compat import FileNotFoundError from ._compat import PermissionError from ._compat import ProcessLookupError -from ._compat import PY3 +from ._compat import b +from ._compat import basestring + if sys.version_info >= (3, 4): import enum diff --git a/psutil/_psosx.py b/psutil/_psosx.py index eda70d21..ac8ecc53 100644 --- a/psutil/_psosx.py +++ b/psutil/_psosx.py @@ -14,14 +14,14 @@ from . import _psposix from . import _psutil_osx as cext from . import _psutil_posix as cext_posix from ._common import AccessDenied +from ._common import NoSuchProcess +from ._common import ZombieProcess from ._common import conn_tmap from ._common import conn_to_ntuple from ._common import isfile_strict from ._common import memoize_when_activated -from ._common import NoSuchProcess from ._common import parse_environ_block from ._common import usage_percent -from ._common import ZombieProcess from ._compat import PermissionError from ._compat import ProcessLookupError diff --git a/psutil/_psposix.py b/psutil/_psposix.py index 706dab9a..8e6629d7 100644 --- a/psutil/_psposix.py +++ b/psutil/_psposix.py @@ -10,18 +10,19 @@ import signal import sys import time +from ._common import TimeoutExpired from ._common import memoize from ._common import sdiskusage -from ._common import TimeoutExpired from ._common import usage_percent +from ._compat import PY3 from ._compat import ChildProcessError from ._compat import FileNotFoundError from ._compat import InterruptedError from ._compat import PermissionError from ._compat import ProcessLookupError -from ._compat import PY3 from ._compat import unicode + if sys.version_info >= (3, 4): import enum else: diff --git a/psutil/_pssunos.py b/psutil/_pssunos.py index 355a7623..69b579c5 100644 --- a/psutil/_pssunos.py +++ b/psutil/_pssunos.py @@ -17,22 +17,22 @@ from . import _common from . import _psposix from . import _psutil_posix as cext_posix from . import _psutil_sunos as cext -from ._common import AccessDenied from ._common import AF_INET6 +from ._common import AccessDenied +from ._common import NoSuchProcess +from ._common import ZombieProcess from ._common import debug from ._common import get_procfs_path from ._common import isfile_strict from ._common import memoize_when_activated -from ._common import NoSuchProcess from ._common import sockfam_to_enum from ._common import socktype_to_enum from ._common import usage_percent -from ._common import ZombieProcess -from ._compat import b +from ._compat import PY3 from ._compat import FileNotFoundError from ._compat import PermissionError from ._compat import ProcessLookupError -from ._compat import PY3 +from ._compat import b __extra__all__ = ["CONN_IDLE", "CONN_BOUND", "PROCFS_PATH"] diff --git a/psutil/_pswindows.py b/psutil/_pswindows.py index 348b72e1..9966b1b4 100644 --- a/psutil/_pswindows.py +++ b/psutil/_pswindows.py @@ -14,22 +14,22 @@ import time from collections import namedtuple from . import _common +from ._common import ENCODING +from ._common import ENCODING_ERRS from ._common import AccessDenied +from ._common import NoSuchProcess +from ._common import TimeoutExpired from ._common import conn_tmap from ._common import conn_to_ntuple from ._common import debug -from ._common import ENCODING -from ._common import ENCODING_ERRS from ._common import isfile_strict from ._common import memoize from ._common import memoize_when_activated -from ._common import NoSuchProcess from ._common import parse_environ_block -from ._common import TimeoutExpired from ._common import usage_percent +from ._compat import PY3 from ._compat import long from ._compat import lru_cache -from ._compat import PY3 from ._compat import range from ._compat import unicode from ._psutil_windows import ABOVE_NORMAL_PRIORITY_CLASS @@ -39,6 +39,7 @@ from ._psutil_windows import IDLE_PRIORITY_CLASS from ._psutil_windows import NORMAL_PRIORITY_CLASS from ._psutil_windows import REALTIME_PRIORITY_CLASS + try: from . import _psutil_windows as cext except ImportError as err: diff --git a/psutil/tests/__init__.py b/psutil/tests/__init__.py index d871abe4..21bb3e61 100644 --- a/psutil/tests/__init__.py +++ b/psutil/tests/__init__.py @@ -9,6 +9,7 @@ Test utilities. """ from __future__ import print_function + import atexit import contextlib import ctypes @@ -46,15 +47,16 @@ from psutil import WINDOWS from psutil._common import bytes2human from psutil._common import print_color from psutil._common import supports_ipv6 +from psutil._compat import PY3 from psutil._compat import FileExistsError from psutil._compat import FileNotFoundError -from psutil._compat import PY3 from psutil._compat import range from psutil._compat import super from psutil._compat import u from psutil._compat import unicode from psutil._compat import which + if PY3: import unittest else: @@ -1733,8 +1735,8 @@ else: in memory via ctypes. Return the new absolutized, normcased path. """ - from ctypes import wintypes from ctypes import WinError + from ctypes import wintypes ext = ".dll" dst = get_testfn(suffix=suffix + ext) libs = [x.path for x in psutil.Process().memory_maps() if diff --git a/psutil/tests/__main__.py b/psutil/tests/__main__.py index d5cd02eb..e6773527 100755 --- a/psutil/tests/__main__.py +++ b/psutil/tests/__main__.py @@ -10,4 +10,6 @@ $ python -m psutil.tests """ from .runner import main + + main() diff --git a/psutil/tests/runner.py b/psutil/tests/runner.py index cd7e20b2..2e6f83e2 100755 --- a/psutil/tests/runner.py +++ b/psutil/tests/runner.py @@ -21,6 +21,7 @@ Parallel: """ from __future__ import print_function + import atexit import optparse import os @@ -28,6 +29,8 @@ import sys import textwrap import time import unittest + + try: import ctypes except ImportError: diff --git a/psutil/tests/test_aix.py b/psutil/tests/test_aix.py index a32c3f6a..6a5debfa 100755 --- a/psutil/tests/test_aix.py +++ b/psutil/tests/test_aix.py @@ -10,11 +10,11 @@ import re +import psutil from psutil import AIX from psutil.tests import PsutilTestCase from psutil.tests import sh from psutil.tests import unittest -import psutil @unittest.skipIf(not AIX, "AIX only") diff --git a/psutil/tests/test_bsd.py b/psutil/tests/test_bsd.py index b0bff87f..54b488bc 100755 --- a/psutil/tests/test_bsd.py +++ b/psutil/tests/test_bsd.py @@ -20,12 +20,12 @@ from psutil import BSD from psutil import FREEBSD from psutil import NETBSD from psutil import OPENBSD -from psutil.tests import spawn_testproc from psutil.tests import HAS_BATTERY +from psutil.tests import TOLERANCE_SYS_MEM from psutil.tests import PsutilTestCase from psutil.tests import retry_on_failure from psutil.tests import sh -from psutil.tests import TOLERANCE_SYS_MEM +from psutil.tests import spawn_testproc from psutil.tests import terminate from psutil.tests import unittest from psutil.tests import which diff --git a/psutil/tests/test_connections.py b/psutil/tests/test_connections.py index a7a97544..5381608a 100755 --- a/psutil/tests/test_connections.py +++ b/psutil/tests/test_connections.py @@ -27,17 +27,17 @@ from psutil import WINDOWS from psutil._common import supports_ipv6 from psutil._compat import PY3 from psutil.tests import AF_UNIX +from psutil.tests import HAS_CONNECTIONS_UNIX +from psutil.tests import SKIP_SYSCONS +from psutil.tests import PsutilTestCase from psutil.tests import bind_socket from psutil.tests import bind_unix_socket from psutil.tests import check_connection_ntuple from psutil.tests import create_sockets -from psutil.tests import HAS_CONNECTIONS_UNIX -from psutil.tests import PsutilTestCase from psutil.tests import reap_children from psutil.tests import retry_on_failure from psutil.tests import serialrun from psutil.tests import skip_on_access_denied -from psutil.tests import SKIP_SYSCONS from psutil.tests import tcp_socketpair from psutil.tests import unittest from psutil.tests import unix_socketpair diff --git a/psutil/tests/test_contracts.py b/psutil/tests/test_contracts.py index b03477d9..7401cc15 100755 --- a/psutil/tests/test_contracts.py +++ b/psutil/tests/test_contracts.py @@ -18,6 +18,7 @@ import sys import time import traceback +import psutil from psutil import AIX from psutil import BSD from psutil import FREEBSD @@ -33,25 +34,24 @@ from psutil._compat import FileNotFoundError from psutil._compat import long from psutil._compat import range from psutil.tests import APPVEYOR -from psutil.tests import check_connection_ntuple from psutil.tests import CI_TESTING -from psutil.tests import create_sockets -from psutil.tests import enum from psutil.tests import GITHUB_ACTIONS from psutil.tests import HAS_CPU_FREQ from psutil.tests import HAS_NET_IO_COUNTERS from psutil.tests import HAS_SENSORS_FANS from psutil.tests import HAS_SENSORS_TEMPERATURES +from psutil.tests import PYPY +from psutil.tests import SKIP_SYSCONS +from psutil.tests import VALID_PROC_STATUSES +from psutil.tests import PsutilTestCase +from psutil.tests import check_connection_ntuple +from psutil.tests import create_sockets +from psutil.tests import enum from psutil.tests import is_namedtuple from psutil.tests import kernel_version from psutil.tests import process_namespace -from psutil.tests import PsutilTestCase -from psutil.tests import PYPY from psutil.tests import serialrun -from psutil.tests import SKIP_SYSCONS from psutil.tests import unittest -from psutil.tests import VALID_PROC_STATUSES -import psutil # =================================================================== diff --git a/psutil/tests/test_linux.py b/psutil/tests/test_linux.py index 7451e2bc..20e28d29 100755 --- a/psutil/tests/test_linux.py +++ b/psutil/tests/test_linux.py @@ -7,6 +7,7 @@ """Linux specific tests.""" from __future__ import division + import collections import contextlib import errno @@ -23,36 +24,37 @@ import warnings import psutil from psutil import LINUX -from psutil._compat import basestring -from psutil._compat import FileNotFoundError from psutil._compat import PY3 +from psutil._compat import FileNotFoundError +from psutil._compat import basestring from psutil._compat import u -from psutil.tests import call_until from psutil.tests import GITHUB_ACTIONS from psutil.tests import GLOBAL_TIMEOUT from psutil.tests import HAS_BATTERY from psutil.tests import HAS_CPU_FREQ from psutil.tests import HAS_GETLOADAVG from psutil.tests import HAS_RLIMIT -from psutil.tests import mock -from psutil.tests import PsutilTestCase from psutil.tests import PYPY +from psutil.tests import TOLERANCE_DISK_USAGE +from psutil.tests import TOLERANCE_SYS_MEM +from psutil.tests import PsutilTestCase +from psutil.tests import ThreadTask +from psutil.tests import call_until +from psutil.tests import mock from psutil.tests import reload_module from psutil.tests import retry_on_failure from psutil.tests import safe_rmpath from psutil.tests import sh from psutil.tests import skip_on_not_implemented -from psutil.tests import ThreadTask -from psutil.tests import TOLERANCE_DISK_USAGE -from psutil.tests import TOLERANCE_SYS_MEM from psutil.tests import unittest from psutil.tests import which + if LINUX: - from psutil._pslinux import calculate_avail_vmem from psutil._pslinux import CLOCK_TICKS - from psutil._pslinux import open_binary from psutil._pslinux import RootFsDeviceFinder + from psutil._pslinux import calculate_avail_vmem + from psutil._pslinux import open_binary HERE = os.path.abspath(os.path.dirname(__file__)) diff --git a/psutil/tests/test_memleaks.py b/psutil/tests/test_memleaks.py index f0bd59ee..d5baffa5 100755 --- a/psutil/tests/test_memleaks.py +++ b/psutil/tests/test_memleaks.py @@ -16,6 +16,7 @@ because of how its JIT handles memory, so tests are skipped. """ from __future__ import print_function + import functools import os @@ -29,8 +30,6 @@ from psutil import SUNOS from psutil import WINDOWS from psutil._compat import ProcessLookupError from psutil._compat import super -from psutil.tests import create_sockets -from psutil.tests import get_testfn from psutil.tests import HAS_CPU_AFFINITY from psutil.tests import HAS_CPU_FREQ from psutil.tests import HAS_ENVIRON @@ -43,12 +42,14 @@ from psutil.tests import HAS_RLIMIT from psutil.tests import HAS_SENSORS_BATTERY from psutil.tests import HAS_SENSORS_FANS from psutil.tests import HAS_SENSORS_TEMPERATURES +from psutil.tests import TestMemoryLeak +from psutil.tests import create_sockets +from psutil.tests import get_testfn from psutil.tests import process_namespace from psutil.tests import skip_on_access_denied from psutil.tests import spawn_testproc from psutil.tests import system_namespace from psutil.tests import terminate -from psutil.tests import TestMemoryLeak from psutil.tests import unittest diff --git a/psutil/tests/test_misc.py b/psutil/tests/test_misc.py index 323c5406..fb4d0c02 100755 --- a/psutil/tests/test_misc.py +++ b/psutil/tests/test_misc.py @@ -18,6 +18,8 @@ import pickle import socket import stat +import psutil +import psutil.tests from psutil import LINUX from psutil import POSIX from psutil import WINDOWS @@ -36,17 +38,15 @@ from psutil.tests import HAS_NET_IO_COUNTERS from psutil.tests import HAS_SENSORS_BATTERY from psutil.tests import HAS_SENSORS_FANS from psutil.tests import HAS_SENSORS_TEMPERATURES -from psutil.tests import import_module_by_path -from psutil.tests import mock -from psutil.tests import PsutilTestCase from psutil.tests import PYTHON_EXE -from psutil.tests import reload_module from psutil.tests import ROOT_DIR from psutil.tests import SCRIPTS_DIR +from psutil.tests import PsutilTestCase +from psutil.tests import import_module_by_path +from psutil.tests import mock +from psutil.tests import reload_module from psutil.tests import sh from psutil.tests import unittest -import psutil -import psutil.tests # =================================================================== diff --git a/psutil/tests/test_osx.py b/psutil/tests/test_osx.py index f797de71..4f4b1c29 100755 --- a/psutil/tests/test_osx.py +++ b/psutil/tests/test_osx.py @@ -13,15 +13,16 @@ import psutil from psutil import MACOS from psutil import POSIX from psutil.tests import HAS_BATTERY +from psutil.tests import TOLERANCE_DISK_USAGE +from psutil.tests import TOLERANCE_SYS_MEM from psutil.tests import PsutilTestCase from psutil.tests import retry_on_failure from psutil.tests import sh from psutil.tests import spawn_testproc from psutil.tests import terminate -from psutil.tests import TOLERANCE_DISK_USAGE -from psutil.tests import TOLERANCE_SYS_MEM from psutil.tests import unittest + if POSIX: from psutil._psutil_posix import getpagesize diff --git a/psutil/tests/test_posix.py b/psutil/tests/test_posix.py index acb6aa20..31b81926 100755 --- a/psutil/tests/test_posix.py +++ b/psutil/tests/test_posix.py @@ -23,18 +23,19 @@ from psutil import OPENBSD from psutil import POSIX from psutil import SUNOS from psutil.tests import CI_TESTING -from psutil.tests import spawn_testproc from psutil.tests import HAS_NET_IO_COUNTERS -from psutil.tests import mock -from psutil.tests import PsutilTestCase from psutil.tests import PYTHON_EXE +from psutil.tests import PsutilTestCase +from psutil.tests import mock from psutil.tests import retry_on_failure from psutil.tests import sh from psutil.tests import skip_on_access_denied +from psutil.tests import spawn_testproc from psutil.tests import terminate from psutil.tests import unittest from psutil.tests import which + if POSIX: import mmap import resource diff --git a/psutil/tests/test_process.py b/psutil/tests/test_process.py index fe74e601..08f16647 100755 --- a/psutil/tests/test_process.py +++ b/psutil/tests/test_process.py @@ -21,7 +21,6 @@ import time import types import psutil - from psutil import AIX from psutil import BSD from psutil import LINUX @@ -33,15 +32,12 @@ from psutil import POSIX from psutil import SUNOS from psutil import WINDOWS from psutil._common import open_text +from psutil._compat import PY3 from psutil._compat import FileNotFoundError from psutil._compat import long -from psutil._compat import PY3 from psutil._compat import super from psutil.tests import APPVEYOR -from psutil.tests import call_until from psutil.tests import CI_TESTING -from psutil.tests import copyload_shared_lib -from psutil.tests import create_exe from psutil.tests import GITHUB_ACTIONS from psutil.tests import GLOBAL_TIMEOUT from psutil.tests import HAS_CPU_AFFINITY @@ -52,17 +48,20 @@ from psutil.tests import HAS_PROC_CPU_NUM from psutil.tests import HAS_PROC_IO_COUNTERS from psutil.tests import HAS_RLIMIT from psutil.tests import HAS_THREADS -from psutil.tests import mock -from psutil.tests import process_namespace -from psutil.tests import PsutilTestCase from psutil.tests import PYPY from psutil.tests import PYTHON_EXE +from psutil.tests import PsutilTestCase +from psutil.tests import ThreadTask +from psutil.tests import call_until +from psutil.tests import copyload_shared_lib +from psutil.tests import create_exe +from psutil.tests import mock +from psutil.tests import process_namespace from psutil.tests import reap_children from psutil.tests import retry_on_failure from psutil.tests import sh from psutil.tests import skip_on_access_denied from psutil.tests import skip_on_not_implemented -from psutil.tests import ThreadTask from psutil.tests import unittest from psutil.tests import wait_for_pid diff --git a/psutil/tests/test_system.py b/psutil/tests/test_system.py index 4e3ac3e4..db2cb348 100755 --- a/psutil/tests/test_system.py +++ b/psutil/tests/test_system.py @@ -31,10 +31,9 @@ from psutil import WINDOWS from psutil._compat import FileNotFoundError from psutil._compat import long from psutil.tests import ASCII_FS -from psutil.tests import check_net_address from psutil.tests import CI_TESTING from psutil.tests import DEVNULL -from psutil.tests import enum +from psutil.tests import GITHUB_ACTIONS from psutil.tests import GLOBAL_TIMEOUT from psutil.tests import HAS_BATTERY from psutil.tests import HAS_CPU_FREQ @@ -44,12 +43,13 @@ from psutil.tests import HAS_SENSORS_BATTERY from psutil.tests import HAS_SENSORS_FANS from psutil.tests import HAS_SENSORS_TEMPERATURES from psutil.tests import IS_64BIT -from psutil.tests import mock -from psutil.tests import PsutilTestCase from psutil.tests import PYPY -from psutil.tests import retry_on_failure -from psutil.tests import GITHUB_ACTIONS from psutil.tests import UNICODE_SUFFIX +from psutil.tests import PsutilTestCase +from psutil.tests import check_net_address +from psutil.tests import enum +from psutil.tests import mock +from psutil.tests import retry_on_failure from psutil.tests import unittest diff --git a/psutil/tests/test_testutils.py b/psutil/tests/test_testutils.py index 09adbdb1..89888dfe 100755 --- a/psutil/tests/test_testutils.py +++ b/psutil/tests/test_testutils.py @@ -17,25 +17,28 @@ import socket import stat import subprocess +import psutil +import psutil.tests from psutil import FREEBSD from psutil import NETBSD from psutil import POSIX from psutil._common import open_binary from psutil._common import open_text from psutil._common import supports_ipv6 +from psutil.tests import CI_TESTING +from psutil.tests import HAS_CONNECTIONS_UNIX +from psutil.tests import PYTHON_EXE +from psutil.tests import PsutilTestCase +from psutil.tests import TestMemoryLeak from psutil.tests import bind_socket from psutil.tests import bind_unix_socket from psutil.tests import call_until from psutil.tests import chdir -from psutil.tests import CI_TESTING from psutil.tests import create_sockets from psutil.tests import get_free_port -from psutil.tests import HAS_CONNECTIONS_UNIX from psutil.tests import is_namedtuple from psutil.tests import mock from psutil.tests import process_namespace -from psutil.tests import PsutilTestCase -from psutil.tests import PYTHON_EXE from psutil.tests import reap_children from psutil.tests import retry from psutil.tests import retry_on_failure @@ -45,13 +48,11 @@ from psutil.tests import serialrun from psutil.tests import system_namespace from psutil.tests import tcp_socketpair from psutil.tests import terminate -from psutil.tests import TestMemoryLeak from psutil.tests import unittest from psutil.tests import unix_socketpair from psutil.tests import wait_for_file from psutil.tests import wait_for_pid -import psutil -import psutil.tests + # =================================================================== # --- Unit tests for test utilities. diff --git a/psutil/tests/test_unicode.py b/psutil/tests/test_unicode.py index 9edb8c89..e6357269 100755 --- a/psutil/tests/test_unicode.py +++ b/psutil/tests/test_unicode.py @@ -79,6 +79,7 @@ import traceback import warnings from contextlib import closing +import psutil from psutil import BSD from psutil import OPENBSD from psutil import POSIX @@ -87,28 +88,27 @@ from psutil._compat import PY3 from psutil._compat import u from psutil.tests import APPVEYOR from psutil.tests import ASCII_FS -from psutil.tests import bind_unix_socket -from psutil.tests import chdir from psutil.tests import CI_TESTING -from psutil.tests import copyload_shared_lib -from psutil.tests import create_exe -from psutil.tests import get_testfn from psutil.tests import HAS_CONNECTIONS_UNIX from psutil.tests import HAS_ENVIRON from psutil.tests import HAS_MEMORY_MAPS from psutil.tests import INVALID_UNICODE_SUFFIX -from psutil.tests import PsutilTestCase from psutil.tests import PYPY +from psutil.tests import TESTFN_PREFIX +from psutil.tests import UNICODE_SUFFIX +from psutil.tests import PsutilTestCase +from psutil.tests import bind_unix_socket +from psutil.tests import chdir +from psutil.tests import copyload_shared_lib +from psutil.tests import create_exe +from psutil.tests import get_testfn from psutil.tests import safe_mkdir from psutil.tests import safe_rmpath from psutil.tests import serialrun from psutil.tests import skip_on_access_denied from psutil.tests import spawn_testproc from psutil.tests import terminate -from psutil.tests import TESTFN_PREFIX -from psutil.tests import UNICODE_SUFFIX from psutil.tests import unittest -import psutil if APPVEYOR: diff --git a/psutil/tests/test_windows.py b/psutil/tests/test_windows.py index d9b65adb..ea694be4 100755 --- a/psutil/tests/test_windows.py +++ b/psutil/tests/test_windows.py @@ -27,15 +27,15 @@ from psutil.tests import APPVEYOR from psutil.tests import GITHUB_ACTIONS from psutil.tests import HAS_BATTERY from psutil.tests import IS_64BIT -from psutil.tests import mock -from psutil.tests import PsutilTestCase from psutil.tests import PY3 from psutil.tests import PYPY +from psutil.tests import TOLERANCE_DISK_USAGE +from psutil.tests import PsutilTestCase +from psutil.tests import mock from psutil.tests import retry_on_failure from psutil.tests import sh from psutil.tests import spawn_testproc from psutil.tests import terminate -from psutil.tests import TOLERANCE_DISK_USAGE from psutil.tests import unittest diff --git a/scripts/battery.py b/scripts/battery.py index edf4ce8c..bf0503e0 100755 --- a/scripts/battery.py +++ b/scripts/battery.py @@ -15,6 +15,7 @@ plugged in: no """ from __future__ import print_function + import sys import psutil diff --git a/scripts/cpu_distribution.py b/scripts/cpu_distribution.py index fb39d888..ba71ca9c 100755 --- a/scripts/cpu_distribution.py +++ b/scripts/cpu_distribution.py @@ -40,6 +40,7 @@ kwork """ from __future__ import print_function + import collections import os import sys diff --git a/scripts/disk_usage.py b/scripts/disk_usage.py index 851ae9b1..65ae3138 100755 --- a/scripts/disk_usage.py +++ b/scripts/disk_usage.py @@ -15,8 +15,9 @@ Device Total Used Free Use % Type Mount /dev/sda2 600.0M 312.4M 287.6M 52% fuseblk /media/Recovery """ -import sys import os +import sys + import psutil from psutil._common import bytes2human diff --git a/scripts/fans.py b/scripts/fans.py index 179af631..30427715 100755 --- a/scripts/fans.py +++ b/scripts/fans.py @@ -13,6 +13,7 @@ asus """ from __future__ import print_function + import sys import psutil diff --git a/scripts/ifconfig.py b/scripts/ifconfig.py index ae137fb4..23fd26b4 100755 --- a/scripts/ifconfig.py +++ b/scripts/ifconfig.py @@ -44,6 +44,7 @@ wlp3s0: """ from __future__ import print_function + import socket import psutil diff --git a/scripts/internal/bench_oneshot.py b/scripts/internal/bench_oneshot.py index 436bdd6b..60595876 100755 --- a/scripts/internal/bench_oneshot.py +++ b/scripts/internal/bench_oneshot.py @@ -10,10 +10,12 @@ Process.oneshot() ctx manager. See: https://github.com/giampaolo/psutil/issues/799 """ -from __future__ import print_function, division +from __future__ import division +from __future__ import print_function + import sys -import timeit import textwrap +import timeit import psutil diff --git a/scripts/internal/bench_oneshot_2.py b/scripts/internal/bench_oneshot_2.py index 3867391b..051d0036 100755 --- a/scripts/internal/bench_oneshot_2.py +++ b/scripts/internal/bench_oneshot_2.py @@ -12,9 +12,9 @@ supposed to be more precise. import sys import pyperf # requires "pip install pyperf" +from bench_oneshot import names import psutil -from bench_oneshot import names p = psutil.Process() diff --git a/scripts/internal/check_broken_links.py b/scripts/internal/check_broken_links.py index e66448fd..1a076116 100755 --- a/scripts/internal/check_broken_links.py +++ b/scripts/internal/check_broken_links.py @@ -40,6 +40,7 @@ Author: Himanshu Shekhar <https://github.com/himanshub16> (2017) """ from __future__ import print_function + import concurrent.futures import functools import os diff --git a/scripts/internal/clinter.py b/scripts/internal/clinter.py index fde1a3f2..384951da 100755 --- a/scripts/internal/clinter.py +++ b/scripts/internal/clinter.py @@ -7,6 +7,7 @@ """A super simple linter to check C syntax.""" from __future__ import print_function + import argparse import sys diff --git a/scripts/internal/convert_readme.py b/scripts/internal/convert_readme.py index d6cae918..cca7dcb0 100755 --- a/scripts/internal/convert_readme.py +++ b/scripts/internal/convert_readme.py @@ -11,6 +11,7 @@ Convert README.rst format to make it compatible with PyPI (no raw html). import re import sys + summary = """\ Quick links =========== diff --git a/scripts/internal/download_wheels_appveyor.py b/scripts/internal/download_wheels_appveyor.py index 5e633d52..e4d6ffc0 100755 --- a/scripts/internal/download_wheels_appveyor.py +++ b/scripts/internal/download_wheels_appveyor.py @@ -13,11 +13,13 @@ http://code.saghul.net/index.php/2015/09/09/ """ from __future__ import print_function + import concurrent.futures import os -import requests import sys +import requests + from psutil import __version__ as PSUTIL_VERSION from psutil._common import bytes2human from psutil._common import print_color diff --git a/scripts/internal/download_wheels_github.py b/scripts/internal/download_wheels_github.py index a344ec49..00f57116 100755 --- a/scripts/internal/download_wheels_github.py +++ b/scripts/internal/download_wheels_github.py @@ -18,10 +18,11 @@ https://developer.github.com/v3/actions/artifacts/ import argparse import json import os -import requests import sys import zipfile +import requests + from psutil import __version__ as PSUTIL_VERSION from psutil._common import bytes2human from psutil.tests import safe_rmpath diff --git a/scripts/internal/fix_flake8.py b/scripts/internal/fix_flake8.py index 7cde608b..14fbb4d2 100755 --- a/scripts/internal/fix_flake8.py +++ b/scripts/internal/fix_flake8.py @@ -11,9 +11,9 @@ an error/warning. Usage (from the root dir): $ python3 -m flake8 --exit-zero | python3 scripts/fix_flake8.py """ +import shutil import sys import tempfile -import shutil from collections import defaultdict from collections import namedtuple from pprint import pprint as pp # NOQA diff --git a/scripts/internal/git_pre_commit.py b/scripts/internal/git_pre_commit.py index 2ec4303d..92bc0f0a 100755 --- a/scripts/internal/git_pre_commit.py +++ b/scripts/internal/git_pre_commit.py @@ -20,6 +20,7 @@ Install this with "make install-git-hooks". """ from __future__ import print_function + import os import subprocess import sys @@ -115,14 +116,26 @@ def main(): print("%s:%s %s" % (path, lineno, line)) return exit("bare except clause") - # Python linter + # Python linters if py_files: + # Flake8 assert os.path.exists('.flake8') # XXX: we should escape spaces and possibly other amenities here cmd = "%s -m flake8 --config=.flake8 %s" % (PYTHON, " ".join(py_files)) ret = subprocess.call(cmd, shell=True) if ret != 0: - return exit("python code is not flake8 compliant") + return exit("python code is not flake8 compliant; " + "try running 'make fix-flake8'") + + # isort + assert os.path.exists('.isort.cfg') + cmd = "%s -m isort --settings=.isort.cfg --check-only %s" % ( + PYTHON, " ".join(py_files)) + ret = subprocess.call(cmd, shell=True) + if ret != 0: + return exit("python code is not flake8 compliant; " + "try running 'make fix-imports'") + # C linter if c_files: # XXX: we should escape spaces and possibly other amenities here diff --git a/scripts/internal/print_access_denied.py b/scripts/internal/print_access_denied.py index 81d192f0..f3d0166e 100755 --- a/scripts/internal/print_access_denied.py +++ b/scripts/internal/print_access_denied.py @@ -45,9 +45,11 @@ open_files 238 71.3% ACCESS DENIED Totals: access-denied=1744, calls=10020, processes=334 """ -from __future__ import print_function, division -from collections import defaultdict +from __future__ import division +from __future__ import print_function + import time +from collections import defaultdict import psutil from psutil._common import print_color diff --git a/scripts/internal/print_api_speed.py b/scripts/internal/print_api_speed.py index e39a1baa..ee2e3254 100755 --- a/scripts/internal/print_api_speed.py +++ b/scripts/internal/print_api_speed.py @@ -25,10 +25,12 @@ ionice 0.000013 ... """ -from __future__ import print_function, division -from timeit import default_timer as timer +from __future__ import division +from __future__ import print_function + import inspect import os +from timeit import default_timer as timer import psutil from psutil._common import print_color diff --git a/scripts/internal/print_downloads.py b/scripts/internal/print_downloads.py index 7e5c4631..b6df3b38 100755 --- a/scripts/internal/print_downloads.py +++ b/scripts/internal/print_downloads.py @@ -13,6 +13,7 @@ Useful sites: """ from __future__ import print_function + import json import os import subprocess diff --git a/scripts/internal/print_wheels.py b/scripts/internal/print_wheels.py index d13a6aa7..5e5faccd 100755 --- a/scripts/internal/print_wheels.py +++ b/scripts/internal/print_wheels.py @@ -10,8 +10,8 @@ import collections import glob import os -from psutil._common import print_color from psutil._common import bytes2human +from psutil._common import print_color class Wheel: diff --git a/scripts/internal/tidelift.py b/scripts/internal/tidelift.py index fcba3e61..9470fc85 100755 --- a/scripts/internal/tidelift.py +++ b/scripts/internal/tidelift.py @@ -10,8 +10,11 @@ Put your Tidelift API token in a file first: """ from __future__ import print_function + import os + import requests + import psutil from psutil.tests import import_module_by_path diff --git a/scripts/internal/winmake.py b/scripts/internal/winmake.py index 933951a2..4452ef09 100755 --- a/scripts/internal/winmake.py +++ b/scripts/internal/winmake.py @@ -12,6 +12,7 @@ that they should be deemed illegal! """ from __future__ import print_function + import argparse import atexit import ctypes @@ -378,7 +379,7 @@ def setup_dev_env(): sh("%s -m pip install -U %s" % (PYTHON, " ".join(DEPS))) -def lint(): +def check_flake8(): """Run flake8 against all py files""" py_files = subprocess.check_output("git ls-files") if PY3: @@ -560,7 +561,7 @@ def main(): sp.add_parser('install', help="build + install in develop/edit mode") sp.add_parser('install-git-hooks', help="install GIT pre-commit hook") sp.add_parser('install-pip', help="install pip") - sp.add_parser('lint', help="run flake8 against all py files") + sp.add_parser('check_flake8', help="run flake8 against all py files") sp.add_parser('print-access-denied', help="print AD exceptions") sp.add_parser('print-api-speed', help="benchmark all API calls") sp.add_parser('setup-dev-env', help="install deps") diff --git a/scripts/iotop.py b/scripts/iotop.py index 04683673..91bc3b18 100755 --- a/scripts/iotop.py +++ b/scripts/iotop.py @@ -30,8 +30,10 @@ PID USER DISK READ DISK WRITE COMMAND Author: Giampaolo Rodola' <g.rodola@gmail.com> """ -import time import sys +import time + + try: import curses except ImportError: diff --git a/scripts/killall.py b/scripts/killall.py index 7bbcd75a..d985185f 100755 --- a/scripts/killall.py +++ b/scripts/killall.py @@ -10,6 +10,7 @@ Kill a process by name. import os import sys + import psutil diff --git a/scripts/netstat.py b/scripts/netstat.py index 1832a096..476b082e 100755 --- a/scripts/netstat.py +++ b/scripts/netstat.py @@ -20,7 +20,9 @@ tcp 172.17.42.1:55797 127.0.0.1:443 CLOSE_WAIT 13651 GoogleTalkPlugi """ import socket -from socket import AF_INET, SOCK_STREAM, SOCK_DGRAM +from socket import AF_INET +from socket import SOCK_DGRAM +from socket import SOCK_STREAM import psutil diff --git a/scripts/nettop.py b/scripts/nettop.py index 8cc19fda..9e1abe76 100755 --- a/scripts/nettop.py +++ b/scripts/nettop.py @@ -31,8 +31,10 @@ pkts-sent 0 0 pkts-recv 1214470 0 """ -import time import sys +import time + + try: import curses except ImportError: diff --git a/scripts/pidof.py b/scripts/pidof.py index ee18aae4..da937107 100755 --- a/scripts/pidof.py +++ b/scripts/pidof.py @@ -12,9 +12,11 @@ $ pidof python """ from __future__ import print_function -import psutil + import sys +import psutil + def pidof(pgname): pids = [] diff --git a/scripts/procsmem.py b/scripts/procsmem.py index 1074c4c2..ca03729e 100755 --- a/scripts/procsmem.py +++ b/scripts/procsmem.py @@ -36,6 +36,7 @@ PID User Cmdline USS PSS Swap RSS """ from __future__ import print_function + import sys import psutil diff --git a/scripts/pstree.py b/scripts/pstree.py index dba9f1bd..18732b8c 100755 --- a/scripts/pstree.py +++ b/scripts/pstree.py @@ -29,6 +29,7 @@ $ python3 scripts/pstree.py """ from __future__ import print_function + import collections import sys diff --git a/scripts/sensors.py b/scripts/sensors.py index 911d7c9b..3dc82380 100755 --- a/scripts/sensors.py +++ b/scripts/sensors.py @@ -30,6 +30,7 @@ Battery: """ from __future__ import print_function + import psutil diff --git a/scripts/temperatures.py b/scripts/temperatures.py index f2dd51a7..90097e51 100755 --- a/scripts/temperatures.py +++ b/scripts/temperatures.py @@ -24,6 +24,7 @@ coretemp """ from __future__ import print_function + import sys import psutil diff --git a/scripts/top.py b/scripts/top.py index 989f8306..e07a58f1 100755 --- a/scripts/top.py +++ b/scripts/top.py @@ -36,6 +36,8 @@ PID USER NI VIRT RES CPU% MEM% TIME+ NAME import datetime import sys import time + + try: import curses except ImportError: @@ -7,6 +7,7 @@ """Cross-platform lib for process and system monitoring in Python.""" from __future__ import print_function + import contextlib import io import os @@ -19,14 +20,17 @@ import sys import tempfile import warnings + with warnings.catch_warnings(): warnings.simplefilter("ignore") try: import setuptools - from setuptools import setup, Extension + from setuptools import Extension + from setuptools import setup except ImportError: setuptools = None - from distutils.core import setup, Extension + from distutils.core import Extension + from distutils.core import setup HERE = os.path.abspath(os.path.dirname(__file__)) @@ -36,7 +40,6 @@ sys.path.insert(0, os.path.join(HERE, "psutil")) from _common import AIX # NOQA from _common import BSD # NOQA from _common import FREEBSD # NOQA -from _common import hilite # NOQA from _common import LINUX # NOQA from _common import MACOS # NOQA from _common import NETBSD # NOQA @@ -44,6 +47,7 @@ from _common import OPENBSD # NOQA from _common import POSIX # NOQA from _common import SUNOS # NOQA from _common import WINDOWS # NOQA +from _common import hilite # NOQA from _compat import PY3 # NOQA from _compat import which # NOQA @@ -236,8 +240,8 @@ elif NETBSD: elif LINUX: def get_ethtool_macro(): # see: https://github.com/giampaolo/psutil/issues/659 - from distutils.unixccompiler import UnixCCompiler from distutils.errors import CompileError + from distutils.unixccompiler import UnixCCompiler with tempfile.NamedTemporaryFile( suffix='.c', delete=False, mode="wt") as f: |