Source code for app.components.providers.provider

# SPDX-License-Identifier: GPLv3-or-later
# Copyright © 2025 pygaindalf Rui Pinheiro

from abc import ABCMeta
from typing import override

from ...util.helpers import classproperty
from ..component import Component, ComponentConfig


# MARK: Provider Base Configuration
[docs] class ProviderConfig(ComponentConfig, metaclass=ABCMeta):
[docs] @classproperty @override def package_root(cls) -> str: return "app.components.providers"
# MARK: Provider Base class
[docs] class Provider[C: ProviderConfig](Component[C], metaclass=ABCMeta):
[docs] @classproperty def default_key(cls) -> str: msg = "Subclasses must implement the 'default_key' class property." raise NotImplementedError(msg)