bpo-45837: Properly deprecate turtle.RawTurtle.settiltangle (GH-29618)

This commit is contained in:
Hugo van Kemenade 2021-11-18 17:02:48 +02:00 committed by GitHub
parent e4bb22fabb
commit c94664c262
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 10 deletions

View file

@ -369,6 +369,11 @@ Deprecated
(Contributed by Erlend E. Aasland in :issue:`5846`.) (Contributed by Erlend E. Aasland in :issue:`5846`.)
* The :meth:`turtle.RawTurtle.settiltangle` is deprecated since Python 3.1,
it now emits a deprecation warning and will be removed in Python 3.13. Use
:meth:`turtle.RawTurtle.tiltangle` instead (it was earlier incorrectly marked
as deprecated, its docstring is now corrected).
(Contributed by Hugo van Kemenade in :issue:`45837`.)
Removed Removed
======= =======

View file

@ -110,6 +110,7 @@ import math
import time import time
import inspect import inspect
import sys import sys
import warnings
from os.path import isfile, split, join from os.path import isfile, split, join
from copy import deepcopy from copy import deepcopy
@ -2850,20 +2851,23 @@ class RawTurtle(TPen, TNavigator):
regardless of its current tilt-angle. DO NOT change the turtle's regardless of its current tilt-angle. DO NOT change the turtle's
heading (direction of movement). heading (direction of movement).
Deprecated since Python 3.1
Examples (for a Turtle instance named turtle): Examples (for a Turtle instance named turtle):
>>> turtle.shape("circle") >>> turtle.shape("circle")
>>> turtle.shapesize(5,2) >>> turtle.shapesize(5,2)
>>> turtle.settiltangle(45) >>> turtle.settiltangle(45)
>>> stamp() >>> turtle.stamp()
>>> turtle.fd(50) >>> turtle.fd(50)
>>> turtle.settiltangle(-45) >>> turtle.settiltangle(-45)
>>> stamp() >>> turtle.stamp()
>>> turtle.fd(50) >>> turtle.fd(50)
""" """
tilt = -angle * self._degreesPerAU * self._angleOrient warnings.warn("turtle.RawTurtle.settiltangle() is deprecated since "
tilt = math.radians(tilt) % math.tau "Python 3.1 and scheduled for removal in Python 3.13."
self.pen(resizemode="user", tilt=tilt) "Use tiltangle() instead.",
DeprecationWarning)
self.tiltangle(angle)
def tiltangle(self, angle=None): def tiltangle(self, angle=None):
"""Set or return the current tilt-angle. """Set or return the current tilt-angle.
@ -2877,19 +2881,32 @@ class RawTurtle(TPen, TNavigator):
between the orientation of the turtleshape and the heading of the between the orientation of the turtleshape and the heading of the
turtle (its direction of movement). turtle (its direction of movement).
Deprecated since Python 3.1 (Incorrectly marked as deprecated since Python 3.1, it is really
settiltangle that is deprecated.)
Examples (for a Turtle instance named turtle): Examples (for a Turtle instance named turtle):
>>> turtle.shape("circle") >>> turtle.shape("circle")
>>> turtle.shapesize(5,2) >>> turtle.shapesize(5, 2)
>>> turtle.tilt(45)
>>> turtle.tiltangle() >>> turtle.tiltangle()
0.0
>>> turtle.tiltangle(45)
>>> turtle.tiltangle()
45.0
>>> turtle.stamp()
>>> turtle.fd(50)
>>> turtle.tiltangle(-45)
>>> turtle.tiltangle()
315.0
>>> turtle.stamp()
>>> turtle.fd(50)
""" """
if angle is None: if angle is None:
tilt = -math.degrees(self._tilt) * self._angleOrient tilt = -math.degrees(self._tilt) * self._angleOrient
return (tilt / self._degreesPerAU) % self._fullcircle return (tilt / self._degreesPerAU) % self._fullcircle
else: else:
self.settiltangle(angle) tilt = -angle * self._degreesPerAU * self._angleOrient
tilt = math.radians(tilt) % math.tau
self.pen(resizemode="user", tilt=tilt)
def tilt(self, angle): def tilt(self, angle):
"""Rotate the turtleshape by angle. """Rotate the turtleshape by angle.
@ -2908,7 +2925,7 @@ class RawTurtle(TPen, TNavigator):
>>> turtle.tilt(30) >>> turtle.tilt(30)
>>> turtle.fd(50) >>> turtle.fd(50)
""" """
self.settiltangle(angle + self.tiltangle()) self.tiltangle(angle + self.tiltangle())
def shapetransform(self, t11=None, t12=None, t21=None, t22=None): def shapetransform(self, t11=None, t12=None, t21=None, t22=None):
"""Set or return the current transformation matrix of the turtle shape. """Set or return the current transformation matrix of the turtle shape.

View file

@ -0,0 +1,9 @@
The :meth:`turtle.RawTurtle.settiltangle` is deprecated since Python 3.1,
it now emits a deprecation warning and will be removed in Python 3.13.
Use :meth:`turtle.RawTurtle.tiltangle` instead.
:meth:`turtle.RawTurtle.tiltangle` was earlier incorrectly marked as deprecated,
its docstring has been corrected.
Patch by Hugo van Kemenade.