equal
deleted
inserted
replaced
57 def parse_date(date_str): |
57 def parse_date(date_str): |
58 ts = email.utils.parsedate_tz(date_str) #@UndefinedVariable |
58 ts = email.utils.parsedate_tz(date_str) #@UndefinedVariable |
59 return datetime.datetime(*ts[0:7]) |
59 return datetime.datetime(*ts[0:7]) |
60 |
60 |
61 def clean_keys(dict_val): |
61 def clean_keys(dict_val): |
62 return dict([(str(key),value) for key,value in dict_val.items()]) |
62 return dict([(str(key),value) for key,value in dict_val.iteritems()]) |
63 |
63 |
64 fields_adapter = { |
64 fields_adapter = { |
65 'stream': { |
65 'stream': { |
66 "tweet": { |
66 "tweet": { |
67 "created_at" : adapt_date, |
67 "created_at" : adapt_date, |
98 def adapt_one_field(field, value): |
98 def adapt_one_field(field, value): |
99 if field in adapter_mapping and adapter_mapping[field] is not None: |
99 if field in adapter_mapping and adapter_mapping[field] is not None: |
100 return adapter_mapping[field](value) |
100 return adapter_mapping[field](value) |
101 else: |
101 else: |
102 return value |
102 return value |
103 return dict([(str(k),adapt_one_field(k,v)) for k,v in fields_dict.items()]) |
103 return dict([(str(k),adapt_one_field(k,v)) for k,v in fields_dict.iteritems()]) |
104 |
104 |
105 |
105 |
106 class ObjectBufferProxy(object): |
106 class ObjectBufferProxy(object): |
107 def __init__(self, klass, args, kwargs, must_flush, instance=None): |
107 def __init__(self, klass, args, kwargs, must_flush, instance=None): |
108 self.klass= klass |
108 self.klass= klass |
111 self.must_flush = must_flush |
111 self.must_flush = must_flush |
112 self.instance = instance |
112 self.instance = instance |
113 |
113 |
114 def persists(self, session): |
114 def persists(self, session): |
115 new_args = [arg() if callable(arg) else arg for arg in self.args] if self.args is not None else [] |
115 new_args = [arg() if callable(arg) else arg for arg in self.args] if self.args is not None else [] |
116 new_kwargs = dict([(k,v()) if callable(v) else (k,v) for k,v in self.kwargs.items()]) if self.kwargs is not None else {} |
116 new_kwargs = dict([(k,v()) if callable(v) else (k,v) for k,v in self.kwargs.iteritems()]) if self.kwargs is not None else {} |
117 |
117 |
118 if self.instance is None: |
118 if self.instance is None: |
119 self.instance = self.klass(*new_args, **new_kwargs) |
119 self.instance = self.klass(*new_args, **new_kwargs) |
120 else: |
120 else: |
121 self.instance = self.klass(*new_args, **new_kwargs) |
121 self.instance = self.klass(*new_args, **new_kwargs) |
158 if klass in self.__bufferdict: |
158 if klass in self.__bufferdict: |
159 for proxy in self.__bufferdict[klass]: |
159 for proxy in self.__bufferdict[klass]: |
160 if proxy.kwargs is None or len(proxy.kwargs) == 0 or proxy.klass != klass: |
160 if proxy.kwargs is None or len(proxy.kwargs) == 0 or proxy.klass != klass: |
161 continue |
161 continue |
162 found = True |
162 found = True |
163 for k,v in kwargs.items(): |
163 for k,v in kwargs.iteritems(): |
164 if (k not in proxy.kwargs) or v != proxy.kwargs[k]: |
164 if (k not in proxy.kwargs) or v != proxy.kwargs[k]: |
165 found = False |
165 found = False |
166 break |
166 break |
167 if found: |
167 if found: |
168 return proxy |
168 return proxy |