[Python-bugs-list] [ python-Bugs-824371 ] ntpath.expandvars doesn't
expand Windows-style variables.
SourceForge.net
noreply at sourceforge.net
Sun Nov 2 12:56:57 EST 2003
Bugs item #824371, was opened at 2003-10-15 22:32
Message generated for change (Comment added) made by aleax
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=824371&group_id=5470
>Category: Windows
>Group: Feature Request
Status: Open
Resolution: None
>Priority: 4
Submitted By: Jeremy Fincher (jemfinch)
Assigned to: Nobody/Anonymous (nobody)
Summary: ntpath.expandvars doesn't expand Windows-style variables.
Initial Comment:
ntpath.expandvars is exactly the same as
posixpath.expandvars -- it only expands $vars. But in
windows, environment variables are represented by
%vars%, not $vars.
I can write a patch if necessary. Having read the
code, I noticed that it went to great lengths to do
what could quite easily be done with a regular
expression, so I assume using regular expressions isn't
kosher in the *path modules?
----------------------------------------------------------------------
>Comment By: Alex Martelli (aleax)
Date: 2003-11-02 18:56
Message:
Logged In: YES
user_id=60314
it seems to me that the behavior of os.path.expandvars is clearly documented (both in the docstrings and the library reference) and therefore i marked this as a feature request with slightly lower priority (features are unlikely to be added within 2.3 any more -- you may want to target 2.4 for this, therefore).
----------------------------------------------------------------------
Comment By: Johan M. Hahn (johahn)
Date: 2003-10-20 20:26
Message:
Logged In: YES
user_id=887415
Hi Jeremy
The purpose of path.expandvars is to retrieve environment
variables in a platform independant way into a user supplied
string, as in path.expandvars('$PYTHON/Lib/site-packages').
Using %vars% on windows and $vars on unix would make the
method pointless. So this is no bug, though it might be
explained a little vague in the docstring (IMHO the overall
purpose and the phrase "left unchanged" are both unclear):
>>> help(path.expandvars)
Help on function expandvars in module ntpath:
expandvars(path)
Expand shell variables of form $var and ${var}.
Unknown variables are left unchanged.
Though, the module docs offer a better explanation:
"Return the argument with environment variables expanded.
Substrings of the form "$name" or "${name}" are replaced by
the value of environment variable name. Malformed variable
names and references to non-existing variables are left
unchanged. On the Macintosh, this always returns path
unchanged."
Still, what does "unchanged" mean? On my windows system
non-existing variables are IGNORED, they are not left
unchanged anywhere:
>>> path.expandvars('$MADEUP/Lib/site-packages')
'/Lib/site-packages'
Is it me or is that a bug? :)
...johahn
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=824371&group_id=5470
More information about the Python-bugs-list
mailing list