[issue14586] TypeError: truncate() takes no keyword arguments

2020-12-15 Thread Irit Katriel


Change by Irit Katriel :


--
versions: +Python 3.10 -Python 2.7, Python 3.2, Python 3.3

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2015-09-19 Thread Martin Panter

Martin Panter added the comment:

I agree with Guy’s earlier comments and would prefer this be fixed in the 
documentation. Otherwise, we would end up with third party IOBase 
implementations that use the wrong keyword name, or that don’t accept keywords 
at all. These would no longer be compatible with the new API.

Also the new patch competes with Issue 25057, also proposing keyword arguments 
for seek().

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2015-06-06 Thread Martin Panter

Martin Panter added the comment:

See also Issue 23738 and PEP 457 for fixing the documentation instead, possibly 
something like truncate(size=None, /). Also, Issue 17003 has changed some of 
the keywords to be more consistent, making parts of this patch incorrect.

--
nosy: +vadmium

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-17 Thread Guy Taylor

Guy Taylor thebigguy.co...@gmail.com added the comment:

@Brandl truncate() was the issue I ran into, no other reason. I have started on 
the rest of the IO module tho. I know the patch is not working but I ran into 
problems with getting cpython to change functions from positional to keyword.

@all
cpython| Python| Status
---+---+---
iobase_readlines   | readline(limit=-1)| patch v2
iobase_readline| readlines(hint=-1)| patch v2
iobase_seek| seek(offset, whence=SEEK_SET) | patch v2
iobase_truncate| truncate(size=None)   | patch v2
fileio_seek| seek(offset, whence=SEEK_SET) | patch v2
fileio_read| read(n=-1)| patch v2
textiowrapper_read | read(n=-1)| ToDo
textiowrapper_readline | readline(limit=-1)| ToDo
textiowrapper_seek | seek(offset, whence=SEEK_SET) | ToDo
textiowrapper_truncate | truncate(size=None)   | ToDo
textiobase_read| read(n=-1)| ToDo
textiobase_readline| readline(limit=-1)| ToDo
{bufferedio.c} |   | ToDo
{bytesio.c}|   | ToDo
{stringio.c}   |   | ToDo

ps.
I am using code from within other C files and 
http://docs.python.org/dev/extending/extending.html#keyword-parameters-for-extension-functions
 to base my patch on but I still get x() takes no keyword arguments. What 
have I missed/Are the docs correct?

--
Added file: http://bugs.python.org/file25251/truncate.ver2.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-17 Thread R. David Murray

R. David Murray rdmur...@bitdance.com added the comment:

Ah, I'm glad someone else chimed in.  I was going to say that I was pretty sure 
we had a macro for doing this, but I don't do much C level coding so I didn't 
have a reference handy.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-17 Thread R. David Murray

R. David Murray rdmur...@bitdance.com added the comment:

macro, function...something automated, anyway :)

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread Guy Taylor

Guy Taylor thebigguy.co...@gmail.com added the comment:

What ever change is made to the new CPythons the old docs should be updated to 
prevent confusion, with truncate([size]).

On fixing it for the future I would agree that supporting it as a keyword 
argument is preferred, as it is more pythonic (in my opinion). However this 
would cause ether backwards incompatibility or ambiguity in the language (ie. 
truncate(0, size=1) or need the deprecate, warn then removal stages taken three 
release cycles).

Maybe the less perfect but acceptable solution is just to change the docs and 
wait for Python 4k for the real fix?

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread R. David Murray

R. David Murray rdmur...@bitdance.com added the comment:

There wouldn't be serious backward incompatibility.  Truncate(0) would still 
mean the same thing as truncate(size=0).  I don't remember if we treat 
supporting the keyword form when it is doced that as a bug or not, though, so 
you might be right that it can't be backported.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread Guy Taylor

Guy Taylor thebigguy.co...@gmail.com added the comment:

@murray The thing I would be worried at in both supporting truncate(0) and 
truncate(size=0) would be truncate(0, size=1). This could throw an exception 
but causes the need for extra sanity checks and introduces ambiguity in the 
otherwise 'only one way to do something' Python style.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread R. David Murray

R. David Murray rdmur...@bitdance.com added the comment:

I think you misunderstand the way that python arguments work.  If you have a 
function so:

  def func(size=None):

Then func(0) and func(size=0) are equivalent, and func(0, size=0) is a 
TypeError because you've provided two arguments instead of just one.  The C 
code *can* emulate this, but often doesn't (it just accepts positional 
arguments instead).  An issue was raised about changing most C functions to 
support the keyword syntax, but I believe it was decided that while in general 
doing so is good we'd only do it on a case by case basis as they came up.  See 
issue 8706 for more details.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread Guy Taylor

Guy Taylor thebigguy.co...@gmail.com added the comment:

Looking through cpython and trying to form a patch I found several differing 
interpretations of truncate:
Lib/_pyio.py
  def truncate(self, pos=None):
Modules/_io/fileio.c
  PyDoc_STRVAR(truncate_doc, truncate([size: int]) ...);

A first semi-working patch is attached. This will allow:
 truncate()
 truncate(x)
 truncate(size=x)
and fail on:
  truncate(x, size=x)
  truncate(x, size=y)

Thoughts?

ps.
fileio_truncate is defined as
  (PyCFunctionWithKeywords)fileio_truncate, METH_VARARGS | METH_KEYWORDS
but fails with takes no keyword arguments. How do I fix this?

--
keywords: +patch
Added file: http://bugs.python.org/file25246/truncate.ver1.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread Guy Taylor

Guy Taylor thebigguy.co...@gmail.com added the comment:

Sorry had not refreshed the page to pick up the last comment. After reading 
more the cpython code I get what you are saying now. Not a fan of that syntax 
but consistency is best.
This is my first time working with cpython directly, I have only worked on 
small python to c modules before so please say if I am barking up the wrong 
tree.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-16 Thread Georg Brandl

Georg Brandl ge...@python.org added the comment:

The patch is wrong: PyArg_ParseTupleAndKeywords already handles the correct 
assignment of positional and keyword args, and raises exceptions accordingly.  
Did you test that code?

The question is also: why only truncate()? There are several other fileio_* 
methods that take VARARGS only.

--
nosy: +georg.brandl

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-15 Thread R. David Murray

R. David Murray rdmur...@bitdance.com added the comment:

The suggested doc change won't work, since that would imply that the size 
argument was required.  We'd have to use the old truncate([size]) notation.

Supporting it as a keyword argument is probably to be preferred, but someone 
will have to write the patch :)

--
nosy: +pitrou, r.david.murray
stage:  - needs patch
versions: +Python 3.3

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14586] TypeError: truncate() takes no keyword arguments

2012-04-14 Thread Guy Taylor

New submission from Guy Taylor thebigguy.co...@gmail.com:

The Python docs suggest that io.IOBase.truncate' should take a keyword argument 
of 'size'.
However this causes a 'TypeError':
  TypeError: truncate() takes no keyword arguments

Suggest that the docs are changed to 'truncate(size)' or CPython is changed to 
allow the keyword.

http://docs.python.org/py3k/library/io.html?highlight=truncate#io.IOBase.truncate
http://docs.python.org/library/io.html?highlight=truncate#io.IOBase.truncate

--
assignee: docs@python
components: Documentation, Interpreter Core
files: test.py
messages: 158308
nosy: TheBiggerGuy, docs@python
priority: normal
severity: normal
status: open
title: TypeError: truncate() takes no keyword arguments
type: behavior
versions: Python 2.7, Python 3.2
Added file: http://bugs.python.org/file25219/test.py

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14586
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com