diff --git a/.travis.yml b/.travis.yml index b5de05b..53abdc7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,7 @@ language: python +before_install: +- pip install tox script: - py.test tests.py + - tox + diff --git a/dmidecode.py b/dmidecode.py index b34c018..c1b647c 100644 --- a/dmidecode.py +++ b/dmidecode.py @@ -1,20 +1,21 @@ from __future__ import print_function -import os, sys +import os +import sys __version__ = "0.9.0" TYPE = { - 0: 'bios', - 1: 'system', - 2: 'base board', - 3: 'chassis', - 4: 'processor', - 7: 'cache', - 8: 'port connector', - 9: 'system slot', + 0: 'bios', + 1: 'system', + 2: 'base board', + 3: 'chassis', + 4: 'processor', + 7: 'cache', + 8: 'port connector', + 9: 'system slot', 10: 'on board device', 11: 'OEM strings', - #13: 'bios language', + # 13: 'bios language', 15: 'system event log', 16: 'physical memory array', 17: 'memory device', @@ -24,7 +25,7 @@ 27: 'cooling device', 32: 'system boot', 41: 'onboard device', - } +} def parse_dmi(content): @@ -58,7 +59,9 @@ def _parse_handle_section(lines): """ data = { '_title': next(lines).rstrip(), - } + } + + k = None for line in lines: line = line.rstrip() @@ -91,13 +94,13 @@ def _get_output(): import subprocess try: output = subprocess.check_output( - 'PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin ' - 'sudo dmidecode', shell=True) + 'PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin ' + 'sudo dmidecode', shell=True) except Exception as e: print(e, file=sys.stderr) if str(e).find("command not found") == -1: print("please install dmidecode", file=sys.stderr) - print("e.g. sudo apt install dmidecode",file=sys.stderr) + print("e.g. sudo apt install dmidecode", file=sys.stderr) sys.exit(1) return output.decode() @@ -108,26 +111,26 @@ def _get(i): return [v for j, v in info if j == i] system = _get('system')[0] - print ('%s %s (SN: %s, UUID: %s)' % ( + print('%s %s (SN: %s, UUID: %s)' % ( system['Manufacturer'], system['Product Name'], system['Serial Number'], system['UUID'], - )) + )) for cpu in _get('processor'): - #fix for output in virtual machine environments + # fix for output in virtual machine environments if 'Thread Count' in cpu: threads = cpu['Thread Count'] else: threads = "-" - print ('%s %s %s (Core: %s, Thead: %s)' % ( + print('%s %s %s (Core: %s, Thead: %s)' % ( cpu['Manufacturer'], cpu['Family'], cpu['Max Speed'], cpu['Core Count'], threads, - )) + )) cnt, total, unit = 0, 0, None for mem in _get('memory device'): @@ -136,18 +139,19 @@ def _get(i): i, unit = mem['Size'].split() cnt += 1 total += int(i) - print ('%d memory stick(s), %d %s in total' % ( + print('%d memory stick(s), %d %s in total' % ( cnt, total, unit, - )) + )) bios = _get('bios')[0] - print ('BIOS: %s v.%s %s Systemversion: %s' % ( + print('BIOS: %s v.%s %s Systemversion: %s' % ( bios['Vendor'], bios['Version'], bios['Release Date'], system['Version'] - )) + )) + if __name__ == '__main__': profile() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..e69de29 diff --git a/setup.py b/setup.py index 735c432..ccbcf32 100644 --- a/setup.py +++ b/setup.py @@ -18,5 +18,5 @@ 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Topic :: Utilities', - ], - ) + ], +) diff --git a/test-requirements.txt b/test-requirements.txt index e079f8a..a4ebd74 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1 +1,3 @@ pytest +flake8 + diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..8804a09 --- /dev/null +++ b/tox.ini @@ -0,0 +1,22 @@ +[tox] +minversion = 2.0 +envlist = pep8 +skipsdist = True + +[testenv] +passenv = CI TRAVIS TRAVIS_* +usedevelop = True +deps = -r{toxinidir}/requirements.txt + -r{toxinidir}/test-requirements.txt +setenv = LANGUAGE=en + +[testenv:pep8] +basepython = python2.7 +commands = + flake8 *.py + +[flake8] +show-source = True +ignore = E402,E501,E722 +exclude = tests.py +