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

Bob Ippolito bob at redivi.com
Thu Sep 22 19:10:53 CEST 2005


/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'?
>>
>
>



More information about the Python-Dev mailing list