mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-30 09:37:59 +03:00
manim: init at 0.15.2
This commit is contained in:
parent
00bcf67292
commit
81c384a4c0
134
pkgs/applications/video/manim/default.nix
Normal file
134
pkgs/applications/video/manim/default.nix
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
{ lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
|
||||||
|
, cairo
|
||||||
|
, ffmpeg
|
||||||
|
, texlive
|
||||||
|
|
||||||
|
, python3
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
# According to ManimCommunity documentation manim uses tex-packages packaged
|
||||||
|
# in a custom distribution called "manim-latex",
|
||||||
|
#
|
||||||
|
# https://community.chocolatey.org/packages/manim-latex#files
|
||||||
|
#
|
||||||
|
# which includes another cutom distribution called tinytex, for which the
|
||||||
|
# package list can be found at
|
||||||
|
#
|
||||||
|
# https://github.com/yihui/tinytex/blob/master/tools/pkgs-custom.txt
|
||||||
|
#
|
||||||
|
# these two combined add up to:
|
||||||
|
manim-tinytex = {
|
||||||
|
inherit (texlive)
|
||||||
|
|
||||||
|
# tinytex
|
||||||
|
scheme-infraonly amsfonts amsmath atbegshi atveryend auxhook babel bibtex
|
||||||
|
bigintcalc bitset booktabs cm dehyph dvipdfmx dvips ec epstopdf-pkg etex
|
||||||
|
etexcmds etoolbox euenc everyshi fancyvrb filehook firstaid float fontspec
|
||||||
|
framed geometry gettitlestring glyphlist graphics graphics-cfg graphics-def
|
||||||
|
grffile helvetic hycolor hyperref hyph-utf8 iftex inconsolata infwarerr
|
||||||
|
intcalc knuth-lib kvdefinekeys kvoptions kvsetkeys l3backend l3kernel
|
||||||
|
l3packages latex latex-amsmath-dev latex-bin latex-fonts latex-tools-dev
|
||||||
|
latexconfig latexmk letltxmacro lm lm-math ltxcmds lua-alt-getopt luahbtex
|
||||||
|
lualatex-math lualibs luaotfload luatex mdwtools metafont mfware natbib
|
||||||
|
pdfescape pdftex pdftexcmds plain psnfss refcount rerunfilecheck stringenc
|
||||||
|
tex tex-ini-files times tipa tools unicode-data unicode-math uniquecounter
|
||||||
|
url xcolor xetex xetexconfig xkeyval xunicode zapfding
|
||||||
|
|
||||||
|
# manim-latex
|
||||||
|
standalone everysel preview doublestroke ms setspace rsfs relsize ragged2e
|
||||||
|
fundus-calligra microtype wasysym physics dvisvgm jknapltx wasy cm-super
|
||||||
|
babel-english gnu-freefont mathastext cbfonts-fd;
|
||||||
|
};
|
||||||
|
in python3.pkgs.buildPythonApplication rec {
|
||||||
|
pname = "manim";
|
||||||
|
format = "pyproject";
|
||||||
|
version = "0.15.2";
|
||||||
|
disabled = python3.pythonOlder "3.8";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "ManimCommunity";
|
||||||
|
repo = pname;
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "l5JiFWCMQbGnwRRtYzCHBXdVzWBrTNPdcIYaAt/wRNA=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
python3.pkgs.poetry-core
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace pyproject.toml \
|
||||||
|
--replace 'cloup = "^0.13.0"' 'cloup = "*"' \
|
||||||
|
--replace 'mapbox-earcut = "^0.12.10"' 'mapbox-earcut = "*"' \
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildInputs = [ cairo ];
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3.pkgs; [
|
||||||
|
click
|
||||||
|
click-default-group
|
||||||
|
cloup
|
||||||
|
colour
|
||||||
|
grpcio
|
||||||
|
grpcio-tools
|
||||||
|
importlib-metadata
|
||||||
|
isosurfaces
|
||||||
|
jupyterlab
|
||||||
|
manimpango
|
||||||
|
mapbox-earcut
|
||||||
|
moderngl
|
||||||
|
moderngl-window
|
||||||
|
networkx
|
||||||
|
numpy
|
||||||
|
pillow
|
||||||
|
pycairo
|
||||||
|
pydub
|
||||||
|
pygments
|
||||||
|
pysrt
|
||||||
|
rich
|
||||||
|
scipy
|
||||||
|
screeninfo
|
||||||
|
skia-pathops
|
||||||
|
srt
|
||||||
|
tqdm
|
||||||
|
watchdog
|
||||||
|
];
|
||||||
|
|
||||||
|
makeWrapperArgs = [
|
||||||
|
"--prefix" "PATH" ":" (lib.makeBinPath [
|
||||||
|
ffmpeg
|
||||||
|
(texlive.combine manim-tinytex)
|
||||||
|
])
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
python3.pkgs.pytest-cov
|
||||||
|
python3.pkgs.pytest-xdist
|
||||||
|
python3.pkgs.pytestCheckHook
|
||||||
|
|
||||||
|
ffmpeg
|
||||||
|
(texlive.combine manim-tinytex)
|
||||||
|
];
|
||||||
|
|
||||||
|
# about 55 of ~600 tests failing mostly due to demand for display
|
||||||
|
disabledTests = import ./failing_tests.nix;
|
||||||
|
|
||||||
|
pythonImportsCheck = [ "manim" ];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Animation engine for explanatory math videos - Community version";
|
||||||
|
longDescription = ''
|
||||||
|
Manim is an animation engine for explanatory math videos. It's used to
|
||||||
|
create precise animations programmatically, as seen in the videos of
|
||||||
|
3Blue1Brown on YouTube. This is the community maintained version of
|
||||||
|
manim.
|
||||||
|
'';
|
||||||
|
homepage = "https://github.com/ManimCommunity/manim";
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ friedelino ];
|
||||||
|
};
|
||||||
|
}
|
74
pkgs/applications/video/manim/failing_tests.nix
Normal file
74
pkgs/applications/video/manim/failing_tests.nix
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
# reason for failure: tests try to open display
|
||||||
|
[
|
||||||
|
"test_background_color"
|
||||||
|
"test_scene_add_remove"
|
||||||
|
"test_Circle"
|
||||||
|
"test_wait_skip"
|
||||||
|
"test_basic_scene_with_default_values"
|
||||||
|
"test_dry_run_with_png_format"
|
||||||
|
"test_dry_run_with_png_format_skipped_animations"
|
||||||
|
"test_FixedMobjects3D"
|
||||||
|
"test_basic_scene_l_flag"
|
||||||
|
"test_n_flag"
|
||||||
|
"test_s_flag_opengl_renderer"
|
||||||
|
"test_s_flag_no_animations"
|
||||||
|
"test_image_output_for_static_scene"
|
||||||
|
"test_no_image_output_with_interactive_embed"
|
||||||
|
"test_no_default_image_output_with_non_static_scene"
|
||||||
|
"test_image_output_for_static_scene_with_write_to_movie"
|
||||||
|
"test_s_flag"
|
||||||
|
"test_r_flag"
|
||||||
|
"test_play_skip"
|
||||||
|
"test_write_to_movie_disables_window"
|
||||||
|
"test_a_flag"
|
||||||
|
"test_pixel_coords_to_space_coords"
|
||||||
|
"test_t_values"
|
||||||
|
"test_custom_folders"
|
||||||
|
"test_t_values[15]"
|
||||||
|
"test_t_values[30]"
|
||||||
|
"test_t_values[60]"
|
||||||
|
"test_dash_as_filename"
|
||||||
|
"test_images_are_created_when_png_format_set_for_opengl"
|
||||||
|
"test_t_values_with_skip_animations"
|
||||||
|
"test_static_wait_detection"
|
||||||
|
"test_non_static_wait_detection"
|
||||||
|
"test_frozen_frame"
|
||||||
|
"test_gif_format_output"
|
||||||
|
"test_animate_with_changed_custom_attribute"
|
||||||
|
"test_images_are_zero_padded_when_zero_pad_set_for_opengl"
|
||||||
|
"test_mp4_format_output"
|
||||||
|
"test_videos_not_created_when_png_format_set"
|
||||||
|
"test_images_are_created_when_png_format_set"
|
||||||
|
"test_images_are_zero_padded_when_zero_pad_set"
|
||||||
|
"test_webm_format_output"
|
||||||
|
"test_default_format_output_for_transparent_flag"
|
||||||
|
"test_mov_can_be_set_as_output_format"
|
||||||
|
"test_force_window_opengl_render_with_format"
|
||||||
|
"test_get_frame_with_preview_disabled"
|
||||||
|
"test_get_frame_with_preview_enabled"
|
||||||
|
] ++
|
||||||
|
|
||||||
|
# reason for failure: tests try to reach network
|
||||||
|
[
|
||||||
|
"test_logging_to_file"
|
||||||
|
"test_plugin_function_like"
|
||||||
|
"test_plugin_no_all"
|
||||||
|
"test_plugin_with_all"
|
||||||
|
] ++
|
||||||
|
|
||||||
|
# failing with:
|
||||||
|
# E AssertionError:
|
||||||
|
# E Not equal to tolerance rtol=1e-07, atol=1.01
|
||||||
|
# E Frame no -1. You can use --show_diff to visually show the difference.
|
||||||
|
# E Mismatched elements: 18525 / 1639680 (1.13%)
|
||||||
|
# E Max absolute difference: 255
|
||||||
|
# E Max relative difference: 255.
|
||||||
|
[
|
||||||
|
"test_Text2Color"
|
||||||
|
] ++
|
||||||
|
|
||||||
|
# failing with:
|
||||||
|
# TypeError: __init__() got an unexpected keyword argument 'msg' - maybe you meant pytest.mark.skipif?
|
||||||
|
[
|
||||||
|
"test_force_window_opengl_render_with_movies"
|
||||||
|
]
|
@ -26739,6 +26739,8 @@ with pkgs;
|
|||||||
|
|
||||||
m32edit = callPackage ../applications/audio/midas/m32edit.nix {};
|
m32edit = callPackage ../applications/audio/midas/m32edit.nix {};
|
||||||
|
|
||||||
|
manim = callPackage ../applications/video/manim { };
|
||||||
|
|
||||||
manuskript = libsForQt5.callPackage ../applications/editors/manuskript { };
|
manuskript = libsForQt5.callPackage ../applications/editors/manuskript { };
|
||||||
|
|
||||||
manul = callPackage ../development/tools/manul { };
|
manul = callPackage ../development/tools/manul { };
|
||||||
|
Loading…
Reference in New Issue
Block a user