Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/memu/server/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"""CLI entrypoints for memu packaging compatibility."""

41 changes: 41 additions & 0 deletions src/memu/server/cli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
from __future__ import annotations

import argparse
import sys
from collections.abc import Sequence
from importlib.metadata import PackageNotFoundError, version


def _package_version() -> str:
try:
return version("memu-py")
except PackageNotFoundError:
return "unknown"


def _build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
prog="memu-server",
description="Compatibility CLI for the memu Python package.",
)
parser.add_argument("--version", action="store_true", help="Show memu package version and exit.")
return parser


def main(argv: Sequence[str] | None = None) -> int:
parser = _build_parser()
args = parser.parse_args(list(argv) if argv is not None else None)

if args.version:
print(f"memu {_package_version()}")
return 0

print("`memu-server` in this package is a compatibility stub.")
print("The full backend server lives in the separate repository:")
print("https://github.com/NevaMind-AI/memU-server")
print("Use the `memu` Python API in this package for local memory workflows.")
return 0


if __name__ == "__main__":
raise SystemExit(main(sys.argv[1:]))
19 changes: 19 additions & 0 deletions tests/test_server_cli.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
from __future__ import annotations

from memu.server.cli import main


def test_server_cli_stub_message(capsys) -> None:
exit_code = main([])
out = capsys.readouterr().out
assert exit_code == 0
assert "compatibility stub" in out
assert "memU-server" in out


def test_server_cli_version(capsys) -> None:
exit_code = main(["--version"])
out = capsys.readouterr().out.strip()
assert exit_code == 0
assert out.startswith("memu ")