Source code for q2_sdk.hq.models.db_config.db_config

from typing import Generic, Optional, TypeVar

from q2_sdk.models.recursive_encoder import JsonSerializable

T = TypeVar("T")


[docs] class DbConfig(Generic[T], JsonSerializable): """Written to database during ``q2 install`` or ``q2 update_installed``""" def __init__( self, name: str, default: T, description: Optional[str] = None, required: bool = True, ): """ :param name: Key written to the database :param default: Suggested value to write to the database (can be overridden at install time) :param description: Helpful text to guide implementer :param required: If True, will raise errors at runtime when unset. Consider using False when DbConfigs are added to an already deployed extension """ self.name = name self.default = default self.description = description self.required = required
[docs] def is_valid(self, value): """Meant to be overridden. Verifies value is a valid input""" return True
@staticmethod def from_dict(optional_configs: dict): optional = [DbConfig(x, y, required=False) for x, y in optional_configs.items()] return optional