Skip to content

pixano.inference.registry

Provider registration and lookup.

This module provides a registry for inference providers, allowing them to be registered and retrieved by name.

get_provider(name, **kwargs)

Get a provider instance by name.

Parameters:

Name Type Description Default
name str

The name of the provider to retrieve.

required
**kwargs Any

Arguments to pass to the provider constructor.

{}

Returns:

Type Description
InferenceProvider

An instance of the requested provider.

Raises:

Type Description
ProviderNotFoundError

If the provider is not registered.

Example
provider = get_provider("pixano-inference", url="http://localhost:8000")
Source code in pixano/inference/registry.py
def get_provider(name: str, **kwargs: Any) -> InferenceProvider:
    """Get a provider instance by name.

    Args:
        name: The name of the provider to retrieve.
        **kwargs: Arguments to pass to the provider constructor.

    Returns:
        An instance of the requested provider.

    Raises:
        ProviderNotFoundError: If the provider is not registered.

    Example:
        ```python
        provider = get_provider("pixano-inference", url="http://localhost:8000")
        ```
    """
    if name not in _PROVIDERS:
        available = list_providers()
        raise ProviderNotFoundError(f"Unknown provider: '{name}'. Available providers: {available}")
    return _PROVIDERS[name](**kwargs)

is_provider_registered(name)

Check if a provider is registered.

Parameters:

Name Type Description Default
name str

The provider name to check.

required

Returns:

Type Description
bool

True if the provider is registered, False otherwise.

Source code in pixano/inference/registry.py
def is_provider_registered(name: str) -> bool:
    """Check if a provider is registered.

    Args:
        name: The provider name to check.

    Returns:
        True if the provider is registered, False otherwise.
    """
    return name in _PROVIDERS

list_providers()

List all registered provider names.

Returns:

Type Description
list[str]

List of registered provider names.

Source code in pixano/inference/registry.py
def list_providers() -> list[str]:
    """List all registered provider names.

    Returns:
        List of registered provider names.
    """
    return list(_PROVIDERS.keys())

register_provider(name)

Decorator to register a provider class.

Parameters:

Name Type Description Default
name str

The name to register the provider under.

required

Returns:

Type Description

A decorator that registers the class.

Example
@register_provider("my-provider")
class MyProvider(InferenceProvider):
    ...
Source code in pixano/inference/registry.py
def register_provider(name: str):
    """Decorator to register a provider class.

    Args:
        name: The name to register the provider under.

    Returns:
        A decorator that registers the class.

    Example:
        ```python
        @register_provider("my-provider")
        class MyProvider(InferenceProvider):
            ...
        ```
    """

    def decorator(cls: type[InferenceProvider]) -> type[InferenceProvider]:
        if not issubclass(cls, InferenceProvider):
            raise TypeError(f"Provider class must be a subclass of InferenceProvider, got {cls}")
        _PROVIDERS[name] = cls
        return cls

    return decorator