diff --git a/pr_agent/algo/ai_handlers/litellm_ai_handler.py b/pr_agent/algo/ai_handlers/litellm_ai_handler.py index 8ebc5704a..c53c1ec3d 100644 --- a/pr_agent/algo/ai_handlers/litellm_ai_handler.py +++ b/pr_agent/algo/ai_handlers/litellm_ai_handler.py @@ -7,9 +7,9 @@ from tenacity import retry, retry_if_exception_type, stop_after_attempt from pr_agent.algo.ai_handlers.base_ai_handler import BaseAiHandler +from pr_agent.algo.utils import get_version from pr_agent.config_loader import get_settings from pr_agent.log import get_logger -from pr_agent.version import get_version OPENAI_RETRIES = 5 diff --git a/pr_agent/algo/utils.py b/pr_agent/algo/utils.py index c8a793350..e6e7a9621 100644 --- a/pr_agent/algo/utils.py +++ b/pr_agent/algo/utils.py @@ -7,11 +7,13 @@ import json import os import re +import sys import textwrap import time import traceback from datetime import datetime from enum import Enum +from importlib.metadata import PackageNotFoundError, version from typing import Any, List, Tuple import html2text @@ -1106,3 +1108,24 @@ def process_description(description_full: str) -> Tuple[str, List]: get_logger().exception(f"Failed to process description: {e}") return base_description_str, files + +def get_version() -> str: + # First check pyproject.toml if running directly out of repository + if os.path.exists("pyproject.toml"): + if sys.version_info >= (3, 11): + import tomllib + with open("pyproject.toml", "rb") as f: + data = tomllib.load(f) + if "project" in data and "version" in data["project"]: + return data["project"]["version"] + else: + get_logger().warning("Version not found in pyproject.toml") + else: + get_logger().warning("Unable to determine local version from pyproject.toml") + + # Otherwise get the installed pip package version + try: + return version('pr-agent') + except PackageNotFoundError: + get_logger().warning("Unable to find package named 'pr-agent'") + return "unknown" diff --git a/pr_agent/cli.py b/pr_agent/cli.py index 3c0661cad..32be260ef 100644 --- a/pr_agent/cli.py +++ b/pr_agent/cli.py @@ -3,9 +3,9 @@ import os from pr_agent.agent.pr_agent import PRAgent, commands +from pr_agent.algo.utils import get_version from pr_agent.config_loader import get_settings from pr_agent.log import get_logger, setup_logger -from pr_agent.version import get_version log_level = os.environ.get("LOG_LEVEL", "INFO") setup_logger(log_level) diff --git a/pr_agent/version.py b/pr_agent/version.py deleted file mode 100644 index 1df1621a2..000000000 --- a/pr_agent/version.py +++ /dev/null @@ -1,23 +0,0 @@ -import os -import sys -from importlib.metadata import version, PackageNotFoundError - -from pr_agent.log import get_logger - -def get_version() -> str: - # First check pyproject.toml if running directly out of repository - if os.path.exists("pyproject.toml"): - if sys.version_info >= (3, 11): - import tomllib - with open("pyproject.toml", "rb") as f: - data = tomllib.load(f) - return data["project"]["version"] - else: - get_logger().warn("Unable to determine local version from pyproject.toml") - - # Otherwise get the installed pip package version - try: - return version('pr-agent') - except PackageNotFoundError: - get_logger().error("Unable to find package named 'pr-agent'") - return "unknown" diff --git a/pyproject.toml b/pyproject.toml index 9da073583..c841d27f2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "pr-agent" -version = "0.2.6" +version = "0.2.5" authors = [{ name = "CodiumAI", email = "tal.r@codium.ai" }]