[Python-Dev] Mapping Darwin 8.2.0 to Mac OS X 10.4.2 in platform.py

Wilfredo Sánchez Vega wsanchez at apple.com
Thu Sep 22 19:19:19 CEST 2005


   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 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


More information about the Python-Dev mailing list