diff --git a/pyproject.toml b/pyproject.toml index 190c9cfa3944d7e079ff307e626757d2249acc6f..b355a51447ec2bccc8463756a05e1b1482789d9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "spleeter" -version = "2.1.2" +version = "2.2.0" description = "The Deezer source separation library with pretrained models based on tensorflow." authors = ["Deezer Research "] license = "MIT License" diff --git a/spleeter/__main__.py b/spleeter/__main__.py index 1f36d2ea7fd4eaccb5252ffad5e22dc91cad6fa1..da77b0036743810f037ee03c6ae60e0d4b4fa871 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,13 @@ 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 caf6781ba36bd08a3271c378e1e89794296d738a..ee6eb33b77c6fa40022efb09e2a7bdfad966f85e 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, Exit, Option, echo from typer.models import ArgumentInfo, OptionInfo from .audio import Codec, STFTBackend @@ -126,3 +126,20 @@ 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", +)