def testFromList(self):
     "Test population of SimpleResultSet using fromList method."
     rs = SimpleResultSet(self.session)
     self.assertEqual(len(rs), 0)
     self.assertIsInstance(rs, SimpleResultSet)
     rs.fromList([self.rsi1, self.rsi3])
     for x, y in zip(self.a, rs):
         self.assertEqual(x, y)
Exemple #2
0
 def _deserialise(self, session, data, size, id):
     data = data.decode('string_escape')
     fmt = 'l' * size
     ids = struct.unpack(fmt, data)
     # can't use bitfield, as need to preserve order
     rset = SimpleResultSet(session)
     items = [SimpleResultSetItem(session, x, resultSet=rset) for x in ids]
     rset.fromList(items)
     rset.id = id
     return rset
Exemple #3
0
 def _deserialise(self, session, data, size, id_):
     data = data.decode('string_escape')
     fmt = '<' + 'l' * size
     ids = struct.unpack(fmt, data)
     # can't use bitfield, as need to preserve order
     rset = SimpleResultSet(session)
     items = [SimpleResultSetItem(session, x, resultSet=rset) for x in ids]
     rset.fromList(items)
     rset.id = id_
     return rset
Exemple #4
0
    def construct_resultSet(self, session, terms, queryHash={}):
        # in: res.dictresult()

        s = SimpleResultSet(session, [])
        rsilist = []
        for t in terms['records']:
            (store, id) = t['recordid'].split('/', 1)
            occs = t['occurences']
            item = SimpleResultSetItem(session, id, store, occs, resultSet=s)
            rsilist.append(item)
        s.fromList(rsilist)
        s.index = self
        if queryHash:
            s.queryTerm = queryHash['text']
            s.queryFreq = queryHash['occurences']
        s.totalRecs = terms['totalRecs']
        s.totalOccs = terms['totalOccs']
        return s
Exemple #5
0
    def construct_resultSet(self, session, terms, queryHash={}):
        # in: res.dictresult()

        s = SimpleResultSet(session, [])
        rsilist = []
        for t in terms['records']:
            (store, id) = t['recordid'].split('/', 1)
            occs = t['occurences']
            item = SimpleResultSetItem(session, id, store, occs, resultSet=s)
            rsilist.append(item)
        s.fromList(rsilist)
        s.index = self
        if queryHash:
            s.queryTerm = queryHash['text']
            s.queryFreq = queryHash['occurences']
        s.totalRecs = terms['totalRecs']
        s.totalOccs = terms['totalOccs']
        return s
Exemple #6
0
 def search(self, session, query, db):
     # Kludgey optimisation
     pm = db.get_path(session, 'protocolMap')
     if not pm:
         db._cacheProtocolMaps(session)
         pm = db.protocolMaps.get('http://www.loc.gov/zing/srw/')
         db.paths['protocolMap'] = pm
     query = self._cql_to_sql(session, query, pm)
     res = self._query(query)
     dr = res.dictresult()
     rset = SimpleResultSet([])
     rsilist = []
     for t in dr:
         (store, id) = t['recordid'].split('/', 1)
         item = SimpleResultSetItem(session, id, store, 1, resultSet=rset)
         rsilist.append(item)
     rset.fromList(rsilist)
     return rset
Exemple #7
0
 def search(self, session, query, db):
     # Kludgey optimisation
     pm = db.get_path(session, 'protocolMap')
     if not pm:
         db._cacheProtocolMaps(session)
         pm = db.protocolMaps.get('http://www.loc.gov/zing/srw/')
         db.paths['protocolMap'] = pm
     query = self._cql_to_sql(session, query, pm)
     res = self._query(query)
     dr = res.dictresult()
     rset = SimpleResultSet([])
     rsilist = []
     for t in dr:
         (store, id) = t['recordid'].split('/', 1)
         item = SimpleResultSetItem(session, id, store, 1, resultSet=rset)
         rsilist.append(item)
     rset.fromList(rsilist)
     return rset