def thread_keys(self, thread_id, min=None, max=None, limit=100):
     if not thread_id:
         return ()
     mapping = self._threadid_mapping.get(thread_id)
     if not mapping:
         return [thread_id]
     return longkeysortreverse(mapping, min, max, limit, reverse=False)
Esempio n. 2
0
 def keys(self, min=None, max=None, limit=100, tag=None):
     if tag and tag not in self._tag_mapping:
         return ()
     # secure
     mapping = self._keys_tag(tag, self.allowed_status_keys())
     return longkeysortreverse(mapping,
                               min, max, limit)
Esempio n. 3
0
 def thread_keys(self, thread_id, min=None, max=None, limit=100):
     if not thread_id:
         return ()
     mapping = self._threadid_mapping.get(thread_id) or [thread_id]
     mapping = self.secure(mapping)
     return longkeysortreverse(mapping,
                               min, max, limit, reverse=False)
 def keys(self, min=None, max=None, limit=100, tag=None):
     self._check_permission("read")
     if tag and tag not in self._tag_mapping:
         return ()
     mapping = self._keys_tag(tag, self.allowed_status_keys())
     return longkeysortreverse(mapping,
                               min, max, limit)
Esempio n. 5
0
    def context_keys(self,
                     microblog_context,
                     min=None,
                     max=None,
                     limit=100,
                     nested=True):

        if nested:
            # hits portal_catalog
            nested_uuids = [
                uuid for uuid in self.nested_uuids(microblog_context)
                if uuid in self._uuid_mapping
            ]
            if not nested_uuids:
                return ()

        else:
            # used in test_statuscontainer_microblog_context
            uuid = self._context2uuid(microblog_context)
            if uuid not in self._uuid_mapping:
                return ()
            nested_uuids = [uuid]

        matches = self._query_mapping(self._uuid_mapping, nested_uuids)
        matches = self.secure(matches)
        return longkeysortreverse(matches, min, max, limit)
Esempio n. 6
0
    def context_keys(self, context,
                     min=None, max=None, limit=100,
                     tag=None, nested=True, mention=None):
        if tag and tag not in self._tag_mapping:
            return ()

        if nested:
            # hits portal_catalog
            nested_uuids = [uuid for uuid in self.nested_uuids(context)
                            if uuid in self._uuid_mapping]
            if not nested_uuids:
                return ()

        else:
            # used in test_statuscontainer_context for non-integration tests
            uuid = self._context2uuid(context)
            if uuid not in self._uuid_mapping:
                return ()
            nested_uuids = [uuid]

        # tag and uuid filters handle None inputs gracefully
        keyset_tag = self._keys_tag(tag, self.allowed_status_keys())

        # mention and uuid filters handle None inputs gracefully
        keyset_mention = self._keys_tag(mention, keyset_tag)

        # calculate the tag+mention+uuid intersection for each uuid context
        keyset_uuids = [self._keys_uuid(_uuid, keyset_mention)
                        for _uuid in nested_uuids]

        # merge the intersections
        merged_set = LLBTree.multiunion(keyset_uuids)
        merged_set = self.secure(merged_set)
        return longkeysortreverse(merged_set,
                                  min, max, limit)
Esempio n. 7
0
    def mention_keys(self, mentions, min=None, max=None, limit=100, tag=None):
        if not mentions:
            return ()
        if tag and tag not in self._tag_mapping:
            return ()

        if mentions == str(mentions):
            # single mention optimization
            mention = mentions
            mapping = self._mentions_mapping.get(mention)
            if not mapping:
                return ()

        else:
            # collection of LLTreeSet
            treesets = (self._mentions_mapping.get(mention)
                        for mention in mentions
                        if mention in self._mentions_mapping.keys())
            mapping = reduce(LLBTree.union, treesets, LLBTree.TreeSet())

        # returns unchanged mapping if tag is None
        mapping = self._keys_tag(tag, mapping)
        mapping = self.secure(mapping)
        return longkeysortreverse(mapping,
                                  min, max, limit)
Esempio n. 8
0
 def thread_keys(self, thread_id, min=None, max=None, limit=100):
     if not thread_id:
         return ()
     mapping = self._threadid_mapping.get(thread_id) or [thread_id]
     mapping = self.secure(mapping)
     return longkeysortreverse(mapping,
                               min, max, limit)
Esempio n. 9
0
    def user_keys(self, users, min=None, max=None, limit=100, tag=None):
        if not users:
            return ()
        if tag and tag not in self._tag_mapping:
            return ()

        if users == str(users):
            # single user optimization
            userid = users
            mapping = self._user_mapping.get(userid)
            if not mapping:
                return ()

        else:
            # collection of user LLTreeSet
            treesets = (self._user_mapping.get(userid)
                        for userid in users
                        if userid in self._user_mapping.keys())
            mapping = reduce(LLBTree.union, treesets, LLBTree.TreeSet())

        # returns unchanged mapping if tag is None
        mapping = self._keys_tag(tag, mapping)
        mapping = self.secure(mapping)
        return longkeysortreverse(mapping,
                                  min, max, limit)
