
    g;                     D    d Z ddlZddlmZmZ ddlmZ  G d de      Zy)z2Defines the base class for all effects in MoviePy.    N)ABCMetaabstractmethod)Clipc                   0    e Zd ZdZd Zededefd       Zy)EffectzgBase abstract class for all effects in MoviePy.
    Any new effect have to extend this base class.
    c                 ,    t        j                  |       S )a  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.
        )_copycopy)selfs    W/var/www/it7/html/youtubeDownloader/venv/lib/python3.12/site-packages/moviepy/Effect.pyr
   zEffect.copy   s     zz$    clipreturnc                      y)zApply 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)

        N )r   r   s     r   applyzEffect.apply   s     	r   N)__name__
__module____qualname____doc__r
   r   r   r   r   r   r   r   r   	   s.     " 
$ 
4 
 
r   r   )	metaclass)	r   r
   r	   abcr   r   moviepy.Clipr   r   r   r   r   <module>r      s    8  ' !w !r   