patterns_broadcast
patterns_broadcast
¶
Pattern discovery broadcasting mixin for GlobalLearningStore.
Provides real-time pattern broadcasting for cross-job learning: - record_pattern_discovery: Broadcast a new pattern to other jobs - check_recent_pattern_discoveries: Poll for patterns from other jobs - cleanup_expired_pattern_discoveries: Maintenance cleanup - get_active_pattern_discoveries: Get all unexpired discoveries
v14 Evolution: Real-time Pattern Broadcasting
Classes¶
PatternBroadcastMixin
¶
Bases: _BroadcastBase
Mixin providing pattern discovery broadcasting methods.
This mixin requires that the composed class provides: - _get_connection(): Context manager yielding sqlite3.Connection - _row_to_discovery_event(): For row conversion (from PatternQueryMixin)
Functions¶
record_pattern_discovery
¶
record_pattern_discovery(pattern_id, pattern_name, pattern_type, job_id, effectiveness_score=1.0, context_tags=None, ttl_seconds=300.0)
Record a pattern discovery for cross-job broadcasting.
When a job discovers a new pattern, it broadcasts the discovery so other concurrent jobs can benefit immediately.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern_id
|
str
|
ID of the discovered pattern. |
required |
pattern_name
|
str
|
Human-readable name of the pattern. |
required |
pattern_type
|
str
|
Type of pattern (validation_failure, etc.). |
required |
job_id
|
str
|
ID of the job that discovered the pattern. |
required |
effectiveness_score
|
float
|
Initial effectiveness score (0.0-1.0). |
1.0
|
context_tags
|
list[str] | None
|
Optional context tags for pattern matching. |
None
|
ttl_seconds
|
float
|
Time-to-live in seconds (default 5 minutes). |
300.0
|
Returns:
| Type | Description |
|---|---|
str
|
The discovery event record ID. |
Source code in src/marianne/learning/store/patterns_broadcast.py
check_recent_pattern_discoveries
¶
check_recent_pattern_discoveries(exclude_job_id=None, pattern_type=None, min_effectiveness=0.0, limit=20)
Check for recent pattern discoveries from other jobs.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
exclude_job_id
|
str | None
|
Optional job ID to exclude (typically self). |
None
|
pattern_type
|
str | None
|
Optional filter by pattern type. |
None
|
min_effectiveness
|
float
|
Minimum effectiveness score to include. |
0.0
|
limit
|
int
|
Maximum number of discoveries to return. |
20
|
Returns:
| Type | Description |
|---|---|
list[PatternDiscoveryEvent]
|
List of PatternDiscoveryEvent objects from other jobs. |
Source code in src/marianne/learning/store/patterns_broadcast.py
cleanup_expired_pattern_discoveries
¶
Remove expired pattern discovery events.
Returns:
| Type | Description |
|---|---|
int
|
Number of expired events removed. |
Source code in src/marianne/learning/store/patterns_broadcast.py
get_active_pattern_discoveries
¶
Get all active (unexpired) pattern discovery events.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
pattern_type
|
str | None
|
Optional filter by pattern type. |
None
|
Returns:
| Type | Description |
|---|---|
list[PatternDiscoveryEvent]
|
List of PatternDiscoveryEvent objects that haven't expired yet. |