Skip to content

OdooConfig

Configuration management using Pydantic Settings.

OdooConfig

Bases: BaseSettings

Odoo connection configuration.

retry_config property

retry_config: RetryConfig

Build a :class:RetryConfig from the configuration values.

from_file classmethod

from_file(config_path: Path | None = None, *, instance: str | None = None) -> OdooConfig

Load configuration from file.

PARAMETER DESCRIPTION
config_path

Explicit path to a config file.

TYPE: Path | None DEFAULT: None

instance

Optional instance/profile name.

TYPE: str | None DEFAULT: None

RETURNS DESCRIPTION
OdooConfig

OdooConfig instance.

Source code in src/vodoo/config.py
@classmethod
def from_file(
    cls,
    config_path: Path | None = None,
    *,
    instance: str | None = None,
) -> OdooConfig:
    """Load configuration from file.

    Args:
        config_path: Explicit path to a config file.
        instance: Optional instance/profile name.

    Returns:
        OdooConfig instance.

    """
    selected_file = detect_config_file(instance=instance, config_path=config_path)
    if selected_file is not None:
        return cls(_env_file=str(selected_file))  # type: ignore[call-arg]

    instance_name, instance_explicit = _resolve_instance(instance)
    if instance_explicit:
        if _has_env_credentials():
            return cls(_env_file=None)  # type: ignore[call-arg]

        candidates = ", ".join(str(p) for p in _instance_config_candidates(instance_name))
        raise ConfigurationError(
            f"No config found for instance '{instance_name}'. Looked in: {candidates}."
        )

    return cls()  # type: ignore[call-arg]

get_config

get_config(instance: str | None = None, config_path: Path | None = None) -> OdooConfig

Get the Odoo configuration.

PARAMETER DESCRIPTION
instance

Optional instance/profile name.

TYPE: str | None DEFAULT: None

config_path

Explicit path to a config file.

TYPE: Path | None DEFAULT: None

RETURNS DESCRIPTION
OdooConfig

OdooConfig instance.

Source code in src/vodoo/config.py
def get_config(
    instance: str | None = None,
    config_path: Path | None = None,
) -> OdooConfig:
    """Get the Odoo configuration.

    Args:
        instance: Optional instance/profile name.
        config_path: Explicit path to a config file.

    Returns:
        OdooConfig instance.

    """
    try:
        return OdooConfig.from_file(config_path=config_path, instance=instance)
    except ValidationError as exc:
        raise ConfigurationError(f"Invalid configuration: {exc}") from exc