[Python-Dev] Fuzziness in io module specs - PEP update proposition V2

Pascal Chambon chambon.pascal at gmail.com
Mon Sep 28 10:08:16 CEST 2009

Antoine Pitrou a écrit :
> Hello,
>> So here is the proposed semantic, which matches established conventions:
>> *IOBase.truncate(n: int = None) -> int*
> [...]
> I still don't think there is a sufficient benefit in breaking 
> compatibility. If you want the file pointer to remain the same, you can 
> save it first and restore it afterwards manually.
Sure, but won't this truncate become some kind of a burden for py3k, if 
it's twice misleading (it's not a real truncation since it can extend 
the file, and it's not even a truncation or resizing in posix/win32 
style, since the filepointer is moved) ?
Since it was an undocumented behaviour, and py3k doesn't seem to be 
present yet in production environments (or is it ?), I'd promote this 
late-but-maybe-not-too-late change.
But if the consensus prefers the current behaviour, well, it'll be OK to 
me too, as long as it's sufficiently documented and advertised.

>> *Propositions of doc update*
> Please open tracker issues for these kinds of suggestions.
Is the tracker Ok for simple suggestions too ? I thought it was rather 
for obvious bugfixes, and to-be-discused propositions had better be in 
mailing-lists... OK then, I'll open bugtracker issues for these. B-)

> Instead of "than size", perhaps "than n".
Whoups, indeed >_<
Actually the signature would rather be:
*IOBase.truncate(size: int = None) -> int*
And I forgot to mention that truncate returns the new file size 
(according to the current PEP)...

> Should an exception be raised if start and/or end are out of range?
I'd advocate it yep, for the sake of "explicit errors". However, should 
it be a ValueError (the ones io functions normally use) or an IndexError 
(which is technically more accurate, but might confuse the user) ?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20090928/026d23a8/attachment-0001.htm>

More information about the Python-Dev mailing list