mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-31 19:45:15 +02:00
chore(automation): trim docstrings to intent only
Cut the docstrings and Field(description=...) text across the entire automations/ tree down to single-line intent statements, matching the multi_agent_chat conciseness style: - Module docstrings: one line stating what the file is. - Class docstrings: deleted when the class name + module docstring already cover intent; kept only where they add a constraint or rationale not visible in the signature. - Pydantic Field descriptions: short noun phrases / clauses, not full sentences. Reasoning that belonged in the design plan moved out of the code. - Enum values: per-value docstrings replaced with terse inline comments where the meaning isn't obvious from the name. Behaviour is unchanged. The same 33 files, same public surface, same imports — verified by re-running the 10-point registry smoke test and the 8-point schema round-trip / constraint suite from commits 9 and 10. LOC: 1180 → 691 (-42%).
This commit is contained in:
parent
7a96c0e29c
commit
f0e00bd3ee
33 changed files with 80 additions and 568 deletions
|
|
@ -1,4 +1,4 @@
|
|||
"""Trigger registry: ``types.py`` (dataclass), ``store.py`` (dict + register fn)."""
|
||||
"""Trigger registry."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
"""Trigger registry: in-memory dict + ``register_trigger`` API."""
|
||||
"""In-memory trigger registry. Populated once at process startup."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
|
@ -8,26 +8,16 @@ _REGISTRY: dict[str, TriggerDefinition] = {}
|
|||
|
||||
|
||||
def register_trigger(trigger: TriggerDefinition) -> None:
|
||||
"""Add a trigger to the in-memory registry.
|
||||
|
||||
Raises ``ValueError`` on duplicate ``type`` — registration runs
|
||||
once per process, so a duplicate is always a bug.
|
||||
"""
|
||||
|
||||
"""Register a trigger. Raises on duplicate type."""
|
||||
if trigger.type in _REGISTRY:
|
||||
raise ValueError(
|
||||
f"Trigger already registered: {trigger.type!r}"
|
||||
)
|
||||
raise ValueError(f"Trigger already registered: {trigger.type!r}")
|
||||
_REGISTRY[trigger.type] = trigger
|
||||
|
||||
|
||||
def get_trigger(trigger_type: str) -> TriggerDefinition | None:
|
||||
"""Look up one trigger by type. Returns ``None`` on miss."""
|
||||
|
||||
return _REGISTRY.get(trigger_type)
|
||||
|
||||
|
||||
def all_triggers() -> dict[str, TriggerDefinition]:
|
||||
"""Snapshot of the registry as a defensive copy."""
|
||||
|
||||
"""Defensive snapshot of the registry."""
|
||||
return dict(_REGISTRY)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
"""``TriggerDefinition`` dataclass — declarative trigger metadata, no handler."""
|
||||
"""``TriggerDefinition`` dataclass. Declarative; firing is the dispatcher's job."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
|
|
@ -8,27 +8,6 @@ from typing import Any
|
|||
|
||||
@dataclass(frozen=True, slots=True)
|
||||
class TriggerDefinition:
|
||||
"""A trigger type the dispatcher knows how to fire.
|
||||
|
||||
Triggers are purely declarative: the dispatcher (a single
|
||||
process-wide component, not a per-type handler) reads the
|
||||
``automation_triggers`` table and decides when each row should
|
||||
fire. The trigger's job here is to declare its input/output
|
||||
contract:
|
||||
|
||||
- ``config_schema``: JSON Schema for the persisted
|
||||
``AutomationTrigger.config`` — used by the form editor and
|
||||
validated on save.
|
||||
- ``payload_schema``: JSON Schema for the payload the dispatcher
|
||||
will deliver to the executor at fire time (e.g., a schedule
|
||||
trigger emits ``fired_at`` / ``scheduled_for`` /
|
||||
``last_fired_at``).
|
||||
|
||||
No ``handler`` field — firing is a dispatcher responsibility,
|
||||
not a per-trigger one. This keeps the dispatcher single and
|
||||
leaves trigger types as pure metadata.
|
||||
"""
|
||||
|
||||
type: str
|
||||
description: str
|
||||
config_schema: dict[str, Any]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue