summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2016-02-02 14:37:09 +0100
committerGiampaolo Rodola <g.rodola@gmail.com>2016-02-02 14:37:09 +0100
commite947e861a837d9b8974ab15dcd5fe4d464b9411d (patch)
tree54c8727d2d0ed7e23dfa0687b7b6abda66680df2
parent5116bea7e6a47fc54ab926bb02241f2faeb4e35a (diff)
downloadpsutil-e947e861a837d9b8974ab15dcd5fe4d464b9411d.tar.gz
refactor platform recognition code
-rw-r--r--psutil/__init__.py27
-rw-r--r--psutil/_common.py10
-rw-r--r--psutil/_psbsd.py8
-rw-r--r--test/_bsd.py8
-rw-r--r--test/_linux.py8
-rw-r--r--test/_osx.py3
-rw-r--r--test/_posix.py13
-rw-r--r--test/_sunos.py2
-rw-r--r--test/_windows.py2
-rw-r--r--test/test_psutil.py18
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/)