CAM: Fix: Remove invalid normalization of shape name
This commit is contained in:
@@ -151,13 +151,11 @@ class TestPathToolShapeClasses(PathTestWithAssets):
|
||||
def test_base_resolve_name(self):
|
||||
"""Test resolving shape aliases to canonical names."""
|
||||
self.assertEqual(ToolBitShape.resolve_name("ballend").asset_id, "ballend")
|
||||
self.assertEqual(ToolBitShape.resolve_name("Ballend").asset_id, "ballend")
|
||||
self.assertEqual(ToolBitShape.resolve_name("v-bit").asset_id, "vbit")
|
||||
self.assertEqual(ToolBitShape.resolve_name("VBit").asset_id, "vbit")
|
||||
self.assertEqual(ToolBitShape.resolve_name("torus").asset_id, "bullnose")
|
||||
self.assertEqual(ToolBitShape.resolve_name("bullnose").asset_id, "bullnose")
|
||||
self.assertEqual(ToolBitShape.resolve_name("slitting-saw").asset_id, "slittingsaw")
|
||||
self.assertEqual(ToolBitShape.resolve_name("SlittingSaw").asset_id, "slittingsaw")
|
||||
self.assertEqual(ToolBitShape.resolve_name("v-bit").asset_id, "v-bit")
|
||||
self.assertEqual(ToolBitShape.resolve_name("vbit").asset_id, "vbit")
|
||||
self.assertEqual(ToolBitShape.resolve_name("torus").asset_id, "torus")
|
||||
self.assertEqual(ToolBitShape.resolve_name("torus.fcstd").asset_id, "torus")
|
||||
self.assertEqual(ToolBitShape.resolve_name("SlittingSaw").asset_id, "SlittingSaw")
|
||||
# Test unknown name - should return the input name
|
||||
self.assertEqual(ToolBitShape.resolve_name("nonexistent").asset_id, "nonexistent")
|
||||
self.assertEqual(ToolBitShape.resolve_name("UnknownShape").asset_id, "UnknownShape")
|
||||
|
||||
@@ -523,7 +523,7 @@ class ToolBitShape(Asset):
|
||||
@classmethod
|
||||
def resolve_name(cls, identifier: str) -> AssetUri:
|
||||
"""
|
||||
Resolves an identifier (alias, name, filename, or URI) to a Uri object.
|
||||
Resolves an identifier (name, filename, or URI) to a Uri object.
|
||||
"""
|
||||
# 1. If the input is a url string, return the AssetUri for it.
|
||||
if AssetUri.is_uri(identifier):
|
||||
@@ -535,13 +535,7 @@ class ToolBitShape(Asset):
|
||||
if pathlib.Path(identifier).suffix.lower() == ".fcstd":
|
||||
asset_name = os.path.splitext(os.path.basename(identifier))[0]
|
||||
|
||||
# 3. Use get_subclass_by_name to try to resolve alias to a class.
|
||||
# if one is found, use the class.name.
|
||||
shape_class = cls.get_subclass_by_name(asset_name.lower())
|
||||
if shape_class:
|
||||
asset_name = shape_class.name.lower()
|
||||
|
||||
# 4. Construct the Uri using AssetUri.build() and return it
|
||||
# 3. Construct the Uri using AssetUri.build() and return it
|
||||
return AssetUri.build(
|
||||
asset_type="toolbitshape",
|
||||
asset_id=asset_name,
|
||||
|
||||
@@ -28,6 +28,13 @@ from ...shape import ToolBitShape
|
||||
from ..models.base import ToolBit
|
||||
|
||||
|
||||
if False:
|
||||
Path.Log.setLevel(Path.Log.Level.DEBUG, Path.Log.thisModule())
|
||||
Path.Log.trackModule(Path.Log.thisModule())
|
||||
else:
|
||||
Path.Log.setLevel(Path.Log.Level.INFO, Path.Log.thisModule())
|
||||
|
||||
|
||||
class FCTBSerializer(AssetSerializer):
|
||||
for_class = ToolBit
|
||||
mime_type = "application/x-freecad-toolbit"
|
||||
@@ -70,6 +77,7 @@ class FCTBSerializer(AssetSerializer):
|
||||
if dependencies is None:
|
||||
# Shallow load: dependencies are not resolved.
|
||||
# Delegate to from_dict with shallow=True.
|
||||
Path.Log.debug(f"FCTBSerializer.deserialize: shallow. id = {id!r}, attrs = {attrs!r}")
|
||||
return ToolBit.from_dict(attrs, shallow=True)
|
||||
|
||||
# Full load: dependencies are resolved.
|
||||
@@ -93,6 +101,9 @@ class FCTBSerializer(AssetSerializer):
|
||||
)
|
||||
|
||||
# Find the correct ToolBit subclass for the shape
|
||||
Path.Log.debug(
|
||||
f"FCTBSerializer.deserialize: shape = {shape!r}, id = {id!r}, params = {shape.get_parameters()}"
|
||||
)
|
||||
return ToolBit.from_shape(shape, attrs, id)
|
||||
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user