Source code for splinepy.cli

import argparse
import contextlib
from importlib import import_module

import splinepy
from splinepy._version import __version__


[docs] def convert(args): """Commandline interface functionality keyword convert. Convert splines from one format to another. See the io module for more information on what formats are supported for import and export. Args: args (namespace): Args namespace from argparse containing the options for convert. """ fname = args.input_file from splinepy import io loaded = io.load(fname) if not isinstance(loaded, list): loaded = [loaded] if args.output_file: io.export(args.output_file, loaded)
[docs] def show(args): """Commandline interface functionality keyword show. Can load and show the file that is given in the args. Some options on what is shown can also be set. Args: args (namespace): Args namespace from argparse containing the options for show. """ fname = args.input_file from splinepy import io loaded = io.load(fname) interactive = args.interactive or not args.output_file close = not bool(args.output_file) if interactive and not close: print( "Interactive mode is on and output file is set. " "Output file will be ignored. Instead, use S (Shift+S) in the " "interactive window to save a screenshot " "(saved as screenshot.png.)" ) if not isinstance(loaded, list): loaded = [loaded] for loaded_object in loaded: loaded_object.show_options["knots"] = args.no_knot_vectors loaded_object.show_options["control_points"] = args.no_control_points loaded_object.show_options["control_point_ids"] = args.no_cp_ids loaded_object.show_options["control_mesh"] = args.no_control_mesh if args.resolution: loaded_object.show_options["resolutions"] = int(args.resolution) show_vedo = splinepy.show(loaded, interactive=interactive, close=close) if args.output_file: show_vedo.screenshot(args.output_file)
[docs] def entry(): """Entry point for splinepy commandline interface. Currently only supports version and show commands. Try out `splinpy -h` for more information. """ print() print( " %%\\ %%\\ " ) print( " %% |\\__| " ) print( " %%%%%%%\\ %%%%%%\\ %% |%%\\ %%%%%%%\\ %%%%%%\\ %%%%%%\\ %%\\ " " %%\\ " ) print( "%% _____|%% __%%\\ %% |%% |%% __%%\\ %% __%%\\ %% __%%\\ %% | %% |" ) print( "\\%%%%%%\\ %% / %% |%% |%% |%% | %% |%%%%%%%% |%% / %% |%% | %% |" ) print( " \\____%%\\ %% | %% |%% |%% |%% | %% |%% ____|%% | %% |%% | %% |" ) print( "%%%%%%% |%%%%%%% |%% |%% |%% | %% |\\%%%%%%%\\ %%%%%%% |\\%%%%%%% |" ) print( "\\_______/ %% ____/ \\__|\\__|\\__| \\__| \\_______|%% ____/ \\____%% |" ) print( " %% | %% | %%\\ %% |" ) print( " %% | %% | \\%%%%%% |" ) print( " \\__| \\__| \\______/" ) print() parser = argparse.ArgumentParser() subparsers = parser.add_subparsers(help="sub-command help", dest="command") parser.add_argument( "-v", "--version", action="store_true", help="Show version of splinepy.", ) parser_plot = subparsers.add_parser("show", help="Show the given spline.") parser_plot.add_argument( "-i", "--input-file", type=str, help="Input file name.", required=True ) parser_plot.add_argument( "-o", "--output-file", type=str, help="Export graphic to file.", required=False, ) parser_plot.add_argument( "-e", "--interactive", action="store_true", help="Show graphic in interactive window even if save to file is on.", ) parser_plot.add_argument( "-c", "--no-control_points", action="store_false", help="Do not show control points.", ) parser_plot.add_argument( "-k", "--no-knot-vectors", action="store_false", help="Do not show knot vectors.", ) parser_plot.add_argument( "-n", "--no-cp-ids", action="store_false", help="Do not show control point ids.", ) parser_plot.add_argument( "-m", "--no-control-mesh", action="store_false", help="Do not show control mesh.", ) parser_plot.add_argument( "-r", "--resolution", action="store", help="Resolution if the spline. Number of interpolated points.", ) parser_convert = subparsers.add_parser( "convert", help="Convert the given spline." ) parser_convert.add_argument( "-i", "--input-file", type=str, help="Input file name.", required=True ) parser_convert.add_argument( "-o", "--output-file", type=str, help="Export graphic to file.", required=True, ) args = parser.parse_args() if args.version: dependent_versions = [ "numpy", # "funi", # has currently no __version__ attribute "gustaf", "vedo", "scipy", "napf", "meshio", "k3d", ] print(f"splinepy version: {__version__}") for lib in dependent_versions: version = "Not Installed" with contextlib.suppress(ImportError): module = import_module(lib) version = module.__version__ print(f"{lib} version: {version}") return if args.command == "show": if args.input_file is None: parser_plot.print_help() return show(args) elif args.command == "convert": if args.input_file is None or args.output_file is None: parser_convert.print_help() return convert(args) else: parser.print_help()
if __name__ == "__main__": entry()