~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to loggerhead/util.py

  • Committer: Robey Pointer
  • Date: 2006-12-18 22:07:40 UTC
  • Revision ID: robey@lag.net-20061218220740-4l1lcdoqhha7j2e1
add a download link to the inventory page, and allow sorting by size and
date.

Show diffs side-by-side

added added

removed removed

Lines of Context:
192
192
    return format % value
193
193
 
194
194
 
 
195
KILO = 1024
 
196
MEG = 1024 * KILO
 
197
GIG = 1024 * MEG
 
198
P95_MEG = int(0.9 * MEG)
 
199
P95_GIG = int(0.9 * GIG)
 
200
 
 
201
def human_size(size, min_divisor=0):
 
202
    size = int(size)
 
203
    if (size == 0) and (min_divisor == 0):
 
204
        return '0'
 
205
    if (size < 512) and (min_divisor == 0):
 
206
        return str(size)
 
207
 
 
208
    if (size >= P95_GIG) or (min_divisor >= GIG):
 
209
        divisor = GIG
 
210
    elif (size >= P95_MEG) or (min_divisor >= MEG):
 
211
        divisor = MEG
 
212
    else:
 
213
        divisor = KILO
 
214
    
 
215
    dot = size % divisor
 
216
    base = size - dot
 
217
    dot = dot * 10 // divisor
 
218
    base //= divisor
 
219
    if dot >= 10:
 
220
        base += 1
 
221
        dot -= 10
 
222
    
 
223
    out = str(base)
 
224
    if (base < 100) and (dot != 0):
 
225
        out += '.%d' % (dot,)
 
226
    if divisor == KILO:
 
227
        out += 'K'
 
228
    elif divisor == MEG:
 
229
        out += 'M'
 
230
    elif divisor == GIG:
 
231
        out += 'G'
 
232
    return out
 
233
    
 
234
 
195
235
def fill_in_navigation(history, navigation):
196
236
    """
197
237
    given a navigation block (used by the template for the page header), fill