guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

debug moviepy with jgart


From: jgart
Subject: debug moviepy with jgart
Date: Sat, 28 Jan 2023 04:12:11 +0000

Hi,

I'm trying to get the tests to pass for a Guix package that I am writing for 
moviepy.

Any thoughts on how to resolve the below failures?

I need to make some dir writeable?

```
starting phase `check'
============================= test session starts ==============================
platform linux -- Python 3.9.9, pytest-6.2.5, py-1.10.0, pluggy-0.13.1 -- 
/gnu/store/slsh0qjv5j68xda2bb6h8gsxwyi1j25a-python-wrapper-3.9.9/bin/python
cachedir: .pytest_cache
hypothesis profile 'default' -> 
database=DirectoryBasedExampleDatabase('/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/.hypothesis/examples')
rootdir: /tmp/guix-build-python-moviepy-1.0.3.drv-0/source
plugins: hypothesis-6.0.2, cov-3.0.0
collecting ... collected 110 items

tests/test_AudioClips.py::test_audio_coreader PASSED                     [  0%]
tests/test_AudioClips.py::test_audioclip PASSED                          [  1%]
tests/test_AudioClips.py::test_audioclip_concat PASSED                   [  2%]
tests/test_AudioClips.py::test_audioclip_with_file_concat PASSED         [  3%]
tests/test_AudioClips.py::test_audiofileclip_concat PASSED               [  4%]
tests/test_ImageSequenceClip.py::test_1 FAILED                           [  5%]
tests/test_ImageSequenceClip.py::test_2 PASSED                           [  6%]
tests/test_PR.py::test_PR_306 PASSED                                     [  7%]
tests/test_PR.py::test_PR_339 FAILED                                     [  8%]
tests/test_PR.py::test_PR_373 PASSED                                     [  9%]
tests/test_PR.py::test_PR_424 PASSED                                     [ 10%]
tests/test_PR.py::test_PR_458 FAILED                                     [ 10%]
tests/test_PR.py::test_PR_515 PASSED                                     [ 11%]
tests/test_PR.py::test_PR_528 FAILED                                     [ 12%]
tests/test_PR.py::test_PR_529 FAILED                                     [ 13%]
tests/test_PR.py::test_PR_610 PASSED                                     [ 14%]
tests/test_TextClip.py::test_fontlist PASSED                             [ 15%]
tests/test_TextClip.py::test_duration FAILED                             [ 16%]
tests/test_TextClip.py::test_if_textclip_crashes_in_caption_mode FAILED  [ 17%]
tests/test_TextClip.py::test_if_textclip_crashes_in_label_mode FAILED    [ 18%]
tests/test_VideoClip.py::test_check_codec PASSED                         [ 19%]
tests/test_VideoClip.py::test_save_frame PASSED                          [ 20%]
tests/test_VideoClip.py::test_write_image_sequence FAILED                [ 20%]
tests/test_VideoClip.py::test_write_gif_imageio PASSED                   [ 21%]
tests/test_VideoClip.py::test_write_gif_ffmpeg PASSED                    [ 22%]
tests/test_VideoClip.py::test_write_gif_ffmpeg_tmpfiles PASSED           [ 23%]
tests/test_VideoClip.py::test_write_gif_ImageMagick PASSED               [ 24%]
tests/test_VideoClip.py::test_write_gif_ImageMagick_tmpfiles PASSED      [ 25%]
tests/test_VideoClip.py::test_subfx FAILED                               [ 26%]
tests/test_VideoClip.py::test_oncolor FAILED                             [ 27%]
tests/test_VideoClip.py::test_setaudio FAILED                            [ 28%]
tests/test_VideoClip.py::test_setaudio_with_audiofile FAILED             [ 29%]
tests/test_VideoClip.py::test_setopacity FAILED                          [ 30%]
tests/test_VideoClip.py::test_toimageclip FAILED                         [ 30%]
tests/test_VideoClip.py::test_withoutaudio PASSED                        [ 31%]
tests/test_VideoFileClip.py::test_setup FAILED                           [ 32%]
tests/test_VideoFileClip.py::test_ffmpeg_resizing PASSED                 [ 33%]
tests/test_VideoFileClip.py::test_shallow_copy PASSED                    [ 34%]
tests/test_Videos.py::test_afterimage FAILED                             [ 35%]
tests/test_compositing.py::test_clips_array PASSED                       [ 36%]
tests/test_compositing.py::test_clips_array_duration FAILED              [ 37%]
tests/test_examples.py::test_matplotlib SKIPPED (no mpl)                 [ 38%]
tests/test_ffmpeg_reader.py::test_ffmpeg_parse_infos PASSED              [ 39%]
tests/test_ffmpeg_reader.py::test_ffmpeg_parse_infos_for_i926 PASSED     [ 40%]
tests/test_fx.py::test_blackwhite FAILED                                 [ 40%]
tests/test_fx.py::test_colorx FAILED                                     [ 41%]
tests/test_fx.py::test_crop FAILED                                       [ 42%]
tests/test_fx.py::test_fadein FAILED                                     [ 43%]
tests/test_fx.py::test_fadeout FAILED                                    [ 44%]
tests/test_fx.py::test_invert_colors FAILED                              [ 45%]
tests/test_fx.py::test_loop PASSED                                       [ 46%]
tests/test_fx.py::test_lum_contrast FAILED                               [ 47%]
tests/test_fx.py::test_make_loopable FAILED                              [ 48%]
tests/test_fx.py::test_margin FAILED                                     [ 49%]
tests/test_fx.py::test_mask_and PASSED                                   [ 50%]
tests/test_fx.py::test_mask_color PASSED                                 [ 50%]
tests/test_fx.py::test_mask_or PASSED                                    [ 51%]
tests/test_fx.py::test_mirror_x FAILED                                   [ 52%]
tests/test_fx.py::test_mirror_y FAILED                                   [ 53%]
tests/test_fx.py::test_painting PASSED                                   [ 54%]
tests/test_fx.py::test_resize FAILED                                     [ 55%]
tests/test_fx.py::test_rotate FAILED                                     [ 56%]
tests/test_fx.py::test_scroll PASSED                                     [ 57%]
tests/test_fx.py::test_speedx FAILED                                     [ 58%]
tests/test_fx.py::test_supersample PASSED                                [ 59%]
tests/test_fx.py::test_time_mirror FAILED                                [ 60%]
tests/test_fx.py::test_time_symmetrize FAILED                            [ 60%]
tests/test_fx.py::test_normalize PASSED                                  [ 61%]
tests/test_issues.py::test_issue_145 PASSED                              [ 62%]
tests/test_issues.py::test_issue_190 PASSED                              [ 63%]
tests/test_issues.py::test_issue_285 PASSED                              [ 64%]
tests/test_issues.py::test_issue_334 FAILED                              [ 65%]
tests/test_issues.py::test_issue_354 PASSED                              [ 66%]
tests/test_issues.py::test_issue_359 PASSED                              [ 67%]
tests/test_issues.py::test_issue_407 PASSED                              [ 68%]
tests/test_issues.py::test_issue_416 PASSED                              [ 69%]
tests/test_issues.py::test_issue_417 PASSED                              [ 70%]
tests/test_issues.py::test_issue_467 PASSED                              [ 70%]
tests/test_issues.py::test_issue_470 FAILED                              [ 71%]
tests/test_issues.py::test_issue_246 PASSED                              [ 72%]
tests/test_issues.py::test_issue_547 FAILED                              [ 73%]
tests/test_issues.py::test_issue_636 PASSED                              [ 74%]
tests/test_issues.py::test_issue_655 PASSED                              [ 75%]
tests/test_misc.py::test_cuts1 PASSED                                    [ 76%]
tests/test_misc.py::test_subtitles FAILED                                [ 77%]
tests/test_misc.py::test_file_to_subtitles PASSED                        [ 78%]
tests/test_resourcerelease.py::test_release_of_file_via_close FAILED     [ 79%]
tests/test_resourcereleasedemo.py::test_failure_to_release_file FAILED   [ 80%]
tests/test_tools.py::test_find_extensions[libx264-mp4] PASSED            [ 80%]
tests/test_tools.py::test_find_extensions[libmpeg4-mp4] PASSED           [ 81%]
tests/test_tools.py::test_find_extensions[libtheora-ogv] PASSED          [ 82%]
tests/test_tools.py::test_find_extensions[libvpx-webm] PASSED            [ 83%]
tests/test_tools.py::test_find_extensions_not_found PASSED               [ 84%]
tests/test_tools.py::test_cvsecs[15.4-15.4] PASSED                       [ 85%]
tests/test_tools.py::test_cvsecs[given1-81.5] PASSED                     [ 86%]
tests/test_tools.py::test_cvsecs[given2-3662] PASSED                     [ 87%]
tests/test_tools.py::test_cvsecs[given3-3662] PASSED                     [ 88%]
tests/test_tools.py::test_cvsecs[01:01:33.5-3693.5] PASSED               [ 89%]
tests/test_tools.py::test_cvsecs[01:01:33.045-3693.045] PASSED           [ 90%]
tests/test_tools.py::test_cvsecs[01:01:33,5-3693.5] PASSED               [ 90%]
tests/test_tools.py::test_cvsecs[1:33-93.0] PASSED                       [ 91%]
tests/test_tools.py::test_cvsecs[33.4-33.4] PASSED                       [ 92%]
tests/test_tools.py::test_cvsecs[None-None] PASSED                       [ 93%]
tests/test_tools.py::test_is_string[hello straight string-True] PASSED   [ 94%]
tests/test_tools.py::test_is_string[hello raw string-True] PASSED        [ 95%]
tests/test_tools.py::test_is_string[42-False] PASSED                     [ 96%]
tests/test_tools.py::test_is_string[True-False] PASSED                   [ 97%]
tests/test_tools.py::test_is_string[hello bytes-False] PASSED            [ 98%]
tests/test_tools.py::test_sys_write_flush FAILED                         [ 99%]
tests/test_videotools.py::test_credits FAILED                            [100%]

