Skip to content

Commit 1452535

Browse files
committed
feat: utilize public API of odoo-addons-path
Forge ID: F#T67239
1 parent ea1e465 commit 1452535

1 file changed

Lines changed: 11 additions & 18 deletions

File tree

odoo_venv/cli/main.py

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
import re
21
from dataclasses import asdict
32
from importlib.metadata import version
43
from pathlib import Path
54
from typing import Annotated
65

76
import typer
8-
from odoo_addons_path import get_addons_path
9-
from odoo_addons_path.main import _detect_codebase_layout
7+
from odoo_addons_path import (
8+
detect_codebase_layout,
9+
get_addons_path,
10+
get_odoo_version_from_release,
11+
)
1012

1113
from odoo_venv.exceptions import PresetNotFoundError
1214
from odoo_venv.launcher import create_launcher
@@ -51,18 +53,6 @@ def preset_callback(ctx: typer.Context, param: typer.CallbackParam, value: str):
5153
return value
5254

5355

54-
def _get_odoo_version_from_release(odoo_dir: Path) -> str | None:
55-
"""Read the Odoo version (e.g. '18.0') from ``odoo/release.py``."""
56-
release_py = odoo_dir / "odoo" / "release.py"
57-
if not release_py.is_file():
58-
return None
59-
content = release_py.read_text()
60-
match = re.search(r"version_info\s*=\s*\((\d+),\s*(\d+)", content)
61-
if match:
62-
return f"{match.group(1)}.{match.group(2)}"
63-
return None
64-
65-
6656
def project_dir_callback(ctx: typer.Context, param: typer.CallbackParam, value: str | None):
6757
if not value:
6858
return None
@@ -200,8 +190,11 @@ def create( # noqa: C901
200190
detected_addons_path = None
201191
if project_dir_value:
202192
project_dir_path = Path(project_dir_value).expanduser().resolve()
203-
detected_paths = _detect_codebase_layout(project_dir_path)
204-
detected_addons_path = get_addons_path(project_dir_path)
193+
detected_paths = detect_codebase_layout(project_dir_path)
194+
detected_addons_path = get_addons_path(
195+
project_dir_path,
196+
detected_paths=detected_paths,
197+
)
205198

206199
# Resolve odoo_dir (before odoo_version, which may be inferred from it)
207200
if odoo_dir:
@@ -219,7 +212,7 @@ def create( # noqa: C901
219212

220213
# Infer odoo_version from release.py if not provided
221214
if not odoo_version:
222-
odoo_version = _get_odoo_version_from_release(odoo_dir_path)
215+
odoo_version = get_odoo_version_from_release(odoo_dir_path)
223216
if not odoo_version:
224217
typer.secho(
225218
"error: Could not detect Odoo version from source. Provide ODOO_VERSION explicitly.",

0 commit comments

Comments
 (0)