summaryrefslogtreecommitdiff
path: root/buildstream/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildstream/utils.py')
-rw-r--r--buildstream/utils.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/buildstream/utils.py b/buildstream/utils.py
index bfb58c9ef..68f99b9a3 100644
--- a/buildstream/utils.py
+++ b/buildstream/utils.py
@@ -612,6 +612,27 @@ def _parse_size(size, volume):
return int(num) * 1024**units.index(unit)
+# _pretty_size()
+#
+# Converts a number of bytes into a string representation in KB, MB, GB, TB
+# represented as K, M, G, T etc.
+#
+# Args:
+# size (int): The size to convert in bytes.
+# dec_places (int): The number of decimal places to output to.
+#
+# Returns:
+# (str): The string representation of the number of bytes in the largest
+def _pretty_size(size, dec_places=0):
+ psize = size
+ unit = 'B'
+ for unit in ('B', 'K', 'M', 'G', 'T'):
+ if psize < 1024:
+ break
+ else:
+ psize /= 1024
+ return "{size:g}{unit}".format(size=round(psize, dec_places), unit=unit)
+
# A sentinel to be used as a default argument for functions that need
# to distinguish between a kwarg set to None and an unset kwarg.
_sentinel = object()