TurtleExtension 1.0.0__tar.gz → 2.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {turtleextension-1.0.0 → turtleextension-2.1.0}/PKG-INFO +4 -4
- {turtleextension-1.0.0 → turtleextension-2.1.0}/README.md +3 -3
- {turtleextension-1.0.0 → turtleextension-2.1.0}/TurtleExtension.egg-info/PKG-INFO +4 -4
- turtleextension-2.1.0/TurtleExtension.egg-info/SOURCES.txt +21 -0
- turtleextension-2.1.0/TurtleExtension.egg-info/top_level.txt +1 -0
- {turtleextension-1.0.0 → turtleextension-2.1.0}/pyproject.toml +7 -2
- turtleextension-2.1.0/turtle_extension/__init__.py +63 -0
- turtleextension-2.1.0/turtle_extension/foundations/__init__.py +48 -0
- turtleextension-1.0.0/TurtleExtension/Foundations/CustomTurtleShapes.py → turtleextension-2.1.0/turtle_extension/foundations/custom_turtle_shapes.py +16 -10
- turtleextension-1.0.0/TurtleExtension/Foundations/CustomTurtleShapes.pyi → turtleextension-2.1.0/turtle_extension/foundations/custom_turtle_shapes.pyi +18 -18
- turtleextension-1.0.0/TurtleExtension/Foundations/GlobalFunctions.py → turtleextension-2.1.0/turtle_extension/foundations/global_functions.py +22 -13
- turtleextension-1.0.0/TurtleExtension/Foundations/GlobalFunctions.pyi → turtleextension-2.1.0/turtle_extension/foundations/global_functions.pyi +4 -8
- turtleextension-2.1.0/turtle_extension/foundations/global_variables.py +15 -0
- turtleextension-1.0.0/TurtleExtension/Foundations/GlobalVariables.pyi → turtleextension-2.1.0/turtle_extension/foundations/global_variables.pyi +3 -3
- turtleextension-1.0.0/TurtleExtension/Foundations/TurtleFunctions.py → turtleextension-2.1.0/turtle_extension/foundations/turtle_functions.py +8 -4
- turtleextension-1.0.0/TurtleExtension/Foundations/TurtleFunctions.pyi → turtleextension-2.1.0/turtle_extension/foundations/turtle_functions.pyi +2 -4
- turtleextension-2.1.0/turtle_extension/turtle_heart/__init__.py +8 -0
- turtleextension-1.0.0/TurtleExtension/TurtleHeart/TurtleSkeleton.py → turtleextension-2.1.0/turtle_extension/turtle_heart/turtle_skeleton.py +4 -1
- turtleextension-1.0.0/TurtleExtension/TurtleHeart/TurtleSkeleton.pyi → turtleextension-2.1.0/turtle_extension/turtle_heart/turtle_skeleton.pyi +10 -28
- turtleextension-1.0.0/TurtleExtension/Foundations/GlobalVariables.py +0 -14
- turtleextension-1.0.0/TurtleExtension/Foundations/__init__.py +0 -41
- turtleextension-1.0.0/TurtleExtension/TurtleHeart/__init__.py +0 -6
- turtleextension-1.0.0/TurtleExtension/__init__.py +0 -58
- turtleextension-1.0.0/TurtleExtension.egg-info/SOURCES.txt +0 -21
- turtleextension-1.0.0/TurtleExtension.egg-info/top_level.txt +0 -1
- {turtleextension-1.0.0 → turtleextension-2.1.0}/LICENSE +0 -0
- {turtleextension-1.0.0 → turtleextension-2.1.0}/TurtleExtension.egg-info/dependency_links.txt +0 -0
- {turtleextension-1.0.0 → turtleextension-2.1.0}/TurtleExtension.egg-info/requires.txt +0 -0
- {turtleextension-1.0.0 → turtleextension-2.1.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TurtleExtension
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: A Python utility library providing turtle extensions on top of Python's original turtle feature.
|
|
5
5
|
Author-email: "Miah M. Sabiq" <miah.sabiq@gibs.at>
|
|
6
6
|
Requires-Python: >=3.14
|
|
@@ -30,7 +30,7 @@ TurtleExtension is a Python project dedicated to extending and experimenting wit
|
|
|
30
30
|
Once published to PyPI, install with:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
python -m pip install
|
|
33
|
+
python -m pip install turtle_extension
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Usage
|
|
@@ -38,7 +38,7 @@ python -m pip install TurtleExtension
|
|
|
38
38
|
```python
|
|
39
39
|
import turtle
|
|
40
40
|
|
|
41
|
-
# Your
|
|
41
|
+
# Your turtle_extension functionality goes here.
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
The public API and usage examples will be documented as the project develops.
|
|
@@ -49,7 +49,7 @@ Clone the repository:
|
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
51
|
git clone https://github.com/YOUR-USERNAME/TurtleExtension.git
|
|
52
|
-
cd
|
|
52
|
+
cd turtle_extension
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Install the package locally if your project contains a `pyproject.toml`:
|
|
@@ -19,7 +19,7 @@ TurtleExtension is a Python project dedicated to extending and experimenting wit
|
|
|
19
19
|
Once published to PyPI, install with:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
python -m pip install
|
|
22
|
+
python -m pip install turtle_extension
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
## Usage
|
|
@@ -27,7 +27,7 @@ python -m pip install TurtleExtension
|
|
|
27
27
|
```python
|
|
28
28
|
import turtle
|
|
29
29
|
|
|
30
|
-
# Your
|
|
30
|
+
# Your turtle_extension functionality goes here.
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
The public API and usage examples will be documented as the project develops.
|
|
@@ -38,7 +38,7 @@ Clone the repository:
|
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
40
|
git clone https://github.com/YOUR-USERNAME/TurtleExtension.git
|
|
41
|
-
cd
|
|
41
|
+
cd turtle_extension
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Install the package locally if your project contains a `pyproject.toml`:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: TurtleExtension
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: A Python utility library providing turtle extensions on top of Python's original turtle feature.
|
|
5
5
|
Author-email: "Miah M. Sabiq" <miah.sabiq@gibs.at>
|
|
6
6
|
Requires-Python: >=3.14
|
|
@@ -30,7 +30,7 @@ TurtleExtension is a Python project dedicated to extending and experimenting wit
|
|
|
30
30
|
Once published to PyPI, install with:
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
|
-
python -m pip install
|
|
33
|
+
python -m pip install turtle_extension
|
|
34
34
|
```
|
|
35
35
|
|
|
36
36
|
## Usage
|
|
@@ -38,7 +38,7 @@ python -m pip install TurtleExtension
|
|
|
38
38
|
```python
|
|
39
39
|
import turtle
|
|
40
40
|
|
|
41
|
-
# Your
|
|
41
|
+
# Your turtle_extension functionality goes here.
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
The public API and usage examples will be documented as the project develops.
|
|
@@ -49,7 +49,7 @@ Clone the repository:
|
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
51
|
git clone https://github.com/YOUR-USERNAME/TurtleExtension.git
|
|
52
|
-
cd
|
|
52
|
+
cd turtle_extension
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Install the package locally if your project contains a `pyproject.toml`:
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
TurtleExtension.egg-info/PKG-INFO
|
|
5
|
+
TurtleExtension.egg-info/SOURCES.txt
|
|
6
|
+
TurtleExtension.egg-info/dependency_links.txt
|
|
7
|
+
TurtleExtension.egg-info/requires.txt
|
|
8
|
+
TurtleExtension.egg-info/top_level.txt
|
|
9
|
+
turtle_extension/__init__.py
|
|
10
|
+
turtle_extension/foundations/__init__.py
|
|
11
|
+
turtle_extension/foundations/custom_turtle_shapes.py
|
|
12
|
+
turtle_extension/foundations/custom_turtle_shapes.pyi
|
|
13
|
+
turtle_extension/foundations/global_functions.py
|
|
14
|
+
turtle_extension/foundations/global_functions.pyi
|
|
15
|
+
turtle_extension/foundations/global_variables.py
|
|
16
|
+
turtle_extension/foundations/global_variables.pyi
|
|
17
|
+
turtle_extension/foundations/turtle_functions.py
|
|
18
|
+
turtle_extension/foundations/turtle_functions.pyi
|
|
19
|
+
turtle_extension/turtle_heart/__init__.py
|
|
20
|
+
turtle_extension/turtle_heart/turtle_skeleton.py
|
|
21
|
+
turtle_extension/turtle_heart/turtle_skeleton.pyi
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
turtle_extension
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "TurtleExtension"
|
|
7
|
-
version = "1.0
|
|
7
|
+
version = "2.1.0"
|
|
8
8
|
description = "A Python utility library providing turtle extensions on top of Python's original turtle feature."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">= 3.14"
|
|
@@ -19,5 +19,10 @@ authors = [
|
|
|
19
19
|
|
|
20
20
|
[tool.setuptools.packages.find]
|
|
21
21
|
include = [
|
|
22
|
-
"
|
|
22
|
+
"turtle_extension*",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
[tool.ruff.lint]
|
|
26
|
+
ignore = [
|
|
27
|
+
"RUF022",
|
|
23
28
|
]
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"""
|
|
2
|
+
This package is part of the GeometricalDomination project ecosystem.
|
|
3
|
+
|
|
4
|
+
It contains a chainable turtle class called ChainTurtle and a collection of extra provided features along with it:
|
|
5
|
+
|
|
6
|
+
1. tls_color -> this function make a list of colored turtles and returns it
|
|
7
|
+
2. get_screen -> turtle screen initializer function
|
|
8
|
+
3. SU -> screen update function
|
|
9
|
+
|
|
10
|
+
And a lot more.
|
|
11
|
+
|
|
12
|
+
Author: Miah M. Sabiq
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
#* Imports foundational functions across numerous files
|
|
16
|
+
from .foundations import (
|
|
17
|
+
CUSTOM_SHAPES, #* [[custom_turtle_shapes.py]]
|
|
18
|
+
get_UserShape_dict, #* [[custom_turtle_shapes.py#get_UserShape_dict]]
|
|
19
|
+
|
|
20
|
+
get_screen, #* [[global_functions.py#get_screen]]
|
|
21
|
+
mainloop, #* [[global_functions.py#mainloop]]
|
|
22
|
+
reset_tls, #* [[global_functions.py#reset_tls]]
|
|
23
|
+
SU, #* [[global_functions.py#SU]]
|
|
24
|
+
tls_color, #* [[global_functions.py#tls_color]]
|
|
25
|
+
|
|
26
|
+
t_now, #* [[global_variables.py#t_now]]
|
|
27
|
+
t_shape, #* [[global_variables.py#t_shape]]
|
|
28
|
+
UV, #* [[global_variables.py]]
|
|
29
|
+
|
|
30
|
+
TurtleFct, #* [[TurtleFct]]
|
|
31
|
+
UserShape, #* [[UserShape]]
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
#* Imports core mechanisms of this package:
|
|
35
|
+
#* [[ChainTurtle]] and [[turtle.py]] from [[turtle_skeleton.py]]
|
|
36
|
+
from .turtle_heart import (
|
|
37
|
+
ChainTurtle, #* [[ChainTurtle]]
|
|
38
|
+
tl, #* [[turtle.py]]
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
#* Specifies all available functions and dictionaries through wild card import
|
|
43
|
+
__all__ = [
|
|
44
|
+
"UV",
|
|
45
|
+
"t_now",
|
|
46
|
+
"t_shape",
|
|
47
|
+
|
|
48
|
+
"get_screen",
|
|
49
|
+
"SU",
|
|
50
|
+
"mainloop",
|
|
51
|
+
"tls_color",
|
|
52
|
+
"reset_tls",
|
|
53
|
+
|
|
54
|
+
"UserShape",
|
|
55
|
+
"get_UserShape_dict",
|
|
56
|
+
"CUSTOM_SHAPES",
|
|
57
|
+
|
|
58
|
+
"TurtleFct",
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
"ChainTurtle",
|
|
62
|
+
"tl",
|
|
63
|
+
]
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
#* Imports function, class and dictionary from [[custom_turtle_shapes.py]]
|
|
2
|
+
from .custom_turtle_shapes import (
|
|
3
|
+
CUSTOM_SHAPES,
|
|
4
|
+
UserShape,
|
|
5
|
+
get_UserShape_dict,
|
|
6
|
+
)
|
|
7
|
+
|
|
8
|
+
#* Imports fundamental turtle functions from [[global_functions.py]]
|
|
9
|
+
from .global_functions import (
|
|
10
|
+
SU,
|
|
11
|
+
get_screen,
|
|
12
|
+
mainloop,
|
|
13
|
+
reset_tls,
|
|
14
|
+
tls_color,
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
#* Imports universal dictionary and related functions from [[global_variables.py]]
|
|
18
|
+
from .global_variables import (
|
|
19
|
+
UV,
|
|
20
|
+
t_now,
|
|
21
|
+
t_shape,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
#* Imports class from [[turtle_functions.py]]
|
|
25
|
+
from .turtle_functions import (
|
|
26
|
+
TurtleFct,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
#* Specifies functions, classes, and dictionaries available in foundations package
|
|
31
|
+
#* through wild card import
|
|
32
|
+
__all__ = [
|
|
33
|
+
"UV",
|
|
34
|
+
"t_now",
|
|
35
|
+
"t_shape",
|
|
36
|
+
|
|
37
|
+
"get_screen",
|
|
38
|
+
"SU",
|
|
39
|
+
"mainloop",
|
|
40
|
+
"tls_color",
|
|
41
|
+
"reset_tls",
|
|
42
|
+
|
|
43
|
+
"UserShape",
|
|
44
|
+
"get_UserShape_dict",
|
|
45
|
+
"CUSTOM_SHAPES",
|
|
46
|
+
|
|
47
|
+
"TurtleFct",
|
|
48
|
+
]
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
from ..TurtleHeart import tl
|
|
2
1
|
from numbers import Real
|
|
3
|
-
import UF as uf
|
|
4
2
|
|
|
3
|
+
import uf
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
from ..turtle_heart import tl
|
|
7
6
|
|
|
7
|
+
|
|
8
|
+
#* Class containing all premade turtle shape functions
|
|
8
9
|
@uf.cls_deco_superposition(staticmethod)
|
|
9
10
|
class UserShape:
|
|
10
11
|
def custom_circle():
|
|
@@ -15,7 +16,7 @@ class UserShape:
|
|
|
15
16
|
return tl.get_poly()
|
|
16
17
|
|
|
17
18
|
def custom_square():
|
|
18
|
-
length: Real = helper.length_float()
|
|
19
|
+
length: Real = uf.helper.length_float()
|
|
19
20
|
tl.begin_poly()
|
|
20
21
|
|
|
21
22
|
for _ in range(4):
|
|
@@ -26,7 +27,7 @@ class UserShape:
|
|
|
26
27
|
return tl.get_poly()
|
|
27
28
|
|
|
28
29
|
def custom_triangle():
|
|
29
|
-
length: Real = helper.length_float()
|
|
30
|
+
length: Real = uf.helper.length_float()
|
|
30
31
|
tl.begin_poly()
|
|
31
32
|
|
|
32
33
|
for _ in range(3):
|
|
@@ -37,8 +38,8 @@ class UserShape:
|
|
|
37
38
|
return tl.get_poly()
|
|
38
39
|
|
|
39
40
|
def custom_poly():
|
|
40
|
-
length: Real = helper.length_float()
|
|
41
|
-
sides: int = helper.sides_num()
|
|
41
|
+
length: Real = uf.helper.length_float()
|
|
42
|
+
sides: int = uf.helper.sides_num()
|
|
42
43
|
|
|
43
44
|
radius = length / (2 * uf.sine(180 / sides))
|
|
44
45
|
angle_to_right = (180 - (180 * (sides - 2)) / sides) / 2
|
|
@@ -52,7 +53,7 @@ class UserShape:
|
|
|
52
53
|
return tl.get_poly()
|
|
53
54
|
|
|
54
55
|
def custom_SOD():
|
|
55
|
-
side: Real = helper.length_float()
|
|
56
|
+
side: Real = uf.helper.length_float()
|
|
56
57
|
tl.begin_poly()
|
|
57
58
|
|
|
58
59
|
for _ in range(6):
|
|
@@ -64,15 +65,20 @@ class UserShape:
|
|
|
64
65
|
tl.end_poly()
|
|
65
66
|
return tl.get_poly()
|
|
66
67
|
|
|
68
|
+
#* Creates and returns a dictionary mapping [[UserShape]]
|
|
69
|
+
#* function names with their corresponding function
|
|
67
70
|
@classmethod
|
|
68
|
-
def
|
|
71
|
+
def list_shapes(cls):
|
|
69
72
|
return uf.classes_to_dict(cls)
|
|
70
73
|
|
|
74
|
+
#* Creates a customized dictionary mapping [[UserShape]] functions by having the
|
|
75
|
+
#* prefix "custom_" switched with cm
|
|
71
76
|
def get_UserShape_dict():
|
|
72
77
|
return {
|
|
73
78
|
f"cm {name.removeprefix('custom_')}": func
|
|
74
|
-
for name, func in UserShape.
|
|
79
|
+
for name, func in UserShape.list_shapes().items()
|
|
75
80
|
if not name.startswith("_")
|
|
76
81
|
}
|
|
77
82
|
|
|
83
|
+
#* [[UserShape]] dictionary storage
|
|
78
84
|
CUSTOM_SHAPES = get_UserShape_dict()
|
|
@@ -2,70 +2,70 @@
|
|
|
2
2
|
This module contains the class Usershape which contains functions to make a customized turtle shape.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from numbers import Real
|
|
6
5
|
from collections.abc import Callable, Sequence
|
|
6
|
+
from numbers import Real
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
#* The type returned by each turtle shape changer function from [[UserShape]]
|
|
10
|
+
type ReturnShapeType = Sequence[tuple[Real,Real]] | None
|
|
7
11
|
|
|
12
|
+
#* The type of the dictionary derived from [[UserShape]]
|
|
13
|
+
type UserShapeDictType = dict[
|
|
14
|
+
str,
|
|
15
|
+
Callable[[], ReturnShapeType]
|
|
16
|
+
]
|
|
8
17
|
|
|
9
|
-
type return_shape = Sequence[tuple[Real,Real]] | None
|
|
10
|
-
type user_shape_dict = dict[str, Callable[[], return_shape]]
|
|
11
18
|
|
|
12
19
|
class UserShape:
|
|
13
20
|
"""
|
|
14
21
|
This class contains different custom turtle shape maker functions
|
|
15
22
|
"""
|
|
16
23
|
@staticmethod
|
|
17
|
-
def custom_circle() ->
|
|
24
|
+
def custom_circle() -> ReturnShapeType:
|
|
18
25
|
"""
|
|
19
26
|
Creates a custom circle turtle shape.
|
|
20
27
|
:return: the custom shape
|
|
21
28
|
"""
|
|
22
|
-
...
|
|
23
29
|
|
|
24
30
|
@staticmethod
|
|
25
|
-
def custom_square() ->
|
|
31
|
+
def custom_square() -> ReturnShapeType:
|
|
26
32
|
"""
|
|
27
33
|
Creates a custom square turtle shape.
|
|
28
34
|
:return: the custom shape
|
|
29
35
|
"""
|
|
30
|
-
...
|
|
31
36
|
|
|
32
37
|
@staticmethod
|
|
33
|
-
def custom_triangle() ->
|
|
38
|
+
def custom_triangle() -> ReturnShapeType:
|
|
34
39
|
"""
|
|
35
40
|
Creates a custom equilateral triangle turtle shape.
|
|
36
41
|
:return: the custom shape
|
|
37
42
|
"""
|
|
38
|
-
...
|
|
39
43
|
|
|
40
44
|
@staticmethod
|
|
41
|
-
def custom_poly() ->
|
|
45
|
+
def custom_poly() -> ReturnShapeType:
|
|
42
46
|
"""
|
|
43
47
|
Creates a custom regular polygon turtle shape.
|
|
44
48
|
:return: the custom shape
|
|
45
49
|
"""
|
|
46
|
-
...
|
|
47
50
|
|
|
48
51
|
@staticmethod
|
|
49
|
-
def custom_SOD() ->
|
|
52
|
+
def custom_SOD() -> ReturnShapeType:
|
|
50
53
|
"""
|
|
51
54
|
Creates a custom star of David turtle shape.
|
|
52
55
|
:return: the custom shape
|
|
53
56
|
"""
|
|
54
|
-
...
|
|
55
57
|
|
|
56
58
|
@classmethod
|
|
57
|
-
def
|
|
59
|
+
def list_shapes(cls) -> UserShapeDictType:
|
|
58
60
|
"""
|
|
59
61
|
Creates a dictionary with the functions in UserShape and returns it
|
|
60
62
|
:return: dictionary containing function names -> function
|
|
61
63
|
"""
|
|
62
|
-
...
|
|
63
64
|
|
|
64
|
-
def get_UserShape_dict() ->
|
|
65
|
+
def get_UserShape_dict() -> UserShapeDictType:
|
|
65
66
|
"""
|
|
66
67
|
Takes all custom turtle functions in UserShape and returns a dictionary with them
|
|
67
68
|
:return: dictionary mapping function names to functions
|
|
68
69
|
"""
|
|
69
|
-
...
|
|
70
70
|
|
|
71
|
-
CUSTOM_SHAPES:
|
|
71
|
+
CUSTOM_SHAPES: UserShapeDictType
|
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
from ..TurtleHeart import tl, ChainTurtle
|
|
2
|
-
from .GlobalVariables import t_shape, UV
|
|
3
|
-
from turtle import TurtleGraphicsError
|
|
4
1
|
from time import sleep as rest
|
|
5
|
-
|
|
6
|
-
from typing import Final
|
|
2
|
+
from turtle import TurtleGraphicsError
|
|
3
|
+
from typing import Final
|
|
4
|
+
|
|
5
|
+
import uf
|
|
7
6
|
|
|
7
|
+
from ..turtle_heart import ChainTurtle, tl
|
|
8
|
+
from .global_variables import UV, t_shape
|
|
8
9
|
|
|
9
10
|
_screen = None
|
|
10
11
|
|
|
12
|
+
#* Retrieves the turtle screen [[turtle.py#Screen]] if one has been made,
|
|
13
|
+
#* else, a new screen is initialized
|
|
11
14
|
def get_screen():
|
|
12
15
|
global _screen
|
|
13
16
|
|
|
@@ -18,19 +21,23 @@ def get_screen():
|
|
|
18
21
|
|
|
19
22
|
return _screen
|
|
20
23
|
|
|
24
|
+
#* Updates the current turtle screen if one exists,
|
|
25
|
+
#* else a new one is created and updated
|
|
21
26
|
def SU():
|
|
22
27
|
get_screen().update()
|
|
23
28
|
|
|
29
|
+
#* Keeps the turtle window open if one exists,
|
|
30
|
+
#* else a new one is created and kept open
|
|
24
31
|
def mainloop():
|
|
25
32
|
get_screen().mainloop()
|
|
26
33
|
|
|
27
|
-
|
|
28
|
-
|
|
34
|
+
#* Creates a chosen number of turtles with different modes,
|
|
35
|
+
#* also known as the turtle factory by the developer
|
|
29
36
|
def tls_color(**options):
|
|
30
37
|
|
|
31
|
-
tl_num_name: Final
|
|
32
|
-
entry_name: Final
|
|
33
|
-
index_name: Final
|
|
38
|
+
tl_num_name: Final = "tl_num"
|
|
39
|
+
entry_name: Final = "entry"
|
|
40
|
+
index_name: Final = "index"
|
|
34
41
|
|
|
35
42
|
if tl_num_name in options:
|
|
36
43
|
tl_num = options[tl_num_name]
|
|
@@ -51,7 +58,8 @@ def tls_color(**options):
|
|
|
51
58
|
else:
|
|
52
59
|
print("NONE of the entered options exist!")
|
|
53
60
|
return None
|
|
54
|
-
|
|
61
|
+
|
|
62
|
+
tls: list[ChainTurtle] = []
|
|
55
63
|
|
|
56
64
|
for color_num in range(turtles_num_count):
|
|
57
65
|
while True:
|
|
@@ -77,10 +85,11 @@ def tls_color(**options):
|
|
|
77
85
|
return tls
|
|
78
86
|
return None
|
|
79
87
|
|
|
80
|
-
|
|
88
|
+
#* Resets the provided turtle list,
|
|
89
|
+
#* deletes all turtle drawings and the turtles themselves
|
|
81
90
|
def reset_tls(tls_list):
|
|
82
91
|
|
|
83
|
-
tls_list_name: Final
|
|
92
|
+
tls_list_name: Final = "tls_list"
|
|
84
93
|
uf.TypeValidate(list)(tls_list, name=tls_list_name)
|
|
85
94
|
uf.SequenceValidate(ChainTurtle, ...)(tls_list, name=tls_list_name)
|
|
86
95
|
|
|
@@ -3,7 +3,7 @@ This module contains a very useful function: tls_color, which lets the user crea
|
|
|
3
3
|
colors and get a list with them.
|
|
4
4
|
"""
|
|
5
5
|
|
|
6
|
-
from ..
|
|
6
|
+
from ..turtle_heart import ChainTurtle, tl
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def get_screen() -> tl.Screen:
|
|
@@ -11,25 +11,22 @@ def get_screen() -> tl.Screen:
|
|
|
11
11
|
Initiates the turtle screen when the function is called.
|
|
12
12
|
:return: turtle screen object
|
|
13
13
|
"""
|
|
14
|
-
...
|
|
15
14
|
|
|
16
15
|
def SU() -> None:
|
|
17
16
|
"""
|
|
18
17
|
This function updates the turtle screen.
|
|
19
18
|
:return: None
|
|
20
19
|
"""
|
|
21
|
-
...
|
|
22
20
|
|
|
23
21
|
def mainloop() -> None:
|
|
24
22
|
"""
|
|
25
23
|
This function keeps the turtle screen open.
|
|
26
24
|
:return: None
|
|
27
25
|
"""
|
|
28
|
-
...
|
|
29
26
|
|
|
30
|
-
type
|
|
27
|
+
type TurtleListType = list[ChainTurtle]
|
|
31
28
|
|
|
32
|
-
def tls_color(**options) -> int | tuple[
|
|
29
|
+
def tls_color(**options) -> int | tuple[TurtleListType, int] | TurtleListType | None:
|
|
33
30
|
"""This function creates a turtle list with their colors or adds newly creates turtles to the UV["tls"] list
|
|
34
31
|
to be used for the user_drawing_ft()
|
|
35
32
|
|
|
@@ -39,9 +36,8 @@ def tls_color(**options) -> int | tuple[turtle_list, int] | turtle_list | None:
|
|
|
39
36
|
& it returns the index of the last turtle
|
|
40
37
|
:return: tls_num: turtle list with colored turtles, entry: list with colored turtles + number of turtles ,otherwise: index of last turtle
|
|
41
38
|
"""
|
|
42
|
-
...
|
|
43
39
|
|
|
44
|
-
def reset_tls(tls_list:
|
|
40
|
+
def reset_tls(tls_list: TurtleListType) -> list:
|
|
45
41
|
"""
|
|
46
42
|
This function deletes the drawings of given turtle list + turtles
|
|
47
43
|
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#* UV = UNIVERSAL VARIABLES
|
|
2
|
+
UV = {
|
|
3
|
+
"delay": None, #* Delay for [[turtle_runner.py#user_drawing_ft]]
|
|
4
|
+
"t": 0, #* user_drawing_ft's current turtle
|
|
5
|
+
"tls": [], #* user_drawing_ft's turtle list
|
|
6
|
+
"tls_shape": "arrow", #* turtle's current shape
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
#* Retrieves the current turtle from UV
|
|
10
|
+
def t_now():
|
|
11
|
+
return UV["tls"][UV["t"]]
|
|
12
|
+
|
|
13
|
+
#* Retrieves the current turtle shape
|
|
14
|
+
def t_shape():
|
|
15
|
+
return UV["tls_shape"]
|
|
@@ -9,9 +9,11 @@ t_shape() -> lets users take the current turtle shape
|
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
from typing import Any
|
|
12
|
-
from ..TurtleHeart import ChainTurtle
|
|
13
12
|
|
|
13
|
+
from ..turtle_heart import ChainTurtle
|
|
14
14
|
|
|
15
|
+
|
|
16
|
+
#* The type for the [[global_variables.py]] UV dictionary
|
|
15
17
|
UV: dict[str, Any]
|
|
16
18
|
|
|
17
19
|
def t_now() -> ChainTurtle:
|
|
@@ -25,7 +27,6 @@ def t_now() -> ChainTurtle:
|
|
|
25
27
|
|
|
26
28
|
:return: ChainTurtle
|
|
27
29
|
"""
|
|
28
|
-
...
|
|
29
30
|
|
|
30
31
|
def t_shape() -> str:
|
|
31
32
|
"""
|
|
@@ -37,4 +38,3 @@ def t_shape() -> str:
|
|
|
37
38
|
|
|
38
39
|
:return: string
|
|
39
40
|
"""
|
|
40
|
-
...
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
from .GlobalVariables import UV
|
|
3
|
-
from .CustomTurtleShapes import CUSTOM_SHAPES
|
|
4
|
-
import UF as uf
|
|
1
|
+
import uf
|
|
5
2
|
|
|
3
|
+
from ..turtle_heart import ChainTurtle, tl
|
|
4
|
+
from .custom_turtle_shapes import CUSTOM_SHAPES
|
|
5
|
+
from .global_variables import UV
|
|
6
6
|
|
|
7
|
+
|
|
8
|
+
#* Class containing turtle shape changer functions
|
|
7
9
|
class TurtleFct:
|
|
10
|
+
#* Main turtle shape changer function, potentially triggers [[TurtleFct#user_tls_shape_ft]]
|
|
8
11
|
@classmethod
|
|
9
12
|
def change_shape(cls, tls_num = None):
|
|
10
13
|
if tls_num is not None:
|
|
@@ -31,6 +34,7 @@ class TurtleFct:
|
|
|
31
34
|
else:
|
|
32
35
|
return cls.user_tls_shape_ft()
|
|
33
36
|
|
|
37
|
+
#* Lets the user choose custom shapes from [[UserShape]]
|
|
34
38
|
@staticmethod
|
|
35
39
|
def user_tls_shape_ft(tls_num = None):
|
|
36
40
|
if tls_num is not None:
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
This module contains the class TurtleFct which lets the user change the turtle shape to a customized one.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from ..
|
|
5
|
+
from ..turtle_heart import ChainTurtle
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
class TurtleFct:
|
|
@@ -16,7 +16,6 @@ class TurtleFct:
|
|
|
16
16
|
:param tls_num: ChainTurtle() or None
|
|
17
17
|
:return: ChainTurtle() if tls_num is a ChainTurtle(), otherwise None
|
|
18
18
|
"""
|
|
19
|
-
...
|
|
20
19
|
|
|
21
20
|
@staticmethod
|
|
22
21
|
def user_tls_shape_ft(tls_num: ChainTurtle | None = None) -> ChainTurtle | str:
|
|
@@ -24,5 +23,4 @@ class TurtleFct:
|
|
|
24
23
|
This function lets the user create custom turtle shapes.
|
|
25
24
|
:param tls_num: ChainTurtle() or None
|
|
26
25
|
:return: ChainTurtle() if tls_num is a ChainTurtle(), otherwise None
|
|
27
|
-
"""
|
|
28
|
-
...
|
|
26
|
+
"""
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import turtle as tl
|
|
2
|
-
import UF as uf
|
|
3
2
|
|
|
3
|
+
import uf
|
|
4
4
|
|
|
5
|
+
|
|
6
|
+
#* Class for chaining the conventional turtle functions [[turtle.py]]
|
|
5
7
|
class ChainTurtle(tl.Turtle):
|
|
6
8
|
def fd(self, distance):
|
|
7
9
|
super().fd(distance)
|
|
@@ -95,6 +97,7 @@ class ChainTurtle(tl.Turtle):
|
|
|
95
97
|
super().ht()
|
|
96
98
|
return self
|
|
97
99
|
|
|
100
|
+
#* Creates and returns a dictionary with all [[ChainTurtle]] functions
|
|
98
101
|
@classmethod
|
|
99
102
|
def list_methods(cls):
|
|
100
103
|
return uf.classes_to_dict(cls)
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
This module contains the class ChainTurtle() which is the foundational object around which this entire software has been made.
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
|
-
from numbers import Real
|
|
6
5
|
from collections.abc import Callable
|
|
6
|
+
from numbers import Real
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
tl = tl
|
|
@@ -16,7 +16,6 @@ class ChainTurtle:
|
|
|
16
16
|
:param distance: distance in pixels
|
|
17
17
|
:return: ChainTurtle()
|
|
18
18
|
"""
|
|
19
|
-
...
|
|
20
19
|
|
|
21
20
|
def fd_inv(self, distance: Real) -> ChainTurtle:
|
|
22
21
|
"""
|
|
@@ -24,7 +23,6 @@ class ChainTurtle:
|
|
|
24
23
|
:param distance: distance in pixels
|
|
25
24
|
:return: ChainTurtle()
|
|
26
25
|
"""
|
|
27
|
-
...
|
|
28
26
|
|
|
29
27
|
def bk(self, distance: Real) -> ChainTurtle:
|
|
30
28
|
"""
|
|
@@ -32,7 +30,6 @@ class ChainTurtle:
|
|
|
32
30
|
:param distance: distance in pixels
|
|
33
31
|
:return: ChainTurtle()
|
|
34
32
|
"""
|
|
35
|
-
...
|
|
36
33
|
|
|
37
34
|
def bk_inv(self, distance: Real) -> ChainTurtle:
|
|
38
35
|
"""
|
|
@@ -40,7 +37,6 @@ class ChainTurtle:
|
|
|
40
37
|
:param distance: distance in pixels
|
|
41
38
|
:return: ChainTurtle()
|
|
42
39
|
"""
|
|
43
|
-
...
|
|
44
40
|
|
|
45
41
|
def rt(self, angle: Real) -> ChainTurtle:
|
|
46
42
|
"""
|
|
@@ -48,7 +44,6 @@ class ChainTurtle:
|
|
|
48
44
|
:param angle: angle in degrees
|
|
49
45
|
:return: ChainTurtle()
|
|
50
46
|
"""
|
|
51
|
-
...
|
|
52
47
|
|
|
53
48
|
def lt(self, angle: Real) -> ChainTurtle:
|
|
54
49
|
"""
|
|
@@ -56,7 +51,6 @@ class ChainTurtle:
|
|
|
56
51
|
:param angle: angle in degrees
|
|
57
52
|
:return: ChainTurtle()
|
|
58
53
|
"""
|
|
59
|
-
...
|
|
60
54
|
|
|
61
55
|
def setpos(self, x_val: Real, y_val: Real) -> ChainTurtle:
|
|
62
56
|
"""
|
|
@@ -65,61 +59,54 @@ class ChainTurtle:
|
|
|
65
59
|
:param y_val: y position in pixels
|
|
66
60
|
:return: ChainTurtle()
|
|
67
61
|
"""
|
|
68
|
-
...
|
|
69
62
|
|
|
70
63
|
def pu(self) -> ChainTurtle:
|
|
71
64
|
"""
|
|
72
65
|
Puts the pen down to leave a trace.
|
|
73
66
|
:return: ChainTurtle()
|
|
74
67
|
"""
|
|
75
|
-
...
|
|
76
68
|
|
|
77
69
|
def pd(self) -> ChainTurtle:
|
|
78
70
|
"""
|
|
79
71
|
Puts the pen up to not leave a trace.
|
|
80
72
|
:return: ChainTurtle()
|
|
81
73
|
"""
|
|
82
|
-
...
|
|
83
74
|
|
|
84
75
|
def seth(self, direction: Real) -> ChainTurtle:
|
|
85
76
|
"""
|
|
86
77
|
Sets the direction of the turtle starting East, going counterclockwise.
|
|
87
78
|
:param direction: direction in degrees
|
|
79
|
+
:return: ChainTurtle()
|
|
88
80
|
"""
|
|
89
|
-
...
|
|
90
81
|
|
|
91
82
|
def home(self) -> ChainTurtle:
|
|
92
83
|
"""
|
|
93
84
|
Sets the position of the turtle to home (0, 0) with trace, heading = 0 .
|
|
94
85
|
:return: ChainTurtle()
|
|
95
86
|
"""
|
|
96
|
-
...
|
|
97
87
|
|
|
98
88
|
def home_inv(self) -> ChainTurtle:
|
|
99
89
|
"""
|
|
100
90
|
Sets the position of the turtle to home (0, 0) without trace, heading = 0 .
|
|
101
91
|
:return: ChainTurtle()
|
|
102
92
|
"""
|
|
103
|
-
...
|
|
104
93
|
|
|
105
94
|
def begin_fill(self) -> ChainTurtle:
|
|
106
95
|
"""
|
|
107
96
|
Makes the turtle begin fill for a closed shape.
|
|
108
97
|
:return: ChainTurtle()
|
|
109
98
|
"""
|
|
110
|
-
...
|
|
111
99
|
|
|
112
100
|
def end_fill(self) -> ChainTurtle:
|
|
113
101
|
"""
|
|
114
102
|
Ends the turtle fill for a closed shape, therefore fills the shapes.
|
|
115
103
|
:return: ChainTurtle()
|
|
116
104
|
"""
|
|
117
|
-
...
|
|
118
105
|
|
|
119
106
|
def circle(self,
|
|
120
107
|
radius: Real,
|
|
121
108
|
extent: Real | None = None,
|
|
122
|
-
steps: int = None) -> ChainTurtle:
|
|
109
|
+
steps: int | None = None) -> ChainTurtle:
|
|
123
110
|
"""
|
|
124
111
|
Makes the turtle draw a circle
|
|
125
112
|
:param radius: radius in pixels
|
|
@@ -127,74 +114,69 @@ class ChainTurtle:
|
|
|
127
114
|
:param steps: number of sides
|
|
128
115
|
:return: ChainTurtle()
|
|
129
116
|
"""
|
|
130
|
-
...
|
|
131
117
|
|
|
132
118
|
def circle_fill(self,
|
|
133
119
|
radius: Real,
|
|
134
120
|
angle: Real | None = None,
|
|
135
|
-
sides: int = None) -> ChainTurtle:
|
|
121
|
+
sides: int | None = None) -> ChainTurtle:
|
|
136
122
|
"""
|
|
137
123
|
Makes the turtle draw a circle and fills it
|
|
138
124
|
:param radius: radius in degrees
|
|
139
125
|
:param angle: angle in degrees
|
|
140
126
|
:param sides: number of sides
|
|
127
|
+
:return: ChainTurtle()
|
|
141
128
|
"""
|
|
142
|
-
...
|
|
143
129
|
|
|
144
130
|
def dot(self, radius: Real) -> ChainTurtle:
|
|
145
131
|
"""
|
|
146
132
|
Makes the turtle draw a colored dot
|
|
147
133
|
:param radius: radius in pixels
|
|
134
|
+
:return: ChainTurtle()
|
|
148
135
|
"""
|
|
149
|
-
...
|
|
150
136
|
|
|
151
137
|
def color(self, turtle_color: str) -> ChainTurtle:
|
|
152
138
|
"""
|
|
153
139
|
Lets the user change the color of the turtle trace and turtle color itself
|
|
154
140
|
:param turtle_color: valid turtle color
|
|
141
|
+
:return: ChainTurtle()
|
|
155
142
|
"""
|
|
156
|
-
...
|
|
157
143
|
|
|
158
144
|
def teleport(self, x: Real, y: Real, *, fill_gap: bool = False) -> ChainTurtle:
|
|
159
145
|
"""
|
|
160
146
|
Makes the turtle to go a specific coordinate with no trace
|
|
161
147
|
:param x: x position in pixels
|
|
162
148
|
:param y: y position in pixels
|
|
149
|
+
:return: ChainTurtle()
|
|
163
150
|
"""
|
|
164
|
-
...
|
|
165
151
|
|
|
166
152
|
def shape(self, shape_name: str) -> ChainTurtle:
|
|
167
153
|
"""
|
|
168
154
|
Changes the shape of the turtle shape
|
|
169
155
|
:param shape_name: name of the shape
|
|
156
|
+
:return: ChainTurtle()
|
|
170
157
|
"""
|
|
171
|
-
...
|
|
172
158
|
|
|
173
159
|
def undo(self) -> ChainTurtle:
|
|
174
160
|
"""
|
|
175
161
|
Undoes the last turtle command.
|
|
176
162
|
:return: ChainTurtle()
|
|
177
163
|
"""
|
|
178
|
-
...
|
|
179
164
|
|
|
180
165
|
def clear(self) -> ChainTurtle:
|
|
181
166
|
"""
|
|
182
167
|
Deletes the turtles drawings.
|
|
183
168
|
:return: ChainTurtle()
|
|
184
169
|
"""
|
|
185
|
-
...
|
|
186
170
|
|
|
187
171
|
def ht(self) -> ChainTurtle:
|
|
188
172
|
"""
|
|
189
173
|
Hides the turtle.
|
|
190
174
|
:return: ChainTurtle()
|
|
191
175
|
"""
|
|
192
|
-
...
|
|
193
176
|
|
|
194
177
|
@classmethod
|
|
195
178
|
def list_methods(cls) -> dict[str, Callable]:
|
|
196
179
|
"""
|
|
197
180
|
Creates a dictionary with all ChainTurtle methods and returns it
|
|
198
181
|
:return: dictionary
|
|
199
|
-
"""
|
|
200
|
-
...
|
|
182
|
+
"""
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
# UV = UNIVERSAL VARIABLES
|
|
2
|
-
UV = {
|
|
3
|
-
"delay": None, # Delay for user_drawing_ft()
|
|
4
|
-
"t": 0, # user_drawing_ft's current turtle
|
|
5
|
-
"tls": [], # user_drawing_ft's turtle list
|
|
6
|
-
"tls_shape": "arrow", # user_drawing_ft's turtle's current shape
|
|
7
|
-
"shape_library": [], # user_drawing_ft's turtle shapes list
|
|
8
|
-
}
|
|
9
|
-
def t_now():
|
|
10
|
-
return UV["tls"][UV["t"]]
|
|
11
|
-
|
|
12
|
-
def t_shape():
|
|
13
|
-
return UV["tls_shape"]
|
|
14
|
-
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
from .GlobalVariables import (
|
|
2
|
-
UV,
|
|
3
|
-
t_now,
|
|
4
|
-
t_shape,
|
|
5
|
-
)
|
|
6
|
-
|
|
7
|
-
from .GlobalFunctions import (
|
|
8
|
-
get_screen,
|
|
9
|
-
SU,
|
|
10
|
-
mainloop,
|
|
11
|
-
tls_color,
|
|
12
|
-
reset_tls,
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
from .CustomTurtleShapes import (
|
|
16
|
-
UserShape,
|
|
17
|
-
get_UserShape_dict,
|
|
18
|
-
CUSTOM_SHAPES,
|
|
19
|
-
)
|
|
20
|
-
|
|
21
|
-
from .TurtleFunctions import (
|
|
22
|
-
TurtleFct,
|
|
23
|
-
)
|
|
24
|
-
|
|
25
|
-
__all__ = [
|
|
26
|
-
"UV",
|
|
27
|
-
"t_now",
|
|
28
|
-
"t_shape",
|
|
29
|
-
|
|
30
|
-
"get_screen",
|
|
31
|
-
"SU",
|
|
32
|
-
"mainloop",
|
|
33
|
-
"tls_color",
|
|
34
|
-
"reset_tls",
|
|
35
|
-
|
|
36
|
-
"UserShape",
|
|
37
|
-
"get_UserShape_dict",
|
|
38
|
-
"CUSTOM_SHAPES",
|
|
39
|
-
|
|
40
|
-
"TurtleFct",
|
|
41
|
-
]
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
This package is part of the GeometricalDomination project ecosystem.
|
|
3
|
-
|
|
4
|
-
It contains a chainable turtle class called ChainTurtle and a collection of extra provided features along with it:
|
|
5
|
-
|
|
6
|
-
1. tls_color -> this function make a list of colored turtles and returns it
|
|
7
|
-
2. get_screen -> turtle screen initializer function
|
|
8
|
-
3. SU -> screen update function
|
|
9
|
-
|
|
10
|
-
And a lot more.
|
|
11
|
-
|
|
12
|
-
Author: Miah M. Sabiq
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
from .Foundations import (
|
|
16
|
-
UV,
|
|
17
|
-
t_now,
|
|
18
|
-
t_shape,
|
|
19
|
-
|
|
20
|
-
get_screen,
|
|
21
|
-
SU,
|
|
22
|
-
mainloop,
|
|
23
|
-
tls_color,
|
|
24
|
-
reset_tls,
|
|
25
|
-
|
|
26
|
-
UserShape,
|
|
27
|
-
get_UserShape_dict,
|
|
28
|
-
CUSTOM_SHAPES,
|
|
29
|
-
|
|
30
|
-
TurtleFct,
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
from .TurtleHeart import (
|
|
34
|
-
ChainTurtle,
|
|
35
|
-
tl,
|
|
36
|
-
)
|
|
37
|
-
|
|
38
|
-
__all__ = [
|
|
39
|
-
"UV",
|
|
40
|
-
"t_now",
|
|
41
|
-
"t_shape",
|
|
42
|
-
|
|
43
|
-
"get_screen",
|
|
44
|
-
"SU",
|
|
45
|
-
"mainloop",
|
|
46
|
-
"tls_color",
|
|
47
|
-
"reset_tls",
|
|
48
|
-
|
|
49
|
-
"UserShape",
|
|
50
|
-
"get_UserShape_dict",
|
|
51
|
-
"CUSTOM_SHAPES",
|
|
52
|
-
|
|
53
|
-
"TurtleFct",
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"ChainTurtle",
|
|
57
|
-
"tl",
|
|
58
|
-
]
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
LICENSE
|
|
2
|
-
README.md
|
|
3
|
-
pyproject.toml
|
|
4
|
-
TurtleExtension/__init__.py
|
|
5
|
-
TurtleExtension.egg-info/PKG-INFO
|
|
6
|
-
TurtleExtension.egg-info/SOURCES.txt
|
|
7
|
-
TurtleExtension.egg-info/dependency_links.txt
|
|
8
|
-
TurtleExtension.egg-info/requires.txt
|
|
9
|
-
TurtleExtension.egg-info/top_level.txt
|
|
10
|
-
TurtleExtension/Foundations/CustomTurtleShapes.py
|
|
11
|
-
TurtleExtension/Foundations/CustomTurtleShapes.pyi
|
|
12
|
-
TurtleExtension/Foundations/GlobalFunctions.py
|
|
13
|
-
TurtleExtension/Foundations/GlobalFunctions.pyi
|
|
14
|
-
TurtleExtension/Foundations/GlobalVariables.py
|
|
15
|
-
TurtleExtension/Foundations/GlobalVariables.pyi
|
|
16
|
-
TurtleExtension/Foundations/TurtleFunctions.py
|
|
17
|
-
TurtleExtension/Foundations/TurtleFunctions.pyi
|
|
18
|
-
TurtleExtension/Foundations/__init__.py
|
|
19
|
-
TurtleExtension/TurtleHeart/TurtleSkeleton.py
|
|
20
|
-
TurtleExtension/TurtleHeart/TurtleSkeleton.pyi
|
|
21
|
-
TurtleExtension/TurtleHeart/__init__.py
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
TurtleExtension
|
|
File without changes
|
{turtleextension-1.0.0 → turtleextension-2.1.0}/TurtleExtension.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|