File size: 1,808 Bytes
65b5532
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
"""SafeSpace Content Moderation environment server components."""

from __future__ import annotations

from typing import Any

__all__ = [
    "SafeSpaceEnvironment",
    "ContentModerationEnvironment",
    "FACTOR_LIST",
    "PLATFORM_POLICY",
    "POLICY_SECTIONS",
    "grade_decision",
    "grade_factors",
    "compute_reward",
    "load_scenario",
    "get_all_scenarios",
]


def __getattr__(name: str) -> Any:
    """Lazily expose server helpers without importing the full runtime eagerly."""
    if name in {"SafeSpaceEnvironment", "ContentModerationEnvironment"}:
        from .environment import ContentModerationEnvironment, SafeSpaceEnvironment

        return {
            "SafeSpaceEnvironment": SafeSpaceEnvironment,
            "ContentModerationEnvironment": ContentModerationEnvironment,
        }[name]

    if name in {"FACTOR_LIST", "PLATFORM_POLICY", "POLICY_SECTIONS"}:
        from .policy import FACTOR_LIST, PLATFORM_POLICY, POLICY_SECTIONS

        return {
            "FACTOR_LIST": FACTOR_LIST,
            "PLATFORM_POLICY": PLATFORM_POLICY,
            "POLICY_SECTIONS": POLICY_SECTIONS,
        }[name]

    if name in {"grade_decision", "grade_factors"}:
        from .grader import grade_decision, grade_factors

        return {
            "grade_decision": grade_decision,
            "grade_factors": grade_factors,
        }[name]

    if name == "compute_reward":
        from .reward import compute_reward

        return compute_reward

    if name in {"load_scenario", "get_all_scenarios"}:
        from .scenarios import get_all_scenarios, load_scenario

        return {
            "load_scenario": load_scenario,
            "get_all_scenarios": get_all_scenarios,
        }[name]

    raise AttributeError(f"module {__name__!r} has no attribute {name!r}")