Source code for moviepy.Effect

"""Defines the base class for all effects in MoviePy."""

import copy as _copy
from abc import ABCMeta, abstractmethod

from moviepy.Clip import Clip


[docs] class Effect(metaclass=ABCMeta): """Base abstract class for all effects in MoviePy. Any new effect have to extend this base class. """
[docs] def copy(self): """Return a shallow copy of an Effect. You must *always* copy an ``Effect`` before applying, because some of them will modify their own attributes when applied. For example, setting a previously unset property by using target clip property. If we was to use the original effect, calling the same effect multiple times could lead to different properties, and different results for equivalent clips. By using copy, we ensure we can use the same effect object multiple times while maintaining the same behavior/result. In a way, copy makes the effect himself being kind of idempotent. """ return _copy.copy(self)
[docs] @abstractmethod def apply(self, clip: Clip) -> Clip: """Apply the current effect on a clip Parameters ---------- clip The target clip to apply the effect on. (Internally, MoviePy will always pass a copy of the original clip) """ pass