=================================== FAILURES ===================================
____________________________________ test_1 ____________________________________

    def test_1():
        images=[]
        durations=[]
    
        for i in range(5):
            durations.append(i)
            images.append("media/python_logo.png")
            durations.append(i)
            images.append("media/python_logo_upside_down.png")
    
        with ImageSequenceClip(images, durations=durations) as clip:
            assert clip.duration == sum(durations)
>           clip.write_videofile(os.path.join(TMP_DIR, 
> "ImageSequenceClip1.mp4"), fps=30)

tests/test_ImageSequenceClip.py:25: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd89ba160>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/ImageSequenceClip1.mp4'
size = (260, 77), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/ImageSequenceClip1.mp4.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/ImageSequenceClip1.mp4

_________________________________ test_PR_339 __________________________________

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd87fcfd0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
>           subprocess_call(cmd, logger=None)

moviepy/video/VideoClip.py:1137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd87fcee0>
errorprint = True

    def subprocess_call(cmd, logger='bar', errorprint=True):
        """ Executes the given subprocess command.
    
        Set logger to None or a custom Proglog logger to avoid printings.
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
    
        popen_params = {"stdout": DEVNULL,
                        "stderr": sp.PIPE,
                        "stdin": DEVNULL}
    
        if os.name == "nt":
            popen_params["creationflags"] = 0x08000000
    
        proc = sp.Popen(cmd, **popen_params)
    
        out, err = proc.communicate() # proc.wait()
        proc.stderr.close()
    
        if proc.returncode:
            if errorprint:
                logger(message='Moviepy - Command returned an error')
>           raise IOError(err.decode('utf8'))
E           OSError: Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png' @ 
error/convert.c/ConvertImageCommand/3229.

moviepy/tools.py:54: OSError

During handling of the above exception, another exception occurred:

    def test_PR_339():
        # In caption mode.
>       TextClip(txt='foo', color='white', font=FONT, size=(640, 480),
                 method='caption', align='center', fontsize=25).close()

tests/test_PR.py:29: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd87fcfd0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpripxn2wv.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
            subprocess_call(cmd, logger=None)
        except (IOError, OSError) as err:
            error = ("MoviePy Error: creation of %s failed because of the "
                     "following error:\n\n%s.\n\n." % (filename, str(err))
                     + ("This error can be due to the fact that ImageMagick "
                        "is not installed on your computer, or (for Windows "
                        "users) that you didn't specify the path to the "
                        "ImageMagick binary in file conf.py, or that the path "
                        "you specified is incorrect"))
>           raise IOError(error)
E           OSError: MoviePy Error: creation of None failed because of the 
following error:
E           
E           Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpq8n3akh7.png' @ 
error/convert.c/ConvertImageCommand/3229.
E           .
E           
E           .This error can be due to the fact that ImageMagick is not 
installed on your computer, or (for Windows users) that you didn't specify the 
path to the ImageMagick binary in file conf.py, or that the path you specified 
is incorrect

moviepy/video/VideoClip.py:1146: OSError
_________________________________ test_PR_458 __________________________________

    def test_PR_458():
        clip = ColorClip([1000, 600], color=(60, 60, 60), duration=2)
>       clip.write_videofile(os.path.join(TMP_DIR, "test.mp4"),
                             logger=None, fps=30)

tests/test_PR.py:83: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8810970>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4'
size = (1000, 600), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4

_________________________________ test_PR_528 __________________________________

    def test_PR_528():
        with ImageClip("media/vacation_2017.jpg") as clip:
            new_clip = scroll(clip, w=1000, x_speed=50)
            new_clip = new_clip.set_duration(1)
            new_clip.fps = 24
>           new_clip.write_videofile(os.path.join(TMP_DIR, "pano.mp4"))

tests/test_PR.py:100: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8825700>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/pano.mp4'
size = (1000, 1440), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/pano.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/pano.mp4

_________________________________ test_PR_529 __________________________________

    def test_PR_529():
        with VideoFileClip("media/fire2.mp4") as video_clip:
>           assert video_clip.rotation == 180
E           assert 0 == 180
E             +0
E             -180

tests/test_PR.py:105: AssertionError
________________________________ test_duration _________________________________

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd880d340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
filename = None, size = ('1280', '720'), color = 'white'
bg_color = 'transparent', fontsize = None, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'label', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
>           subprocess_call(cmd, logger=None)

moviepy/video/VideoClip.py:1137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd880db80>
errorprint = True

    def subprocess_call(cmd, logger='bar', errorprint=True):
        """ Executes the given subprocess command.
    
        Set logger to None or a custom Proglog logger to avoid printings.
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
    
        popen_params = {"stdout": DEVNULL,
                        "stderr": sp.PIPE,
                        "stdin": DEVNULL}
    
        if os.name == "nt":
            popen_params["creationflags"] = 0x08000000
    
        proc = sp.Popen(cmd, **popen_params)
    
        out, err = proc.communicate() # proc.wait()
        proc.stderr.close()
    
        if proc.returncode:
            if errorprint:
                logger(message='Moviepy - Command returned an error')
>           raise IOError(err.decode('utf8'))
E           OSError: Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png' @ 
error/convert.c/ConvertImageCommand/3229.

moviepy/tools.py:54: OSError

During handling of the above exception, another exception occurred:

    def test_duration():
>       clip = TextClip('hello world', size=(1280,720), color='white', 
> font=FONT)

tests/test_TextClip.py:17: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd880d340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
filename = None, size = ('1280', '720'), color = 'white'
bg_color = 'transparent', fontsize = None, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'label', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmph8fz26j0.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
            subprocess_call(cmd, logger=None)
        except (IOError, OSError) as err:
            error = ("MoviePy Error: creation of %s failed because of the "
                     "following error:\n\n%s.\n\n." % (filename, str(err))
                     + ("This error can be due to the fact that ImageMagick "
                        "is not installed on your computer, or (for Windows "
                        "users) that you didn't specify the path to the "
                        "ImageMagick binary in file conf.py, or that the path "
                        "you specified is incorrect"))
>           raise IOError(error)
E           OSError: MoviePy Error: creation of None failed because of the 
following error:
E           
E           Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjw_2n7ak.png' @ 
error/convert.c/ConvertImageCommand/3229.
E           .
E           
E           .This error can be due to the fact that ImageMagick is not 
installed on your computer, or (for Windows users) that you didn't specify the 
path to the ImageMagick binary in file conf.py, or that the path you specified 
is incorrect

moviepy/video/VideoClip.py:1146: OSError
___________________ test_if_textclip_crashes_in_caption_mode ___________________

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8492730>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
>           subprocess_call(cmd, logger=None)

