[Python-Dev] Mapping Darwin 8.2.0 to Mac OS X 10.4.2 in platform.py (original) (raw)
Wilfredo Sánchez Vega wsanchez at apple.com
Thu Sep 22 19:19:19 CEST 2005
- Previous message: [Python-Dev] Mapping Darwin 8.2.0 to Mac OS X 10.4.2 in platform.py
- Next message: [Python-Dev] Mapping Darwin 8.2.0 to Mac OS X 10.4.2 in platform.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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/swvers 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/GestaltManager/_ _gestaltrefchap/chapter1.4section181.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/swvers parses /System/Library/CoreServices/ SystemVersion.plist, which is XML. If you want that info, parsing the file may be more efficient than forking off swvers. -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 at python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/ wsanchez%40wsanchez.net
-------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3057 bytes Desc: not available Url : http://mail.python.org/pipermail/python-dev/attachments/20050922/5e176f6c/smime-0001.bin
- Previous message: [Python-Dev] Mapping Darwin 8.2.0 to Mac OS X 10.4.2 in platform.py
- Next message: [Python-Dev] Mapping Darwin 8.2.0 to Mac OS X 10.4.2 in platform.py
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]