1
1
import sys
2
- from collections .abc import Callable , Sequence
2
+ from _typeshed import StrPath
3
+ from collections .abc import Callable , Generator , Sequence
4
+ from contextlib import contextmanager
3
5
from tkinter import Canvas , Frame , Misc , PhotoImage , Scrollbar
4
6
from typing import Any , ClassVar , Literal , TypedDict , overload
5
7
from typing_extensions import Self , TypeAlias
@@ -128,6 +130,9 @@ __all__ = [
128
130
"Terminator" ,
129
131
]
130
132
133
+ if sys .version_info >= (3 , 14 ):
134
+ __all__ += ["fill" , "no_animation" , "poly" , "save" ]
135
+
131
136
if sys .version_info >= (3 , 12 ):
132
137
__all__ += ["teleport" ]
133
138
@@ -231,6 +236,10 @@ class TurtleScreen(TurtleScreenBase):
231
236
def delay (self , delay : None = None ) -> int : ...
232
237
@overload
233
238
def delay (self , delay : int ) -> None : ...
239
+ if sys .version_info >= (3 , 14 ):
240
+ @contextmanager
241
+ def no_animation (self ) -> Generator [None ]: ...
242
+
234
243
def update (self ) -> None : ...
235
244
def window_width (self ) -> int : ...
236
245
def window_height (self ) -> int : ...
@@ -249,6 +258,8 @@ class TurtleScreen(TurtleScreenBase):
249
258
# Looks like if self.cv is not a ScrolledCanvas, this could return a tuple as well
250
259
@overload
251
260
def screensize (self , canvwidth : int , canvheight : int , bg : _Color | None = None ) -> None : ...
261
+ if sys .version_info >= (3 , 14 ):
262
+ def save (self , filename : StrPath , * , overwrite : bool = False ) -> None : ...
252
263
onscreenclick = onclick
253
264
resetscreen = reset
254
265
clearscreen = clear
@@ -428,12 +439,20 @@ class RawTurtle(TPen, TNavigator): # type: ignore[misc] # Conflicting methods
428
439
def clearstamp (self , stampid : int | tuple [int , ...]) -> None : ...
429
440
def clearstamps (self , n : int | None = None ) -> None : ...
430
441
def filling (self ) -> bool : ...
442
+ if sys .version_info >= (3 , 14 ):
443
+ @contextmanager
444
+ def fill (self ) -> Generator [None ]: ...
445
+
431
446
def begin_fill (self ) -> None : ...
432
447
def end_fill (self ) -> None : ...
433
448
def dot (self , size : int | None = None , * color : _Color ) -> None : ...
434
449
def write (
435
450
self , arg : object , move : bool = False , align : str = "left" , font : tuple [str , int , str ] = ("Arial" , 8 , "normal" )
436
451
) -> None : ...
452
+ if sys .version_info >= (3 , 14 ):
453
+ @contextmanager
454
+ def poly (self ) -> Generator [None ]: ...
455
+
437
456
def begin_poly (self ) -> None : ...
438
457
def end_poly (self ) -> None : ...
439
458
def get_poly (self ) -> _PolygonCoords | None : ...
@@ -516,6 +535,11 @@ def tracer(n: int, delay: int | None = None) -> None: ...
516
535
def delay (delay : None = None ) -> int : ...
517
536
@overload
518
537
def delay (delay : int ) -> None : ...
538
+
539
+ if sys .version_info >= (3 , 14 ):
540
+ @contextmanager
541
+ def no_animation () -> Generator [None ]: ...
542
+
519
543
def update () -> None : ...
520
544
def window_width () -> int : ...
521
545
def window_height () -> int : ...
@@ -534,6 +558,9 @@ def screensize(canvwidth: None = None, canvheight: None = None, bg: None = None)
534
558
@overload
535
559
def screensize (canvwidth : int , canvheight : int , bg : _Color | None = None ) -> None : ...
536
560
561
+ if sys .version_info >= (3 , 14 ):
562
+ def save (filename : StrPath , * , overwrite : bool = False ) -> None : ...
563
+
537
564
onscreenclick = onclick
538
565
resetscreen = reset
539
566
clearscreen = clear
@@ -705,10 +732,20 @@ def stamp() -> Any: ...
705
732
def clearstamp (stampid : int | tuple [int , ...]) -> None : ...
706
733
def clearstamps (n : int | None = None ) -> None : ...
707
734
def filling () -> bool : ...
735
+
736
+ if sys .version_info >= (3 , 14 ):
737
+ @contextmanager
738
+ def fill () -> Generator [None ]: ...
739
+
708
740
def begin_fill () -> None : ...
709
741
def end_fill () -> None : ...
710
742
def dot (size : int | None = None , * color : _Color ) -> None : ...
711
743
def write (arg : object , move : bool = False , align : str = "left" , font : tuple [str , int , str ] = ("Arial" , 8 , "normal" )) -> None : ...
744
+
745
+ if sys .version_info >= (3 , 14 ):
746
+ @contextmanager
747
+ def poly () -> Generator [None ]: ...
748
+
712
749
def begin_poly () -> None : ...
713
750
def end_poly () -> None : ...
714
751
def get_poly () -> _PolygonCoords | None : ...
0 commit comments