Mercurial > kallithea
view rhodecode/lib/vcs/utils/filesize.py @ 3334:968b28545f93 beta
fixed description of update-repoinfo command
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 08 Feb 2013 19:08:52 +0100 |
parents | 324ac367a4da |
children |
line wrap: on
line source
def filesizeformat(bytes, sep=' '): """ Formats the value like a 'human-readable' file size (i.e. 13 KB, 4.1 MB, 102 B, 2.3 GB etc). Grabbed from Django (http://www.djangoproject.com), slightly modified. :param bytes: size in bytes (as integer) :param sep: string separator between number and abbreviation """ try: bytes = float(bytes) except (TypeError, ValueError, UnicodeDecodeError): return '0%sB' % sep if bytes < 1024: size = bytes template = '%.0f%sB' elif bytes < 1024 * 1024: size = bytes / 1024 template = '%.0f%sKB' elif bytes < 1024 * 1024 * 1024: size = bytes / 1024 / 1024 template = '%.1f%sMB' else: size = bytes / 1024 / 1024 / 1024 template = '%.2f%sGB' return template % (size, sep)