Closed
Description
Bug report
turtle.teleport
added in #103974 seems not quite correct.
Why?
- It is produced automagically from
Turtle.teleport
instance method. It has this signature:def teleport(self, x=None, y=None, *, fill_gap: bool = False) -> None:
- The result function
turtle.teleport
has this signature:def teleport(x, y=None, fill_gap=None)
Notice that it is missing x=None
default and for some reason fill_gap
is not a kw-only anymore.
The second problem happens because inside it uses inspect.getargs
:
Line 3927 in 52fbcf6
So, when I try to run turtle.teleport
I get:
Traceback (most recent call last):
File "/Users/sobolev/Desktop/cpython/ex.py", line 60, in <module>
print(teleport())
^^^^^^^^^^
TypeError: teleport() missing 1 required positional argument: 'x'
And with just one arg:
Traceback (most recent call last):
File "/Users/sobolev/Desktop/cpython/ex.py", line 60, in <module>
print(teleport(1))
^^^^^^^^^^^
File "<string>", line 4, in teleport
TypeError: Turtle.teleport() takes from 1 to 3 positional arguments but 4 were given
Annotations are also missing. It is not a big problem, but it is inconvenient.
I propose using inspect.signature
instead. It will allow us using pos-only and keyword-only params with ease.
I have a PR ready.
Found while working on python/typeshed#10548
CC @AlexWaygood and @terryjreedy
Linked PRs
Metadata
Metadata
Assignees
Projects
Status
Done