diff -up py-cpuinfo-3.2.0/cpuinfo/cpuinfo.py.s390x py-cpuinfo-3.2.0/cpuinfo/cpuinfo.py --- py-cpuinfo-3.2.0/cpuinfo/cpuinfo.py.s390x 2017-04-19 18:33:13.000000000 +0200 +++ py-cpuinfo-3.2.0/cpuinfo/cpuinfo.py 2017-04-20 12:04:07.364919224 +0200 @@ -1,4 +1,3 @@ -#!/usr/bin/env python # -*- coding: UTF-8 -*- # Copyright (c) 2014-2017, Matthew Brennan Jones @@ -512,6 +511,10 @@ def parse_arch(raw_arch_string): elif re.match('^powerpc$|^ppc64$|^ppc64le$', raw_arch_string): arch = 'PPC_64' bits = 64 + # S390X + elif re.match('^s390x$', raw_arch_string): + arch = 'S390X' + bits = 64 # SPARC elif re.match('^sparc32$|^sparc$', raw_arch_string): arch = 'SPARC_32' @@ -1791,8 +1794,8 @@ def get_cpu_info(): # Make sure we are running on a supported system def _check_arch(): arch, bits = parse_arch(DataSource.raw_arch_string) - if not arch in ['X86_32', 'X86_64', 'ARM_7', 'ARM_8', 'PPC_64']: - raise Exception("py-cpuinfo currently only works on X86 and some PPC and ARM CPUs.") + if not arch in ['X86_32', 'X86_64', 'ARM_7', 'ARM_8', 'PPC_64', 'S390X']: + raise Exception("py-cpuinfo currently only works on X86 and some PPC and ARM CPUs and S390X.") def main(): try: diff -up py-cpuinfo-3.2.0/setup.py.s390x py-cpuinfo-3.2.0/setup.py diff -up py-cpuinfo-3.2.0/tests/test_invalid_cpu.py.s390x py-cpuinfo-3.2.0/tests/test_invalid_cpu.py --- py-cpuinfo-3.2.0/tests/test_invalid_cpu.py.s390x 2017-04-20 12:14:33.984425455 +0200 +++ py-cpuinfo-3.2.0/tests/test_invalid_cpu.py 2017-04-20 12:52:36.746376882 +0200 @@ -32,4 +32,4 @@ class TestInvalidCPU(unittest.TestCase): cpuinfo._check_arch() self.fail('Failed to raise Exception') except Exception as err: - self.assertEqual('py-cpuinfo currently only works on X86 and some PPC and ARM CPUs.', err.args[0]) + self.assertEqual('py-cpuinfo currently only works on X86 and some PPC and ARM CPUs and S390X.', err.args[0])