[Pythonmac-SIG] parsing system_profiler xml output

Bob Ippolito bob at redivi.com
Thu Nov 11 23:56:58 CET 2004


On Nov 11, 2004, at 17:34, eichin at metacarta.com wrote:

>
>> If this doesn't work with Python 2.4's plistlib, then the output of
>> system profiler is not correct.  I'm at least 90% sure that Python
>> 2.4's plistlib correctly reads and writes all valid plists.
>
> Oh, excellent.  I was quoting from the stock 2.3 install on 10.3.6, so
> it's good to know that 2.4 fixes this (esp. if it's in Tiger...)
>
> sys.version: '2.3 (#1, Sep 13 2003, 00:49:11) \n[GCC 3.3 20030304 
> (Apple Computer, Inc. build 1495)]'

Yes, I know you were talking about Python 2.3.. I'm just saying, if it 
STILL doesn't work, then system profiler is broken (emitting XML not 
compliant with the DTD).  plistlib should no longer be broken because 
it was somewhat recently audited by (at least) Just and I, with fixes 
committed to CVS by Just before Python 2.4b2.

Python 2.4 in Tiger wouldn't necessarily be a good thing anyway.  2.3.4 
would be MUCH better for the compatibility reasons, with 2.4 being 
optional for the people who want it.  Public information (posted darwin 
source) says that the WWDC build of Tiger had Python 2.3.3.

Think of it this way: if Apple included 2.4, they probably wouldn't 
also include 2.3 (following their record of not including 2.2 in 10.3, 
and with other languages).  This would break nearly every Python-based 
Application built on Panther since they are primarily semi-standalone.  
These applications would otherwise work, because 2.3.0 -> 2.3.x is 
binary compatible.  Keeping 2.3 also allows Python-based applications 
built on Tiger to be deployed on Panther to a large degree (unless 
extensions are included with 10.4 specific features).

Also, this would BREAK Apple's record of shipping painfully broken 
releases of Python with OS X releases.  2.2.0 (10.2) was broken beyond 
comprehension, and 2.3.0 (10.3) is quite crippled with regard to living 
hospitably with other installations of Python 2.3 due to unfortunate 
linker options and an incorrect mechanism for determining the path of 
the current interpreter.  These bugs, and more, were all fixed by 
2.3.3, with 2.3.4 having a couple additional bug fixes that probably 
don't matter as much.

-bob



More information about the Pythonmac-SIG mailing list