Esempio n. 10
0
 def keys(self, min=None, max=None, limit=100, tag=None):
     if tag and tag not in self._tag_mapping:
         return ()
     # secure
     mapping = self._keys_tag(tag, self.allowed_status_keys())
     return longkeysortreverse(mapping,
                               min, max, limit)
    def mention_keys(self, mentions, min=None, max=None, limit=100, tag=None):
        if not mentions:
            return ()
        if tag and tag not in self._tag_mapping:
            return ()

        if mentions == str(mentions):
            # single mention optimization
            mention = mentions
            mapping = self._mentions_mapping.get(mention)
            if not mapping:
                return ()

        else:
            # collection of LLTreeSet
            treesets = (self._mentions_mapping.get(mention)
                        for mention in mentions
                        if mention in self._mentions_mapping.keys())
            mapping = reduce(LLBTree.union, treesets, LLBTree.TreeSet())

        # returns unchanged mapping if tag is None
        mapping = self._keys_tag(tag, mapping)

        return longkeysortreverse(mapping,
                                  min, max, limit)
    def user_keys(self, users, min=None, max=None, limit=100, tag=None):
        if not users:
            return ()
        if tag and tag not in self._tag_mapping:
            return ()

        if users == str(users):
            # single user optimization
            userid = users
            mapping = self._user_mapping.get(userid)
            if not mapping:
                return ()

        else:
            # collection of user LLTreeSet
            treesets = (self._user_mapping.get(userid)
                        for userid in users
                        if userid in self._user_mapping.keys())
            mapping = reduce(LLBTree.union, treesets, LLBTree.TreeSet())

        # returns unchanged mapping if tag is None
        mapping = self._keys_tag(tag, mapping)

        return longkeysortreverse(mapping,
                                  min, max, limit)
    def keys(self, min=None, max=None, limit=100, tag=None):
        self._check_permission("read")
        if tag and tag not in self._tag_mapping:
            return ()

        mapping = self._keys_tag(tag, self.allowed_status_keys())
        return longkeysortreverse(mapping, min, max, limit)
    def context_keys(self, context,
                     min=None, max=None, limit=100, tag=None, nested=True):
        self._check_permission("read")
        if tag and tag not in self._tag_mapping:
            return ()

        if nested:
            # hits portal_catalog
            nested_uuids = [uuid for uuid in self.nested_uuids(context)
                            if uuid in self._uuid_mapping]
            if not nested_uuids:
                return ()

        else:
            # used in test_statuscontainer_context for non-integration tests
            uuid = self._context2uuid(context)
            if uuid not in self._uuid_mapping:
                return ()
            nested_uuids = [uuid]

        # tag and uuid filters handle None inputs gracefully
        keyset_tag = self._keys_tag(tag, self.allowed_status_keys())
        # calculate the tag+uuid intersection for each uuid context

        keyset_uuids = [self._keys_uuid(uuid, keyset_tag)
                        for uuid in nested_uuids]

        # merge the intersections
        merged_set = LLBTree.multiunion(keyset_uuids)
        return longkeysortreverse(merged_set,
                                  min, max, limit)
Esempio n. 15
0
 def thread_keys(self, thread_id, min=None, max=None, limit=100):
     if not thread_id:
         return ()
     mapping = self._threadid_mapping.get(thread_id)
     if not mapping:
         return [thread_id]
     else:
         if thread_id not in mapping:
             mapping.insert(thread_id)
     return longkeysortreverse(mapping, min, max, limit)
Esempio n. 16
0
 def keys(self, min=None, max=None, limit=100, tags=None, users=None):
     # secure
     if tags is None and users is None:
         matches = self.allowed_status_keys()
     else:
         matches = self.secure(
             LLBTree.union(
                 self._query_mapping(self._tag_mapping, tags),
                 self._query_mapping(self._user_mapping, users),
             ))
     return longkeysortreverse(matches, min, max, limit)
Esempio n. 17
0
    def context_keys(self, context, min=None, max=None, limit=100, tag=None):
        self._check_permission("read")
        if tag and tag not in self._tag_mapping:
            return ()
        uuid = self._context2uuid(context)
        if uuid not in self._uuid_mapping:
            return ()

        # tag and uuid filters handle None inputs gracefully
        keyset1 = self._keys_tag(tag, self.allowed_status_keys())
        keyset2 = self._keys_uuid(uuid, keyset1)
        return longkeysortreverse(keyset2, min, max, limit)
 def keys(self, min=None, max=None, limit=100, tag=None):
     self._check_permission("read")
     if tag:
         if tag not in self._tag_mapping:
             return ()
         mapping = LLBTree.intersection(
             LLBTree.LLTreeSet(self._status_mapping.keys()),
             self._tag_mapping[tag])
     else:
         mapping = self._status_mapping
     return longkeysortreverse(mapping,
                               min, max, limit)
    def context_keys(self, context,
                     min=None, max=None, limit=100, tag=None):
        self._check_permission("read")
        if tag and tag not in self._tag_mapping:
            return ()
        uuid = self._context2uuid(context)
        if uuid not in self._uuid_mapping:
            return ()

        # tag and uuid filters handle None inputs gracefully
        keyset1 = self._keys_tag(tag, self.allowed_status_keys())
        keyset2 = self._keys_uuid(uuid, keyset1)
        return longkeysortreverse(keyset2,
                                  min, max, limit)
Esempio n. 20
0
 def is_content_keys(self, min=None, max=None, limit=100):
     # secure
     keys = self.secure(self._is_content_mapping)
     return longkeysortreverse(keys, min, max, limit)
Esempio n. 21
0
 def mention_keys(self, mentions, min=None, max=None, limit=100):
     if not mentions:
         return ()
     matches = self._query_mapping(self._mentions_mapping, mentions)
     matches = self.secure(matches)
     return longkeysortreverse(matches, min, max, limit)