[Python-Dev] PEP 370, open questions

Mark Hammond mhammond at skippinet.com.au
Thu Jan 17 12:31:26 CET 2008


> Isn't SHGetSpecialFolderPath() XP and newer only?

MSDN documents:
Minimum operating systems Windows 2000, Windows NT 4.0 with Internet
Explorer 4.0, Windows 98, Windows 95 with Internet Explorer 4.0

> The patch is available at
> http://bugs.python.org/issue1763. Maybe you have some time to review
> it?

Sure - I'll do my best to do that in the next 24 hours - feel free to prod
if I don't :)

> As far as I understand and remember the Windows API SHGetFolderPath()
> and friends are retrieving the information from the registry. The shell
> folder keys are (IIRC) REG_EXPAND_SZ keys which are expanded with the
> function ExpandEnvironmentStrings(). So at the end CSIDL_APPDATA uses
> the %APPDATA% env var -- unless I'm totally mistaken.

I'm not sure exactly how that is implemented, and I'm not necessarily
arguing you must call that function (eg, it's not hard to argue the env-var
may be preferred, as it offers an easy override) - it's just that the PEP
shouldn't be silent about the issue.

Something I meant to mention was that supporting multiple "per-user"
directories could be considered - that way CSIDL_LOCAL_APPDATA could be
added later.  YAGNI is easy to justify here, but now is the time to consider
such issues.

> PS: Have you tested the new PCbuild directory for VS 2008? Martin said
> that you know how to create a new set of base addresses for pre-
> linking.
> dllbase_nt.txt is probably outdated.

I'm afaid I haven't.  The base-addresses are fairly easily tested - just
import each and every module listed while running under the debugger - if
you see messages in the output window telling you about relocation, you have
a problem :)  pywin32 is screaming for a new release (it didn't manage a
single one in 2007!) and that is likely to happen before I get to play with
the new-fangled stuff <wink>

Mark



More information about the Python-Dev mailing list