.gitignore
LICENSE.txt
README.md
pyproject.toml
setup.py
whoops_example.gif
whoops_example2.gif
.github/codecov.yml
.github/workflows/lint.yml
.github/workflows/pytest.yml
.github/workflows/python-publish.yml
.vscode/launch.json
.vscode/settings.json
diagrams/giford_architecture.drawio.svg
diagrams/giford_concepts.drawio.svg
giford/__init__.py
giford/_version.py
giford.egg-info/PKG-INFO
giford.egg-info/SOURCES.txt
giford.egg-info/dependency_links.txt
giford.egg-info/requires.txt
giford.egg-info/top_level.txt
giford/action/__init__.py
giford/action/abstract_action.py
giford/action/abstract_frame_action.py
giford/action/crop.py
giford/action/reshape.py
giford/action/rotate.py
giford/action/scroll.py
giford/action/shake.py
giford/action/swirl.py
giford/action/translate.py
giford/action/zoom.py
giford/frame/__init__.py
giford/frame/frame_batch.py
giford/frame/raw_data.py
giford/image/__init__.py
giford/image/abstract_image.py
giford/image/multi_image.py
giford/image/single_image.py
giford/util/__init__.py
giford/util/io_util.py
giford/util/virtual_path.py
tests/__init__.py
tests/conftest.py
tests/test_crop.py
tests/test_garbage.py
tests/test_multi_image.py
tests/test_reshape.py
tests/test_rotate.py
tests/test_scroll.py
tests/test_shake.py
tests/test_single_image.py
tests/test_swirls.py
tests/test_translate.py
tests/test_virtual_path.py
tests/test_zoom.py
tests/util.py
tests/baseline_data/test_basic_swirl.png
tests/baseline_data/test_multi_image_create_from_batch.gif
tests/baseline_data/test_multi_image_gif_framerate_15.gif
tests/baseline_data/test_multi_image_gif_framerate_5.gif
tests/baseline_data/test_multi_image_gif_framerate_60.gif
tests/baseline_data/test_multi_image_save.gif
tests/baseline_data/test_rotate_False_220.png
tests/baseline_data/test_rotate_False_30.png
tests/baseline_data/test_rotate_True_220.png
tests/baseline_data/test_rotate_True_30.png
tests/baseline_data/test_scroll_wrap_False_reverse_False.gif
tests/baseline_data/test_scroll_wrap_False_reverse_True.gif
tests/baseline_data/test_scroll_wrap_True_reverse_False.gif
tests/baseline_data/test_scroll_wrap_True_reverse_True.gif
tests/baseline_data/test_shake_default.gif
tests/baseline_data/test_translate_basic_h_-100_v_0.png
tests/baseline_data/test_translate_basic_h_0_v_-100.png
tests/baseline_data/test_translate_basic_h_0_v_100.png
tests/baseline_data/test_translate_basic_h_100_v_0.png
tests/baseline_data/test_translate_complex_h_-100_v_-100.png
tests/baseline_data/test_translate_complex_h_-100_v_100.png
tests/baseline_data/test_translate_complex_h_100_v_-100.png
tests/baseline_data/test_translate_complex_h_100_v_100.png
tests/baseline_data/test_translate_movement_basic_matrix_-0.25h_-0.25v.png
tests/baseline_data/test_translate_movement_basic_matrix_-0.25h_0.25v.png
tests/baseline_data/test_translate_movement_basic_matrix_-0.25h_0v.png
tests/baseline_data/test_translate_movement_basic_matrix_0.25h_-0.25v.png
tests/baseline_data/test_translate_movement_basic_matrix_0.25h_0.25v.png
tests/baseline_data/test_translate_movement_basic_matrix_0.25h_0v.png
tests/baseline_data/test_translate_movement_basic_matrix_0h_-0.25v.png
tests/baseline_data/test_translate_movement_basic_matrix_0h_0.25v.png
tests/baseline_data/test_translate_movement_basic_matrix_0h_0v.png
tests/baseline_data/test_variable_swirl_depth_10.png
tests/baseline_data/test_variable_swirl_depth_5.png
tests/baseline_data/test_varying_variable_swirl_default_depth_0.png
tests/baseline_data/test_varying_variable_swirl_default_depth_1.png
tests/baseline_data/test_varying_variable_swirl_default_depth_2.png
tests/baseline_data/test_varying_variable_swirl_default_depth_3.png
tests/baseline_data/test_varying_variable_swirl_default_depth_4.png
tests/baseline_data/test_varying_variable_swirl_default_depth_5.png
tests/baseline_data/test_varying_variable_swirl_default_depth_6.png
tests/baseline_data/test_varying_variable_swirl_default_depth_7.png
tests/baseline_data/test_varying_variable_swirl_default_depth_8.png
tests/baseline_data/test_varying_variable_swirl_default_depth_9.png
tests/baseline_data/test_varying_variable_swirl_increasing_depth_0.png
tests/baseline_data/test_varying_variable_swirl_increasing_depth_10.png
tests/baseline_data/test_varying_variable_swirl_increasing_depth_15.png
tests/baseline_data/test_varying_variable_swirl_increasing_depth_20.png
tests/baseline_data/test_varying_variable_swirl_increasing_depth_5.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_0.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_1.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_10.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_11.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_12.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_2.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_3.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_4.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_5.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_6.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_7.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_8.png
tests/baseline_data/rotate_many/test_rotate_many_False_13_9.png
tests/baseline_data/rotate_many/test_rotate_many_False_4_0.png
tests/baseline_data/rotate_many/test_rotate_many_False_4_1.png
tests/baseline_data/rotate_many/test_rotate_many_False_4_2.png
tests/baseline_data/rotate_many/test_rotate_many_False_4_3.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_0.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_1.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_10.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_11.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_12.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_2.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_3.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_4.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_5.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_6.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_7.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_8.png
tests/baseline_data/rotate_many/test_rotate_many_True_13_9.png
tests/baseline_data/rotate_many/test_rotate_many_True_4_0.png
tests/baseline_data/rotate_many/test_rotate_many_True_4_1.png
tests/baseline_data/rotate_many/test_rotate_many_True_4_2.png
tests/baseline_data/rotate_many/test_rotate_many_True_4_3.png
tests/baseline_data/test_crop/test_crop_150_True_True.png
tests/baseline_data/test_crop/test_crop_50_False_False.png
tests/baseline_data/test_crop/test_crop_50_False_True.png
tests/baseline_data/test_crop/test_crop_50_True_False.png
tests/baseline_data/test_crop/test_crop_50_True_True.png
tests/baseline_data/test_crop/test_crop_zero_px.png
tests/baseline_data/test_reshape/test_reshape_method_None.png
tests/baseline_data/test_reshape/test_reshape_method_RESCALE.png
tests/baseline_data/test_reshape/test_reshape_method_RESIZE.png
tests/baseline_data/test_reshape/test_reshape_resize_100_100.png
tests/baseline_data/test_reshape/test_reshape_resize_100_50.png
tests/baseline_data/test_reshape/test_reshape_resize_25_500.png
tests/baseline_data/test_reshape/test_reshape_resize_500_25.png
tests/baseline_data/test_reshape/test_reshape_resize_50_100.png
tests/baseline_data/test_zoom/test_zoom_basic_0.png
tests/baseline_data/test_zoom/test_zoom_basic_100.png
tests/baseline_data/test_zoom/test_zoom_basic_200.png
tests/baseline_data/test_zoom/test_zoom_basic_50.png
tests/baseline_data/test_zoom/test_zoom_many_0_0.png
tests/baseline_data/test_zoom/test_zoom_many_20_0.png
tests/baseline_data/test_zoom/test_zoom_many_20_1.png
tests/baseline_data/test_zoom/test_zoom_many_20_2.png
tests/baseline_data/test_zoom/test_zoom_many_50_0.png
tests/baseline_data/test_zoom/test_zoom_many_50_1.png
tests/baseline_data/test_zoom/test_zoom_many_50_2.png
tests/baseline_data/test_zoom/test_zoom_many_50_3.png
tests/baseline_data/test_zoom/test_zoom_many_50_4.png
tests/input_data/orange.png
tests/input_data/orange_swirl.gif
tests/input_data/gif_data/swirl_depth_0.png
tests/input_data/gif_data/swirl_depth_1.png
tests/input_data/gif_data/swirl_depth_10.png
tests/input_data/gif_data/swirl_depth_11.png
tests/input_data/gif_data/swirl_depth_12.png
tests/input_data/gif_data/swirl_depth_13.png
tests/input_data/gif_data/swirl_depth_14.png
tests/input_data/gif_data/swirl_depth_15.png
tests/input_data/gif_data/swirl_depth_16.png
tests/input_data/gif_data/swirl_depth_17.png
tests/input_data/gif_data/swirl_depth_18.png
tests/input_data/gif_data/swirl_depth_19.png
tests/input_data/gif_data/swirl_depth_2.png
tests/input_data/gif_data/swirl_depth_20.png
tests/input_data/gif_data/swirl_depth_21.png
tests/input_data/gif_data/swirl_depth_22.png
tests/input_data/gif_data/swirl_depth_23.png
tests/input_data/gif_data/swirl_depth_24.png
tests/input_data/gif_data/swirl_depth_3.png
tests/input_data/gif_data/swirl_depth_4.png
tests/input_data/gif_data/swirl_depth_5.png
tests/input_data/gif_data/swirl_depth_6.png
tests/input_data/gif_data/swirl_depth_7.png
tests/input_data/gif_data/swirl_depth_8.png
tests/input_data/gif_data/swirl_depth_9.png