moviepy/video/VideoClip.py:1137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd8492760>
errorprint = True

    def subprocess_call(cmd, logger='bar', errorprint=True):
        """ Executes the given subprocess command.
    
        Set logger to None or a custom Proglog logger to avoid printings.
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
    
        popen_params = {"stdout": DEVNULL,
                        "stderr": sp.PIPE,
                        "stdin": DEVNULL}
    
        if os.name == "nt":
            popen_params["creationflags"] = 0x08000000
    
        proc = sp.Popen(cmd, **popen_params)
    
        out, err = proc.communicate() # proc.wait()
        proc.stderr.close()
    
        if proc.returncode:
            if errorprint:
                logger(message='Moviepy - Command returned an error')
>           raise IOError(err.decode('utf8'))
E           OSError: Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png' @ 
error/convert.c/ConvertImageCommand/3229.

moviepy/tools.py:54: OSError

During handling of the above exception, another exception occurred:

    def test_if_textclip_crashes_in_caption_mode():
>       TextClip(txt='foo', color='white', size=(640, 480), method='caption',
                 align='center', fontsize=25, font=FONT).close()

tests/test_TextClip.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8492730>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
filename = None, size = ('640', '480'), color = 'white'
bg_color = 'transparent', fontsize = 25, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpc6fdb_w4.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
            subprocess_call(cmd, logger=None)
        except (IOError, OSError) as err:
            error = ("MoviePy Error: creation of %s failed because of the "
                     "following error:\n\n%s.\n\n." % (filename, str(err))
                     + ("This error can be due to the fact that ImageMagick "
                        "is not installed on your computer, or (for Windows "
                        "users) that you didn't specify the path to the "
                        "ImageMagick binary in file conf.py, or that the path "
                        "you specified is incorrect"))
>           raise IOError(error)
E           OSError: MoviePy Error: creation of None failed because of the 
following error:
E           
E           Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp0grf_n_r.png' @ 
error/convert.c/ConvertImageCommand/3229.
E           .
E           
E           .This error can be due to the fact that ImageMagick is not 
installed on your computer, or (for Windows users) that you didn't specify the 
path to the ImageMagick binary in file conf.py, or that the path you specified 
is incorrect

moviepy/video/VideoClip.py:1146: OSError
____________________ test_if_textclip_crashes_in_label_mode ____________________

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd88259d0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
filename = None, size = None, color = 'black', bg_color = 'transparent'
fontsize = None, font = 'Liberation-Mono', stroke_color = None, stroke_width = 1
method = 'label', kerning = None, align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
>           subprocess_call(cmd, logger=None)

moviepy/video/VideoClip.py:1137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cmd = ['convert', '-background', 'transparent', '-fill', 'black', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd8825910>
errorprint = True

    def subprocess_call(cmd, logger='bar', errorprint=True):
        """ Executes the given subprocess command.
    
        Set logger to None or a custom Proglog logger to avoid printings.
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
    
        popen_params = {"stdout": DEVNULL,
                        "stderr": sp.PIPE,
                        "stdin": DEVNULL}
    
        if os.name == "nt":
            popen_params["creationflags"] = 0x08000000
    
        proc = sp.Popen(cmd, **popen_params)
    
        out, err = proc.communicate() # proc.wait()
        proc.stderr.close()
    
        if proc.returncode:
            if errorprint:
                logger(message='Moviepy - Command returned an error')
>           raise IOError(err.decode('utf8'))
E           OSError: Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png' @ 
error/convert.c/ConvertImageCommand/3229.

moviepy/tools.py:54: OSError

During handling of the above exception, another exception occurred:

    def test_if_textclip_crashes_in_label_mode():
>       TextClip(txt='foo', method='label', font=FONT).close()

tests/test_TextClip.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd88259d0>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
filename = None, size = None, color = 'black', bg_color = 'transparent'
fontsize = None, font = 'Liberation-Mono', stroke_color = None, stroke_width = 1
method = 'label', kerning = None, align = 'center', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmp3x1bwzic.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
            subprocess_call(cmd, logger=None)
        except (IOError, OSError) as err:
            error = ("MoviePy Error: creation of %s failed because of the "
                     "following error:\n\n%s.\n\n." % (filename, str(err))
                     + ("This error can be due to the fact that ImageMagick "
                        "is not installed on your computer, or (for Windows "
                        "users) that you didn't specify the path to the "
                        "ImageMagick binary in file conf.py, or that the path "
                        "you specified is incorrect"))
>           raise IOError(error)
E           OSError: MoviePy Error: creation of None failed because of the 
following error:
E           
E           Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpx7deezx3.png' @ 
error/convert.c/ConvertImageCommand/3229.
E           .
E           
E           .This error can be due to the fact that ImageMagick is not 
installed on your computer, or (for Windows users) that you didn't specify the 
path to the ImageMagick binary in file conf.py, or that the path you specified 
is incorrect

moviepy/video/VideoClip.py:1146: OSError
__________________________ test_write_image_sequence ___________________________

    def test_write_image_sequence():
        clip = VideoFileClip("media/big_buck_bunny_432_433.webm").subclip(0.2, 
0.5)
>       locations = clip.write_images_sequence(
                os.path.join(TMP_DIR, "frame%02d.png"))

