[Python-Dev] Proposal to revert r54204 (splitext change)
Phillip J. Eby
pje at telecommunity.com
Fri Mar 16 16:13:08 CET 2007
At 01:31 PM 3/16/2007 +0100, Martin v. Löwis wrote:
>Phillip J. Eby schrieb:
> > Some other options:
> >
> > 1. Deprecate splitext() and remove it in 3.0
>
>How would that help the problem? Isn't it useful to have a function
>that strips off the extension?
Not if there's no consensus as to what "extension" means. Proposals to add
sorted dictionaries or routines to add "non-duplicate" items to a list or
to "flatten" data structures are routinely rejected for the same reason:
users are recommended to write a routine that does what their particular
application needs.
> > 2. Add an optional flag argument to enable the new behavior
>
>How would that help backwards compatibility?
All existing calls to splitext() would work the same way they've done for
several years, and the documentation would now make it obvious to new users
of the function that there's a choice about how to handle dotfiles. Heck,
we could throw in another optional argument to strip multiple extensions
like .tar.gz.
For that matter, the documentation should address the issue that no matter
what options you use, you may *still* end up with unexpected results, for
files like "Release 1.2", due to the fuzzy nature of the concept of a file
"extension" on modern OSes.
> > 3. Create a new function with the new behavior (as you proposed the last
> > time there was a patch submitted for this)
>
>What to do with the old function in this case?
Leave it alone - it's not broken. If people have buggy programs because
they assumed '.foo' files were handled in a way that the docstrings and
tests clearly indicate they are *not*, and they didn't test their *own*
program, it's not Python's responsibility to fix their programs.
More information about the Python-Dev
mailing list