> > suppose you get Python for Vista Windows today > > if platform.system() in ('Windows', 'Microsoft'): > > if not (platform.system() in ('Windows', 'Microsoft')): > > Good analysis.
Yes I am sane!! Thank you for saying. > Log a bug @ bugs.python.org Glad to hear I can help. I created: http://bugs.python.org/issue1082 TITLE = (no priority set) platform system may be Windows or Microsoft since Vista CREATOR = [EMAIL PROTECTED] The Search Tracker there now finds this bug within: platform system Windows Microsoft Thanks again for clueing me in promptly, P.S. http://bugs.python.org/issue1082 now includes the musings: NOTES: There is no fixing all of this? Cross-platform scripts actually will misbehave across the large population that is 2.5 Python in Vista unless those scripts change to implement something like the suggested workaround, that's now an accomplished fact. Question: Is it better to leave this feature as is, so that everyone eventually learns to workaround it, or is it better to fix it late now in 2007-09, so that many people never have to learn to workaround it? Question: Why are we screen-scraping the Ver command, instead of calling Win kernel32.getVersionEx? And how can any code for screen- scraping the Ver command be in doubt about whether the platform.system underneath is 'Windows'? P.P.S. http://wiki.python.org/moin/SubmittingBugs is the page that newbie Python bug reporters should read first, I guess My path to that page was as follows ... > Log a bug @ bugs.python.org Indeed the Search Tracker finds no hits at: platform system Windows Microsoft Vaguely feels like e-mail registration required? Ick. Ok. Ah, the Issues > Create New menu item appears after login, good. Those bug Types are labeled in English but otherwise undefined. (Later I see I could contribute my guess of definitions at http://wiki.python.org/moin/TrackerDocs/.) I guess surprising result values like I'm seeing count as 'Behavior' else 'RFE' else 'Security', but not in ('Crash', 'Compile', 'Resource Usage'). I guess by RFE we mean a wish, i.e., a Request For Enhancement. Ok then: TITLE: platform system may be Windows or Microsoft since Vista TYPE: Behavior SEVERITY: Major (not Critical, Urgent, Normal, Minor) COMPONENTS: Windows All the "process" fields I guess I should leave blank. Somehow there is no place to describe the bug in detail??? I guess I Submit New entry anyhow ... Oh no, not actually. There is online help of Wiki quality!! Clicking thru that online help eventually explains: """ Change Note: describe the problem in detail, including what you expected to happen and what did happen. Be sure to include whether any extension modules were involved, and what hardware and software platform you were using (including version information as appropriate). """ Thus, I wrote ... SUMMARY: 'Microsoft' is the platform.system() of Vista Windows, whereas 'Windows' was the platform.system() of XP Windows, whoops. STEPS TO REPRODUCE & ACTUAL RESULTS: Run 2.5.1 Python in a Vista and see: >>> import platform >>> platform.system() >>> 'Microsoft' >>> EXPECTED RESULTS: >>> import platform >>> platform.system() 'Windows' >>> WORKAROUND: Write new Python source code like: if platform.system() in ('Windows', 'Microsoft'): if not (platform.system() in ('Windows', 'Microsoft')): in place of obsolete Python source code like: if platform.system() == 'Windows': # Microsoft if platform.system() != 'Windows': # Microsoft REGRESSION/ ISOLATION: Seen by me in an Enterprise Vista. Indexed by Google as reported by Martin v. Löwis (loewis) circa 2007-05-29 07:11 as: http://mail.python.org/pipermail/patches/2007-June/022947.html ... Patches item #1726668, was opened at 2007-05-28 03:23 On Microsoft Vista platform.system() returns 'Microsoft' and platform.release() returns 'Windows' Under Microsoft Windows XP SP2 platform.system() returns 'Windows' and platform.release() returns 'XP'. This is problem was caused by a change in the output of the "ver" command. In Windows XP SP2 "ver" outputted 'Microsoft Windows XP [Version 5.1.2600]' In Microsoft Vista "ver" outputted 'Microsoft Windows [Version 6.0.6000]'. The lack of the 3rd word before version causes _syscmd_ver(...) in platform.py to return 'Microsoft' for system instead of 'Microsoft Windows'. This causes uname() to return the incorrect values. Both system() and release() call uname(). NOTES: [as above]
-- http://mail.python.org/mailman/listinfo/python-list