Issue #12326: refactor usage of sys.platform

* Use str.startswith(tuple): I didn't know this Python feature, Python rocks!
 * Replace sometimes sys.platform.startswith('linux') with
   sys.platform == 'linux'
 * sys.platform doesn't contain the major version on Cygwin on Mac OS X
   (it's just 'cygwin' and 'darwin')
This commit is contained in:
Victor Stinner 2011-08-21 00:39:18 +02:00
parent a9931888ed
commit e67474725b
8 changed files with 12 additions and 20 deletions

View File

@ -142,9 +142,7 @@ elif os.name == "posix":
return None
return res.group(1)
if (sys.platform.startswith("freebsd")
or sys.platform.startswith("openbsd")
or sys.platform.startswith("dragonfly")):
if sys.platform.startswith(("freebsd", "openbsd", "dragonfly")):
def _num_version(libname):
# "libxyz.so.MAJOR.MINOR" => [ MAJOR, MINOR ]

View File

@ -240,8 +240,7 @@ class build_ext(Command):
# for extensions under Linux or Solaris with a shared Python library,
# Python's library directory must be appended to library_dirs
sysconfig.get_config_var('Py_ENABLE_SHARED')
if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu')
or sys.platform.startswith('sunos'))
if (sys.platform.startswith(('linux', 'gnu', 'sunos'))
and sysconfig.get_config_var('Py_ENABLE_SHARED')):
if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
# building third party extensions

View File

@ -244,8 +244,7 @@ class build_ext(Command):
# for extensions under Linux or Solaris with a shared Python library,
# Python's library directory must be appended to library_dirs
sysconfig.get_config_var('Py_ENABLE_SHARED')
if ((sys.platform.startswith('linux') or sys.platform.startswith('gnu')
or sys.platform.startswith('sunos'))
if (sys.platform.startswith(('linux', 'gnu', 'sunos'))
and sysconfig.get_config_var('Py_ENABLE_SHARED')):
if sys.executable.startswith(os.path.join(sys.exec_prefix, "bin")):
# building third party extensions

View File

@ -311,7 +311,7 @@ def requires_linux_version(*min_version):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
if sys.platform.startswith('linux'):
if sys.platform == 'linux':
version_txt = platform.release().split('-', 1)[0]
try:
version = tuple(map(int, version_txt.split('.')))

View File

@ -23,9 +23,8 @@ def get_lockdata():
else:
start_len = "qq"
if (any(sys.platform.startswith(prefix)
for prefix in ('netbsd', 'freebsd', 'openbsd', 'bsdos'))
or sys.platform in ('Darwin1.2', 'darwin')):
if (sys.platform.startswith(('netbsd', 'freebsd', 'openbsd', 'bsdos'))
or sys.platform == 'darwin'):
if struct.calcsize('l') == 8:
off_t = 'l'
pid_t = 'i'

View File

@ -527,7 +527,7 @@ class HandlerTest(BaseTest):
def test_builtin_handlers(self):
# We can't actually *use* too many handlers in the tests,
# but we can try instantiating them with various options
if sys.platform.startswith('linux') or sys.platform == 'darwin':
if sys.platform in ('linux', 'darwin'):
for existing in (True, False):
fd, fn = tempfile.mkstemp()
os.close(fd)

View File

@ -442,10 +442,8 @@ class GeneralModuleTests(unittest.TestCase):
# Find one service that exists, then check all the related interfaces.
# I've ordered this by protocols that have both a tcp and udp
# protocol, at least for modern Linuxes.
if (sys.platform.startswith('linux') or
sys.platform.startswith('freebsd') or
sys.platform.startswith('netbsd') or
sys.platform == 'darwin'):
if (sys.platform.startswith(('freebsd', 'netbsd'))
or sys.platform in ('linux', 'darwin')):
# avoid the 'echo' service on this platform, as there is an
# assumption breaking non-standard port/protocol entry
services = ('daytime', 'qotd', 'domain')
@ -2074,7 +2072,7 @@ def test_main():
])
if hasattr(socket, "socketpair"):
tests.append(BasicSocketPairTest)
if sys.platform.startswith('linux'):
if sys.platform == 'linux':
tests.append(TestLinuxAbstractNamespace)
if isTipcAvailable():
tests.append(TIPCTest)

View File

@ -363,9 +363,8 @@ class PyBuildExt(build_ext):
def get_platform(self):
# Get value of sys.platform
for platform in ['cygwin', 'darwin', 'osf1']:
if sys.platform.startswith(platform):
return platform
if sys.platform.startswith('osf1'):
return 'osf1'
return sys.platform
def add_multiarch_paths(self):