6
6
from warnings import warn
7
7
8
8
import six
9
+ import time
9
10
10
11
11
12
class SeriesHelper (object ):
@@ -87,8 +88,11 @@ def __new__(cls, *args, **kwargs):
87
88
' autocommit is false.' .format (cls .__name__ ))
88
89
89
90
cls ._datapoints = defaultdict (list )
90
- cls ._type = namedtuple (cls .__name__ , cls ._fields + cls ._tags )
91
91
92
+ if 'time' in cls ._fields :
93
+ cls ._fields .remove ('time' )
94
+ cls ._type = namedtuple (cls .__name__ ,
95
+ cls ._fields + cls ._tags + ['time' ])
92
96
return super (SeriesHelper , cls ).__new__ (cls )
93
97
94
98
def __init__ (self , ** kw ):
@@ -99,14 +103,17 @@ def __init__(self, **kw):
99
103
:warning: Data points are *immutable* (`namedtuples`).
100
104
"""
101
105
cls = self .__class__
106
+ timestamp = kw .pop ('time' , time .time ())
102
107
103
108
if sorted (cls ._fields + cls ._tags ) != sorted (kw .keys ()):
104
109
raise NameError (
105
110
'Expected {0}, got {1}.' .format (
106
111
sorted (cls ._fields + cls ._tags ),
107
112
kw .keys ()))
108
113
109
- cls ._datapoints [cls ._series_name .format (** kw )].append (cls ._type (** kw ))
114
+ cls ._datapoints [cls ._series_name .format (** kw )].append (
115
+ cls ._type (time = timestamp , ** kw )
116
+ )
110
117
111
118
if cls ._autocommit and \
112
119
sum (len (series ) for series in cls ._datapoints .values ()) \
@@ -140,6 +147,7 @@ def _json_body_(cls):
140
147
"measurement" : series_name ,
141
148
"fields" : {},
142
149
"tags" : {},
150
+ "time" : getattr (point , "time" )
143
151
}
144
152
145
153
for field in cls ._fields :
0 commit comments