Repository navigation
Expand file tree
/
Copy pathconfig.py
More file actions
56 lines (46 loc) · 1.47 KB
/
Copy pathconfig.py
File metadata and controls
56 lines (46 loc) · 1.47 KB
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
"""
Configuration constants for the Predictive Routing Engine.
"""
# Scoring weights (original)
W_ETA: float = 0.7
W_CAPACITY: float = 0.3
# Updated scoring weights — Distance / Traffic / ER-Capacity
W_DISTANCE: float = 0.4
W_TRAFFIC: float = 0.3
W_ER_CAPACITY: float = 0.3
# Latency threshold (from spec Requirement 5)
LATENCY_THRESHOLD_MS: int = 200
# Poll intervals (seconds)
TRAFFIC_FEED_POLL_INTERVAL_S: int = 30
ER_CAPACITY_POLL_INTERVAL_S: int = 60
ROUTE_REEVALUATION_INTERVAL_S: int = 30
# TTL / Timeouts
TRAFFIC_SNAPSHOT_MAX_AGE_S: int = 30
ER_CAPACITY_UNKNOWN_THRESHOLD_S: int = 120
ROUTE_REPLACEMENT_THRESHOLD_S: int = 60
HEARTBEAT_INTERVAL_S: int = 5
HEARTBEAT_TIMEOUT_S: int = 15
DRIVER_DISCONNECT_TIMEOUT_S: int = 10
ROUTE_ACK_TIMEOUT_S: int = 5
ROUTE_RETRANSMIT_MAX_ATTEMPTS: int = 3
ROUTE_RETRANSMIT_INTERVAL_S: int = 5
# Cache
IN_MEMORY_CACHE_FALLBACK_S: int = 300 # 5 minutes
# Availability
TARGET_AVAILABILITY_PERCENT: float = 99.9
FAILOVER_RESTORE_S: int = 30
MAX_CONCURRENT_INCIDENTS: int = 500
# Audit
AUDIT_LOG_RETENTION_DAYS: int = 90
AUDIT_PERSIST_TIMEOUT_MS: int = 500
AUDIT_RETRY_MAX: int = 3
# Database
DATABASE_URL: str = "sqlite+aiosqlite:///./swiftpath.db"
# Time-of-day congestion multipliers for calculate_predictive_eta
TIME_OF_DAY_CONGESTION: dict = {
"night": 0.8, # 00:00-06:00
"morning_rush": 1.8, # 06:00-09:00
"midday": 1.0, # 09:00-16:00
"evening_rush": 1.7, # 16:00-19:00
"evening": 0.9, # 19:00-00:00
}