[Python-Dev] [ 1669539 ] Change (fix!) os.path.isabs() semantics on Win32 (original) (raw)

Jason Orendorff jason.orendorff at gmail.com
Wed Mar 7 12:52:25 CET 2007


On 3/7/07, "Martin v. Löwis" <martin at v.loewis.de> wrote:

Terry Jones schrieb: > I do think the behavior can be improved, and that it should be fixed, but > at a place where other incompatible changes will also be being made,

Indeed, 2.6 is such a place. Any feature release can contain incompatible behavior, and any feature release did contain incompatible behavior. Just look at the "porting to" sections of past whatsnew files.

While we're at it, patch 1669539 makes a similar incompatible change to ntpath.isabs(). On Windows there are:

isabs() is inconsistent about oddities:

ntpath.isabs(r'C:ntpath.py') False ntpath.isabs(r'\Python25') True

I don't think there's any logic behind this behavior. The current documentation for isabs() is:

isabs(path) Return True if path is an absolute pathname (begins with a slash).

The patch makes isabs(oddity) return False.

I don't think existing code is a huge concern here. Google Code Search suggests that no one thinks about the oddities. Most existing code using isabs() has acceptable-but-slightly-odd behavior for oddities, and that kind of code would have different acceptable-but-slightly-odd behavior under the proposed change. And oddities are rare.

The patch is incomplete (no docs) but ripe for a note of encouragement (or summary rejection) from a committer.

-j



More information about the Python-Dev mailing list