diff --git a/python/agent_framework_meta/__init__.py b/python/agent_framework_meta/__init__.py new file mode 100644 index 0000000000..d56887cd9e --- /dev/null +++ b/python/agent_framework_meta/__init__.py @@ -0,0 +1,31 @@ +# Copyright (c) Microsoft. All rights reserved. + +from importlib import metadata as _metadata +from pathlib import Path as _Path +from typing import Any, cast + +try: + import tomllib as _toml # type: ignore # Python 3.11+ +except ModuleNotFoundError: # Python 3.10 + import tomli as _toml # type: ignore + + +def _load_pyproject() -> dict[str, Any]: + pyproject = (_Path(__file__).resolve().parents[1] / "pyproject.toml").read_text("utf-8") + return cast(dict[str, Any], _toml.loads(pyproject)) # type: ignore + + +def _version() -> str: + try: + return _metadata.version("agent-framework") + except _metadata.PackageNotFoundError as ex: + data = _load_pyproject() + project = cast(dict[str, Any], data.get("project", {})) + version = project.get("version") + if isinstance(version, str): + return version + raise RuntimeError("pyproject.toml missing project.version") from ex + + +__version__ = _version() +__all__ = ["__version__"] diff --git a/python/pyproject.toml b/python/pyproject.toml index 988c483da9..6aa1490e2b 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -261,6 +261,9 @@ where = ["packages"] include = ["agent_framework**"] namespaces = true +[tool.flit.module] +name = "agent_framework_meta" + [build-system] requires = ["flit-core >= 3.11,<4.0"] build-backend = "flit_core.buildapi"