python typer show cli version
$ cat main.py
from __future__ import annotations
import re
from pathlib import Path
import typer
__version__ = "0.1.2"
cli = typer.Typer()
@cli.command(name="bump")
def bump_version() -> None:
"""Bump up version of this script"""
typer.secho(f"Origin version: {__version__}", fg=typer.colors.BLUE)
version_parts = [int(i) for i in __version__.split(".")]
version_parts[-1] += 1
new_version = ".".join(map(str, version_parts))
me = Path(__file__)
text = me.read_text("utf-8")
pattern = re.compile(
rf'(?P<prefix>__version__\s*=\s*[\'"]){__version__}(?P<suffix>[\'"])'
)
new = pattern.sub(rf"\g<prefix>{new_version}\g<suffix>", text)
me.write_text(new)
typer.secho(
f"Updated {me.name} with new version: {new_version}", fg=typer.colors.MAGENTA
)
def version_callback(value: bool) -> None:
if value:
typer.echo("My Awesome Cli Version: " + typer.style(__version__, bold=True))
raise typer.Exit()
@cli.callback()
def main(
version: bool = typer.Option(
None,
"--version",
"-V",
callback=version_callback,
is_eager=True,
help="Show the version of this script",
),
) -> None:
pass
if __name__ == "__main__":
cli()


浙公网安备 33010602011771号