Source code for bibliopixel.util.platform

import platform, subprocess

MAC = 'Darwin'
WINDOWS = 'Windows'
CPUINFO_FILE = '/proc/cpuinfo'


[docs]class Platform: def __init__(self): self.platform = platform.system() self.version = platform.version() self.release = platform.release() self.python_version = platform.python_version() try: self.cpuinfo = [i.strip() for i in open(CPUINFO_FILE)] except: self.cpuinfo = [] def is_rpi_line(i): return i.startswith('Hardware') and i.endswith('BCM2708') self.is_raspberry_pi = any(is_rpi_line(i) for i in self.cpuinfo) self.is_linux = (self.platform == 'linux') platform_version = () if self.is_linux: # Use the linux distribution as the name self.platform = platform.linux_distribution()[0].lower() elif self.platform == WINDOWS: platform_version = platform.win32_ver() elif self.platform == MAC: release, versioninfo, machine = platform.mac_ver() platform_version = release, machine # https://boklee.blogspot.com/2012/05/how-to-retrieve-cpuinfo-on-os-x.html for i in 'features', 'brand_string': s = subprocess.check_output(('sysctl', 'machdep.cpu.' + i)) self.cpuinfo.append(s.decode().strip()) self.platform_version = ':'.join(platform_version)