|
a/Allura/allura/lib/utils.py |
|
b/Allura/allura/lib/utils.py |
|
... |
|
... |
118 |
'%s=%s' % (k,v) for k,v in sorted(kwpairs.iteritems())
|
118 |
'%s=%s' % (k,v) for k,v in sorted(kwpairs.iteritems())
|
119 |
if v is not None)
|
119 |
if v is not None)
|
120 |
record.exc_info = None # Never put tracebacks in the rtstats log
|
120 |
record.exc_info = None # Never put tracebacks in the rtstats log
|
121 |
WatchedFileHandler.emit(self, record)
|
121 |
WatchedFileHandler.emit(self, record)
|
122 |
|
122 |
|
123 |
def chunked_find(cls, query=None, pagesize=1024, sort=None):
|
123 |
def chunked_find(cls, query=None, pagesize=1024):
|
124 |
if query is None: query = {}
|
124 |
if query is None: query = {}
|
125 |
page = 0
|
125 |
page = 0
|
126 |
while True:
|
126 |
while True:
|
127 |
qry = (
|
127 |
results = (
|
128 |
cls.query.find(query)
|
128 |
cls.query.find(query)
|
129 |
.skip(pagesize*page)
|
129 |
.skip(pagesize*page)
|
130 |
.limit(pagesize))
|
130 |
.limit(pagesize)
|
131 |
if sort is not None:
|
131 |
.all())
|
132 |
qry = qry.sort(*sort)
|
|
|
133 |
results = qry.all()
|
|
|
134 |
if not results: break
|
132 |
if not results: break
|
135 |
yield results
|
133 |
yield results
|
136 |
page += 1
|
134 |
page += 1
|
137 |
|
135 |
|
138 |
class AntiSpam(object):
|
136 |
class AntiSpam(object):
|