Don't overwrite pre-registered primitives in _load_primitives
This commit is contained in:
@@ -189,7 +189,10 @@ class StreamInterpreter:
|
|||||||
prim_name = name[5:]
|
prim_name = name[5:]
|
||||||
dash_name = prim_name.replace('_', '-')
|
dash_name = prim_name.replace('_', '-')
|
||||||
# Register ONLY with namespace (geometry:ripple-displace)
|
# Register ONLY with namespace (geometry:ripple-displace)
|
||||||
self.primitives[f"{lib_name}:{dash_name}"] = func
|
# Don't overwrite if already registered (allows pre-registration of overrides)
|
||||||
|
key = f"{lib_name}:{dash_name}"
|
||||||
|
if key not in self.primitives:
|
||||||
|
self.primitives[key] = func
|
||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
if hasattr(module, 'PRIMITIVES'):
|
if hasattr(module, 'PRIMITIVES'):
|
||||||
@@ -197,9 +200,12 @@ class StreamInterpreter:
|
|||||||
if isinstance(prims, dict):
|
if isinstance(prims, dict):
|
||||||
for name, func in prims.items():
|
for name, func in prims.items():
|
||||||
# Register ONLY with namespace
|
# Register ONLY with namespace
|
||||||
|
# Don't overwrite if already registered
|
||||||
dash_name = name.replace('_', '-')
|
dash_name = name.replace('_', '-')
|
||||||
self.primitives[f"{lib_name}:{dash_name}"] = func
|
key = f"{lib_name}:{dash_name}"
|
||||||
count += 1
|
if key not in self.primitives:
|
||||||
|
self.primitives[key] = func
|
||||||
|
count += 1
|
||||||
|
|
||||||
print(f"Loaded primitives: {lib_name} ({count} functions)", file=sys.stderr)
|
print(f"Loaded primitives: {lib_name} ({count} functions)", file=sys.stderr)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user