""" Utility module to determine the OS Python running on -------------------------------------------------------------------------- File: utilsOsType.py Overview: Python module to supply functions and an enumeration to help determine the platform type, bit size and OS currently being used. Environment: OS: Windows/LINUX/OSX IDE: Visual Studio 2013 Plugin Python Tools (PTVS) Script: Python 2.6 x64 Gotchas: None. Copyright: None. -------------------------------------------------------------------------- """ # Python modules: import sys # Provide system information # Third party modules: # In-house modules: # Instantiations: # Enumerations: #----------------------------------------------------------------------------- # Details: Class to implement a 'C' style enumeration type. # Gotchas: None. # Authors: Illya Rudkin 28/11/2013. # Changes: None. #-- class EnumOsType( object ): values = [ "Unknown", "Windows", "Linux", "Darwin" ]; # OSX class __metaclass__( type ): #++--------------------------------------------------------------------------- # Details: Fn acts as an enumeration. # Args: vName - (R) Enumeration to match. # Returns: Int - Matching enumeration/index. # Throws: None. #-- def __getattr__( self, vName ): return self.values.index( vName ); #++--------------------------------------------------------------------------- # Details: Reverse fast lookup of the values list. # Args: vI - (R) Index / enumeration. # Returns: Str - text description matching enumeration. # Throws: None. #-- def name_of( self, vI ): return EnumOsType.values[ vI ]; #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- #++--------------------------------------------------------------------------- # Details: Determine what operating system is currently running on. # Args: None. # Returns: EnumOsType - The OS type being used ATM. # Throws: None. #-- def determine_os_type(): eOSType = EnumOsType.Unknown; strOS = sys.platform if strOS == "win32": eOSType = EnumOsType.Windows; elif (strOS == "linux") or (strOS == "linux2"): eOSType = EnumOsType.Linux; elif strOS == "darwin": eOSType == EnumOsType.Darwin; return eOSType;