Shockingly, it even says that parsing the file is "a better way" than using gestaltSystemVersion().

It's better for python, anyway, I think, since it doesn't require access to the Carbon API set. Be sure to handle the case where the file doesn't exist:

    import os
version_info_file = "/System/Library/CoreServices/ SystemVersion.plist"
    if os.path.isfile(version_info_file):
        import plistlib
        info = plistlib.Plist.fromFile(version_info_file)
        print '%(ProductName)s %(ProductVersion)s' % info
    else:
        uname_os, uname_version = do_the_uname_thing
        print '%s %s' % (uname_os, uname_version)

  Or similar.

    -wsv


On Sep 22, 2005, at 10:10 AM, Bob Ippolito wrote:

/usr/bin/sw_vers technically calls a private (at least undocumented)
CoreFoundation API, it doesn't parse that plist directly :)

On further inspection, it looks like parsing the plist directly is
supported API these days (see the bottom of <http://
developer.apple.com/documentation/Carbon/Reference/Gestalt_Manager/
gestalt_refchap/chapter_1.4_section_181.html>):

import plistlib
dct = plistlib.Plist.fromFile('/System/Library/CoreServices/
SystemVersion.plist')
print '%(ProductName)s %(ProductVersion)s' % dct

-bob

On Sep 22, 2005, at 1:02 PM, Wilfredo Sánchez Vega wrote:


  "rhapsody" is emitted by uname on Mac OS X Server 1.x, but not on
anything we ship today.

  Bob's right, the version number from uname only tells you about
the kernel, and not whether, for example, the Cocoa API is on the
system (it wouldn't be on a standalone Darwin OS install, which
will have the same uname output).

  Just FYI, /usr/bin/sw_vers parses /System/Library/CoreServices/
SystemVersion.plist, which is XML.  If you want that info, parsing
the file may be more efficient than forking off sw_vers.

    -wsv


On Sep 21, 2005, at 8:28 PM, Guido van Rossum wrote:



I forgot. The current code recognizes 'Rhapsody' and maps it to
"MacOS
X Server". But I don't see any evidence that Apple still uses the
code
name Rhapsody. Does uname ever return 'Rhapsody'?






_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: http://mail.python.org/mailman/options/python-dev/ wsanchez%40wsanchez.net


Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to