[ python-Bugs-1180267 ] expanding platform module and making it work as it should

SourceForge.net noreply at sourceforge.net
Sun Apr 10 18:44:28 CEST 2005


Bugs item #1180267, was opened at 2005-04-10 19:44
Message generated for change (Tracker Item Submitted) made by Item Submitter
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1180267&group_id=5470

Category: Python Library
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Nikos Kouremenos (nkour)
Assigned to: Nobody/Anonymous (nobody)
Summary: expanding platform module and making it work as it should

Initial Comment:
platform.release() (which is supposed to return the
Name of Windows) also does not work as it should in
some versions of windows I tried (xp pro sp1). Luckily
to print more than Windows (eg. print Windows XP or
Windows 2000 etc) you can have a look at this
http://www.brunningonline.net/simon/blog/archives/001168.html
of Simon Brunning

also  only debian, mdk and redhat is scanned for
GNU/Linux ?? why even bother then?

I think that PSL is good but this module is has hell of
limitations. At least dont' make anyone write this:

import os

distro_info = {
  'Arch Linux': '/etc/arch-release',  'Aurox Linux': '/etc/aurox-release',  'Conectiva Linux': '/etc/conectiva-release',  'Debian GNU/Linux': '/etc/debian_release',  'Debian GNU/Linux': '/etc/debian_version',  'Fedora Linux': '/etc/fedora-release',  'Gentoo Linux': '/etc/gentoo-release',  'Mandrake Linux': '/etc/mandrake-release',  'Slackware Linux': '/etc/slackware-release',  'Slackware Linux': '/etc/slackware-version',  'Solaris/Sparc': '/etc/release',  'Sun JDS': '/etc/sun-release',  'Novell SUSE Linux': '/etc/SuSE-release',  'PLD Linux': '/etc/pld-release',  'SUSE Linux': '/etc/SuSE-release',  'Yellow Dog Linux': '/etc/yellowdog-release',  # many distros use the /etc/redhat-release for
compatibility
  # so Redhat is the last
  'Redhat Linux': '/etc/redhat-release'}

def get_os_info():
  if os.name =='nt':
    win_version = {
			(1, 4, 0): "95",			(1, 4, 10): "98",			(1, 4, 90): "ME",			(2, 4, 0): "NT",			(2, 5, 0): "2000",			(2, 5, 1): "XP"
		}[os.sys.getwindowsversion()[3],
os.sys.getwindowsversion()[0],
os.sys.getwindowsversion()[1]]
		return 'Windows' + ' ' + win_version
  elif os.name =='posix':
    executable = 'lsb_release'
    params = ' --id --codename --release --short'
    for path in os.environ['PATH'].split(':'):
      full_path_to_executable = os.path.join(path,
executable)
      if os.path.exists(full_path_to_executable):
        command = executable + params
        child_stdin, child_stdout = os.popen2(command)
        output = child_stdout.readline().strip()
        child_stdout.close()
        child_stdin.close()
        return output
    # lsb_release executable not available, so parse files
    for distro in distro_info:
      path_to_file = distro_info[distro]
      if os.path.exists(path_to_file):
        file = open(path_to_file)
        text = file.read().strip()
        file.close()
        if path_to_file.endswith('version'):
          text = distro + ' ' + text
        return text

print get_os_info()

Thank you

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1180267&group_id=5470


More information about the Python-bugs-list mailing list