Source code for eko.scale_variations

"""Define possible scale variations schemes.

A Mathematica snippet to check the formulas is available in the extras
folder.
"""

import enum
from typing import Any, Dict

from ..io.types import ScaleVariationsMethod


[docs] class Modes(enum.IntEnum): """Enumerate scale variation modes.""" unvaried = enum.auto() exponentiated = enum.auto() expanded = enum.auto()
[docs] def sv_mode(s: ScaleVariationsMethod) -> Modes: """Return the scale variation mode. Parameters ---------- s : string representation Returns ------- i : int representation """ if s is not None: return Modes[s.value] return Modes.unvaried
[docs] class ScaleVariationModeMixin: """Mixin to cast scale variation mode.""" config: Dict[str, Any] @property def sv_mode(self) -> Modes: """Return the scale variation mode.""" return sv_mode(self.config["ModSV"])