def with_end(self, t):
        """Returns a copy of the clip, with the ``end`` attribute set to ``t``,
        which can be expressed in seconds (15.35), in (min, sec), in
        (hour, min, sec), or as a string: '01:03:05.35'. Also sets the duration
        of the mask and audio, if any, of the returned clip.

        note::
          The start and end attribute of a clip define when a clip will start
          playing when used in a composite video clip, not the start time of
          the clip itself.

          i.e: with_start(10) mean the clip will still start at his first frame,
          but if used in a composite video clip it will only start to show at
          10 seconds.

        Parameters
        ----------

        t : float or tuple or str
          New ``end`` attribute value for the clip.
        """
        self.end = t
        if self.end is None:
            return
        if self.start is None:
            if self.duration is not None:
                self.start = max(0, t - self.duration)
        else:
            self.duration = self.end - self.start
Returns a copy of the clip, with the ``end`` attribute set to ``t``,
        which can be expressed in seconds (15.35), in (min, sec), in
        (hour, min, sec), or as a string: '01:03:05.35'. Also sets the duration
        of the mask and audio, if any, of the returned clip.

        note::
          The start and end attribute of a clip define when a clip will start
          playing when used in a composite video clip, not the start time of
          the clip itself.

          i.e: with_start(10) mean the clip will still start at his first frame,
          but if used in a composite video clip it will only start to show at
          10 seconds.

        Parameters
        ----------

        t : float or tuple or str
          New ``end`` attribute value for the clip.
        
moviepy/Clip.py