-> > Apparently file.seek doesn't have this DeprecationWarning though.. -> > Strange, that. -> > >>> f.seek(3.6) -> > >>> f.tell() -> > 3L -> -> That's a bug. Who'll fix it?
Added: + if (PyFloat_Check(offobj)) + PyErr_Warn(PyExc_DeprecationWarning, + "integer argument expected, got float" ); see attached diff. I also attached it to the patch at SourceForge, with a comment, just to keep the record straight. The DeprecationWarning wasn't given because a manual PyObject --> int/long conversion was being done, rather than the usual conversion implicit in ParseTuple. Regression tests run w/o problem on RH 9.0/i386. Now you get the correct behavior: -- >>> f = open('/dev/zero') >>> f.seek(5) >>> f.tell() 5L >>> f.seek(5.2) __main__:1: DeprecationWarning: integer argument expected, got float >>> f.tell() 5L -- This seems like a reasonable resolution to patch #1067760, to me... cheers, --titus
? Objects/.fileobject.c.swp Index: Objects/fileobject.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/fileobject.c,v retrieving revision 2.193 diff -c -c -r2.193 fileobject.c *** Objects/fileobject.c 7 Nov 2004 14:15:28 -0000 2.193 --- Objects/fileobject.c 23 Dec 2004 08:19:20 -0000 *************** *** 462,467 **** --- 462,472 ---- whence = 0; if (!PyArg_ParseTuple(args, "O|i:seek", &offobj, &whence)) return NULL; + + if (PyFloat_Check(offobj)) + PyErr_Warn(PyExc_DeprecationWarning, + "integer argument expected, got float" ); + #if !defined(HAVE_LARGEFILE_SUPPORT) offset = PyInt_AsLong(offobj); #else
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com