mirror of
https://github.com/OpenVGLab/OmniLottie.git
synced 2026-09-17 07:36:27 +00:00
Initial Commit
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import inspect
|
||||
from ..exporters import exporters
|
||||
from .stripper import float_strip
|
||||
|
||||
|
||||
def _get_caller():
|
||||
return inspect.getmodule(inspect.currentframe().f_back.f_back)
|
||||
|
||||
|
||||
def _get_parser(caller, basename, path, formats, verbosity):
|
||||
if basename is None:
|
||||
basename = os.path.splitext(os.path.basename(caller.__file__))[0]
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
conflict_handler='resolve'
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--name",
|
||||
"-n",
|
||||
default=basename,
|
||||
help="Output basename",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--path",
|
||||
default=path,
|
||||
help="Output path",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--formats", "-f",
|
||||
nargs="+",
|
||||
choices=list(sum((e.extensions for e in exporters), [])),
|
||||
default=formats,
|
||||
help="Formates to render",
|
||||
metavar="format"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--verbosity",
|
||||
type=int,
|
||||
default=int(verbosity)
|
||||
)
|
||||
from .. import __version__
|
||||
parser.add_argument(
|
||||
"--version", "-v",
|
||||
action="version",
|
||||
version="%(prog)s - python-lottie script " + __version__
|
||||
)
|
||||
exporters.set_options(parser)
|
||||
|
||||
return parser
|
||||
|
||||
|
||||
def get_parser(basename=None, path="/tmp", formats=["html"], verbosity=1):
|
||||
caller = _get_caller()
|
||||
return _get_parser(caller, basename, path, formats, verbosity)
|
||||
|
||||
|
||||
def run(animation, ns):
|
||||
for fmt in ns.formats:
|
||||
if ns.path == "" and ns.name == "-":
|
||||
outfile = sys.stdout
|
||||
else:
|
||||
absname = os.path.abspath(os.path.join(ns.path, ns.name + "." + fmt))
|
||||
if ns.verbosity:
|
||||
sys.stderr.write("file://%s\n" % absname)
|
||||
outfile = absname
|
||||
exporter = exporters.get_from_extension(fmt)
|
||||
exporter.process(animation, outfile, **exporter.argparse_options(ns))
|
||||
|
||||
|
||||
def script_main(animation, basename=None, path="/tmp", formats=["html"], verbosity=1, strip=float_strip):
|
||||
"""
|
||||
Sets up a script to output an animation into various formats
|
||||
"""
|
||||
caller = _get_caller()
|
||||
if caller and caller.__name__ == "__main__":
|
||||
parser = _get_parser(caller, basename, path, formats, verbosity)
|
||||
strip(animation)
|
||||
run(animation, parser.parse_args())
|
||||
Reference in New Issue
Block a user