Metadata-Version: 2.4
Name: svgsequencevideo
Version: 0.1.0
Summary: Generate drawing reveal videos from SVG files.
Author-email: FAB V <fab5code@gmail.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/fab5code/SVGSequenceVideo.git
Project-URL: Issues, https://github.com/fab5code/SVGSequenceVideo/issues
Keywords: svg,sequence,animation,video,drawing,vector
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Multimedia :: Video
Classifier: Topic :: Multimedia :: Graphics :: Graphics Conversion
Requires-Python: >=3.13
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: typer
Provides-Extra: dev
Requires-Dist: pillow; extra == "dev"
Requires-Dist: packaging; extra == "dev"
Requires-Dist: coverage; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: sphinx; extra == "dev"
Requires-Dist: sphinx_rtd_theme; extra == "dev"
Requires-Dist: sphinx-autodoc-typehints; extra == "dev"
Requires-Dist: sphinxcontrib-typer; extra == "dev"
Dynamic: license-file

svgsequencevideo
================

**svgsequencevideo** is a Python library and CLI for generating drawing reveal videos from SVG files: every shape appears
one after another, in the order it is drawn in the SVG, as if the artwork were being drawn live.

.. image:: docs/_static/revealExample.gif
   :alt: A drawing being progressively revealed
   :width: 480

See documentation with tutorials and examples: `https://svgsequencevideo.readthedocs.io <https://svgsequencevideo.readthedocs.io>`_.

Quick overview
--------------

.. code-block:: console

  (venv) $ pip install svgsequencevideo

Generating a video is split into two independent steps: a slow ``render`` of
the SVG into PNG frames, done once, and a fast ``video`` build from those
frames, run as many times as needed while tuning the reveal timing.

.. code-block:: console

  (venv) $ svgsequencevideo render drawing.svg --width 1920
  (venv) $ svgsequencevideo video --revealduration 15 --heuristic complex

Limitation
----------

When used in the heuristic to compute the reveal time of each element,
the computation of the area of an element does not take into account clipping.

Development
-----------

Install the dependencies
^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: console

  (venv) $ pip install -e ".[dev]"


Create wheel
^^^^^^^^^^^^

.. code-block:: console

  (venv) $ python -m build

Generate full coverage report
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

.. code-block:: console

  (venv) $ coverage run
  (venv) $ coverage html

Then open *htmlcov/index.html*

Documentation
^^^^^^^^^^^^^

Generate doc

.. code-block:: console

  (venv) $ make html

Then open *docsBuild/index.html*

Coding style
^^^^^^^^^^^^

Some visual studio code settings of visualStudioCodeSettings.json should be used to ensure some homogeneity in the coding style.

In Visual Studio Code, install extensions

- isort to sort Python automatically
- Pylance for type checking
