Skip to content

Commit 8fe1665

Browse files
jeertmansbehackl
andauthored
chore(deps): add Python 3.12 support (#3395)
* chore(deps): add Python 3.11 and 3.12 support chore(deps): update lock file chore(deps): remove colour fix(deps): force NumPy version fix(deps): relax constraints chore(deps): update lock file * fix(deps): make poetry happy * fix(ci): skia pathops on 3.12 * fix(test): doctest skip * disable python 3.8 pipeline * removed get_parameters, replaced by direct call to inspect * black --------- Co-authored-by: Benjamin Hackl <[email protected]>
1 parent 652f1b3 commit 8fe1665

File tree

8 files changed

+277
-141
lines changed

8 files changed

+277
-141
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
fail-fast: false
2323
matrix:
2424
os: [ubuntu-22.04, macos-latest, windows-latest]
25-
python: ["3.8", "3.9", "3.10", "3.11"]
25+
python: ["3.9", "3.10", "3.11", "3.12"]
2626

2727
steps:
2828
- name: Checkout the repository

manim/animation/speedmodifier.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
from __future__ import annotations
44

5+
import inspect
56
import types
67
from typing import Callable
78

89
from numpy import piecewise
910

10-
from manim.utils.simple_functions import get_parameters
11-
1211
from ..animation.animation import Animation, Wait, prepare_animation
1312
from ..animation.composition import AnimationGroup
1413
from ..mobject.mobject import Mobject, Updater, _AnimationBuilder
@@ -260,8 +259,7 @@ def add_updater(
260259
:class:`.ChangeSpeed`
261260
:meth:`.Mobject.add_updater`
262261
"""
263-
parameters = get_parameters(update_function)
264-
if "dt" in parameters:
262+
if "dt" in inspect.signature(update_function).parameters:
265263
mobject.add_updater(
266264
lambda mob, dt: update_function(
267265
mob, ChangeSpeed.dt if ChangeSpeed.is_changing_dt else dt

manim/mobject/mobject.py

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77

88
import copy
9+
import inspect
910
import itertools as it
1011
import math
1112
import operator as op
@@ -36,7 +37,6 @@
3637
from ..utils.exceptions import MultiAnimationOverrideException
3738
from ..utils.iterables import list_update, remove_list_redundancies
3839
from ..utils.paths import straight_path
39-
from ..utils.simple_functions import get_parameters
4040
from ..utils.space_ops import angle_between_vectors, normalize, rotation_matrix
4141

4242
# TODO: Explain array_attrs
@@ -847,8 +847,7 @@ def update(self, dt: float = 0, recursive: bool = True) -> Self:
847847
if self.updating_suspended:
848848
return self
849849
for updater in self.updaters:
850-
parameters = get_parameters(updater)
851-
if "dt" in parameters:
850+
if "dt" in inspect.signature(updater).parameters:
852851
updater(self, dt)
853852
else:
854853
updater(self)
@@ -873,7 +872,11 @@ def get_time_based_updaters(self) -> list[TimeBasedUpdater]:
873872
:meth:`has_time_based_updater`
874873
875874
"""
876-
return [updater for updater in self.updaters if "dt" in get_parameters(updater)]
875+
return [
876+
updater
877+
for updater in self.updaters
878+
if "dt" in inspect.signature(updater).parameters
879+
]
877880

878881
def has_time_based_updater(self) -> bool:
879882
"""Test if ``self`` has a time based updater.
@@ -889,7 +892,9 @@ def has_time_based_updater(self) -> bool:
889892
:meth:`get_time_based_updaters`
890893
891894
"""
892-
return any("dt" in get_parameters(updater) for updater in self.updaters)
895+
return any(
896+
"dt" in inspect.signature(updater).parameters for updater in self.updaters
897+
)
893898

894899
def get_updaters(self) -> list[Updater]:
895900
"""Return all updaters.
@@ -982,7 +987,7 @@ def construct(self):
982987
else:
983988
self.updaters.insert(index, update_function)
984989
if call_updater:
985-
parameters = get_parameters(update_function)
990+
parameters = inspect.signature(update_function).parameters
986991
if "dt" in parameters:
987992
update_function(self, 0)
988993
else:

manim/mobject/opengl/opengl_mobject.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
import copy
4+
import inspect
45
import itertools as it
56
import random
67
import sys
@@ -37,7 +38,6 @@
3738
uniq_chain,
3839
)
3940
from manim.utils.paths import straight_path
40-
from manim.utils.simple_functions import get_parameters
4141
from manim.utils.space_ops import (
4242
angle_between_vectors,
4343
normalize,
@@ -1383,7 +1383,7 @@ def get_family_updaters(self):
13831383
return list(it.chain(*(sm.get_updaters() for sm in self.get_family())))
13841384

13851385
def add_updater(self, update_function, index=None, call_updater=False):
1386-
if "dt" in get_parameters(update_function):
1386+
if "dt" in inspect.signature(update_function).parameters:
13871387
updater_list = self.time_based_updaters
13881388
else:
13891389
updater_list = self.non_time_updaters

manim/renderer/shader.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import inspect
34
import re
45
import textwrap
56
from pathlib import Path
@@ -9,7 +10,6 @@
910

1011
from .. import config
1112
from ..utils import opengl
12-
from ..utils.simple_functions import get_parameters
1313

1414
SHADER_FOLDER = Path(__file__).parent / "shaders"
1515
shader_program_cache: dict = {}
@@ -199,7 +199,7 @@ def get_updaters(self):
199199
return self.time_based_updaters + self.non_time_updaters
200200

201201
def add_updater(self, update_function, index=None, call_updater=True):
202-
if "dt" in get_parameters(update_function):
202+
if "dt" in inspect.signature(update_function).parameters:
203203
updater_list = self.time_based_updaters
204204
else:
205205
updater_list = self.non_time_updaters

manim/utils/simple_functions.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"binary_search",
77
"choose",
88
"clip",
9-
"get_parameters",
109
"sigmoid",
1110
]
1211

@@ -117,23 +116,6 @@ def clip(a, min_a, max_a):
117116
return a
118117

119118

120-
def get_parameters(function: Callable) -> MappingProxyType[str, inspect.Parameter]:
121-
"""Return the parameters of ``function`` as an ordered mapping of parameters'
122-
names to their corresponding ``Parameter`` objects.
123-
124-
Examples
125-
--------
126-
::
127-
128-
>>> get_parameters(get_parameters)
129-
mappingproxy(OrderedDict([('function', <Parameter "function: 'Callable'">)]))
130-
131-
>>> tuple(get_parameters(choose))
132-
('n', 'k')
133-
"""
134-
return inspect.signature(function).parameters
135-
136-
137119
def sigmoid(x: float) -> float:
138120
r"""Returns the output of the logistic function.
139121

0 commit comments

Comments
 (0)