At least on Debian bullseye as at today, the ImageMagick headers
include <cassert> with an ImageMagick namespace current. <cassert>
and the headers it then pulls in also do not set the namespace.
Those headers then declare functions such as __assert_fail, which
end up in the ImageMagick namespace. This causes failures in other
parts of the build, such as the ZeroMQ code. This seems to be a
bug in either the ImageMagick headers or the <cassert> header, but
can be easily worked around by including <cassert> before any
ImageMagick header. This change does so.
- Equivalents of operator* and operator/ templates are provided
by implemening `__mul__`, `__rmul__`, __truediv__`, `__rtruediv__`
in Python code for `openshot.Fraction` class
- An implementation of `__format__` is also provided, allowing
numeric format strings to be used directly on Fraction objects,
e.g. `v = Fraction(3, 9); print(f"{v:0.3f}") # prints '0.333'`