tests/test_VideoClip.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.VideoFileClip.VideoFileClip object at 0x7fffd87de0d0>
nameformat = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/frame%02d.png'
fps = None, verbose = True, withmask = True
logger = <proglog.proglog.TqdmProgressBarLogger object at 0x7fffd87de310>

    @requires_duration
    @use_clip_fps_by_default
    @convert_masks_to_RGB
    def write_images_sequence(self, nameformat, fps=None, verbose=True,
                              withmask=True, logger='bar'):
        """ Writes the videoclip to a sequence of image files.
    
        Parameters
        -----------
    
        nameformat
          A filename specifying the numerotation format and extension
          of the pictures. For instance "frame%03d.png" for filenames
          indexed with 3 digits and PNG format. Also possible:
          "some_folder/frame%04d.jpeg", etc.
    
        fps
          Number of frames per second to consider when writing the
          clip. If not specified, the clip's ``fps`` attribute will
          be used if it has one.
    
        withmask
          will save the clip's mask (if any) as an alpha canal (PNGs only).
    
        verbose
          Boolean indicating whether to print information.
    
        logger
          Either 'bar' (progress bar) or None or any Proglog logger.
    
    
        Returns
        --------
    
        names_list
          A list of all the files generated.
    
        Notes
        ------
    
        The resulting image sequence can be read using e.g. the class
        ``ImageSequenceClip``.
    
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Writing frames %s.' % nameformat)
    
>       tt = np.arange(0, self.duration, 1.0 / fps)
E       TypeError: unsupported operand type(s) for /: 'float' and 'NoneType'

moviepy/video/VideoClip.py:361: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Writing frames 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/frame%02d.png.
__________________________________ test_subfx __________________________________

    def test_subfx():
        clip = VideoFileClip("media/big_buck_bunny_0_30.webm").subclip(0, 1)
        transform = lambda c: speedx(c, 0.5)
        new_clip = clip.subfx(transform, 0.5, 0.8)
        location = os.path.join(TMP_DIR, "subfx.mp4")
>       new_clip.write_videofile(location)

tests/test_VideoClip.py:91: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8f261f0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/subfx.mp4'
size = (1280, 720), fps = None, codec = 'libx264'
audiofile = 'subfxTEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/subfx.mp4.
MoviePy - Writing audio in subfxTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/subfx.mp4

----------------------------- Captured stderr call -----------------------------
                                                                     
_________________________________ test_oncolor _________________________________

    def test_oncolor():
        # It doesn't need to be a ColorClip
        clip = ColorClip(size=(100, 60), color=(255, 0, 0), duration=0.5)
        on_color_clip = clip.on_color(size=(200, 160), color=(0, 0, 255))
        location = os.path.join(TMP_DIR, "oncolor.mp4")
>       on_color_clip.write_videofile(location, fps=24)

tests/test_VideoClip.py:101: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd87fcfa0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/oncolor.mp4'
size = (200, 160), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/oncolor.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/oncolor.mp4

________________________________ test_setaudio _________________________________

    def test_setaudio():
        clip = ColorClip(size=(100, 60), color=(255, 0, 0), duration=0.5)
        make_frame_440 = lambda t: [sin(440 * 2 * pi * t)]
        audio = AudioClip(make_frame_440, duration=0.5)
        audio.fps = 44100
        clip = clip.set_audio(audio)
        location = os.path.join(TMP_DIR, "setaudio.mp4")
>       clip.write_videofile(location, fps=24)

tests/test_VideoClip.py:113: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd847fdf0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudio.mp4'
size = (100, 60), fps = None, codec = 'libx264'
audiofile = 'setaudioTEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudio.mp4.
MoviePy - Writing audio in setaudioTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudio.mp4

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________ test_setaudio_with_audiofile _________________________

    def test_setaudio_with_audiofile():
        clip = ColorClip(size=(100, 60), color=(255, 0, 0), duration=0.5)
        audio = AudioFileClip("media/crunching.mp3").subclip(0, 0.5)
        clip = clip.set_audio(audio)
        location = os.path.join(TMP_DIR, "setaudiofile.mp4")
>       clip.write_videofile(location, fps=24)

tests/test_VideoClip.py:123: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8488fa0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudiofile.mp4'
size = (100, 60), fps = None, codec = 'libx264'
audiofile = 'setaudiofileTEMP_MPY_wvf_snd.mp3', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudiofile.mp4.
MoviePy - Writing audio in setaudiofileTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setaudiofile.mp4

----------------------------- Captured stderr call -----------------------------
                                                                   
_______________________________ test_setopacity ________________________________

    def test_setopacity():
        clip = VideoFileClip("media/big_buck_bunny_432_433.webm").subclip(0.2, 
0.6)
        clip = clip.set_opacity(0.5)
        clip = clip.on_color(size=(1000, 1000), color=(0, 0, 255), 
col_opacity=0.8)
        location = os.path.join(TMP_DIR, "setopacity.mp4")
>       clip.write_videofile(location)

tests/test_VideoClip.py:133: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd876bfa0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/setopacity.mp4'
size = (1000, 1000), fps = None, codec = 'libx264'
audiofile = 'setopacityTEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setopacity.mp4.
MoviePy - Writing audio in setopacityTEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/setopacity.mp4

----------------------------- Captured stderr call -----------------------------
                                                       
_______________________________ test_toimageclip _______________________________

    def test_toimageclip():
        clip = VideoFileClip("media/big_buck_bunny_432_433.webm").subclip(0.2, 
0.6)
        clip = clip.to_ImageClip(t=0.1, duration=0.4)
        location = os.path.join(TMP_DIR, "toimageclip.mp4")
>       clip.write_videofile(location, fps=24)

tests/test_VideoClip.py:142: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd878c5b0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/toimageclip.mp4'
size = (1280, 720), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/toimageclip.mp4.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/toimageclip.mp4

__________________________________ test_setup __________________________________

    def test_setup():
        """Test VideoFileClip setup."""
        red = ColorClip((256,200), color=(255,0,0))
        green = ColorClip((256,200), color=(0,255,0))
        blue = ColorClip((256,200), color=(0,0,255))
    
        red.fps = green.fps = blue.fps = 10
        with clips_array([[red, green, blue]]).set_duration(5) as video:
>           video.write_videofile(os.path.join(TMP_DIR, "test.mp4"))

tests/test_VideoFileClip.py:24: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8586c10>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/test.mp4

_______________________________ test_afterimage ________________________________

    def test_afterimage():
        ai = ImageClip("media/afterimage.png")
        masked_clip = mask_color(ai, color=[0,255,1]) # for green
        some_background_clip = ColorClip((800,600), color=(255,255,255))
        final_clip = CompositeVideoClip([some_background_clip, masked_clip],
                                        use_bgclip=True)
        final_clip.duration = 5
>       final_clip.write_videofile(
        os.path.join(TMP_DIR, "afterimage.mp4"), fps=30)

tests/test_Videos.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd881a730>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/afterimage.mp4'
size = (800, 600), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/afterimage.mp4.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/afterimage.mp4

__________________________ test_clips_array_duration ___________________________

    def test_clips_array_duration():
        # NOTE: anyone knows what behaviour this sets ? If yes please replace
        # this comment.
        red = ColorClip((256, 200), color=(255, 0, 0))
        green = ColorClip((256, 200), color=(0, 255, 0))
        blue = ColorClip((256, 200), color=(0, 0, 255))
    
        video = clips_array([[red, green, blue]]).set_duration(5)
        with pytest.raises(AttributeError):  # fps not set
>           video.write_videofile(join(TMP_DIR, "test_clips_array.mp4"))

tests/test_compositing.py:36: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd86dd7f0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_clips_array.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_clips_array.mp4.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_clips_array.mp4

_______________________________ test_blackwhite ________________________________

    def test_blackwhite():
        clip = get_test_video()
        clip1 = blackwhite(clip)
>       clip1.write_videofile(os.path.join(TMP_DIR, "blackwhite1.webm"))

tests/test_fx.py:39: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd87de610>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/blackwhite1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'blackwhite1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/blackwhite1.webm.
MoviePy - Writing audio in blackwhite1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/blackwhite1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_colorx __________________________________

    def test_colorx():
        clip = get_test_video()
        clip1 = colorx(clip, 2)
>       clip1.write_videofile(os.path.join(TMP_DIR, "colorx1.webm"))

tests/test_fx.py:52: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd9280b50>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/colorx1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'colorx1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/colorx1.webm.
MoviePy - Writing audio in colorx1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/colorx1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
__________________________________ test_crop ___________________________________

    def test_crop():
        clip = get_test_video()
    
        clip1 = crop(clip)  # ie, no cropping (just tests all default values)
>       clip1.write_videofile(os.path.join(TMP_DIR, "crop1.webm"))

tests/test_fx.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8593100>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/crop1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'crop1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video /tmp/guix-build-python-moviepy-1.0.3.drv-0/crop1.webm.
MoviePy - Writing audio in crop1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/crop1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_fadein __________________________________

    def test_fadein():
        clip = get_test_video()
        clip1 = fadein(clip, 0.5)
>       clip1.write_videofile(os.path.join(TMP_DIR, "fadein1.webm"))

tests/test_fx.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd86f69d0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadein1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'fadein1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadein1.webm.
MoviePy - Writing audio in fadein1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/fadein1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_fadeout _________________________________

    def test_fadeout():
        clip = get_test_video()
        clip1 = fadeout(clip, 0.5)
>       clip1.write_videofile(os.path.join(TMP_DIR, "fadeout1.webm"))

tests/test_fx.py:87: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd875a070>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadeout1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'fadeout1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/fadeout1.webm.
MoviePy - Writing audio in fadeout1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/fadeout1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
______________________________ test_invert_colors ______________________________

    def test_invert_colors():
        clip = get_test_video()
        clip1 = invert_colors(clip)
>       clip1.write_videofile(os.path.join(TMP_DIR, "invert_colors1.webm"))

tests/test_fx.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd858b160>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/invert_colors1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'invert_colors1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/invert_colors1.webm.
MoviePy - Writing audio in invert_colors1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/invert_colors1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
______________________________ test_lum_contrast _______________________________

    def test_lum_contrast():
        clip = get_test_video()
        clip1 = lum_contrast(clip)
>       clip1.write_videofile(os.path.join(TMP_DIR, "lum_contrast1.webm"))

tests/test_fx.py:117: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd86c0e80>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/lum_contrast1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'lum_contrast1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/lum_contrast1.webm.
MoviePy - Writing audio in lum_contrast1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/lum_contrast1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
______________________________ test_make_loopable ______________________________

    def test_make_loopable():
        clip = get_test_video()
        clip1 = make_loopable(clip, 0.4)
>       clip1.write_videofile(os.path.join(TMP_DIR, "make_loopable1.webm"))

tests/test_fx.py:128: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd867cee0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/make_loopable1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'make_loopable1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/make_loopable1.webm.
MoviePy - Writing audio in make_loopable1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/make_loopable1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_margin __________________________________

    def test_margin():
        clip = get_test_video()
        clip1 = margin(clip)  # does the default values change anything?
>       clip1.write_videofile(os.path.join(TMP_DIR, "margin1.webm"))

tests/test_fx.py:135: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd86a6bb0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/margin1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'margin1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/margin1.webm.
MoviePy - Writing audio in margin1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/margin1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
________________________________ test_mirror_x _________________________________

    def test_mirror_x():
        clip = get_test_video()
        clip1 = mirror_x(clip)
>       clip1.write_videofile(os.path.join(TMP_DIR, "mirror_x1.webm"))

tests/test_fx.py:160: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd87de6d0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_x1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'mirror_x1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_x1.webm.
MoviePy - Writing audio in mirror_x1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_x1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
________________________________ test_mirror_y _________________________________

    def test_mirror_y():
        clip = get_test_video()
        clip1 = mirror_y(clip)
>       clip1.write_videofile(os.path.join(TMP_DIR, "mirror_y1.webm"))

tests/test_fx.py:167: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd872f1f0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_y1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'mirror_y1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_y1.webm.
MoviePy - Writing audio in mirror_y1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/mirror_y1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_resize __________________________________

    def test_resize():
        clip = get_test_video()
    
        clip1 = resize(clip, (460, 720))  # New resolution: (460,720)
        assert clip1.size == (460, 720)
>       clip1.write_videofile(os.path.join(TMP_DIR, "resize1.webm"))

tests/test_fx.py:180: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7ffff6ade670>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/resize1.webm'
size = (460, 720), fps = None, codec = 'libvpx'
audiofile = 'resize1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/resize1.webm.
MoviePy - Writing audio in resize1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/resize1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_rotate __________________________________

    def test_rotate():
        clip = get_test_video()
    
        clip1 = rotate(clip, 90)  # rotate 90 degrees
        assert clip1.size == (clip.size[1], clip.size[0])
>       clip1.write_videofile(os.path.join(TMP_DIR, "rotate1.webm"))

tests/test_fx.py:202: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd87fc6d0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/rotate1.webm'
size = (720, 1280), fps = None, codec = 'libvpx'
audiofile = 'rotate1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/rotate1.webm.
MoviePy - Writing audio in rotate1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/rotate1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_________________________________ test_speedx __________________________________

    def test_speedx():
        clip = get_test_video()
    
        clip1 = speedx(clip, factor=0.5)  # 1/2 speed
        assert clip1.duration == 2
>       clip1.write_videofile(os.path.join(TMP_DIR, "speedx1.webm"))

tests/test_fx.py:227: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd8794d30>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/speedx1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'speedx1TEMP_MPY_wvf_snd.ogg', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/speedx1.webm.
MoviePy - Writing audio in speedx1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/speedx1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_______________________________ test_time_mirror _______________________________

    def test_time_mirror():
        clip = get_test_video()
    
        clip1 = time_mirror(clip)
        assert clip1.duration == clip.duration
>       clip1.write_videofile(os.path.join(TMP_DIR, "time_mirror1.webm"))

tests/test_fx.py:248: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd867f100>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_mirror1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'time_mirror1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_mirror1.webm.
MoviePy - Writing audio in time_mirror1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_mirror1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
_____________________________ test_time_symmetrize _____________________________

    def test_time_symmetrize():
        clip = get_test_video()
    
        clip1 = time_symmetrize(clip)
>       clip1.write_videofile(os.path.join(TMP_DIR, "time_symmetrize1.webm"))

tests/test_fx.py:256: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd86f0df0>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_symmetrize1.webm'
size = (1280, 720), fps = None, codec = 'libvpx'
audiofile = 'time_symmetrize1TEMP_MPY_wvf_snd.ogg', preset = 'medium'
bitrate = None, withmask = False, logfile = -1, threads = None
ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_symmetrize1.webm.
MoviePy - Writing audio in time_symmetrize1TEMP_MPY_wvf_snd.ogg
MoviePy - Done.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/time_symmetrize1.webm

----------------------------- Captured stderr call -----------------------------
                                                       
________________________________ test_issue_334 ________________________________

    def test_issue_334():
       # NOTE: this is horrible. Any simpler version ?
        last_move = None
        last_move1 = None
    
        lis = [(0.0, 113, 167, 47), (0.32, 138, 159, 47), (0.44, 152, 144, 47),
               (0.48, 193, 148, 47), (0.6, 193, 148, 47), (0.76, 205, 138, 55),
               (0.88, 204, 121, 63), (0.92, 190, 31, 127), (1.2, 183, 59, 127),
               (1.4, 137, 22, 127), (1.52, 137, 22, 127), (1.72, 129, 67, 127),
               (1.88, 123, 69, 127), (2.04, 131, 123, 63), (2.24, 130, 148, 63),
               (2.48, 130, 148, 63), (2.8, 138, 180, 63), (3.0, 138, 180, 63),
               (3.2, 146, 192, 63), (3.28, 105, 91, 151), (3.44, 105, 91, 151),
               (3.72, 11, 48, 151), (3.96, 5, 78, 151), (4.32, 4, 134, 1),
               (4.6, 149, 184, 48), (4.8, 145, 188, 48), (5.0, 154, 217, 48),
               (5.08, 163, 199, 48), (5.2, 163, 199, 48), (5.32, 164, 187, 48),
               (5.48, 163, 200, 48), (5.76, 163, 200, 48), (5.96, 173, 199, 48),
               (6.0, 133, 172, 48), (6.04, 128, 165, 48), (6.28, 128, 165, 48),
               (6.4, 129, 180, 48), (6.52, 133, 166, 48), (6.64, 133, 166, 48),
               (6.88, 144, 183, 48), (7.0, 153, 174, 48), (7.16, 153, 174, 48),
               (7.24, 153, 174, 48), (7.28, 253, 65, 104), (7.64, 253, 65, 104),
               (7.8, 279, 116, 80), (8.0, 290, 105, 80), (8.24, 288, 124, 80),
               (8.44, 243, 102, 80), (8.56, 243, 102, 80), (8.8, 202, 107, 80),
               (8.84, 164, 27, 104), (9.0, 164, 27, 104), (9.12, 121, 9, 104),
               (9.28, 77, 33, 104), (9.32, 52, 23, 104), (9.48, 52, 23, 104),
               (9.64, 33, 46, 104), (9.8, 93, 49, 104), (9.92, 93, 49, 104),
               (10.16, 173, 19, 104), (10.2, 226, 173, 48), (10.36, 226, 173, 
48),
               (10.48, 211, 172, 48), (10.64, 208, 162, 48), (10.92, 220, 171, 
48)]
    
        lis1 = [(0.0, 113, 167, 47), (0.32, 138, 159, 47), (0.44, 152, 144, 47),
                (0.48, 193, 148, 47), (0.6, 193, 148, 47), (0.76, 205, 138, 55),
                (0.88, 204, 121, 63), (0.92, 190, 31, 127), (1.2, 183, 59, 127),
                (1.4, 137, 22, 127), (1.52, 137, 22, 127), (1.72, 129, 67, 127),
                (1.88, 123, 69, 127), (2.04, 131, 123, 63), (2.24, 130, 148, 
63),
                (2.48, 130, 148, 63), (2.8, 138, 180, 63), (3.0, 138, 180, 63),
                (3.2, 146, 192, 63), (3.28, 105, 91, 151), (3.44, 105, 91, 151),
                (3.72, 11, 48, 151), (3.96, 5, 78, 151), (4.32, 4, 134, 1),
                (4.6, 149, 184, 48), (4.8, 145, 188, 48), (5.0, 154, 217, 48),
                (5.08, 163, 199, 48), (5.2, 163, 199, 48), (5.32, 164, 187, 48),
                (5.48, 163, 200, 48), (5.76, 163, 200, 48), (5.96, 173, 199, 
48),
                (6.0, 133, 172, 48), (6.04, 128, 165, 48), (6.28, 128, 165, 48),
                (6.4, 129, 180, 48), (6.52, 133, 166, 48), (6.64, 133, 166, 48),
                (6.88, 144, 183, 48), (7.0, 153, 174, 48), (7.16, 153, 174, 48),
                (7.24, 153, 174, 48), (7.28, 253, 65, 104), (7.64, 253, 65, 
104),
                (7.8, 279, 116, 80), (8.0, 290, 105, 80), (8.24, 288, 124, 80),
                (8.44, 243, 102, 80), (8.56, 243, 102, 80), (8.8, 202, 107, 80),
                (8.84, 164, 27, 104), (9.0, 164, 27, 104), (9.12, 121, 9, 104),
                (9.28, 77, 33, 104), (9.32, 52, 23, 104), (9.48, 52, 23, 104),
                (9.64, 33, 46, 104), (9.8, 93, 49, 104), (9.92, 93, 49, 104),
                (10.16, 173, 19, 104), (10.2, 226, 173, 48), (10.36, 226, 173, 
48),
                (10.48, 211, 172, 48), (10.64, 208, 162, 48), (10.92, 220, 171, 
48)]
    
        def posi(t):
            global last_move
            if len(lis) == 0:
                return (last_move[1], last_move[2])
            if t >= lis[0][0]:
                last_move = item = lis.pop(0)
                return (item[1], item[2])
            else:
                if len(lis) > 0:
                    dura = lis[0][0] - last_move[0]
                    now = t - last_move[0]
                    w = (lis[0][1] - last_move[1]) * (now / dura)
                    h = (lis[0][2] - last_move[2]) * (now / dura)
                    # print t, last_move[1] + w, last_move[2] + h
                    return (last_move[1] + w, last_move[2] + h)
                return (last_move[1], last_move[2])
    
        def size(t):
            global last_move1
            if len(lis1) == 0:
                return (last_move1[3], last_move1[3] * 1.33)
            if t >= lis1[0][0]:
                last_move1 = item = lis1.pop(0)
                return (item[3], item[3] * 1.33)
            else:
                if len(lis) > 0:
                    dura = lis1[0][0] - last_move1[0]
                    now = t - last_move1[0]
                    s = (lis1[0][3] - last_move1[3]) * (now / dura)
                    nsw = last_move1[3] + s
                    nsh = nsw * 1.33
                    # print t, nsw, nsh
                    return (nsw, nsh)
                return (last_move1[3], last_move1[3] * 1.33)
    
        avatar = VideoFileClip("media/big_buck_bunny_432_433.webm", 
has_mask=True)
        avatar.audio = None
        maskclip = ImageClip("media/afterimage.png",
                             ismask=True, transparent=True)
        avatar.set_mask(maskclip)  # must set maskclip here..
        concatenated = concatenate_videoclips([avatar] * 3)
    
        tt = VideoFileClip("media/big_buck_bunny_0_30.webm").subclip(0, 3)
        # TODO: Setting mask here does not work:
        # .set_mask(maskclip).resize(size)])
        final = CompositeVideoClip(
            [tt, concatenated.set_position(posi).resize(size)])
        final.duration = tt.duration
>       final.write_videofile(
           os.path.join(TMP_DIR, 'issue_334.mp4'), fps=10)

tests/test_issues.py:143: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd872fd30>
filename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_334.mp4'
size = (1280, 720), fps = None, codec = 'libx264'
audiofile = 'issue_334TEMP_MPY_wvf_snd.mp3', preset = 'medium', bitrate = None
withmask = False, logfile = -1, threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_334.mp4.
MoviePy - Writing audio in issue_334TEMP_MPY_wvf_snd.mp3
MoviePy - Done.
Moviepy - Writing video /tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_334.mp4

----------------------------- Captured stderr call -----------------------------
                                                                   
________________________________ test_issue_470 ________________________________

    def test_issue_470():
        audio_clip = AudioFileClip('media/crunching.mp3')
    
        # t_end is out of bounds
        subclip = audio_clip.subclip(t_start=6, t_end=9)
    
        with pytest.raises(IOError):
>           subclip.write_audiofile(os.path.join(
                TMP_DIR, 'issue_470.wav'), write_logfile=True)
E           Failed: DID NOT RAISE <class 'OSError'>

tests/test_issues.py:267: Failed
----------------------------- Captured stdout call -----------------------------
MoviePy - Writing audio in 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/issue_470.wav
MoviePy - Done.
----------------------------- Captured stderr call -----------------------------
                                                                 
________________________________ test_issue_547 ________________________________

    def test_issue_547():
        red = ColorClip((640, 480), color=(255, 0, 0)).set_duration(1)
        green = ColorClip((640, 480), color=(0, 255, 0)).set_duration(2)
        blue = ColorClip((640, 480), color=(0, 0, 255)).set_duration(3)
    
        video = concatenate_videoclips([red, green, blue], method="compose")
        assert video.duration == 6
>       assert video.mask.duration == 6
E       assert 9 == 6
E         +9
E         -6

tests/test_issues.py:291: AssertionError
________________________________ test_subtitles ________________________________

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd871f340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
filename = None, size = ('800', '600'), color = 'white'
bg_color = 'transparent', fontsize = 24, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'South', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
>           subprocess_call(cmd, logger=None)

moviepy/video/VideoClip.py:1137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd871faf0>
errorprint = True

    def subprocess_call(cmd, logger='bar', errorprint=True):
        """ Executes the given subprocess command.
    
        Set logger to None or a custom Proglog logger to avoid printings.
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
    
        popen_params = {"stdout": DEVNULL,
                        "stderr": sp.PIPE,
                        "stdin": DEVNULL}
    
        if os.name == "nt":
            popen_params["creationflags"] = 0x08000000
    
        proc = sp.Popen(cmd, **popen_params)
    
        out, err = proc.communicate() # proc.wait()
        proc.stderr.close()
    
        if proc.returncode:
            if errorprint:
                logger(message='Moviepy - Command returned an error')
