Mercurial > kallithea
view rhodecode/lib/vcs/utils/filesize.py @ 2865:6d9b3ade3051 beta
Allowing multiple issue servers to be autolinked in the changeset view;
linking is now contingent on issue_server_link, issue_pat and issue_prefix
being defined; multiple servers can be used by specifying a common suffix on all
the above variables, ie ..
issue_server_link_1
issue_pat_1
issue_prefix_1
.. and ..
issue_server_link_other
issue_pat_other
issue_prefix_other
.. would be treated as two distinct servers, but ..
issue_pat_thing
.. would be ignored (since the other two requisite vars aren't present).
This patch is backwards compatible with existing variables (as a suffix
isn't needed).
author | Zachary Auclair <zach101@gmail.com> |
---|---|
date | Thu, 20 Sep 2012 20:30:55 -0400 |
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)