diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2016-02-02 14:37:09 +0100 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2016-02-02 14:37:09 +0100 |
commit | e947e861a837d9b8974ab15dcd5fe4d464b9411d (patch) | |
tree | 54c8727d2d0ed7e23dfa0687b7b6abda66680df2 | |
parent | 5116bea7e6a47fc54ab926bb02241f2faeb4e35a (diff) | |
download | psutil-e947e861a837d9b8974ab15dcd5fe4d464b9411d.tar.gz |
refactor platform recognition code
-rw-r--r-- | psutil/__init__.py | 27 | ||||
-rw-r--r-- | psutil/_common.py | 10 | ||||
-rw-r--r-- | psutil/_psbsd.py | 8 | ||||
-rw-r--r-- | test/_bsd.py | 8 | ||||
-rw-r--r-- | test/_linux.py | 8 | ||||
-rw-r--r-- | test/_osx.py | 3 | ||||
-rw-r--r-- | test/_posix.py | 13 | ||||
-rw-r--r-- | test/_sunos.py | 2 | ||||
-rw-r--r-- | test/_windows.py | 2 | ||||
-rw-r--r-- | test/test_psutil.py | 18 |
10 files changed, 54 insertions, 45 deletions
diff --git a/psutil/__init__.py b/psutil/__init__.py index c67e87c2..06e04b4c 100644 --- a/psutil/__init__.py +++ b/psutil/__init__.py @@ -55,12 +55,20 @@ 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 NIC_DUPLEX_FULL from ._common import NIC_DUPLEX_HALF from ._common import NIC_DUPLEX_UNKNOWN -if sys.platform.startswith("linux"): +from ._common import BSD as _BSD +from ._common import LINUX as _LINUX +from ._common import OPENBSD as _OPENBSD +from ._common import OSX as _OSX +from ._common import POSIX as _POSIX +from ._common import SUNOS as _SUNOS +from ._common import WINDOWS as _WINDOWS + + +if _LINUX: # This is public API and it will be retrieved from _pslinux.py # via sys.modules. PROCFS_PATH = "/proc" @@ -110,7 +118,7 @@ if sys.platform.startswith("linux"): except AttributeError: pass -elif sys.platform.startswith("win32"): +elif _WINDOWS: from . import _pswindows as _psplatform from ._psutil_windows import ABOVE_NORMAL_PRIORITY_CLASS # NOQA from ._psutil_windows import BELOW_NORMAL_PRIORITY_CLASS # NOQA @@ -120,15 +128,13 @@ elif sys.platform.startswith("win32"): from ._psutil_windows import REALTIME_PRIORITY_CLASS # NOQA from ._pswindows import CONN_DELETE_TCB # NOQA -elif sys.platform.startswith("darwin"): +elif _OSX: from . import _psosx as _psplatform -elif sys.platform.startswith("freebsd") or \ - sys.platform.startswith("openbsd") or \ - sys.platform.startswith("netbsd"): +elif _BSD: from . import _psbsd as _psplatform -elif sys.platform.startswith("sunos") or sys.platform.startswith("solaris"): +elif _SUNOS: from . import _pssunos as _psplatform from ._pssunos import CONN_BOUND # NOQA from ._pssunos import CONN_IDLE # NOQA @@ -172,9 +178,6 @@ __version__ = "3.5.0" version_info = tuple([int(num) for num in __version__.split('.')]) AF_LINK = _psplatform.AF_LINK _TOTAL_PHYMEM = None -_POSIX = os.name == 'posix' -_WINDOWS = os.name == 'nt' -_OPENBSD = sys.platform.startswith("openbsd") _timer = getattr(time, 'monotonic', time.time) @@ -1855,7 +1858,7 @@ def net_if_addrs(): try: fam = socket.AddressFamily(fam) except ValueError: - if os.name == 'nt' and fam == -1: + if _WINDOWS and fam == -1: fam = _psplatform.AF_LINK elif (hasattr(_psplatform, "AF_LINK") and _psplatform.AF_LINK == fam): diff --git a/psutil/_common.py b/psutil/_common.py index d8c30190..ef209343 100644 --- a/psutil/_common.py +++ b/psutil/_common.py @@ -31,6 +31,16 @@ else: # --- constants +POSIX = os.name == "posix" +WINDOWS = os.name == "nt" +LINUX = sys.platform.startswith("linux") +OSX = sys.platform.startswith("darwin") +FREEBSD = sys.platform.startswith("freebsd") +OPENBSD = sys.platform.startswith("openbsd") +NETBSD = sys.platform.startswith("netbsd") +BSD = FREEBSD or OPENBSD or NETBSD +SUNOS = sys.platform.startswith("sunos") or sys.platform.startswith("solaris") + AF_INET6 = getattr(socket, 'AF_INET6', None) AF_UNIX = getattr(socket, 'AF_UNIX', None) diff --git a/psutil/_psbsd.py b/psutil/_psbsd.py index eacf3db3..4fed0195 100644 --- a/psutil/_psbsd.py +++ b/psutil/_psbsd.py @@ -8,7 +8,6 @@ import contextlib import errno import functools import os -import sys import xml.etree.ElementTree as ET from collections import namedtuple @@ -17,6 +16,9 @@ from . import _psposix from . import _psutil_bsd as cext from . import _psutil_posix as cext_posix from ._common import conn_tmap +from ._common import FREEBSD +from ._common import NETBSD +from ._common import OPENBSD from ._common import sockfam_to_enum from ._common import socktype_to_enum from ._common import usage_percent @@ -26,10 +28,6 @@ __extra__all__ = [] # --- constants -FREEBSD = sys.platform.startswith("freebsd") -OPENBSD = sys.platform.startswith("openbsd") -NETBSD = sys.platform.startswith("netbsd") - if FREEBSD: PROC_STATUSES = { cext.SIDL: _common.STATUS_IDLE, diff --git a/test/_bsd.py b/test/_bsd.py index 2e2b9ff0..03915b1b 100644 --- a/test/_bsd.py +++ b/test/_bsd.py @@ -17,13 +17,13 @@ import sys import time import psutil +from psutil._common import BSD +from psutil._common import FREEBSD +from psutil._common import NETBSD +from psutil._common import OPENBSD from psutil._compat import PY3 -from test_psutil import BSD -from test_psutil import FREEBSD from test_psutil import get_test_subprocess from test_psutil import MEMORY_TOLERANCE -from test_psutil import NETBSD -from test_psutil import OPENBSD from test_psutil import reap_children from test_psutil import retry_before_failing from test_psutil import sh diff --git a/test/_linux.py b/test/_linux.py index ff533e9b..3723fe16 100644 --- a/test/_linux.py +++ b/test/_linux.py @@ -30,15 +30,14 @@ except ImportError: import psutil import psutil._pslinux +from psutil._common import LINUX from psutil._compat import PY3 from psutil._compat import u from test_psutil import call_until from test_psutil import get_kernel_version from test_psutil import get_test_subprocess from test_psutil import importlib -from test_psutil import LINUX from test_psutil import MEMORY_TOLERANCE -from test_psutil import POSIX from test_psutil import retry_before_failing from test_psutil import sh from test_psutil import skip_on_not_implemented @@ -88,9 +87,8 @@ def get_mac_address(ifname): @unittest.skipUnless(LINUX, "not a Linux system") class LinuxSpecificTestCase(unittest.TestCase): - @unittest.skipIf( - POSIX and not hasattr(os, 'statvfs'), - reason="os.statvfs() function not available on this platform") + @unittest.skipUnless( + hasattr(os, 'statvfs'), "os.statvfs() function not available") @skip_on_not_implemented() def test_disks(self): # test psutil.disk_usage() and psutil.disk_partitions() diff --git a/test/_osx.py b/test/_osx.py index cfa16c1f..59276079 100644 --- a/test/_osx.py +++ b/test/_osx.py @@ -13,11 +13,10 @@ import sys import time import psutil - +from psutil._common import OSX from psutil._compat import PY3 from test_psutil import get_test_subprocess from test_psutil import MEMORY_TOLERANCE -from test_psutil import OSX from test_psutil import reap_children from test_psutil import retry_before_failing from test_psutil import sh diff --git a/test/_posix.py b/test/_posix.py index 10243336..0ec024a1 100644 --- a/test/_posix.py +++ b/test/_posix.py @@ -13,19 +13,20 @@ import sys import time import psutil -from psutil._compat import PY3, callable -from test_psutil import BSD +from psutil._common import BSD +from psutil._common import LINUX +from psutil._common import OSX +from psutil._common import POSIX +from psutil._common import SUNOS +from psutil._compat import callable +from psutil._compat import PY3 from test_psutil import get_kernel_version from test_psutil import get_test_subprocess -from test_psutil import LINUX -from test_psutil import OSX -from test_psutil import POSIX from test_psutil import PYTHON from test_psutil import reap_children from test_psutil import retry_before_failing from test_psutil import sh from test_psutil import skip_on_access_denied -from test_psutil import SUNOS from test_psutil import TRAVIS from test_psutil import unittest from test_psutil import wait_for_pid diff --git a/test/_sunos.py b/test/_sunos.py index 58050b1e..83fcade3 100644 --- a/test/_sunos.py +++ b/test/_sunos.py @@ -10,8 +10,8 @@ import sys import os import psutil +from psutil import SUNOS from test_psutil import sh -from test_psutil import SUNOS from test_psutil import unittest diff --git a/test/_windows.py b/test/_windows.py index 879a698c..b1e19cd8 100644 --- a/test/_windows.py +++ b/test/_windows.py @@ -30,6 +30,7 @@ except ImportError: win32api = win32con = None import psutil +from psutil._common import WINDOWS from psutil._compat import callable from psutil._compat import long from psutil._compat import PY3 @@ -38,7 +39,6 @@ from test_psutil import get_test_subprocess from test_psutil import reap_children from test_psutil import retry_before_failing from test_psutil import unittest -from test_psutil import WINDOWS cext = psutil._psplatform.cext diff --git a/test/test_psutil.py b/test/test_psutil.py index 947edcd3..e68dd304 100644 --- a/test/test_psutil.py +++ b/test/test_psutil.py @@ -55,7 +55,16 @@ except ImportError: import mock # requires "pip install mock" import psutil +from psutil._common import BSD +from psutil._common import FREEBSD +from psutil._common import LINUX +from psutil._common import NETBSD +from psutil._common import OPENBSD +from psutil._common import OSX +from psutil._common import POSIX +from psutil._common import SUNOS from psutil._common import supports_ipv6 +from psutil._common import WINDOWS from psutil._compat import callable from psutil._compat import long from psutil._compat import PY3 @@ -107,17 +116,8 @@ if not PY3: EXAMPLES_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'examples')) -POSIX = os.name == 'posix' -WINDOWS = os.name == 'nt' if WINDOWS: WIN_VISTA = (6, 0, 0) -LINUX = sys.platform.startswith("linux") -OSX = sys.platform.startswith("darwin") -FREEBSD = sys.platform.startswith("freebsd") -OPENBSD = sys.platform.startswith("openbsd") -NETBSD = sys.platform.startswith("netbsd") -BSD = FREEBSD or OPENBSD or NETBSD -SUNOS = sys.platform.startswith("sunos") or sys.platform.startswith("solaris") VALID_PROC_STATUSES = [getattr(psutil, x) for x in dir(psutil) if x.startswith('STATUS_')] # whether we're running this test suite on Travis (https://travis-ci.org/) |