From 62763cc6d9b18f608c99a79c895cba14968dd0b2 Mon Sep 17 00:00:00 2001 From: Muhammad Gibran Alfarizi Date: Mon, 13 Jul 2026 14:06:21 +0200 Subject: [PATCH 1/2] MAINT: Better SMDA wellbore name for Drogon wells --- src/fmu_settings_api/services/smda.py | 12 ++++++++++-- tests/test_services/test_smda_service.py | 12 ++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/fmu_settings_api/services/smda.py b/src/fmu_settings_api/services/smda.py index 14f89d5..82d39bb 100644 --- a/src/fmu_settings_api/services/smda.py +++ b/src/fmu_settings_api/services/smda.py @@ -1,6 +1,7 @@ """Service for querying and translating results from SMDA.""" import asyncio +import re from collections.abc import Sequence from typing import Any, Final from uuid import NAMESPACE_URL, uuid5 @@ -36,6 +37,13 @@ logger = get_logger(__name__) + +def _smda_wellbore_name(rms_well_name: str) -> str: + """Convert an RMS well name to an SMDA-style wellbore name.""" + name = re.sub(r"(?<=\d)_(?=\d)", "/", rms_well_name, count=1) + return f"NO {name.replace('_', ' ')}" + + DROGON_SMDA_MASTERDATA: Final[dict[str, Any]] = DROGON_MASTERDATA["smda"] DROGON_FIELD: Final[dict[str, Any]] = DROGON_SMDA_MASTERDATA["field"][0] DROGON_STRAT_COLUMN: Final[dict[str, Any]] = DROGON_SMDA_MASTERDATA[ @@ -74,8 +82,8 @@ ] DROGON_WELL_HEADERS: Final[list[SmdaWellHeader]] = [ SmdaWellHeader( - unique_well_identifier=f"NO {well['name']}", - unique_wellbore_identifier=f"NO {well['name']}", + unique_well_identifier=_smda_wellbore_name(str(well["name"])), + unique_wellbore_identifier=_smda_wellbore_name(str(well["name"])), official_wellbore_name=str(well["name"]), country_identifier=DROGON_SMDA_MASTERDATA["country"][0]["identifier"], parent_wellbore=None, diff --git a/tests/test_services/test_smda_service.py b/tests/test_services/test_smda_service.py index 4e1777e..95953f2 100644 --- a/tests/test_services/test_smda_service.py +++ b/tests/test_services/test_smda_service.py @@ -168,11 +168,15 @@ async def test_get_drogon_well_headers_uses_drogon_data() -> None: assert [header.official_wellbore_name for header in res.well_headers] == [ well["name"] for well in DROGON_RMS_WELLS ] - assert [header.unique_well_identifier for header in res.well_headers] == [ - f"NO {well['name']}" for well in DROGON_RMS_WELLS - ] + identifiers_by_name = { + header.official_wellbore_name: header.unique_well_identifier + for header in res.well_headers + } + assert identifiers_by_name["55_33-A-1"] == "NO 55/33-A-1" + assert identifiers_by_name["OP5_Y1"] == "NO OP5 Y1" + assert identifiers_by_name["RFT_55_33-A-2"] == "NO RFT 55/33-A-2" assert [header.unique_wellbore_identifier for header in res.well_headers] == [ - f"NO {well['name']}" for well in DROGON_RMS_WELLS + header.unique_well_identifier for header in res.well_headers ] assert res.well_headers[0].country_identifier == "Norway" assert res.well_headers[0].projected_coordinate_system == "ST_WGS84_UTM37N_P32637" From 20151555b0a7e383ebc989015e87cffbd4a18389 Mon Sep 17 00:00:00 2001 From: Muhammad Gibran Alfarizi Date: Mon, 13 Jul 2026 14:50:47 +0200 Subject: [PATCH 2/2] MAINT: Rename helper to _drogon_wellbore_identifier and update docstring --- src/fmu_settings_api/services/smda.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fmu_settings_api/services/smda.py b/src/fmu_settings_api/services/smda.py index 82d39bb..a00961c 100644 --- a/src/fmu_settings_api/services/smda.py +++ b/src/fmu_settings_api/services/smda.py @@ -38,8 +38,8 @@ logger = get_logger(__name__) -def _smda_wellbore_name(rms_well_name: str) -> str: - """Convert an RMS well name to an SMDA-style wellbore name.""" +def _drogon_wellbore_identifier(rms_well_name: str) -> str: + """Convert a Drogon RMS well name to an SMDA-style wellbore identifier.""" name = re.sub(r"(?<=\d)_(?=\d)", "/", rms_well_name, count=1) return f"NO {name.replace('_', ' ')}" @@ -82,8 +82,8 @@ def _smda_wellbore_name(rms_well_name: str) -> str: ] DROGON_WELL_HEADERS: Final[list[SmdaWellHeader]] = [ SmdaWellHeader( - unique_well_identifier=_smda_wellbore_name(str(well["name"])), - unique_wellbore_identifier=_smda_wellbore_name(str(well["name"])), + unique_well_identifier=_drogon_wellbore_identifier(str(well["name"])), + unique_wellbore_identifier=_drogon_wellbore_identifier(str(well["name"])), official_wellbore_name=str(well["name"]), country_identifier=DROGON_SMDA_MASTERDATA["country"][0]["identifier"], parent_wellbore=None,