plugin groupblog, tmp (mam, rsm): some style improvments/fixes:

- renamed variables nammed after reserved word/module
    - removed class variables which are not needed
    - removed external parenthesis from asserts
    - in mam.MAMPrefs, removed default value for default argument, as None can't be used
    - (groupblog) extended docstring for DeferredItems and DeferredItemsFromMany
This commit is contained in:
Goffi 2015-04-23 13:35:21 +02:00
commit 13ed04b83d
3 changed files with 49 additions and 71 deletions

View file

@ -494,33 +494,33 @@ class GroupBlog(object):
## get ##
def _getOrCountComments(self, items, max=0, profile_key=C.PROF_KEY_NONE):
def _getOrCountComments(self, items, max_=0, profile_key=C.PROF_KEY_NONE):
"""Get and/or count the comments of the given items.
@param items (list): items to consider.
@param max (int): maximum number of comments to get, if 0 only count
@param max_ (int): maximum number of comments to get, if 0 only count
them. The count is set to the item data of key "comments_count".
@param profile_key (str): %(doc_profile_key)s
@return: a deferred list of:
- if max == 0: microblog data
- if max_ == 0: microblog data
- else: couple (dict, (list[dict], dict)) containing:
- microblog data (main item)
- couple (comments data, RSM response data for the comments)
"""
def comments_cb(comments_data, entry):
entry['comments_count'] = comments_data[1]['count']
return (entry, comments_data) if max > 0 else entry
return (entry, comments_data) if max_ > 0 else entry
assert(max >= 0)
assert max_ >= 0
d_list = []
for entry in items:
if entry.get('comments', False):
comments_rsm = {'max': max}
comments_rsm = {'max': max_}
d = self.getGroupBlogComments(entry['comments_service'], entry['comments_node'], rsm=comments_rsm, profile_key=profile_key)
d.addCallback(comments_cb, entry)
d_list.append(d)
else:
if max > 0:
if max_ > 0:
d_list.append(defer.succeed((entry, ([], {}))))
else:
d_list.append(defer.succeed(entry))
@ -588,7 +588,7 @@ class GroupBlog(object):
"""
if max_comments is None:
max_comments = MAX_COMMENTS
assert(max_comments > 0) # otherwise the return signature is not the same
assert max_comments > 0 # otherwise the return signature is not the same
return self._getGroupBlogs(pub_jid_s, item_ids=item_ids, rsm=rsm, max_comments=max_comments, profile_key=profile_key)
def getGroupBlogsAtom(self, pub_jid_s, rsm=None, profile_key=C.PROF_KEY_NONE):
@ -900,7 +900,7 @@ class DeferredItems():
self.profile_key = profile_key
def get(self, node, item_ids=None, sub_id=None, rsm=None):
"""
"""Retrieve and process a page of pubsub items
@param node (str): node identifier.
@param item_ids (list[str]): list of items identifiers.
@ -917,7 +917,7 @@ class DeferredItems():
profile, client = result
rsm_ = wokkel_rsm.RSMRequest(**rsm)
d = self.parent.host.plugins["XEP-0060"].getItems(client.item_access_pubsub,
node, rsm_.max_,
node, rsm_.max,
item_ids, sub_id, rsm_,
profile_key=profile)
@ -948,7 +948,8 @@ class DeferredItemsFromMany():
return {publisher: self.parent.getNodeName(publisher) for publisher in jids}
def get(self, publishers_type, publishers, sub_id=None, rsm=None):
"""
"""Retrieve and process a page of pubsub items
@param publishers_type (str): type of the list of publishers (one of "GROUP" or "JID" or "ALL")
@param publishers (list): list of publishers, according to publishers_type (list of groups or list of jids)
@param sub_id (str): optional subscription identifier.

View file

@ -85,15 +85,11 @@ class MAMQueryRequest():
@itype form: C{unicode}
"""
form = None
rsm = None
node = None
def __init__(self, form=None, rsm=None, node=None):
def __init__(self, form=None, rsm_=None, node=None):
if form is not None:
assert(form.formType == 'submit')
assert form.formType == 'submit'
self.form = form
self.rsm = rsm
self.rsm = rsm_
self.node = node
@classmethod
@ -141,7 +137,7 @@ class MAMQueryRequest():
@return: MAM request element.
@rtype: L{Element<twisted.words.xish.domish.Element>}
"""
assert(parent.name == 'iq')
assert parent.name == 'iq'
mam_elt = self.toElement()
parent.addChild(mam_elt)
return mam_elt
@ -152,7 +148,7 @@ class MAMPrefs():
A Message Archive Management <prefs/> request.
@param default: A value in ('always', 'never', 'roster').
@type : C{unicode}
@type : C{unicode} or C{None}
@param always (list): A list of JID instances.
@type always: C{list}
@ -161,24 +157,19 @@ class MAMPrefs():
@type never: C{list}
"""
default = None
always = None
never = None
def __init__(self, default=None, always=None, never=None):
if default:
assert(default in ('always', 'never', 'roster'))
self.default = default
if always:
assert(isinstance(always, list))
self.always = always
def __init__(self, default, always=None, never=None):
assert default in ('always', 'never', 'roster')
self.default = default
if always is not None:
assert isinstance(always, list)
else:
self.always = []
if never:
assert(isinstance(never, list))
self.never = never
always = []
self.always = always
if never is not None:
assert isinstance(never, list)
else:
self.never = []
never = []
self.never = never
@classmethod
def parse(cls, element):
@ -229,7 +220,7 @@ class MAMPrefs():
@return: MAM request element.
@rtype: L{Element<twisted.words.xish.domish.Element>}
"""
assert(parent.name == 'iq')
assert parent.name == 'iq'
mam_elt = self.toElement()
parent.addChild(mam_elt)
return mam_elt
@ -329,7 +320,7 @@ class MAMClient(XMPPHandler):
@rtype: L{Deferred<twisted.internet.defer.Deferred>}
"""
# http://xmpp.org/extensions/xep-0313.html#prefs
assert(default is not None)
assert default is not None
iq = IQ(self.xmlstream, 'set')
MAMPrefs(default, always, never).render(iq)
if sender is not None:
@ -408,14 +399,13 @@ class MAMService(XMPPHandler, IQHandlerMixin):
},
}
extra_filters = {}
def __init__(self, resource):
"""
@param resource: instance implementing IMAMResource
@type resource: L{object}
"""
self.resource = resource
self.extra_filters = {}
def connectionInitialized(self):
"""

View file

@ -53,7 +53,7 @@ class RSMRequest():
@itype max_: C{int} or C{unicode}
@ivar index: starting index of the requested page.
@itype index: C{int} or C{unicode}
@itype index: C{int} or C{unicode} or C{None}
@ivar after: ID of the element immediately preceding the page.
@itype after: C{unicode}
@ -62,31 +62,25 @@ class RSMRequest():
@itype before: C{unicode}
"""
max_ = 10
index = None
after = None
before = None
def __init__(self, max_=None, index=None, after=None, before=None):
if max_ is not None:
max_ = int(max_)
assert max_ >= 0
self.max_ = max_
def __init__(self, max_=10, index=None, after=None, before=None):
max_ = int(max_)
assert max_ >= 0
self.max = max_
if index is not None:
assert after is None and before is None
index = int(index)
assert index >= 0
self.index = index
self.index = index
if after is not None:
assert before is None
assert isinstance(after, unicode)
self.after = after
self.after = after
if before is not None:
assert isinstance(before, unicode)
self.before = before
self.before = before
@classmethod
def parse(cls, element):
@ -112,8 +106,8 @@ class RSMRequest():
elif elt.name in ('max', 'index'):
setattr(request, elt.name, int(''.join(elt.children)))
if request.max_ is None:
raise RSMError("RSM request is missing its 'max_' element")
if request.max is None:
raise RSMError("RSM request is missing its 'max' element")
return request
@ -124,7 +118,7 @@ class RSMRequest():
@rtype: L{domish.Element}
"""
set_elt = domish.Element((NS_RSM, 'set'))
set_elt.addElement('max').addContent(unicode(self.max_))
set_elt.addElement('max').addContent(unicode(self.max))
if self.index is not None:
set_elt.addElement('index').addContent(unicode(self.index))
@ -150,7 +144,7 @@ class RSMRequest():
@rtype: L{domish.Element}
"""
if element.name == 'pubsub' and hasattr(element, 'items'):
element.items.attributes['max_items'] = unicode(self.max_)
element.items.attributes['max_items'] = unicode(self.max)
set_elt = self.toElement()
element.addChild(set_elt)
@ -175,25 +169,18 @@ class RSMResponse():
@itype last: C{unicode}
"""
count = 0
index = None
first = None
last = None
def __init__(self, count=None, index=None, first=None, last=None):
if count is not None:
assert isinstance(count, int) and count >= 0
self.count = count
def __init__(self, count=0, index=None, first=None, last=None):
assert isinstance(count, int) and count >= 0
self.count = count
if index is not None:
assert isinstance(index, int) and index >= 0
self.index = index
assert isinstance(first, unicode)
self.first = first
assert isinstance(last, unicode)
self.last = last
else:
assert first is None and last is None
self.index = index
self.first = first
self.last = last
@classmethod
def parse(cls, element):