Skip to content

profiles

profiles

Daemon operational profiles.

Profiles are partial DaemonConfig overrides shipped as YAML files. They configure how the conductor operates — concurrency, logging, profiling intensity, resource limits — without touching score configs.

Built-in profiles

dev — Debug logging, strace enabled, low concurrency intensive — Long timeouts, high resource limits minimal — Profiler and learning disabled, low concurrency

Functions

list_profiles

list_profiles()

Return sorted list of built-in profile names.

Source code in src/marianne/daemon/profiles/__init__.py
def list_profiles() -> list[str]:
    """Return sorted list of built-in profile names."""
    return sorted(BUILTIN_PROFILES)

get_profile

get_profile(name)

Load a built-in profile by name.

Parameters:

Name Type Description Default
name str

Profile name (e.g. "dev", "intensive", "minimal").

required

Returns:

Type Description
dict[str, Any]

Parsed YAML dict suitable for deep-merging into DaemonConfig data.

Raises:

Type Description
FileNotFoundError

If the profile does not exist.

Source code in src/marianne/daemon/profiles/__init__.py
def get_profile(name: str) -> dict[str, Any]:
    """Load a built-in profile by name.

    Args:
        name: Profile name (e.g. "dev", "intensive", "minimal").

    Returns:
        Parsed YAML dict suitable for deep-merging into DaemonConfig data.

    Raises:
        FileNotFoundError: If the profile does not exist.
    """
    path = _PROFILES_DIR / f"{name}.yaml"
    if not path.exists():
        available = ", ".join(list_profiles())
        raise FileNotFoundError(
            f"Unknown daemon profile '{name}'. "
            f"Available profiles: {available}"
        )
    with open(path) as f:
        data = yaml.safe_load(f) or {}
    return data

deep_merge

deep_merge(base, override)

Recursively merge override into base, returning a new dict.

  • Dict values are merged recursively.
  • All other values in override replace those in base.
  • Keys in base not present in override are preserved.
Source code in src/marianne/daemon/profiles/__init__.py
def deep_merge(base: dict[str, Any], override: dict[str, Any]) -> dict[str, Any]:
    """Recursively merge *override* into *base*, returning a new dict.

    - Dict values are merged recursively.
    - All other values in *override* replace those in *base*.
    - Keys in *base* not present in *override* are preserved.
    """
    result = dict(base)
    for key, value in override.items():
        if (
            key in result
            and isinstance(result[key], dict)
            and isinstance(value, dict)
        ):
            result[key] = deep_merge(result[key], value)
        else:
            result[key] = value
    return result