Skip to content

Commit 84867bf

Browse files
authored
feat: --version option (#91)
1 parent 283f4ae commit 84867bf

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

justfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# VARIABLE DEFINITIONS
22
venv := ".venv"
33
python_version :="3.13"
4-
run := "poetry run"
4+
run := "uv run"
55
eval_path := "eval/cli.py"
66

77
venv-exists := path_exists(venv)
@@ -40,6 +40,7 @@ test-all: venv
4040

4141
# Format all code in the project.
4242
format: venv
43+
{{ run }} ruff format {{ target_dirs }}
4344
{{ run }} ruff check {{ target_dirs }} --fix
4445

4546
# Lint all code in the project.

src/lightman_ai/cli.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
from importlib import metadata
23

34
import click
45
from dotenv import load_dotenv
@@ -12,7 +13,13 @@
1213
logger = logging.getLogger("lightman")
1314

1415

16+
def get_version() -> str:
17+
"""Read version from VERSION file."""
18+
return metadata.version("lightman-ai")
19+
20+
1521
@click.group()
22+
@click.version_option(version=get_version(), prog_name="lightman-ai")
1623
def entry_point() -> None:
1724
pass
1825

tests/test_cli.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,3 +201,10 @@ def test_service_desk_variables_missing_from_toml(self, m_load_dotenv: Mock) ->
201201
model=None,
202202
)
203203
assert m_config.call_count == 2
204+
205+
@patch("lightman_ai.cli.metadata.version")
206+
def test_get_version_calls_metadata(self, mock_version: Mock) -> None:
207+
mock_version.return_value = "1.2.3"
208+
209+
assert cli.get_version() == "1.2.3"
210+
mock_version.assert_called_once_with("lightman-ai")

0 commit comments

Comments
 (0)