class_docstr: Base class of all clips (VideoClips and AudioClips).
  
  Attributes
  ----------
  
  start : float
    When the clip is included in a composition, time of the
    composition at which the clip starts playing (in seconds).
  
  end : float
    When the clip is included in a composition, time of the
    composition at which the clip stops playing (in seconds).
  
  duration : float
    Duration of the clip (in seconds). Some clips are infinite, in
    this case their duration will be ``None``.
class_docstr_tok: ["Base","class","of","all","clips","(","VideoClips","and","AudioClips",")",".","Attributes","--","--","--","--","--","start",":","float","When","the","clip","is","included","in","a","composition",",","time","of","the","composition","at","which","the","clip","starts","playing","(","in","seconds",")",".","end",":","float","When","the","clip","is","included","in","a","composition",",","time","of","the","composition","at","which","the","clip","stops","playing","(","in","seconds",")",".","duration",":","float","Duration","of","the","clip","(","in","seconds",")",".","Some","clips","are","infinite",",","in","this","case","their","duration","will","be","``","None","``","."]
docstr: Returns a copy of the clip, with the ``start`` 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'.
  
  These changes are also applied to the ``audio`` and ``mask``
  clips of the current clip, if they exist.
  
  Parameters
  ----------
  
  t : float or tuple or str
    New ``start`` attribute value for the clip.
  
  change_end : bool optional
    Indicates if the ``end`` attribute value must be changed accordingly,
    if possible. If ``change_end=True`` and the clip has a ``duration``
    attribute, the ``end`` attribute of the clip will be updated to
    ``start + duration``. If ``change_end=False`` and the clip has a
    ``end`` attribute, the ``duration`` attribute of the clip will be
    updated to ``end - start``.
docstr_tok: ["Returns","a","copy","of","the","clip",",","with","the","``","start","``","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","'",".","These","changes","are","also","applied","to","the","``","audio","``","and","``","mask","``","clips","of","the","current","clip",",","if","they","exist",".","Parameters","--","--","--","--","--","t",":","float","or","tuple","or","str","New","``","start","``","attribute","value","for","the","clip",".","change_end",":","bool","optional","Indicates","if","the","``","end","``","attribute","value","must","be","changed","accordingly",",","if","possible",".","If","``","change_end=True","``","and","the","clip","has","a","``","duration","``","attribute",",","the","``","end","``","attribute","of","the","clip","will","be","updated","to","``","start","+","duration","``",".","If","``","change_end=False","``","and","the","clip","has","a","``","end","``","attribute",",","the","``","duration","``","attribute","of","the","clip","will","be","updated","to","``","end","-","start","``","."]
code: def with_start(self, t, change_end=True):
      """Returns a copy of the clip, with the ``start`` 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'.
  
      These changes are also applied to the ``audio`` and ``mask``
      clips of the current clip, if they exist.
  
      Parameters
      ----------
  
      t : float or tuple or str
        New ``start`` attribute value for the clip.
  
      change_end : bool optional
        Indicates if the ``end`` attribute value must be changed accordingly,
        if possible. If ``change_end=True`` and the clip has a ``duration``
        attribute, the ``end`` attribute of the clip will be updated to
        ``start + duration``. If ``change_end=False`` and the clip has a
        ``end`` attribute, the ``duration`` attribute of the clip will be
        updated to ``end - start``.
      """
      self.start = t
      if (self.duration is not None) and change_end:
          self.end = t + self.duration
      elif self.end is not None:
          self.duration = self.end - self.start
  
imports: import copy
  from functools import reduce
  from numbers import Real
  from operator import add
  import numpy
  import proglog
  from moviepy.decorators import apply_to_audio, apply_to_mask, convert_parameter_to_seconds, outplace, requires_duration, use_clip_fps_by_default
label_desc: Use image node_id 7 for calling the Clip obj's underlying member method code with example usage: obj.with_start(t, change_end) without return types