Source code for scitex_stats.auto._styles

#!/usr/bin/env python3
# Timestamp: "2026-01-24 (ywatanabe)"
# File: scitex_stats/auto/_styles.py

"""Journal Style Presets - Publication-ready statistical formatting.

This module defines formatting styles for major journal families:
- APA (American Psychological Association)
- Nature (Nature family journals)
- Cell (Cell Press journals)
- Elsevier (Generic biomedical)

Each style specifies:
- How to format statistics (italic, symbols)
- How to format p-values (thresholds, precision)
- How to format effect sizes
- How to format sample sizes

Supports both LaTeX and HTML output targets.
"""

from typing import Dict, List, Optional

from ._stat_style import OutputTarget, StatStyle
from ._style_definitions import (
    APA_HTML_STYLE,
    APA_LATEX_STYLE,
    CELL_HTML_STYLE,
    CELL_LATEX_STYLE,
    ELSEVIER_HTML_STYLE,
    ELSEVIER_LATEX_STYLE,
    NATURE_HTML_STYLE,
    NATURE_LATEX_STYLE,
    PLAIN_STYLE,
)

# =============================================================================
# Style Registry
# =============================================================================

STAT_STYLES: Dict[str, StatStyle] = {
    "apa_latex": APA_LATEX_STYLE,
    "apa_html": APA_HTML_STYLE,
    "nature_latex": NATURE_LATEX_STYLE,
    "nature_html": NATURE_HTML_STYLE,
    "cell_latex": CELL_LATEX_STYLE,
    "cell_html": CELL_HTML_STYLE,
    "elsevier_latex": ELSEVIER_LATEX_STYLE,
    "elsevier_html": ELSEVIER_HTML_STYLE,
    "plain": PLAIN_STYLE,
}


[docs] def get_stat_style(style_id: str) -> StatStyle: """Look up a statistical reporting style by its ID. Parameters ---------- style_id : str Style identifier (e.g., "apa_latex", "nature_html"). Returns ------- StatStyle The requested style, or APA LaTeX as fallback. Examples -------- >>> style = get_stat_style("apa_latex") >>> style.label 'APA (LaTeX)' >>> style = get_stat_style("unknown") # Falls back to APA >>> style.id 'apa_latex' """ return STAT_STYLES.get(style_id, APA_LATEX_STYLE)
def list_styles(target: Optional[OutputTarget] = None) -> List[str]: """List available style IDs. Parameters ---------- target : OutputTarget or None If provided, only list styles for this output format. Returns ------- list of str Style IDs. """ if target is None: return list(STAT_STYLES.keys()) return [sid for sid, style in STAT_STYLES.items() if style.target == target] # ============================================================================= # Public API # ============================================================================= __all__ = [ # Core types "StatStyle", "OutputTarget", # Registry and helpers "STAT_STYLES", "get_stat_style", "list_styles", # Individual styles "APA_LATEX_STYLE", "APA_HTML_STYLE", "NATURE_LATEX_STYLE", "NATURE_HTML_STYLE", "CELL_LATEX_STYLE", "CELL_HTML_STYLE", "ELSEVIER_LATEX_STYLE", "ELSEVIER_HTML_STYLE", "PLAIN_STYLE", ] # EOF