
# 注册自定义Transformer（作为开发者）
#### 实现 IValueTransformer
```
from typing import Any, Mapping
from r2c_sdk.core.interfaces import IValueTransformer
class MyScaleTransformer(IValueTransformer):
    """将输入值乘以配置中的缩放因子。"""
    def transform(self, value: Any, config: Any = None, context: Any = None) -> Any:
        if isinstance(config, Mapping):
            factor = float(config.get("factor", 1.0))
        elif isinstance(config, (int, float)):
            factor = float(config)
        else:
            factor = 1.0
        return float(value) * factor
    @staticmethod
    def validate_config(config: Any) -> None:
        if config is not None and not isinstance(config, (int, float, dict)):
            raise ValueError("config must be a number or {factor: N}")
```
#### 声明entry_point
```
[project.entry-points."r2c_sdk.transformers"]
my_scale = "my_package.transforms:MyScaleTransformer"
```
#### 在YAML中使用
```
transforms:
  - name: my_scale
    config:
      factor: 0.001
```
#### 注意事项
- **注册的是类**，不是实例，TransformerRegistry会在首次查找时实例化。
- **内置优先**：如果注册的name与内置同名，内置保留，第三方被忽略并日志warning。
- 可通过TransformerRegistry.available_transformers()查看当前可用的transformer。
 
