INNER CODE UNIT · Python

component_name

smagafurov/fastapi-jsonrpc · fastapi_jsonrpc/__init__.py:144

def component_name(name: str, module: Optional[str] = None) -> Callable[[Type[BaseModel]], Type[BaseModel]]:
    """OpenAPI components must be unique by name.

    For non-core modules, set unique title to prevent pydantic from deduplicating
    models with same name from different modules.
    The module prefix in title is removed later in _restore_json_schema_fine_component_names if no collision.
    """
    def decorator(obj):
        assert issubclass(obj, BaseModel)
        effective_module = module or obj.__module__

        # Determine if we need module prefix in title to prevent deduplication
        # Exclude fastapi_jsonrpc (core library) and __main__ (entry point, unlikely to collide)
        needs_module_prefix = effective_module and effective_module not in ('fastapi_jsonrpc', '__main__')

        opts: dict[str, Any] = {
            '__base__': tuple(obj.mro()[1:]),  # remove self from __base__
            '__module__': effective_module,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…