diff --git a/spleeter/__main__.py b/spleeter/__main__.py index 1f36d2e..8b5a53c 100644 --- a/spleeter/__main__.py +++ b/spleeter/__main__.py @@ -11,7 +11,6 @@ command function scope to avoid heavy import on CLI evaluation, leading to large bootstraping time. """ - import json from functools import partial from glob import glob @@ -34,6 +33,12 @@ spleeter: Typer = Typer(add_completion=False) """ CLI application. """ +@spleeter.callback() +def default( + version: bool = VersionOption, +) -> None: + pass + @spleeter.command() def train( adapter: str = AudioAdapterOption, diff --git a/spleeter/options.py b/spleeter/options.py index caf6781..a452869 100644 --- a/spleeter/options.py +++ b/spleeter/options.py @@ -6,7 +6,7 @@ from os.path import join from tempfile import gettempdir -from typer import Argument, Option +from typer import Argument, Option, echo, Exit from typer.models import ArgumentInfo, OptionInfo from .audio import Codec, STFTBackend @@ -126,3 +126,12 @@ TrainingDataDirectoryOption: OptionInfo = Option( ) VerboseOption: OptionInfo = Option(False, "--verbose", help="Enable verbose logs") + + +def version_callback(value: bool): + if value: + from importlib.metadata import version + echo(f"Spleeter Version: {version('spleeter')}") + raise Exit() + +VersionOption: OptionInfo = Option(None, "--version", callback=version_callback, is_eager=True, help="Return Spleeter version") \ No newline at end of file