@@ -52,6 +52,8 @@ def __init__(
52
52
buffer_overflow_handler = None ,
53
53
nanosecond_precision = False ,
54
54
msgpack_kwargs = None ,
55
+ * ,
56
+ forward_packet_error = True ,
55
57
** kwargs ,
56
58
):
57
59
"""
@@ -65,6 +67,7 @@ def __init__(
65
67
self .verbose = verbose
66
68
self .buffer_overflow_handler = buffer_overflow_handler
67
69
self .nanosecond_precision = nanosecond_precision
70
+ self .forward_packet_error = forward_packet_error
68
71
self .msgpack_kwargs = {} if msgpack_kwargs is None else msgpack_kwargs
69
72
70
73
self .socket = None
@@ -81,11 +84,11 @@ def emit(self, label, data):
81
84
return self .emit_with_time (label , cur_time , data )
82
85
83
86
def emit_with_time (self , label , timestamp , data ):
84
- if self .nanosecond_precision and isinstance (timestamp , float ):
85
- timestamp = EventTime (timestamp )
86
87
try :
87
88
bytes_ = self ._make_packet (label , timestamp , data )
88
89
except Exception as e :
90
+ if not self .forward_packet_error :
91
+ raise
89
92
self .last_error = e
90
93
bytes_ = self ._make_packet (
91
94
label ,
@@ -129,6 +132,8 @@ def _make_packet(self, label, timestamp, data):
129
132
tag = "." .join ((self .tag , label )) if self .tag else label
130
133
else :
131
134
tag = self .tag
135
+ if self .nanosecond_precision and isinstance (timestamp , float ):
136
+ timestamp = EventTime (timestamp )
132
137
packet = (tag , timestamp , data )
133
138
if self .verbose :
134
139
print (packet )
0 commit comments