1212
1313import bpy
1414from bpy_extras .io_utils import ImportHelper
15+ from linkforge_core .logging_config import get_logger
1516
16- from ...linkforge_core .logging_config import get_logger
1717from ..utils .decorators import OperatorReturn , safe_execute
1818from ..utils .scene_utils import clear_stats_cache
1919
@@ -69,7 +69,7 @@ def execute(self, context: Context) -> OperatorReturn:
6969 Returns:
7070 Set containing the execution state (e.g., {'FINISHED'} or {'CANCELLED'}).
7171 """
72- from ... linkforge_core .parsers import URDFParser
72+ from linkforge_core .parsers import URDFParser
7373
7474 # Parse URDF/XACRO file
7575 urdf_path = Path (self .filepath )
@@ -112,7 +112,7 @@ def execute(self, context: Context) -> OperatorReturn:
112112 is_xacro = urdf_path .suffix == ".xacro" or urdf_path .name .endswith (".urdf.xacro" )
113113
114114 # Detect Sandbox Root for security (allows sibling folders like meshes/)
115- from ... linkforge_core .validation .security import find_sandbox_root
115+ from linkforge_core .validation .security import find_sandbox_root
116116
117117 sandbox_root = find_sandbox_root (urdf_path )
118118 logger .info (f"Importing robot from: { urdf_path } " )
@@ -121,8 +121,8 @@ def execute(self, context: Context) -> OperatorReturn:
121121 # Smart Import Logic:
122122 # 1. If it looks like URDF, try parsing as URDF.
123123 # 2. If parsing fails because of Xacro tags, catch the error and switch to Xacro mode.
124- from ... linkforge_core import RobotParserError , XacroDetectedError
125- from ... linkforge_core .base import FileSystemResolver
124+ from linkforge_core import RobotParserError , XacroDetectedError
125+ from linkforge_core .base import FileSystemResolver
126126
127127 # Read additional package paths from preferences
128128 from ..preferences import get_addon_prefs
@@ -160,7 +160,7 @@ def execute(self, context: Context) -> OperatorReturn:
160160 # XACRO PROCESSING (Triggered by extension OR fallback detection)
161161 if is_xacro :
162162 # Convert XACRO to URDF using native XacroResolver
163- from ... linkforge_core .parsers import XacroResolver
163+ from linkforge_core .parsers import XacroResolver
164164
165165 self .report ({"INFO" }, f"Processing XACRO file: { urdf_path .name } " )
166166
@@ -195,7 +195,7 @@ def execute(self, context: Context) -> OperatorReturn:
195195 return {"CANCELLED" }
196196
197197 # Validate robot structure
198- from ... linkforge_core .validation import RobotValidator
198+ from linkforge_core .validation import RobotValidator
199199
200200 validator = RobotValidator ()
201201 result = validator .validate (robot )
0 commit comments