>           raise IOError(err.decode('utf8'))
E           OSError: Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png' @ 
error/convert.c/ConvertImageCommand/3229.

moviepy/tools.py:54: OSError

During handling of the above exception, another exception occurred:

    def test_subtitles():
        red = ColorClip((800, 600), color=(255, 0, 0)).set_duration(10)
        green = ColorClip((800, 600), color=(0, 255, 0)).set_duration(10)
        blue = ColorClip((800, 600), color=(0, 0, 255)).set_duration(10)
        myvideo = concatenate_videoclips([red, green, blue])
        assert myvideo.duration == 30
    
        generator = lambda txt: TextClip(txt, font=FONT,
                                         size=(800, 600), fontsize=24,
                                         method='caption', align='South',
                                         color='white')
    
>       subtitles = SubtitlesClip("media/subtitles1.srt", generator)

tests/test_misc.py:35: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
moviepy/video/tools/subtitles.py:86: in __init__
    hasmask = bool(self.make_textclip('T').mask)
tests/test_misc.py:30: in <lambda>
    generator = lambda txt: TextClip(txt, font=FONT,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd871f340>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
filename = None, size = ('800', '600'), color = 'white'
bg_color = 'transparent', fontsize = 24, font = 'Liberation-Mono'
stroke_color = None, stroke_width = 1, method = 'caption', kerning = None
align = 'South', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmpjcy0ne2v.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
            subprocess_call(cmd, logger=None)
        except (IOError, OSError) as err:
            error = ("MoviePy Error: creation of %s failed because of the "
                     "following error:\n\n%s.\n\n." % (filename, str(err))
                     + ("This error can be due to the fact that ImageMagick "
                        "is not installed on your computer, or (for Windows "
                        "users) that you didn't specify the path to the "
                        "ImageMagick binary in file conf.py, or that the path "
                        "you specified is incorrect"))
>           raise IOError(error)
E           OSError: MoviePy Error: creation of None failed because of the 
following error:
E           
E           Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmparicz9mw.png' @ 
error/convert.c/ConvertImageCommand/3229.
E           .
E           
E           .This error can be due to the fact that ImageMagick is not 
installed on your computer, or (for Windows users) that you didn't specify the 
path to the ImageMagick binary in file conf.py, or that the path you specified 
is incorrect

moviepy/video/VideoClip.py:1146: OSError
________________________ test_release_of_file_via_close ________________________

    def test_release_of_file_via_close():
        # Create a random video file.
        red = ColorClip((256, 200), color=(255, 0, 0))
        green = ColorClip((256, 200), color=(0, 255, 0))
        blue = ColorClip((256, 200), color=(0, 0, 255))
    
        red.fps = green.fps = blue.fps = 10
    
        # Repeat this so we can see no conflicts.
        for i in range(3):
            # Get the name of a temporary file we can use.
            local_video_filename = join(
                TMP_DIR,
                "test_release_of_file_via_close_%s.mp4" % int(time.time())
            )
    
            clip = clips_array([[red, green, blue]]).set_duration(0.5)
>           clip.write_videofile(local_video_filename)

tests/test_resourcerelease.py:40: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7fffd899e8e0>
filename = 
'/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_via_close_1674878483.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_via_close_1674878483.mp4.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_via_close_1674878483.mp4

_________________________ test_failure_to_release_file _________________________

    def test_failure_to_release_file():
        """ This isn't really a test, because it is expected to fail.
            It demonstrates that there *is* a problem with not releasing 
resources when running on
            Windows.
    
            The real issue was that, as of movepy 0.2.3.2, there was no way 
around it.
    
            See test_resourcerelease.py to see how the close() methods provide 
a solution.
        """
    
        # Get the name of a temporary file we can use.
        local_video_filename = join(
            TMP_DIR, "test_release_of_file_%s.mp4" % int(time.time()))
    
        # Repeat this so we can see that the problems escalate:
        for i in range(5):
    
            # Create a random video file.
            red = ColorClip((256, 200), color=(255, 0, 0))
            green = ColorClip((256, 200), color=(0, 255, 0))
            blue = ColorClip((256, 200), color=(0, 0, 255))
    
            red.fps = green.fps = blue.fps = 30
            video = clips_array([[red, green, blue]]).set_duration(1)
    
            try:
>               video.write_videofile(local_video_filename)

tests/test_resourcereleasedemo.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:54: in requires_duration
    return f(clip, *a, **k)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:135: in use_clip_fps_by_default
    return f(clip, *new_a, **new_kw)
/gnu/store/zfw5y8356i5hmfghpix46qk3iaxg3i6y-python-decorator-5.0.9/lib/python3.9/site-packages/decorator.py:232:
 in fun
    return caller(func, *(extras + args), **kw)
moviepy/decorators.py:22: in convert_masks_to_RGB
    return f(clip, *a, **k)
moviepy/video/VideoClip.py:300: in write_videofile
    ffmpeg_write_video(self, filename, fps, codec,
moviepy/video/io/ffmpeg_writer.py:213: in ffmpeg_write_video
    with FFMPEG_VideoWriter(filename, clip.size, fps, codec = codec,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.io.ffmpeg_writer.FFMPEG_VideoWriter object at 
0x7ffff6ade670>
filename = 
'/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_1674878483.mp4'
size = (768, 200), fps = None, codec = 'libx264', audiofile = None
preset = 'medium', bitrate = None, withmask = False, logfile = -1
threads = None, ffmpeg_params = None

    def __init__(self, filename, size, fps, codec="libx264", audiofile=None,
                 preset="medium", bitrate=None, withmask=False,
                 logfile=None, threads=None, ffmpeg_params=None):
    
        if logfile is None:
            logfile = sp.PIPE
    
        self.filename = filename
        self.codec = codec
        self.ext = self.filename.split(".")[-1]
    
        # order is important
        cmd = [
            get_setting("FFMPEG_BINARY"),
            '-y',
            '-loglevel', 'error' if logfile == sp.PIPE else 'info',
            '-f', 'rawvideo',
            '-vcodec', 'rawvideo',
            '-s', '%dx%d' % (size[0], size[1]),
            '-pix_fmt', 'rgba' if withmask else 'rgb24',
>           '-r', '%.02f' % fps,
            '-an', '-i', '-'
        ]
E       TypeError: must be real number, not NoneType

moviepy/video/io/ffmpeg_writer.py:88: TypeError
----------------------------- Captured stdout call -----------------------------
Moviepy - Building video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_1674878483.mp4.
Moviepy - Writing video 
/tmp/guix-build-python-moviepy-1.0.3.drv-0/test_release_of_file_1674878483.mp4

_____________________________ test_sys_write_flush _____________________________

    def test_sys_write_flush():
        """Test for sys_write-flush function. Check that stdout has no content 
after flushing."""
        tools.sys_write_flush("hello world")
    
        file = sys.stdout.read()
>       assert file == b""
E       AssertionError: assert '' == b''
E         +''
E         -b''

tests/test_tools.py:62: AssertionError
----------------------------- Captured stdout call -----------------------------
hello world
_________________________________ test_credits _________________________________

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8796160>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
filename = None, size = None, color = 'white', bg_color = 'transparent'
fontsize = 60, font = 'Liberation-Mono', stroke_color = 'blue', stroke_width = 5
method = 'label', kerning = None, align = 'East', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
>           subprocess_call(cmd, logger=None)

moviepy/video/VideoClip.py:1137: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cmd = ['convert', '-background', 'transparent', '-fill', 'white', '-font', ...]
logger = <proglog.proglog.MuteProgressBarLogger object at 0x7fffd8796d30>
errorprint = True

    def subprocess_call(cmd, logger='bar', errorprint=True):
        """ Executes the given subprocess command.
    
        Set logger to None or a custom Proglog logger to avoid printings.
        """
        logger = proglog.default_bar_logger(logger)
        logger(message='Moviepy - Running:\n>>> "+ " ".join(cmd)')
    
        popen_params = {"stdout": DEVNULL,
                        "stderr": sp.PIPE,
                        "stdin": DEVNULL}
    
        if os.name == "nt":
            popen_params["creationflags"] = 0x08000000
    
        proc = sp.Popen(cmd, **popen_params)
    
        out, err = proc.communicate() # proc.wait()
        proc.stderr.close()
    
        if proc.returncode:
            if errorprint:
                logger(message='Moviepy - Command returned an error')
>           raise IOError(err.decode('utf8'))
E           OSError: Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png' @ 
error/convert.c/ConvertImageCommand/3229.

moviepy/tools.py:54: OSError

During handling of the above exception, another exception occurred:

    def test_credits():
        credit_file = "# This is a comment\n" \
                      "# The next line says : leave 4 blank lines\n" \
                      ".blank 2\n" \
                      "\n" \
                      "..Executive Story Editor\n" \
                      "MARCEL DURAND\n" \
                      "\n" \
                      ".blank 2\n" \
                      "\n" \
                      "..Associate Producers\n" \
                      "MARTIN MARCEL\n" \
                      "DIDIER MARTIN\n" \
                      "\n" \
                      "..Music Supervisor\n" \
                      "JEAN DIDIER\n"
    
        file_location = os.path.join(TMP_DIR, "credits.txt")
        vid_location = os.path.join(TMP_DIR, "credits.mp4")
        with open(file_location, "w") as file:
            file.write(credit_file)
    
>       image = credits1(file_location, 600, gap=100, stroke_color="blue",
                         stroke_width=5, font=FONT)

tests/test_videotools.py:33: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
moviepy/video/tools/credits.py:100: in credits1
    left, right = [TextClip(txt, color=color, stroke_color=stroke_color,
moviepy/video/tools/credits.py:100: in <listcomp>
    left, right = [TextClip(txt, color=color, stroke_color=stroke_color,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <moviepy.video.VideoClip.TextClip object at 0x7fffd8796160>
txt = '@/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
filename = None, size = None, color = 'white', bg_color = 'transparent'
fontsize = 60, font = 'Liberation-Mono', stroke_color = 'blue', stroke_width = 5
method = 'label', kerning = None, align = 'East', interline = None
tempfilename = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png'
temptxt = '/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmps9s_zmr9.txt'
transparent = True, remove_temp = True, print_cmd = False

    def __init__(self, txt=None, filename=None, size=None, color='black',
                 bg_color='transparent', fontsize=None, font='Courier',
                 stroke_color=None, stroke_width=1, method='label',
                 kerning=None, align='center', interline=None,
                 tempfilename=None, temptxt=None,
                 transparent=True, remove_temp=True,
                 print_cmd=False):
    
        if txt is not None:
            if temptxt is None:
                temptxt_fd, temptxt = tempfile.mkstemp(suffix='.txt')
                try:  # only in Python3 will this work
                    os.write(temptxt_fd, bytes(txt, 'UTF8'))
                except TypeError:  # oops, fall back to Python2
                    os.write(temptxt_fd, txt)
                os.close(temptxt_fd)
            txt = '@' + temptxt
        else:
            # use a file instead of a text.
            txt = "@%" + filename
    
        if size is not None:
            size = ('' if size[0] is None else str(size[0]),
                    '' if size[1] is None else str(size[1]))
    
        cmd = ([get_setting("IMAGEMAGICK_BINARY"),
               "-background", bg_color,
                "-fill", color,
                "-font", font])
    
        if fontsize is not None:
            cmd += ["-pointsize", "%d" % fontsize]
        if kerning is not None:
            cmd += ["-kerning", "%0.1f" % kerning]
        if stroke_color is not None:
            cmd += ["-stroke", stroke_color, "-strokewidth",
                    "%.01f" % stroke_width]
        if size is not None:
            cmd += ["-size", "%sx%s" % (size[0], size[1])]
        if align is not None:
            cmd += ["-gravity", align]
        if interline is not None:
            cmd += ["-interline-spacing", "%d" % interline]
    
        if tempfilename is None:
            tempfile_fd, tempfilename = tempfile.mkstemp(suffix='.png')
            os.close(tempfile_fd)
    
        cmd += ["%s:%s" % (method, txt),
                "-type", "truecolormatte", "PNG32:%s" % tempfilename]
    
        if print_cmd:
            print(" ".join(cmd))
    
        try:
            subprocess_call(cmd, logger=None)
        except (IOError, OSError) as err:
            error = ("MoviePy Error: creation of %s failed because of the "
                     "following error:\n\n%s.\n\n." % (filename, str(err))
                     + ("This error can be due to the fact that ImageMagick "
                        "is not installed on your computer, or (for Windows "
                        "users) that you didn't specify the path to the "
                        "ImageMagick binary in file conf.py, or that the path "
                        "you specified is incorrect"))
>           raise IOError(error)
E           OSError: MoviePy Error: creation of None failed because of the 
following error:
E           
E           Fontconfig error: No writable cache directories
E           Fontconfig error: No writable cache directories
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: unable to read font `Liberation-Mono' @ 
warning/annotate.c/RenderType/949.
E           convert: unable to read font `Liberation-Mono' @ 
error/annotate.c/RenderFreetype/1396.
E           convert: no images defined 
`PNG32:/tmp/guix-build-python-moviepy-1.0.3.drv-0/tmphlp2n7nz.png' @ 
error/convert.c/ConvertImageCommand/3229.
E           .
E           
E           .This error can be due to the fact that ImageMagick is not 
installed on your computer, or (for Windows users) that you didn't specify the 
path to the ImageMagick binary in file conf.py, or that the path you specified 
is incorrect

moviepy/video/VideoClip.py:1146: OSError
=============================== warnings summary ===============================
moviepy/config_defaults.py:1
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/config_defaults.py:1: 
DeprecationWarning: invalid escape sequence \P
    """

moviepy/video/io/ffmpeg_reader.py:294
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:294:
 DeprecationWarning: invalid escape sequence \d
    lines_video = [l for l in lines if ' Video: ' in l and re.search('\d+x\d+', 
l)]

moviepy/video/io/ffmpeg_reader.py:367
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:367:
 DeprecationWarning: invalid escape sequence \d
    rotation_lines = [l for l in lines if 'rotate          :' in l and 
re.search('\d+$', l)]

moviepy/video/io/ffmpeg_reader.py:370
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:370:
 DeprecationWarning: invalid escape sequence \d
    match = re.search('\d+$', rotation_line)

tests/test_VideoClip.py: 40 warnings
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/gif_writers.py:225:
 DeprecationWarning: tostring() is deprecated. Use tobytes() instead.
    proc1.stdin.write(frame.tostring())

tests/test_compositing.py: 2 warnings
tests/test_fx.py: 1 warning
tests/test_issues.py: 4 warnings
tests/test_misc.py: 18 warnings
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/resize.py:37:
 DeprecationWarning: ANTIALIAS is deprecated and will be removed in Pillow 10 
(2023-07-01). Use Resampling.LANCZOS instead.
    resized_pil = pilim.resize(newsize[::-1], Image.ANTIALIAS)

tests/test_fx.py::test_rotate
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/rotate.py:41:
 DeprecationWarning: BILINEAR is deprecated and will be removed in Pillow 10 
(2023-07-01). Use Resampling.BILINEAR instead.
    resample = {"bilinear": Image.BILINEAR,

tests/test_fx.py::test_rotate
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/rotate.py:42:
 DeprecationWarning: NEAREST is deprecated and will be removed in Pillow 10 
(2023-07-01). Use Resampling.NEAREST or Dither.NONE instead.
    "nearest": Image.NEAREST,

tests/test_fx.py::test_rotate
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/fx/rotate.py:43:
 DeprecationWarning: BICUBIC is deprecated and will be removed in Pillow 10 
(2023-07-01). Use Resampling.BICUBIC instead.
    "bicubic": Image.BICUBIC}[resample]

tests/test_fx.py::test_time_mirror
tests/test_fx.py::test_time_symmetrize
  
/tmp/guix-build-python-moviepy-1.0.3.drv-0/source/moviepy/video/io/ffmpeg_reader.py:123:
 UserWarning: Warning: in file media/big_buck_bunny_432_433.webm, 2764800 bytes 
wanted but 0 bytes read,at frame 24/25, at time 1.00/1.00 sec. Using the last 
valid frame instead.
    warnings.warn("Warning: in file %s, "%(self.filename)+

-- Docs: https://docs.pytest.org/en/stable/warnings.html
=========================== short test summary info ============================
FAILED tests/test_ImageSequenceClip.py::test_1 - TypeError: must be real numb...
FAILED tests/test_PR.py::test_PR_339 - OSError: MoviePy Error: creation of No...
FAILED tests/test_PR.py::test_PR_458 - TypeError: must be real number, not No...
FAILED tests/test_PR.py::test_PR_528 - TypeError: must be real number, not No...
FAILED tests/test_PR.py::test_PR_529 - assert 0 == 180
FAILED tests/test_TextClip.py::test_duration - OSError: MoviePy Error: creati...
FAILED tests/test_TextClip.py::test_if_textclip_crashes_in_caption_mode - OSE...
FAILED tests/test_TextClip.py::test_if_textclip_crashes_in_label_mode - OSErr...
FAILED tests/test_VideoClip.py::test_write_image_sequence - TypeError: unsupp...
FAILED tests/test_VideoClip.py::test_subfx - TypeError: must be real number, ...
FAILED tests/test_VideoClip.py::test_oncolor - TypeError: must be real number...
FAILED tests/test_VideoClip.py::test_setaudio - TypeError: must be real numbe...
FAILED tests/test_VideoClip.py::test_setaudio_with_audiofile - TypeError: mus...
FAILED tests/test_VideoClip.py::test_setopacity - TypeError: must be real num...
FAILED tests/test_VideoClip.py::test_toimageclip - TypeError: must be real nu...
FAILED tests/test_VideoFileClip.py::test_setup - TypeError: must be real numb...
FAILED tests/test_Videos.py::test_afterimage - TypeError: must be real number...
FAILED tests/test_compositing.py::test_clips_array_duration - TypeError: must...
FAILED tests/test_fx.py::test_blackwhite - TypeError: must be real number, no...
FAILED tests/test_fx.py::test_colorx - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_crop - TypeError: must be real number, not None...
FAILED tests/test_fx.py::test_fadein - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_fadeout - TypeError: must be real number, not N...
FAILED tests/test_fx.py::test_invert_colors - TypeError: must be real number,...
FAILED tests/test_fx.py::test_lum_contrast - TypeError: must be real number, ...
FAILED tests/test_fx.py::test_make_loopable - TypeError: must be real number,...
FAILED tests/test_fx.py::test_margin - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_mirror_x - TypeError: must be real number, not ...
FAILED tests/test_fx.py::test_mirror_y - TypeError: must be real number, not ...
FAILED tests/test_fx.py::test_resize - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_rotate - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_speedx - TypeError: must be real number, not No...
FAILED tests/test_fx.py::test_time_mirror - TypeError: must be real number, n...
FAILED tests/test_fx.py::test_time_symmetrize - TypeError: must be real numbe...
FAILED tests/test_issues.py::test_issue_334 - TypeError: must be real number,...
FAILED tests/test_issues.py::test_issue_470 - Failed: DID NOT RAISE <class 'O...
FAILED tests/test_issues.py::test_issue_547 - assert 9 == 6
FAILED tests/test_misc.py::test_subtitles - OSError: MoviePy Error: creation ...
FAILED tests/test_resourcerelease.py::test_release_of_file_via_close - TypeEr...
FAILED tests/test_resourcereleasedemo.py::test_failure_to_release_file - Type...
FAILED tests/test_tools.py::test_sys_write_flush - AssertionError: assert '' ...
FAILED tests/test_videotools.py::test_credits - OSError: MoviePy Error: creat...
====== 42 failed, 67 passed, 1 skipped, 74 warnings in 114.11s (0:01:54) =======
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "pytest" arguments: ("-vv") exit-status: 1 
term-signal: #f stop-signal: #f> 
phase `check' failed after 115.3 seconds
command "pytest" "-vv" failed with status 1
note: keeping build directory `/tmp/guix-build-python-moviepy-1.0.3.drv-3'
builder for 
`/gnu/store/v9lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv' failed 
with exit code 1
build of /gnu/store/v9lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv 
failed
View build log at 
'/var/log/guix/drvs/v9/lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv.gz'.
guix build: error: build of 
`/gnu/store/v9lrnnsp473lld65ggwlrbqqi08609dx-python-moviepy-1.0.3.drv' failed

```

https://github.com/Zulko/moviepy



reply via email to

[Prev in Thread] Current Thread [Next in Thread]