From 869aa37f0c11ca54cf577f24a3f10bb750643707 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Tue, 16 Jun 2026 14:45:55 +0545 Subject: [PATCH] update --- devgen/modules/diff_builder.py | 4 ++-- devgen/modules/git_ops.py | 4 ++-- devgen/providers/huggingface.py | 4 +++- devgen/utils.py | 9 +++++++++ 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/devgen/modules/diff_builder.py b/devgen/modules/diff_builder.py index e72856a..dd627b9 100644 --- a/devgen/modules/diff_builder.py +++ b/devgen/modules/diff_builder.py @@ -14,7 +14,7 @@ from collections import defaultdict from pathlib import Path from typing import Dict, List, Optional -from devgen.utils import run_git_command +from devgen.utils import get_git_root, run_git_command # Lock files and other metadata blobs whose full diff would just bloat the @@ -54,7 +54,7 @@ class DiffBuilder: logger=None, ) -> None: self.max_size = max_size - self.cwd = cwd + self.cwd = cwd or get_git_root() self.logger = logger def build(self, files: List[str]) -> str: diff --git a/devgen/modules/git_ops.py b/devgen/modules/git_ops.py index 306a0a9..c0e9c52 100644 --- a/devgen/modules/git_ops.py +++ b/devgen/modules/git_ops.py @@ -10,7 +10,7 @@ import subprocess from pathlib import Path from typing import Optional -from devgen.utils import configure_logger, run_git_command +from devgen.utils import configure_logger, get_git_root, run_git_command class GitError(RuntimeError): @@ -26,7 +26,7 @@ class GitOperator: logger=None, quiet_commands: bool = True, ) -> None: - self.cwd = cwd + self.cwd = cwd or get_git_root() self.logger = logger or configure_logger("devgen.git") self.quiet_commands = quiet_commands diff --git a/devgen/providers/huggingface.py b/devgen/providers/huggingface.py index 417f9f5..779763f 100644 --- a/devgen/providers/huggingface.py +++ b/devgen/providers/huggingface.py @@ -20,7 +20,9 @@ class HuggingfaceProvider(BaseProvider): } try: - response = requests.post(api_url, headers=headers, json=payload, timeout=120) + response = requests.post( + api_url, headers=headers, json=payload, timeout=120 + ) response.raise_for_status() result = response.json() except requests.HTTPError as e: diff --git a/devgen/utils.py b/devgen/utils.py index 706f188..c482a97 100644 --- a/devgen/utils.py +++ b/devgen/utils.py @@ -142,6 +142,15 @@ def configure_logger( return logger +def get_git_root(cwd: Optional[Path] = None) -> Optional[Path]: + """Return the root directory of the current git repository, or None.""" + try: + output = run_git_command(["git", "rev-parse", "--show-toplevel"], cwd=cwd) + return Path(output) if output else None + except (subprocess.CalledProcessError, FileNotFoundError): + return None + + def run_git_command( args: list[str], check: bool = True,