Merge lp:~eday/burrow/doc-updates into lp:burrow

Proposed by Eric Day
Status: Merged
Approved by: Eric Day
Approved revision: 36
Merged at revision: 36
Proposed branch: lp:~eday/burrow/doc-updates
Merge into: lp:burrow
Diff against target: 738 lines (+187/-136)
5 files modified
.pylintrc (+7/-0)
burrow/backend/__init__.py (+60/-47)
burrow/backend/http.py (+47/-42)
burrow/backend/memory.py (+36/-24)
burrow/backend/sqlite.py (+37/-23)
To merge this branch: bzr merge lp:~eday/burrow/doc-updates
Reviewer Review Type Date Requested Status
Burrow Core Team Pending
Review via email: mp+72123@code.launchpad.net

Description of the change

Backend module cleanup.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file '.pylintrc'
2--- .pylintrc 2011-08-16 20:59:06 +0000
3+++ .pylintrc 2011-08-19 00:12:23 +0000
4@@ -1,8 +1,12 @@
5 [Basic]
6 method-rgx=([a-z_][a-z0-9_]{2,30}$)|setUp|tearDown
7 no-docstring-rgx=(__.*__)|(test_.*)
8+argument-rgx=[a-z_][a-z0-9_]{1,30}$
9+attr-rgx=[a-z_][a-z0-9_]{1,30}$
10+variable-rgx=[a-z_][a-z0-9_]{1,30}$
11
12 [Design]
13+max-args=6
14 min-public-methods=0
15 max-public-methods=80
16
17@@ -11,5 +15,8 @@
18 # R0201: Don't warn about methods that could be functions
19 disable=W0142,R0201
20
21+[Similarities]
22+min-similarity-lines=10
23+
24 [Variables]
25 additional-builtins=_
26
27=== modified file 'burrow/backend/__init__.py'
28--- burrow/backend/__init__.py 2011-08-10 07:16:07 +0000
29+++ burrow/backend/__init__.py 2011-08-19 00:12:23 +0000
30@@ -22,7 +22,7 @@
31
32
33 class Backend(burrow.common.Module):
34- '''Interface that backend implementations must provide.'''
35+ '''Interface that backend modules must implement.'''
36
37 def __init__(self, config):
38 super(Backend, self).__init__(config)
39@@ -33,37 +33,49 @@
40 separate threads and should never block.'''
41 thread_pool.spawn_n(self._clean)
42
43- def delete_accounts(self, filters={}):
44- return []
45-
46- def get_accounts(self, filters={}):
47- return []
48-
49- def delete_queues(self, account, filters={}):
50- return []
51-
52- def get_queues(self, account, filters={}):
53- return []
54-
55- def delete_messages(self, account, queue, filters={}):
56- return []
57-
58- def get_messages(self, account, queue, filters={}):
59- return []
60-
61- def update_messages(self, account, queue, attributes, filters={}):
62- return []
63-
64- def create_message(self, account, queue, message, body, attributes={}):
65+ def delete_accounts(self, filters=None):
66+ '''Delete accounts, which includes all queues and messages
67+ for the accounts. With no filters, this will delete all data
68+ for the entire server, so it should be used with caution.
69+
70+ :param filters: Optional dict of filters for the request. Valid
71+ filters are 'marker', 'limit', and 'detail'. Valid values
72+ for 'detail' are 'none', 'id', and 'all'. Default value for
73+ 'detail' is 'none'.
74+ :returns: Generator which will loop through all messages if
75+ 'detail' is not 'none'.
76+ '''
77+ return []
78+
79+ def get_accounts(self, filters=None):
80+ return []
81+
82+ def delete_queues(self, account, filters=None):
83+ return []
84+
85+ def get_queues(self, account, filters=None):
86+ return []
87+
88+ def delete_messages(self, account, queue, filters=None):
89+ return []
90+
91+ def get_messages(self, account, queue, filters=None):
92+ return []
93+
94+ def update_messages(self, account, queue, attributes, filters=None):
95+ return []
96+
97+ def create_message(self, account, queue, message, body, attributes=None):
98 return True
99
100- def delete_message(self, account, queue, message, filters={}):
101- return None
102-
103- def get_message(self, account, queue, message, filters={}):
104- return None
105-
106- def update_message(self, account, queue, message, attributes, filters={}):
107+ def delete_message(self, account, queue, message, filters=None):
108+ return None
109+
110+ def get_message(self, account, queue, message, filters=None):
111+ return None
112+
113+ def update_message(self, account, queue, message, attributes,
114+ filters=None):
115 return None
116
117 def clean(self):
118@@ -79,16 +91,17 @@
119 eventlet.sleep(1)
120
121 def _get_attributes(self, attributes, ttl=None, hide=None):
122- ttl = attributes.get('ttl', ttl)
123+ if attributes is not None:
124+ ttl = attributes.get('ttl', ttl)
125+ hide = attributes.get('hide', hide)
126 if ttl is not None and ttl > 0:
127 ttl += int(time.time())
128- hide = attributes.get('hide', hide)
129 if hide is not None and hide > 0:
130 hide += int(time.time())
131 return ttl, hide
132
133 def _get_detail(self, filters, default=None):
134- detail = filters.get('detail', default)
135+ detail = default if filters is None else filters.get('detail', default)
136 if detail == 'none':
137 detail = None
138 elif detail is not None and detail not in ['id', 'all']:
139@@ -96,7 +109,7 @@
140 return detail
141
142 def _get_message_detail(self, filters, default=None):
143- detail = filters.get('detail', default)
144+ detail = default if filters is None else filters.get('detail', default)
145 options = ['id', 'attributes', 'body', 'all']
146 if detail == 'none':
147 detail = None
148@@ -104,7 +117,7 @@
149 raise burrow.backend.InvalidArguments(detail)
150 return detail
151
152- def _notify(self, account, queue):
153+ def notify(self, account, queue):
154 '''Notify any waiting callers that the account/queue has
155 a visible message.'''
156 queue = '%s/%s' % (account, queue)
157@@ -112,28 +125,28 @@
158 for count in xrange(0, self.queues[queue].getting()):
159 self.queues[queue].put(0)
160
161- def _wait(self, account, queue, seconds):
162+ def wait(self, account, queue, seconds):
163 '''Wait for a message to appear in the account/queue.'''
164 queue = '%s/%s' % (account, queue)
165 if queue not in self.queues:
166 self.queues[queue] = eventlet.Queue()
167 try:
168 self.queues[queue].get(timeout=seconds)
169- except Exception:
170+ except eventlet.Queue.Empty:
171 pass
172 if self.queues[queue].getting() == 0:
173 del self.queues[queue]
174
175
176 def wait_without_attributes(method):
177- def wrapper(self, account, queue, filters={}):
178+ def wrapper(self, account, queue, filters=None):
179 original = lambda: method(self, account, queue, filters)
180 return wait(self, account, queue, filters, original)
181 return wrapper
182
183
184 def wait_with_attributes(method):
185- def wrapper(self, account, queue, attributes, filters={}):
186+ def wrapper(self, account, queue, attributes, filters=None):
187 original = lambda: method(self, account, queue, attributes, filters)
188 return wait(self, account, queue, filters, original)
189 return wrapper
190@@ -143,20 +156,20 @@
191 '''Decorator to wait on a queue if the wait option is given. This
192 will block until a message in the queue is ready or the timeout
193 expires.'''
194- wait = filters.get('wait', 0)
195- if wait > 0:
196- wait += time.time()
197+ seconds = 0 if filters is None else filters.get('wait', 0)
198+ if seconds > 0:
199+ seconds += time.time()
200 while True:
201 try:
202 for message in method():
203 yield message
204 return
205- except burrow.backend.NotFound, e:
206+ except burrow.backend.NotFound, exception:
207 now = time.time()
208- if wait - now > 0:
209- self._wait(account, queue, wait - now)
210- if wait < time.time():
211- raise e
212+ if seconds - now > 0:
213+ self.wait(account, queue, seconds - now)
214+ if seconds < time.time():
215+ raise exception
216
217
218 class NotFound(Exception):
219
220=== modified file 'burrow/backend/http.py'
221--- burrow/backend/http.py 2011-08-10 07:16:07 +0000
222+++ burrow/backend/http.py 2011-08-19 00:12:23 +0000
223@@ -41,38 +41,38 @@
224 port = self.config.getint('port', DEFAULT_PORT)
225 self.server = (host, port)
226
227- def delete_accounts(self, filters={}):
228- url = self._add_parameters('', filters=filters)
229- return self._request('DELETE', url)
230-
231- def get_accounts(self, filters={}):
232- url = self._add_parameters('', filters=filters)
233- return self._request('GET', url)
234-
235- def delete_queues(self, account, filters={}):
236- url = self._add_parameters('/%s' % account, filters=filters)
237- return self._request('DELETE', url)
238-
239- def get_queues(self, account, filters={}):
240- url = self._add_parameters('/%s' % account, filters=filters)
241- return self._request('GET', url)
242-
243- def delete_messages(self, account, queue, filters={}):
244- url = '/%s/%s' % (account, queue)
245- url = self._add_parameters(url, filters=filters)
246- return self._request('DELETE', url)
247-
248- def get_messages(self, account, queue, filters={}):
249- url = '/%s/%s' % (account, queue)
250- url = self._add_parameters(url, filters=filters)
251- return self._request('GET', url)
252-
253- def update_messages(self, account, queue, attributes, filters={}):
254+ def delete_accounts(self, filters=None):
255+ url = self._add_parameters('', filters=filters)
256+ return self._request('DELETE', url)
257+
258+ def get_accounts(self, filters=None):
259+ url = self._add_parameters('', filters=filters)
260+ return self._request('GET', url)
261+
262+ def delete_queues(self, account, filters=None):
263+ url = self._add_parameters('/%s' % account, filters=filters)
264+ return self._request('DELETE', url)
265+
266+ def get_queues(self, account, filters=None):
267+ url = self._add_parameters('/%s' % account, filters=filters)
268+ return self._request('GET', url)
269+
270+ def delete_messages(self, account, queue, filters=None):
271+ url = '/%s/%s' % (account, queue)
272+ url = self._add_parameters(url, filters=filters)
273+ return self._request('DELETE', url)
274+
275+ def get_messages(self, account, queue, filters=None):
276+ url = '/%s/%s' % (account, queue)
277+ url = self._add_parameters(url, filters=filters)
278+ return self._request('GET', url)
279+
280+ def update_messages(self, account, queue, attributes, filters=None):
281 url = '/%s/%s' % (account, queue)
282 url = self._add_parameters(url, attributes, filters)
283 return self._request('POST', url)
284
285- def create_message(self, account, queue, message, body, attributes={}):
286+ def create_message(self, account, queue, message, body, attributes=None):
287 url = '/%s/%s/%s' % (account, queue, message)
288 url = self._add_parameters(url, attributes)
289 try:
290@@ -80,7 +80,7 @@
291 except StopIteration:
292 return False
293
294- def delete_message(self, account, queue, message, filters={}):
295+ def delete_message(self, account, queue, message, filters=None):
296 url = '/%s/%s/%s' % (account, queue, message)
297 url = self._add_parameters(url, filters=filters)
298 try:
299@@ -88,7 +88,7 @@
300 except StopIteration:
301 return None
302
303- def get_message(self, account, queue, message, filters={}):
304+ def get_message(self, account, queue, message, filters=None):
305 url = '/%s/%s/%s' % (account, queue, message)
306 url = self._add_parameters(url, filters=filters)
307 try:
308@@ -96,7 +96,8 @@
309 except StopIteration:
310 return None
311
312- def update_message(self, account, queue, message, attributes, filters={}):
313+ def update_message(self, account, queue, message, attributes,
314+ filters=None):
315 url = '/%s/%s/%s' % (account, queue, message)
316 url = self._add_parameters(url, attributes, filters)
317 try:
318@@ -107,18 +108,22 @@
319 def clean(self):
320 pass
321
322- def _add_parameters(self, url, attributes={}, filters={}):
323+ def _add_parameters(self, url, attributes=None, filters=None):
324 separator = '?'
325- for attribute in ['ttl', 'hide']:
326- value = attributes.get(attribute, None)
327- if value is not None:
328- url += '%s%s=%s' % (separator, attribute, value)
329- separator = '&'
330- for filter in ['marker', 'limit', 'match_hidden', 'detail', 'wait']:
331- value = filters.get(filter, None)
332- if value is not None:
333- url += '%s%s=%s' % (separator, filter, value)
334- separator = '&'
335+ if attributes is not None:
336+ parameters = ['ttl', 'hide']
337+ for parameter in parameters:
338+ value = attributes.get(parameter, None)
339+ if value is not None:
340+ url += '%s%s=%s' % (separator, parameter, value)
341+ separator = '&'
342+ if filters is not None:
343+ parameters = ['marker', 'limit', 'match_hidden', 'detail', 'wait']
344+ for parameter in parameters:
345+ value = filters.get(parameter, None)
346+ if value is not None:
347+ url += '%s%s=%s' % (separator, parameter, value)
348+ separator = '&'
349 return url
350
351 def _request(self, method, url, *args, **kwargs):
352
353=== modified file 'burrow/backend/memory.py'
354--- burrow/backend/memory.py 2011-08-10 07:16:07 +0000
355+++ burrow/backend/memory.py 2011-08-19 00:12:23 +0000
356@@ -31,8 +31,8 @@
357 super(Backend, self).__init__(config)
358 self.accounts = Accounts()
359
360- def delete_accounts(self, filters={}):
361- if len(filters) == 0:
362+ def delete_accounts(self, filters=None):
363+ if filters is None or len(filters) == 0:
364 self.accounts.reset()
365 return
366 detail = self._get_detail(filters)
367@@ -41,15 +41,15 @@
368 if detail is not None:
369 yield account.detail(detail)
370
371- def get_accounts(self, filters={}):
372+ def get_accounts(self, filters=None):
373 detail = self._get_detail(filters, 'id')
374 for account in self.accounts.iter(filters):
375 if detail is not None:
376 yield account.detail(detail)
377
378- def delete_queues(self, account, filters={}):
379+ def delete_queues(self, account, filters=None):
380 account = self.accounts.get(account)
381- if len(filters) == 0:
382+ if filters is None or len(filters) == 0:
383 account.queues.reset()
384 else:
385 detail = self._get_detail(filters)
386@@ -60,7 +60,7 @@
387 if account.queues.count() == 0:
388 self.accounts.delete(account.id)
389
390- def get_queues(self, account, filters={}):
391+ def get_queues(self, account, filters=None):
392 account = self.accounts.get(account)
393 detail = self._get_detail(filters, 'id')
394 for queue in account.queues.iter(filters):
395@@ -68,7 +68,7 @@
396 yield queue.detail(detail)
397
398 @burrow.backend.wait_without_attributes
399- def delete_messages(self, account, queue, filters={}):
400+ def delete_messages(self, account, queue, filters=None):
401 account, queue = self.accounts.get_queue(account, queue)
402 detail = self._get_message_detail(filters)
403 for message in queue.messages.iter(filters):
404@@ -79,7 +79,7 @@
405 self.accounts.delete_queue(account.id, queue.id)
406
407 @burrow.backend.wait_without_attributes
408- def get_messages(self, account, queue, filters={}):
409+ def get_messages(self, account, queue, filters=None):
410 account, queue = self.accounts.get_queue(account, queue)
411 detail = self._get_message_detail(filters, 'all')
412 for message in queue.messages.iter(filters):
413@@ -87,7 +87,7 @@
414 yield message.detail(detail)
415
416 @burrow.backend.wait_with_attributes
417- def update_messages(self, account, queue, attributes, filters={}):
418+ def update_messages(self, account, queue, attributes, filters=None):
419 account, queue = self.accounts.get_queue(account, queue)
420 notify = False
421 ttl, hide = self._get_attributes(attributes)
422@@ -102,9 +102,9 @@
423 if detail is not None:
424 yield message.detail(detail)
425 if notify:
426- self._notify(account.id, queue.id)
427+ self.notify(account.id, queue.id)
428
429- def create_message(self, account, queue, message, body, attributes={}):
430+ def create_message(self, account, queue, message, body, attributes=None):
431 account, queue = self.accounts.get_queue(account, queue, True)
432 ttl, hide = self._get_attributes(attributes, ttl=0, hide=0)
433 try:
434@@ -117,10 +117,10 @@
435 message.hide = hide
436 message.body = body
437 if created or hide == 0:
438- self._notify(account.id, queue.id)
439+ self.notify(account.id, queue.id)
440 return created
441
442- def delete_message(self, account, queue, message, filters={}):
443+ def delete_message(self, account, queue, message, filters=None):
444 account, queue = self.accounts.get_queue(account, queue)
445 message = queue.messages.get(message)
446 detail = self._get_message_detail(filters)
447@@ -129,13 +129,14 @@
448 self.accounts.delete_queue(account.id, queue.id)
449 return message.detail(detail)
450
451- def get_message(self, account, queue, message, filters={}):
452+ def get_message(self, account, queue, message, filters=None):
453 account, queue = self.accounts.get_queue(account, queue)
454 message = queue.messages.get(message)
455 detail = self._get_message_detail(filters, 'all')
456 return message.detail(detail)
457
458- def update_message(self, account, queue, message, attributes, filters={}):
459+ def update_message(self, account, queue, message, attributes,
460+ filters=None):
461 account, queue = self.accounts.get_queue(account, queue)
462 message = queue.messages.get(message)
463 ttl, hide = self._get_attributes(attributes)
464@@ -145,7 +146,7 @@
465 if hide is not None:
466 message.hide = hide
467 if hide == 0:
468- self._notify(account.id, queue.id)
469+ self.notify(account.id, queue.id)
470 return message.detail(detail)
471
472 def clean(self):
473@@ -160,7 +161,7 @@
474 message.hide = 0
475 notify = True
476 if notify:
477- self._notify(account.id, queue.id)
478+ self.notify(account.id, queue.id)
479 if queue.messages.count() == 0:
480 self.accounts.delete_queue(account.id, queue.id)
481
482@@ -184,6 +185,8 @@
483 class IndexedList(object):
484 '''Class for managing an indexed linked list.'''
485
486+ item_class = Item
487+
488 def __init__(self):
489 self.first = None
490 self.last = None
491@@ -220,15 +223,19 @@
492 return self.add(self.item_class(id))
493 raise burrow.backend.NotFound()
494
495- def iter(self, filters={}):
496- marker = filters.get('marker', None)
497+ def iter(self, filters=None):
498+ if filters is None:
499+ marker = None
500+ limit = None
501+ else:
502+ marker = filters.get('marker', None)
503+ limit = filters.get('limit', None)
504 if marker is not None and marker in self.index:
505 item = self.index[marker].next
506 else:
507 item = self.first
508 if item is None:
509 raise burrow.backend.NotFound()
510- limit = filters.get('limit', None)
511 while item is not None:
512 yield item
513 if limit:
514@@ -315,14 +322,19 @@
515
516 item_class = Message
517
518- def iter(self, filters={}):
519- marker = filters.get('marker', None)
520+ def iter(self, filters=None):
521+ if filters is None:
522+ marker = None
523+ limit = None
524+ match_hidden = False
525+ else:
526+ marker = filters.get('marker', None)
527+ limit = filters.get('limit', None)
528+ match_hidden = filters.get('match_hidden', False)
529 if marker is not None and marker in self.index:
530 item = self.index[marker].next
531 else:
532 item = self.first
533- limit = filters.get('limit', None)
534- match_hidden = filters.get('match_hidden', False)
535 count = 0
536 while item is not None:
537 if match_hidden or item.hide == 0:
538
539=== modified file 'burrow/backend/sqlite.py'
540--- burrow/backend/sqlite.py 2011-08-10 07:16:07 +0000
541+++ burrow/backend/sqlite.py 2011-08-19 00:12:23 +0000
542@@ -60,8 +60,8 @@
543 for query in queries:
544 self.db.execute(query)
545
546- def delete_accounts(self, filters={}):
547- if len(filters) == 0:
548+ def delete_accounts(self, filters=None):
549+ if filters is None or len(filters) == 0:
550 query = 'SELECT rowid FROM accounts LIMIT 1'
551 if len(self.db.execute(query).fetchall()) == 0:
552 raise burrow.backend.NotFound()
553@@ -109,7 +109,7 @@
554 return dict(id=row[0])
555 return None
556
557- def get_accounts(self, filters={}):
558+ def get_accounts(self, filters=None):
559 detail = self._get_detail(filters, 'id')
560 query = 'SELECT account FROM accounts'
561 for row in self._get_accounts(query, filters):
562@@ -118,7 +118,12 @@
563
564 def _get_accounts(self, query, filters):
565 values = tuple()
566- marker = filters.get('marker', None)
567+ if filters is None:
568+ marker = None
569+ limit = None
570+ else:
571+ marker = filters.get('marker', None)
572+ limit = filters.get('limit', None)
573 if marker is not None:
574 try:
575 marker = self._get_account(marker)
576@@ -126,7 +131,6 @@
577 values += (marker,)
578 except burrow.backend.NotFound:
579 marker = None
580- limit = filters.get('limit', None)
581 if limit is not None:
582 query += ' LIMIT ?'
583 values += (limit,)
584@@ -144,7 +148,7 @@
585 raise burrow.backend.NotFound()
586 return rows[0][0]
587
588- def delete_queues(self, account, filters={}):
589+ def delete_queues(self, account, filters=None):
590 account_rowid = self._get_account(account)
591 detail = self._get_detail(filters)
592 ids = []
593@@ -174,7 +178,7 @@
594 query = 'DELETE FROM accounts WHERE rowid=?'
595 self.db.execute(query, (account_rowid,))
596
597- def get_queues(self, account, filters={}):
598+ def get_queues(self, account, filters=None):
599 account_rowid = self._get_account(account)
600 detail = self._get_detail(filters, 'id')
601 query = 'SELECT queue FROM queues'
602@@ -185,7 +189,12 @@
603 def _get_queues(self, query, account_rowid, filters):
604 query += ' WHERE account=?'
605 values = (account_rowid,)
606- marker = filters.get('marker', None)
607+ if filters is None:
608+ marker = None
609+ limit = None
610+ else:
611+ marker = filters.get('marker', None)
612+ limit = filters.get('limit', None)
613 if marker is not None:
614 try:
615 marker = self._get_queue(account_rowid, marker)
616@@ -193,7 +202,6 @@
617 values += (marker,)
618 except burrow.backend.NotFound:
619 marker = None
620- limit = filters.get('limit', None)
621 if limit is not None:
622 query += ' LIMIT ?'
623 values += (limit,)
624@@ -212,7 +220,7 @@
625 return rows[0][0]
626
627 @burrow.backend.wait_without_attributes
628- def delete_messages(self, account, queue, filters={}):
629+ def delete_messages(self, account, queue, filters=None):
630 account_rowid = self._get_account(account)
631 queue_rowid = self._get_queue(account_rowid, queue)
632 detail = self._get_message_detail(filters)
633@@ -259,7 +267,7 @@
634 return None
635
636 @burrow.backend.wait_without_attributes
637- def get_messages(self, account, queue, filters={}):
638+ def get_messages(self, account, queue, filters=None):
639 account_rowid = self._get_account(account)
640 queue_rowid = self._get_queue(account_rowid, queue)
641 detail = self._get_message_detail(filters, 'all')
642@@ -271,7 +279,14 @@
643 def _get_messages(self, query, queue_rowid, filters):
644 query += ' WHERE queue=?'
645 values = (queue_rowid,)
646- marker = filters.get('marker', None)
647+ if filters is None:
648+ marker = None
649+ limit = None
650+ match_hidden = False
651+ else:
652+ marker = filters.get('marker', None)
653+ limit = filters.get('limit', None)
654+ match_hidden = filters.get('match_hidden', False)
655 if marker is not None:
656 try:
657 marker = self._get_message(queue_rowid, marker)
658@@ -279,10 +294,8 @@
659 values += (marker,)
660 except burrow.backend.NotFound:
661 marker = None
662- match_hidden = filters.get('match_hidden', False)
663 if match_hidden is False:
664 query += ' AND hide=0'
665- limit = filters.get('limit', None)
666 if limit is not None:
667 query += ' LIMIT ?'
668 values += (limit,)
669@@ -307,7 +320,7 @@
670 return rows[0][0]
671
672 @burrow.backend.wait_with_attributes
673- def update_messages(self, account, queue, attributes, filters={}):
674+ def update_messages(self, account, queue, attributes, filters=None):
675 account_rowid = self._get_account(account)
676 queue_rowid = self._get_queue(account_rowid, queue)
677 detail = self._get_message_detail(filters)
678@@ -332,7 +345,7 @@
679 if self._update_messages(ttl, hide, ids):
680 notify = True
681 if notify:
682- self._notify(account, queue)
683+ self.notify(account, queue)
684
685 def _update_messages(self, ttl, hide, ids):
686 query = 'UPDATE messages SET '
687@@ -352,7 +365,7 @@
688 self.db.execute(query + query_values, tuple(values + ids))
689 return True
690
691- def create_message(self, account, queue, message, body, attributes={}):
692+ def create_message(self, account, queue, message, body, attributes=None):
693 ttl, hide = self._get_attributes(attributes, ttl=0, hide=0)
694 try:
695 account_rowid = self._get_account(account)
696@@ -375,10 +388,10 @@
697 self.db.execute(query, (queue_rowid, message, ttl, hide, body))
698 created = True
699 if created or hide == 0:
700- self._notify(account, queue)
701+ self.notify(account, queue)
702 return created
703
704- def delete_message(self, account, queue, message, filters={}):
705+ def delete_message(self, account, queue, message, filters=None):
706 account_rowid = self._get_account(account)
707 queue_rowid = self._get_queue(account_rowid, queue)
708 row = self._get_message(queue_rowid, message, True)
709@@ -387,19 +400,20 @@
710 self._check_empty_queue(account_rowid, queue_rowid)
711 return self._message_detail(row[1:], detail)
712
713- def get_message(self, account, queue, message, filters={}):
714+ def get_message(self, account, queue, message, filters=None):
715 queue_rowid = self._get_queue(self._get_account(account), queue)
716 row = self._get_message(queue_rowid, message, True)
717 detail = self._get_message_detail(filters, 'all')
718 return self._message_detail(row[1:], detail)
719
720- def update_message(self, account, queue, message, attributes, filters={}):
721+ def update_message(self, account, queue, message, attributes,
722+ filters=None):
723 queue_rowid = self._get_queue(self._get_account(account), queue)
724 row = self._get_message(queue_rowid, message, True)
725 detail = self._get_message_detail(filters)
726 ttl, hide = self._get_attributes(attributes)
727 if self._update_messages(ttl, hide, [row[0]]):
728- self._notify(account, queue)
729+ self.notify(account, queue)
730 row = list(row)
731 if ttl is not None:
732 row[2] = ttl
733@@ -447,4 +461,4 @@
734 'ON queues.account=accounts.rowid ' \
735 'WHERE queues.rowid=?'
736 result = self.db.execute(query, (queue,)).fetchall()[0]
737- self._notify(result[0], result[1])
738+ self.notify(result[0], result[1])

Subscribers

People subscribed via source and target branches