36 lines
927 B
Python
36 lines
927 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Shared code for config validator examples.
|
|
"""
|
|
|
|
import pickle
|
|
from pathlib import Path
|
|
|
|
# The set of all valid (rule_id, event_type) pairs we'll encounter
|
|
RULES = range(20) # 0-19 (small, bounded input space)
|
|
EVENT_TYPES = range(20) # 0-19
|
|
|
|
EVENTS_FILE = Path(__file__).parent / "events.pkl"
|
|
|
|
|
|
def validate_rule_slow(rule_id, event_type):
|
|
"""
|
|
Simulate an expensive validation check.
|
|
In real life, this might query a database, parse XML, etc.
|
|
"""
|
|
total = 0
|
|
for i in range(50):
|
|
total += (rule_id * event_type * i) % 997
|
|
return total % 2 == 0
|
|
|
|
|
|
def load_events():
|
|
"""Load events from the pickle file."""
|
|
if not EVENTS_FILE.exists():
|
|
raise FileNotFoundError(
|
|
f"Events file not found: {EVENTS_FILE}\n"
|
|
"Run 'python3 generate_events.py' first."
|
|
)
|
|
with open(EVENTS_FILE, "rb") as f:
|
|
return pickle.load(f)
|