Loading PyAETNA/sampling/config/parser/__init__.py +15 −0 Changes for PyAETNA/sampling/config/parser/__init__.py: 15 added lines, 0 removed lines. Original line number Diff line number Diff line """ parser/__init__.py \u2014 Top-level configuration parsing for PyAETNA. This package exposes :func:`parse_config`, the single entry point for converting a raw YAML configuration dictionary into the structured parameter dictionaries used by the sampling engine. Individual subsections are delegated to the sibling modules: * :mod:`.detrending` \u2014 normalisation, polynomial, Fourier, EIV * :mod:`.gp` \u2014 Gaussian Process detrending * :mod:`.planets` \u2014 transit, RV, and TTV parameters * :mod:`.star` \u2014 stellar properties and RM effect * :mod:`.scoping` \u2014 scope keyword parsing and parameter expansion * :mod:`.prior_refs` \u2014 ``@name`` reference resolution """ import warnings import jax.numpy as jnp Loading PyAETNA/sampling/config/parser/detrending.py +11 −2 Changes for PyAETNA/sampling/config/parser/detrending.py: 11 added lines, 2 removed lines. Original line number Diff line number Diff line """ detrending.py — Detrending configuration parsers for PyAETNA. This module provides functions to parse detrending-related subsections of the YAML configuration: baseline normalisation, polynomial and Fourier series corrections, and Errors-in-Variables (EIV) linear detrending. """ import numpy as np from ...utils import _safe_eval_math from .prior_refs import is_resolved_prior_reference, resolve_config_value Loading Loading @@ -205,6 +212,7 @@ def parse_fourier(detrending, plModel, n_instruments, visit_ids, instrument_ids, n_instruments, f'{fourier_name}.c{harmonic}' ) coeff_scopes_dict[harmonic] = coeff_scope hybrid_all = frozenset() # accumulate across sin and cos coefficients for sc in ['s', 'c']: base_name = f'{fourier_name}_c{harmonic}_{sc}' hybrid = _expand_detrend_coeff( Loading @@ -214,8 +222,9 @@ def parse_fourier(detrending, plModel, n_instruments, visit_ids, instrument_ids, plModel.instrument_names, global_name_override=tied_name ) if hybrid: coeff_hybrid_insts_dict[harmonic] = hybrid hybrid_all = hybrid_all | hybrid if hybrid_all: coeff_hybrid_insts_dict[harmonic] = hybrid_all fourier_config = { 'name': fourier_name, Loading PyAETNA/sampling/config/parser/gp.py +7 −0 Changes for PyAETNA/sampling/config/parser/gp.py: 7 added lines, 0 removed lines. Original line number Diff line number Diff line """ gp.py — Gaussian Process detrending configuration parser for PyAETNA. This module provides :func:`parse_gp`, which reads the ``detrending.GP`` subsection of the YAML configuration and builds per-instrument kernel specifications consumed by the sampling engine. """ from ...utils import _get_default_param_order from .prior_refs import is_resolved_prior_reference, resolve_config_value from .scoping import _SCOPE_KEYWORDS, _parse_scoped_param Loading PyAETNA/sampling/config/parser/planets.py +8 −0 Changes for PyAETNA/sampling/config/parser/planets.py: 8 added lines, 0 removed lines. Original line number Diff line number Diff line """ planets.py — Planet parameter configuration parser for PyAETNA. This module provides :func:`parse_planets`, which reads all ``planet_*`` sections of the YAML configuration and registers transit, RV, and TTV parameters in ``free_params`` / ``fixed_params``. It also performs TTV coverage analysis and emits warnings when transit epochs lack data coverage. """ import math as _math import numpy as np import warnings Loading PyAETNA/sampling/config/parser/prior_refs.py +11 −0 Changes for PyAETNA/sampling/config/parser/prior_refs.py: 11 added lines, 0 removed lines. Original line number Diff line number Diff line """ prior_refs.py — Named prior reference resolution for PyAETNA configuration. This module handles the ``@name`` reference syntax that allows the same prior specification to be shared across multiple configuration fields. The public entry points are :func:`load_named_priors` (reads the top-level ``priors:`` block) and :func:`resolve_config_value` (substitutes ``@name`` tokens in any configuration value). """ import re from .. import priors _PRIOR_REF_RE = re.compile(r'^@([A-Za-z_][A-Za-z0-9_]*)$') # NOTE: _SCOPE_KEYWORDS is intentionally duplicated from scoping.py to avoid # a circular import (scoping.py already imports from this module). _SCOPE_KEYWORDS = frozenset(('global', 'per_instrument', 'per_visit')) Loading Loading
PyAETNA/sampling/config/parser/__init__.py +15 −0 Changes for PyAETNA/sampling/config/parser/__init__.py: 15 added lines, 0 removed lines. Original line number Diff line number Diff line """ parser/__init__.py \u2014 Top-level configuration parsing for PyAETNA. This package exposes :func:`parse_config`, the single entry point for converting a raw YAML configuration dictionary into the structured parameter dictionaries used by the sampling engine. Individual subsections are delegated to the sibling modules: * :mod:`.detrending` \u2014 normalisation, polynomial, Fourier, EIV * :mod:`.gp` \u2014 Gaussian Process detrending * :mod:`.planets` \u2014 transit, RV, and TTV parameters * :mod:`.star` \u2014 stellar properties and RM effect * :mod:`.scoping` \u2014 scope keyword parsing and parameter expansion * :mod:`.prior_refs` \u2014 ``@name`` reference resolution """ import warnings import jax.numpy as jnp Loading
PyAETNA/sampling/config/parser/detrending.py +11 −2 Changes for PyAETNA/sampling/config/parser/detrending.py: 11 added lines, 2 removed lines. Original line number Diff line number Diff line """ detrending.py — Detrending configuration parsers for PyAETNA. This module provides functions to parse detrending-related subsections of the YAML configuration: baseline normalisation, polynomial and Fourier series corrections, and Errors-in-Variables (EIV) linear detrending. """ import numpy as np from ...utils import _safe_eval_math from .prior_refs import is_resolved_prior_reference, resolve_config_value Loading Loading @@ -205,6 +212,7 @@ def parse_fourier(detrending, plModel, n_instruments, visit_ids, instrument_ids, n_instruments, f'{fourier_name}.c{harmonic}' ) coeff_scopes_dict[harmonic] = coeff_scope hybrid_all = frozenset() # accumulate across sin and cos coefficients for sc in ['s', 'c']: base_name = f'{fourier_name}_c{harmonic}_{sc}' hybrid = _expand_detrend_coeff( Loading @@ -214,8 +222,9 @@ def parse_fourier(detrending, plModel, n_instruments, visit_ids, instrument_ids, plModel.instrument_names, global_name_override=tied_name ) if hybrid: coeff_hybrid_insts_dict[harmonic] = hybrid hybrid_all = hybrid_all | hybrid if hybrid_all: coeff_hybrid_insts_dict[harmonic] = hybrid_all fourier_config = { 'name': fourier_name, Loading
PyAETNA/sampling/config/parser/gp.py +7 −0 Changes for PyAETNA/sampling/config/parser/gp.py: 7 added lines, 0 removed lines. Original line number Diff line number Diff line """ gp.py — Gaussian Process detrending configuration parser for PyAETNA. This module provides :func:`parse_gp`, which reads the ``detrending.GP`` subsection of the YAML configuration and builds per-instrument kernel specifications consumed by the sampling engine. """ from ...utils import _get_default_param_order from .prior_refs import is_resolved_prior_reference, resolve_config_value from .scoping import _SCOPE_KEYWORDS, _parse_scoped_param Loading
PyAETNA/sampling/config/parser/planets.py +8 −0 Changes for PyAETNA/sampling/config/parser/planets.py: 8 added lines, 0 removed lines. Original line number Diff line number Diff line """ planets.py — Planet parameter configuration parser for PyAETNA. This module provides :func:`parse_planets`, which reads all ``planet_*`` sections of the YAML configuration and registers transit, RV, and TTV parameters in ``free_params`` / ``fixed_params``. It also performs TTV coverage analysis and emits warnings when transit epochs lack data coverage. """ import math as _math import numpy as np import warnings Loading
PyAETNA/sampling/config/parser/prior_refs.py +11 −0 Changes for PyAETNA/sampling/config/parser/prior_refs.py: 11 added lines, 0 removed lines. Original line number Diff line number Diff line """ prior_refs.py — Named prior reference resolution for PyAETNA configuration. This module handles the ``@name`` reference syntax that allows the same prior specification to be shared across multiple configuration fields. The public entry points are :func:`load_named_priors` (reads the top-level ``priors:`` block) and :func:`resolve_config_value` (substitutes ``@name`` tokens in any configuration value). """ import re from .. import priors _PRIOR_REF_RE = re.compile(r'^@([A-Za-z_][A-Za-z0-9_]*)$') # NOTE: _SCOPE_KEYWORDS is intentionally duplicated from scoping.py to avoid # a circular import (scoping.py already imports from this module). _SCOPE_KEYWORDS = frozenset(('global', 'per_instrument', 'per_visit')) Loading