~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/util.py

  • Committer: Robey Pointer
  • Date: 2007-09-04 17:06:03 UTC
  • mto: (140.2.1 merge-robey)
  • mto: This revision was merged to the branch mainline in revision 142.
  • Revision ID: robey@lag.net-20070904170603-58307k9mqq24zf99
i can't decide on a decent default date format, so i'm punting on it:
unify all date displays to call format_date(), and have that configurable.
the default display is 'fancy', meaning '23 Aug 12:34' for recent dates,
and '23 Aug 2006' for old dates.  any other config value is treated as
the strftime format string.

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
import time
30
30
import traceback
31
31
 
 
32
import turbogears
 
33
 
32
34
 
33
35
log = logging.getLogger("loggerhead.controllers")
34
36
 
105
107
                setattr(self, key, value)
106
108
        for key, value in kw.iteritems():
107
109
            setattr(self, key, value)
108
 
 
 
110
    
109
111
    def __repr__(self):
110
112
        out = '{ '
111
113
        for key, value in self.__dict__.iteritems():
160
162
        return '%s at %s' % (username, domains[-2])
161
163
    return '%s at %s' % (username, domains[0])
162
164
 
163
 
 
 
165
    
164
166
def triple_factors(min_value=1):
165
167
    factors = (1, 3)
166
168
    index = 0
178
180
    """
179
181
    given a position in a maximum range, return a list of negative and positive
180
182
    jump factors for an hgweb-style triple-factor geometric scan.
181
 
 
 
183
    
182
184
    for example, with pos=20 and max=500, the range would be:
183
185
    [ -10, -3, -1, 1, 3, 10, 30, 100, 300 ]
184
 
 
 
186
    
185
187
    i admit this is a very strange way of jumping through revisions.  i didn't
186
188
    invent it. :)
187
189
    """
289
291
        divisor = MEG
290
292
    else:
291
293
        divisor = KILO
292
 
 
 
294
    
293
295
    dot = size % divisor
294
296
    base = size - dot
295
297
    dot = dot * 10 // divisor
297
299
    if dot >= 10:
298
300
        base += 1
299
301
        dot -= 10
300
 
 
 
302
    
301
303
    out = str(base)
302
304
    if (base < 100) and (dot != 0):
303
305
        out += '.%d' % (dot,)
308
310
    elif divisor == GIG:
309
311
        out += 'G'
310
312
    return out
311
 
 
 
313
    
312
314
 
313
315
def fill_in_navigation(navigation):
314
316
    """
322
324
    navigation.count = len(navigation.revid_list)
323
325
    navigation.page_position = navigation.position // navigation.pagesize + 1
324
326
    navigation.page_count = (len(navigation.revid_list) + (navigation.pagesize - 1)) // navigation.pagesize
325
 
 
 
327
    
326
328
    def get_offset(offset):
327
329
        if (navigation.position + offset < 0) or (navigation.position + offset > navigation.count - 1):
328
330
            return None
329
331
        return navigation.revid_list[navigation.position + offset]
330
 
 
 
332
    
331
333
    navigation.prev_page_revid = get_offset(-1 * navigation.pagesize)
332
334
    navigation.next_page_revid = get_offset(1 * navigation.pagesize)
333
 
 
 
335
    
334
336
    params = { 'file_id': navigation.file_id }
335
337
    if getattr(navigation, 'query', None) is not None:
336
338
        params['q'] = navigation.query
337
339
    else:
338
340
        params['start_revid'] = navigation.start_revid
339
 
 
 
341
        
340
342
    if navigation.prev_page_revid:
341
343
        navigation.prev_page_url = navigation.branch.url([ navigation.scan_url, navigation.prev_page_revid ], **get_context(**params))
342
344
    if navigation.next_page_revid:
449
451
    """
450
452
    return a context map that may be overriden by specific values passed in,
451
453
    but only contains keys from the list of valid context keys.
452
 
 
 
454
    
453
455
    if 'clear' is set, only the 'remember' context value will be added, and
454
456
    all other context will be omitted.
455
457
    """