[Python-Dev] fileobj.read(float): warning or error?

Benjamin Peterson musiccomposition at gmail.com
Mon Jul 21 21:23:21 CEST 2008


On Mon, Jul 21, 2008 at 2:17 PM, Victor Stinner <
victor.stinner at haypocalc.com> wrote:

> Hi,
>
> Since Python 2.4 (maybe 2.2 or older), fileobj.read(4.2) displays an error
> and
> works as fileobj.read(4).
>
> >>> i=open('/etc/issue')
> >>> i.read(4.2)
> __main__:1: DeprecationWarning: integer argument expected, got float


This warning is actually given by the argument parser when "i" gets a Python
non-integer.

>
>
> It should raises an error instead of a warning, it has no sense to read a
> partial byte :-) But that should breaks some applications?


This doesn't come into effect until 3.0.

>
>
> Well, the real problem is os.urandom(4.2) which goes to an unlimited loop:
>
>  while len(bytes) < n:
>      bytes += read(_urandomfd, n - len(bytes))
>
> because read(0.2) works as read(0) :-/
>
> Victor
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe:
> http://mail.python.org/mailman/options/python-dev/musiccomposition%40gmail.com
>



-- 
Cheers,
Benjamin Peterson
"There's no place like 127.0.0.1."
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20080721/de60ff54/attachment.htm>


More information about the Python-Dev mailing list